יצירת דיסקים של זיכרון RAM בזיכרון

למכונות של Compute Engine יש זיכרון ברמה ארגונית עם ביצועים גבוהים, שבו אתם יכולים להשתמש כדי להריץ את האפליקציות שלכם. אתם יכולים להקצות חלק מהזיכרון הזה כדי ליצור דיסק RAM עם זמן אחזור קצר במיוחד וקצב העברת נתונים גבוה. דיסקים של RAM מתאימים לשימוש כשהאפליקציה מצפה למבנה של מערכת קבצים ולא יכולה פשוט לאחסן את הנתונים שלה בזיכרון. כונני RAM לבדם לא מספקים יתירות או גמישות באחסון, ולכן מומלץ להשתמש בכונני RAM בשילוב עם אפשרויות אחסון אחרות של מכונות.

כונני RAM משתפים את זיכרון המכונה עם האפליקציות שלכם. אם למופעים שלכם אין מספיק זיכרון כדי להכיל דיסקים של RAM ואת האפליקציות שלכם, אתם יכולים ליצור מופעים עם highmem סוגי מכונות, כמו N2, או לשדרג את המופעים הקיימים כדי להוסיף עוד זיכרון.

לפני שמתחילים

יצירת דיסק RAM

אפשר ליצור דיסק RAM עם מערכת הקבצים tmpfs, שכלולה כברירת מחדל ברוב הפצות Linux.

  1. אם אין מספיק זיכרון זמין במופע, אפשר לשנות את סוג המכונה של המופע לסוג מכונה עם יותר זיכרון.

  2. מתחברים למכונה באמצעות SSH. בדוגמה הזו, עוברים אל הדף VM instances ולוחצים על הלחצן SSH לצד המכונה שרוצים להוסיף לה דיסק RAM.

  3. יוצרים נקודת טעינה לדיסק ה-RAM.

    $ sudo mkdir /mnt/ram-disk
    
  4. יוצרים ומחברים דיסק RAM חדש בנפח tmpfs. אתם צריכים לקבוע ערך למאפיין size שעומד בדרישות האחסון שלכם, בלי להתחרות באפליקציות על הזיכרון או לנצל את כל הזיכרון הזמין. בדוגמה הזו, סוג המכונה של המופע הוא n1-highmem-32 עם זיכרון של 208GB, ולכן גודל דיסק ה-RAM של 50g מתאים.

    $ sudo mount -t tmpfs -o size=50g tmpfs /mnt/ram-disk
    
  5. מוסיפים את דיסק ה-RAM לקובץ /etc/fstab כדי שהמכשיר יותקן מחדש באופן אוטומטי אם תפעילו מחדש את המכונה:

    $ echo 'tmpfs /mnt/ram-disk tmpfs nodev,nosuid,noexec,nodiratime,size=50G 0 0' | sudo tee -a /etc/fstab
    

מחיקת דיסק RAM

אפשר לבטל את הטעינה של tmpfs כונן RAM בדיוק כמו כל אמצעי אחסון אחר. הפעולה הזו תמחק את דיסק ה-RAM ואת כל הנתונים שמאוחסנים בו. בדוגמה הזו, מסירים דיסק RAM שנטען ב-/mnt/ram-disk:

$ sudo umount /mnt/ram-disk

גיבוי אוטומטי של נתונים בדיסק RAM בין הפעלות מחדש של מופעים

אתם יכולים לגבות דיסק RAM לפני שהמכונה מופעלת מחדש, כדי לשמור את הנתונים בדיסק ה-RAM עד שהמכונה תופעל שוב. מגבים את הנתונים לנפח Hyperdisk ב-Google Cloud, או לנפח Persistent Disk אם סוג המכונה של המכונה הווירטואלית לא תומך ב-Hyperdisk.

  1. יוצרים ומחברים אמצעי אחסון ב-Hyperdisk כדי להשתמש בו כדיסק גיבוי לדיסק ה-RAM. חשוב לוודא שהדיסק גדול מספיק כדי להכיל את המידע בדיסק ה-RAM.

  2. יוצרים סקריפט כיבוי למופע עם פקודה rsync שכותבת את התוכן של דיסק ה-RAM לנפח הגיבוי. בדוגמה הזו, משתמשים ב-CLI של gcloud כדי להוסיף את המטא-נתונים shutdown-script למכונה עם דיסק ה-RAM שנטען ב-/mnt/ram-disk ואת נפח ה-Hyperdisk שנטען ב-/mnt/ram-disk-backup.

    gcloud compute instances add-metadata example-instance --metadata shutdown-script="#! /bin/bash
    rsync -a --delete --recursive --force /mnt/ram-disk/ /mnt/ram-disk-backup/
    EOF"
    
  3. אפשר גם ליצור סקריפט לטעינה בזמן ההפעלה שמשחזר את הקבצים בחזרה לדיסק ה-RAM כשהמכונה מופעלת מחדש. משתמשים ב-CLI של gcloud כדי להוסיף את המטא-נתונים startup-script למופע.

    gcloud compute instances add-metadata example-instance --metadata startup-script="#! /bin/bash
    rsync -a --recursive --force /mnt/ram-disk-backup/ /mnt/ram-disk/
    EOF"