הגדרת דיסקים של אחסון מתמיד (persistent disks) עם שמירת מצב בקבוצות MIG

הגדרה של דיסקים קבועים כדינמיים מאפשרת לכם ליהנות מתיקון אוטומטי של מכונות VM ועדכונים אוטומטיים, תוך שמירה על מצב הדיסקים.

אפשר להגדיר כל דיסק שמוגדר בתבנית המופע כדי שיהיה דיסק עם שמירת מצב לכל המופעים בקבוצת מופעים מנוהלת (MIG). לשם כך, מוסיפים את שם המכשיר של הדיסק למדיניות שמירת המצב של ה-MIG.

אפשר גם להגדיר דיסקים מתמידים עם שמירת מצב בנפרד למופעים ב-MIG על ידי הגדרת תצורות לכל מופע. אין צורך להגדיר את הדיסקים האלה בתבנית של הגדרות מכונה.

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

מגבלות

קבוצת MIG עם הגדרות ששומרות את מצב המכונהקבוצת MIG עם שמירת מצב – כפופה למגבלות הבאות:

  • אי אפשר להשתמש בהתאמה אוטומטית לעומס אם ל-MIG יש הגדרה עם שמירת מצב.
  • אם רוצים להשתמש בעדכונים אוטומטיים מדורגים, צריך להגדיר את שיטת ההחלפה ל-RECREATE.
  • ב-MIG אזורי עם שמירת מצב, צריך להשבית את ההפצה מחדש הפרואקטיבית (להגדיר את סוג ההפצה מחדש ל-NONE) כדי למנוע מחיקה של מופעים עם שמירת מצב על ידי הפצה מחדש אוטומטית בין אזורים.
  • אם אתם משתמשים בהגדרה לכל המכונות כדי לשנות מאפיינים של תבנית הגדרות מכונה, אתם לא יכולים לציין את המאפיינים האלה בהגדרה של מכונה ספציפית ובאותו הזמן בהגדרה לכל המכונות של הקבוצה.

  • ב-MIG אזורי עם שמירת מצב, המעבר לגיבוי בעקבות כשל בין אזורים לא מתבצע באופן אוטומטי. כשמשתמשים ב-MIG אזורי, אפשר להפוך את האפליקציה עם שמירת מצב (stateful) לעמידה בפני כשלים אזוריים על ידי פריסת עותקים משוכפלים מיותרים במספר אזורים והסתמכות על פונקציונליות השכפול של נתוני האפליקציה.

מתי כדאי להשתמש בדיסקים של אחסון מתמיד עם שמירת מצב

כדי ליהנות מתיקון אוטומטי של מכונות וירטואליות ועדכונים אוטומטיים, תוך שמירה על הנתונים בדיסקים, כדאי להשתמש בדיסקים מתמידים עם שמירת מצב. מידע נוסף מופיע במאמר תרחישים לדוגמה של קבוצות MIG עם שמירת מצב.

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

כשיטה מומלצת, מומלץ להשאיר את דיסקי האתחול בלי שמירת מצב.

היתרונות של שמירת דיסק האתחול ללא מצב:

  • אפשר לתקן דיסק אתחול שנפגם על ידי יצירה מחדש שלו מהתמונה המקורית שלו. תיקון תוכנה אוטומטי (autohealing) מבצע תיקונים כאלה באופן אוטומטי.
  • אפשר לעדכן דיסק הפעלה לתמונה האחרונה עם גרסאות חדשות ותיקוני אבטחה.

מידע נוסף על אופן הטיפול במצב השמור זמין במאמרים בנושא תיקון אוטומטי ועדכון.

הגדרת דיסקים של אחסון מתמיד (persistent disks) עם שמירת מצב לכל מכונות ה-VM ב-MIG

כדי להגדיר דיסק שמוגדר בתבנית של מופע כבעל מצב, צריך להוסיף את שם המכשיר של הדיסק למדיניות שמירת המצב של ה-MIG. קבוצת ה-MIG מתייחסת לדיסקים עם שם המכשיר הזה כדיסקים עם שמירת מצב לכל מכונות ה-VM הקיימות והעתידיות.

הגדרת דיסקים עם שמירת מצב בזמן יצירת קבוצת MIG

המסוף

  1. נכנסים לדף Instance groups במסוף Cloud de Confiance .

    כניסה לדף Instance groups

  2. בוחרים פרויקט ולוחצים על המשך.

  3. לוחצים על יצירת קבוצת מופעים.

  4. בוחרים באפשרות New managed instance group (stateful) (קבוצת מופעי מכונה מנוהלים חדשה (עם שמירת מצב)).

  5. מציינים שם לקבוצת המכונות.

  6. בוחרים תבנית של הגדרות מכונה. אם אין תבניות של הגדרות מכונה זמינות, יוצרים תבנית של הגדרות מכונה.

  7. בשדה Number of instances (מספר המכונות), מציינים את מספר המכונות לקבוצת המכונות.

  8. בקטע Stateful configuration מוצגים הדיסקים שצוינו בתבנית של הגדרות מכונה. כדי לערוך את ההגדרות של דיסק עם שמירת נתונים, לוחצים על הדיסק.

    1. בקטע Stateful, בוחרים באפשרות Yes.
    2. בתפריט הנפתח On permanent instance deletion (במקרה של מחיקה סופית של מופע), בוחרים את הפעולה שתתבצע בדיסק עם שמירת מצב כשמוחקת מכונת ה-VM. האפשרויות הזמינות הן:

      • ניתוק הדיסק: (ברירת מחדל). לא למחוק את הדיסק, אלא לנתק אותו כשה-VM נמחק.
      • מחיקת הדיסק: מחיקת הדיסק עם שמירת הנתונים כשמכונת ה-VM שלו נמחקת לצמיתות מקבוצת המכונות, למשל כשמוחקות את המכונה המנוהלת באופן ידני או כשמקטינים את גודל הקבוצה.
    3. אחרי שמסיימים את ההגדרה של שמירת מצב, לוחצים על סיום.

  9. לוחצים על יצירה.

gcloud

כדי לציין אילו דיסקים מתבנית של הגדרות מכונה צריכים להיות עם שמירת מצב כשיוצרים MIG, משתמשים בדגל --stateful-disk עם הפקודה gcloud compute instance-groups managed create:

gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \
    --template INSTANCE_TEMPLATE \
    --size SIZE \
    --stateful-disk device-name=DEVICE_NAME[,auto-delete=DELETE_RULE]

מחליפים את מה שכתוב בשדות הבאים:

  • INSTANCE_GROUP_NAME: השם של קבוצת המופעים המנוהלת שרוצים ליצור.
  • INSTANCE_TEMPLATE: השם של תבנית המכונה שבה רוצים להשתמש כשיוצרים מכונות.
  • SIZE: המספר הראשוני של מכונות וירטואליות שאתם צריכים בקבוצה הזו.
  • DEVICE_NAME: שם המכשיר של דיסק שצוין בתבנית של הגדרות המכונה.
  • DELETE_RULE: ערך שמגדיר מה צריך לקרות לדיסק עם שמירת מצב כשמוחקים מכונה וירטואלית. האפשרויות הזמינות הן:

    • never: (ברירת מחדל). לא מוחקים את הדיסק, אלא מנתקים אותו כשהמכונה הווירטואלית שלו נמחקת.
    • on-permanent-instance-deletion: מחיקת הדיסק כשמופע מכונת ה-VM שלו נמחק לצמיתות מקבוצת המכונות, למשל כשמוחקות את המכונה המנוהלת באופן ידני או כשמקטינים את גודל הקבוצה.

    ללא קשר לערך של כלל המחיקה, דיסקים עם שמירת מצב תמיד נשמרים בפעולות של תיקון אוטומטי, עדכון ויצירה מחדש של מכונות וירטואליות.

דוגמה

אתם רוצים לפרוס מסד נתונים עם 12 מחיצות Shard, שלכל אחת מהן יש דיסק אתחול בלי שמירת מצב שמכיל את מערכת ההפעלה ואת הקבצים הבינאריים של מסד הנתונים, ודיסק נתונים עם שמירת מצב. כך עושים זאת:

  1. יוצרים תבנית של הגדרות מכונה עם דיסק אתחול בלי שמירת מצב, שמבוסס על התמונה img-example-db-v01, שכוללת מערכת הפעלה ומסד נתונים שהותקנו מראש, ועם דיסק נתונים עם שמירת מצב:

    gcloud compute instance-templates create example-database-template-v01 \
        --image img-example-db-v01 \
        --create-disk device-name=data-disk,mode=rw,image=empty10GBext4
    

    הדגל --create-disk מורה ל-MIG:

    1. יוצרים דיסק חדש בנפח 10GB לכל מכונת VM מקובץ אימג' ריק מסוג ext4, שהוכן מראש.
    2. מחברים את הדיסק למכונה הווירטואלית במצב קריאה/כתיבה באמצעות שם המכשיר data-disk.
  2. יוצרים קבוצת MIG מתבנית של הגדרות מכונה ומגדירים את דיסק הנתונים עם שמירת מצב:

    gcloud compute instance-groups managed create example-database-group \
      --template example-database-template-v01 \
      --base-instance-name shard \
      --size 12 \
      --stateful-disk device-name=data-disk,auto-delete=on-permanent-instance-deletion
    

    שם המכשיר data-disk נלקח מתבנית של הגדרות מכונה. דיסק הנתונים מוגדר למחיקה יחד עם מופע ה-VM כשמבצעים מחיקה סופית של ה-VM (בגלל מחיקה ידנית של המופע או בגלל הקטנה ידנית של גודל הקבוצה). דיסק הנתונים נשמר במהלך תיקון אוטומטי, עדכונים ויצירה מחדש של מכונה וירטואלית.

  3. מוודאים שדיסק הנתונים מוגדר במדיניות Stateful:

    gcloud compute instance-groups managed describe example-database-group
    
    
    baseInstanceName: shard
    ...
    name: example-database-group
    ...
    statefulPolicy:
      preservedState:
        disks:
          data-disk:
            autoDelete: ON_PERMANENT_INSTANCE_DELETION
    ...
    

    אפשר לראות שהמדיניות מבוססת המצב מכריזה על דיסקים עם שם המכשיר data-disk כמבוססי מצב, עם כלל למחיקת דיסקים כאלה במחיקה קבועה של מכונה וירטואלית.

Terraform

אם עדיין לא יצרתם תבנית של הגדרות מכונה שמציינת את סוג המכונה, את תמונת דיסק האתחול, את הרשת ומאפיינים אחרים של ה-VM שאתם רוצים לכל VM ב-MIG, אתם צריכים ליצור תבנית של הגדרות מכונה.

בדוגמה הבאה נוצרת קבוצת MIG אזורית עם דיסק שמירת מצב. כדי לציין איזה דיסק מתבנית של הגדרות מכונה צריך להיות דיסק עם שמירת מצב כשיוצרים קבוצת MIG, צריך לכלול את הבלוק stateful_disk. מידע נוסף על המשאב שבו נעשה שימוש בדוגמה זמין במאמר google_compute_instance_group_manager resource. כדי ליצור קבוצת MIG אזורית, משתמשים במשאב google_compute_region_instance_group_manager.

resource "google_compute_instance_group_manager" "default" {
  name               = "example-database-group"
  base_instance_name = "shard"
  target_size        = 12
  zone               = "us-central1-f"
  version {
    instance_template = google_compute_instance_template.default.id
    name              = "primary"
  }
  stateful_disk {
    device_name = "data-disk"
    delete_rule = "ON_PERMANENT_INSTANCE_DELETION"
  }
}

כדי ללמוד איך להחיל הגדרות ב-Terraform או להסיר אותן, ראו פקודות בסיסיות ב-Terraform.

REST

כדי לציין אילו דיסקים מתוך תבנית של הגדרות מכונה צריכים להיות עם שמירת מצב כשיוצרים MIG, צריך לכלול אותם בשדה statefulPolicy בגוף הבקשה של instanceGroupManagers.insert השיטה:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/instanceGroupManagers

{
  "name": "NAME",
  "versions": [
    {
      "instanceTemplate": "global/instanceTemplates/TEMPLATE"
    }
  ],
  "targetSize": SIZE,
  "statefulPolicy": {
    "preservedState": {
      "disks": {
        "DEVICE_NAME": {"autoDelete": "DELETE_RULE" },
        "DEVICE_NAME": {"autoDelete": "DELETE_RULE" }
      }
    }
  }
}

מחליפים את מה שכתוב בשדות הבאים:

  • PROJECT: מזהה הפרויקט של הבקשה.
  • ZONE: האזור שבו נמצאת קבוצת המופעים המנוהלים (MIG) (רלוונטי לקבוצת מופעים מנוהלים אזורית).
    • ל-MIG אזורי, מחליפים את zones/ZONE ב-regions/REGION ומציינים את האזור של ה-MIG.
  • NAME: השם של קבוצת ה-MIG שרוצים ליצור.
  • TEMPLATE: השם של תבנית של הגדרות מכונה שבה רוצים להשתמש כשיוצרים מכונות.
  • SIZE: המספר הראשוני של מופעים שאתם צריכים בקבוצה הזו.
  • DEVICE_NAME: שם המכשיר של דיסק שצוין בתבנית של הגדרות המכונה.
  • DELETE_RULE: ערך שמגדיר מה צריך לקרות לדיסק עם שמירת מצב כשהמופע של המכונה הווירטואלית נמחק. האפשרויות הזמינות הן:

    • never: (ברירת מחדל). הדיסק לא יימחק, אלא ינותק כשהמכונה הווירטואלית תימחק.
    • on_permanent_instance_deletion: מחיקת הדיסק עם שמירת הנתונים כשמכונת ה-VM שלו נמחקת לצמיתות מקבוצת המכונות, למשל כשמוחקות את המכונה המנוהלת באופן ידני או כשמקטינים את גודל הקבוצה.

דוגמה

אתם רוצים לפרוס מסד נתונים עם 12 מחיצות Shard, שלכל אחת מהן יש דיסק אתחול בלי שמירת מצב שמכיל את מערכת ההפעלה ואת הקבצים הבינאריים של מסד הנתונים, ודיסק נתונים עם שמירת מצב. פועלים לפי השלבים הבאים.

  1. יצירת תבנית של הגדרות מכונה עם דיסק אתחול בלי שמירת מצב על סמך התמונה img-example-db-v01, עם מערכת הפעלה ומסד נתונים שהותקנו מראש, ועם דיסק נתונים עם שמירת מצב, באמצעות השיטה instanceTemplates.insert:

    POST https://compute.googleapis.com/compute/v1/projects/example-project/global/instanceTemplates
    
    {
      "name": "example-database-template-v01",
      "properties": {
        "machineType":"e2-standard-2",
        "disks": [
          {
            "boot": true,
            "deviceName": "boot-disk",
            "initializeParams": {
              "sourceImage": "projects/example-project/global/images/mg-example-db-v01"
            }
          },
          {
            "deviceName": "data-disk",
            "mode": "READ_WRITE",
            "initializeParams": {
              "sourceImage": "projects/example-project/global/images/empty10GBext4"
            }
          }
        ],
        "networkInterfaces": [
          {
            "network": "global/networks/default"
          }
        ]
      }
    }
    

    דיסק הנתונים בתבנית המופע נקרא data-disk והוא מוגדר כך שייווצר מתמונת ext4 ריקה שהוכנה מראש, ויוצמד במצב קריאה/כתיבה.

  2. יוצרים קבוצת MIG מתבנית של הגדרות מכונה ומגדירים את דיסק הנתונים כבעל שמירת מצב באמצעות השיטה instanceGroupManagers.insert:

    POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-east1-c/instanceGroupManagers
    
    {
      "name": "example-database-group",
      "baseInstanceName": "shard",
      "versions": [
        {
          "instanceTemplate": "global/instanceTemplates/example-database-template-v01"
        }
      ],
      "targetSize": 12,
      "statefulPolicy": {
        "preservedState": {
          "disks": {
            "data-disk": {"autoDelete": "ON_PERMANENT_INSTANCE_DELETION" }
          }
        }
      }
    }
    

    קבוצת ה-MIG יוצרת 12 מכונות וירטואליות, שלכל אחת מהן יש דיסק עם המאפיינים הבאים:

    • שם המכשיר, data-disk, שנלקח מתבנית של הגדרות מכונה.
    • כלל מחיקה למחיקת דיסק הנתונים כשמוחקים את המכונה הווירטואלית (בגלל מחיקה ידנית של המופע או בגלל הקטנה ידנית של גודל הקבוצה).
    • רשומה במצב השמור ממדיניות (preservedStateFromPolicy) של כל מופע מנוהל, כדי שדיסק הנתונים יישמר בתיקון אוטומטי, בעדכונים וביצירה מחדש של מופע.
  3. כדי לוודא שדיסק הנתונים מוגדר במדיניות עם שמירת מצב של משאב instanceGroupManagers החדש, משתמשים ב-method ‏instanceGroupManagers.get:

    GET https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-east1-c/instanceGroupManagers/example-database-group
    
    
    {
      "name": "example-database-group",
      "baseInstanceName": "shard",
      ...
      "statefulPolicy": {
        "preservedState": {
          "disks": {
            "data-disk": {"autoDelete": "ON_PERMANENT_INSTANCE_DELETION" }
          }
        }
      }
      ...
    }
    

    אפשר לראות שהמדיניות עם שמירת מצב מכריזה על דיסקים עם שם המכשיר data-disk כדיסקים עם שמירת מצב, עם הכלל למחיקת דיסקים כאלה במחיקה קבועה של מופע.

הגדרה ועדכון של הגדרות אישיות לדיסקים בקבוצת MIG קיימת

אם מריצים אפליקציה עם שמירת מצב ב-MIG בלי שמירת מצב (MIG ללא הגדרות של שמירת מצב), אפשר להגדיר דיסקים קיימים שמוגדרים בתבנית של הגדרות מכונה כך שישמרו את המצב של כל מכונות ה-VM ב-MIG הזה. כך תוכלו לשמור את הדיסקים כשיוצרים מחדש את המכונה, כשמבצעים תיקון תוכנה אוטומטי (autohealing) ועדכונים, ואם תרצו גם כשמבצעים פעולות מחיקה.

אפשר לבצע את הפעולות הבאות:

  • כדי להצהיר על דיסקים שמוגדרים בתבנית של הגדרות מכונה כעל דיסקים עם שמירת נתונים, מוסיפים אותם למדיניות שמירת הנתונים של MIG קיים. הפעולה הזו מסמנת דיסקים עם שם המכשיר שצוין כבעלי מצב (stateful) לכל המכונות הקיימות והעתידיות ב-MIG.
  • מעדכנים את המדיניות עם שמירת מצב כדי לשנות את ההגדרה עם שמירת מצב של הדיסקים.

ה-MIG מחיל את ההגדרה המעודכנת במדיניות עם שמירת מצב באופן אוטומטי ואסינכרוני על כל המופעים. עדכונים בהגדרות הדיסק במדיניות עם שמירת מצב לא משבשים את הפעולה של מכונות VM שפועלות. מידע נוסף זמין במאמר בנושא החלת עדכוני מדיניות עם שמירת מצב.

כדי להגדיר דיסקים עם שמירת מצב ב-MIG אזורי, צריך להשבית את ההפצה הפרואקטיבית של מופעים בין אזורים. מידע נוסף זמין במאמר בנושא איך קבוצות אזוריות מטפלות במצב שנשמר.

המסוף

  1. נכנסים לדף Instance groups במסוף Cloud de Confiance .

    כניסה לדף Instance groups

  2. לוחצים על השם של קבוצת המופעים שבה רוצים לציין הגדרה עם שמירת מצב לדיסק.

  3. לוחצים על עריכה כדי לשנות את קבוצת מופעי המכונה המנוהלים.

  4. לוחצים על Stateful & per-instance configuration (הגדרות Stateful ו-per-instance) כדי להרחיב את הקטע.

  5. בקטע Group config, לוחצים על הדיסק שרוצים להפוך לדיסק עם שמירת מצב. בקטע המורחב, מבצעים את הפעולות הבאות:

    1. בקטע Stateful (עם שמירת מצב), בוחרים באפשרות Yes (כן).
    2. ברשימה On permanent instance deletion בוחרים את הפעולה שתתבצע בדיסק עם שמירת מצב כשהמכונה הווירטואלית תימחק.

      • ניתוק הדיסק: (ברירת מחדל). לא למחוק את הדיסק, אלא לנתק אותו כשה-VM נמחק.
      • מחיקת דיסק: מחיקת הדיסק עם שמירת הנתונים כשמכונת ה-VM שלו נמחקת לצמיתות מקבוצת המכונות, למשל כשמוחקות את המכונה המנוהלת באופן ידני או כשמקטינים את גודל הקבוצה.

    3. אחרי שמעדכנים את ההגדרה עם שמירת מצב, לוחצים על סיום.

  6. לוחצים על שמירה כדי להשלים את העדכון.

gcloud

כדי לציין אילו דיסקים מתבנית של הגדרות מכונה צריכים להיות עם שמירת מצב, או כדי לעדכן את ההגדרה של דיסקים עם שמירת מצב בקבוצת MIG קיימת, משתמשים בדגל --stateful-disk אחד או יותר עם הפקודה gcloud compute instance-groups managed update:

gcloud compute instance-groups managed update NAME \
  --stateful-disk device-name=DEVICE_NAME[,auto-delete=DELETE_RULE]

מחליפים את מה שכתוב בשדות הבאים:

  • NAME: השם של קבוצת המופעים המנוהלת שרוצים לעדכן.
  • DEVICE_NAME: שם המכשיר של דיסק שצוין בתבנית של הגדרות המכונה.
  • DELETE_RULE: ערך שמגדיר מה צריך לקרות לדיסק עם שמירת מצב כשמוחקם מופע של מכונה וירטואלית. האפשרויות הזמינות הן:

    • never: (ברירת מחדל). אף פעם לא למחוק את הדיסק, לנתק את הדיסק כשמוחקים את המכונה שלו.
    • on-permanent-instance-deletion: מחיקת הדיסק עם שמירת הנתונים כשמוחקים את המכונה שלו לתמיד מקבוצת המכונות. למשל, כשמוחקים את המכונה המנוהלת באופן ידני או כשמקטינים את גודל הקבוצה.

אם שם המכשיר שצוין כבר מוגדר במדיניות עם שמירת מצב, הפקודה מעדכנת את ההגדרה.

דוגמה

מריצים מסד נתונים עם כמה שרדים ב-MIG בשם example-database- group. כל מכונה וירטואלית ב-MIG מאחסנת מחיצת Shard בדיסק נוסף עם שם המכשיר data-disk, שמוגדר בתבנית של הגדרות מכונה. ל-MIG אין הגדרה עם שמירת מצב, ואתם רוצים לשמור את דיסקי הנתונים כשיוצרים מחדש את המכונה, כשמבצעים תיקון תוכנה אוטומטי וכשמבצעים עדכונים. אתם רוצים גם להגן על דיסקים של נתונים מפני מחיקה כשמחקתם מכונה וירטואלית.

  1. כדי לעדכן את ה-MIG ולהגדיר את דיסק הנתונים כ-stateful, מריצים את הפקודה הבאה:

    gcloud compute instance-groups managed update example-database-group \
      --stateful-disk device-name=data-disk,auto-delete=never
    

    כתוצאה מכך, ה-MIG מחיל את העדכונים של הגדרות המדיניות עם שמירת מצב באופן אוטומטי ואסינכרוני על דיסקי הנתונים של כל המופעים. דיסקי הנתונים נשמרים עכשיו בתיקון אוטומטי, בעדכונים וביצירה מחדש של מכונות, ודיסקי הנתונים מנותקים במחיקה של מכונות כי הכלל auto-delete מוגדר לערך never.

  2. כדי לוודא שדיסק הנתונים מוגדר במדיניות Stateful, מריצים את הפקודה gcloud compute instance-groups managed describe example-database-group.

REST

כדי לציין אילו דיסקים מתוך תבנית של הגדרות מכונה צריכים להיות עם שמירת מצב, או כדי לעדכן את ההגדרה של דיסקים עם שמירת מצב ב-MIG קיים, צריך להגדיר את הדיסקים במדיניות שמירת המצב של ה-MIG באמצעות השיטה instanceGroupManagers.patch:

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/instanceGroupManagers/NAME

{
  "statefulPolicy": {
    "preservedState": {
      "disks": {
        "DEVICE_NAME": {"autoDelete": "DELETE_RULE" },
        "DEVICE_NAME": {"autoDelete": "DELETE_RULE" }
      }
    }
  }
}

מחליפים את מה שכתוב בשדות הבאים:

  • PROJECT: מזהה הפרויקט של הבקשה.
  • ZONE: האזור שבו נמצאת קבוצת המופעים המנוהלים (MIG) (רלוונטי לקבוצת מופעים מנוהלים אזורית).
    • ל-MIG אזורי, מחליפים את zones/ZONE ב-regions/REGION ומציינים את האזור של ה-MIG.
  • NAME: השם של קבוצת ה-MIG שרוצים לעדכן.
  • DEVICE_NAME: שם המכשיר של דיסק שצוין בתבנית של הגדרות מכונה, שרוצים לעדכן את התצורה שלו עם שמירת מצב.
  • DELETE_RULE: ערך שמגדיר מה צריך לקרות לדיסק עם שמירת מצב כשמוחקם מופע של מכונה וירטואלית. האפשרויות הזמינות הן:

    • never: (ברירת מחדל). אף פעם לא למחוק את הדיסק, לנתק את הדיסק כשמוחקים את המכונה שלו.
    • on-permanent-instance-deletion: מחיקת הדיסק עם שמירת הנתונים כשמוחקים את המכונה שלו לצמיתות מקבוצת המכונות, למשל כשמוחקים את המכונה באופן ידני או כשמקטינים את גודל הקבוצה.

אם שם המכשיר שצוין כבר מוגדר במדיניות עם שמירת מצב, שיטת patch מעדכנת את ההגדרה שלו.

דוגמה

מריצים מסד נתונים עם כמה שרדים ב-MIG בשם example-database- group. כל מכונה וירטואלית ב-MIG מאחסנת מחיצת Shard בדיסק נוסף עם שם המכשיר data-disk, שמוגדר בתבנית של הגדרות מכונה. ל-MIG אין הגדרה עם שמירת מצב, ואתם רוצים לשמור את דיסקי הנתונים כשיוצרים מחדש את המכונה, כשמבצעים תיקון תוכנה אוטומטי וכשמבצעים עדכונים. אתם רוצים גם להגן על דיסקים של נתונים מפני מחיקה כשמחקתם מכונה וירטואלית.

  1. מבצעים תיקון של ה-MIG כדי להגדיר את דיסק הנתונים כ-stateful:

    PATCH https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-east1-c/instanceGroupManagers/example-database-group
    
    {
      "statefulPolicy": {
        "preservedState": {
          "disks": {
            "data-disk": {"autoDelete": "NEVER" }
          }
        }
      }
    }
    

    ה-MIG מחיל את ההגדרה הזו עם שמירת מצב באופן אוטומטי ואסינכרוני על דיסקי הנתונים של כל המופעים. דיסקי הנתונים יישמרו במהלך תיקון אוטומטי, עדכונים ויצירה מחדש של מופעים. דיסקי הנתונים ינותקו כשמוחקים את המופע, כי הכלל autoDelete מוגדר לערך NEVER.

  2. כדי לוודא שדיסק הנתונים מוגדר במדיניות עם שמירת מצב, צריך להציג את instanceGroupManagers המשאב שמוחזר על ידי השיטה instanceGroupManagers.get.

הצהרה על דיסקים לאחסון מתמיד שהיו בעלי מצב (stateful) כחסרי מצב (stateless)

יכול להיות שתצטרכו להגדיר דיסק עם שמירת מצב כך שיתייחסו אליו כאילו הוא בלי שמירת מצב. לדוגמה:

  • אם משנים את הארכיטקטורה של האפליקציה כדי להעביר את המצב מהדיסק.
  • אם הגדרתם בטעות את הדיסק כבעל מצב ורוצים לבטל את ההגדרה.

כדי להגדיר את כל הדיסקים עם שם מכשיר מסוים כחסרי מצב, צריך להסיר את ההגדרה של הדיסק ממדיניות שמירת המצב.

ה-MIG מחיל את השינוי על המדיניות עם שמירת המצב באופן אוטומטי ואסינכרוני על כל המופעים. עדכונים בהגדרת הדיסק במדיניות עם שמירת מצב לא משבשים את הפעולה של מכונות וירטואליות שפועלות.

מידע נוסף זמין במאמר בנושא החלת עדכוני מדיניות עם שמירת מצב.

המסוף

  1. נכנסים לדף Instance groups במסוף Cloud de Confiance .

    כניסה לדף Instance groups

  2. לוחצים על השם של קבוצת המכונות שרוצים להסיר ממנה את ההגדרה של דיסקים עם שמירת מצב.

  3. לוחצים על עריכה כדי לשנות את קבוצת מופעי המכונה המנוהלים.

  4. לוחצים על Stateful & per-instance configuration (הגדרות Stateful ו-per-instance) כדי להרחיב את הקטע.

  5. בקטע Group config (הגדרת קבוצה), לוחצים על הדיסקים עם שמירת מצב שרוצים להפוך לדיסקים בלי שמירת מצב. בקטע המורחב, מבצעים את הפעולות הבאות:

    1. משנים את האפשרות Stateful לNo.
    2. לוחצים על סיום.
  6. אחרי שמבצעים את השינויים, לוחצים על שמירה.

gcloud

כדי לציין אילו דיסקים ממדיניות שמירת המצב של קבוצת ה-MIG יהיו בלי שמירת מצב, משתמשים בדגל --remove-stateful-disks עם הפקודה gcloud compute instance-groups managed update:

gcloud compute instance-groups managed update NAME \
  --remove-stateful-disks DEVICE_NAME[,DEVICE_NAME,...]

מחליפים את מה שכתוב בשדות הבאים:

  • NAME: השם של קבוצת ה-MIG שרוצים לעדכן.
  • DEVICE_NAME: שם המכשיר של דיסק שרוצים להסיר ממדיניות Stateful ולטפל בו כמדיניות Stateless. אפשר לציין ברשימה שם אחד או כמה שמות של מכשירים.

דוגמה

אתם מפעילים אפליקציה מדור קודם עם כמה צמתים ב-MIG בשם example-legacy-group. כל מכונה וירטואלית ב-MIG מאחסנת נתוני אפליקציה בדיסק אתחול עם שם המכשיר boot-disk, שהגדרתם כמצב שמור במדיניות שמירת המצב של ה-MIG. העברתם נתוני אפליקציה לדיסק נוסף ועכשיו אתם רוצים להפוך את דיסק האתחול לדיסק בלי שמירת מצב כדי שיהיה קל לעדכן לתמונות חדשות.

כדי להסיר את ההגדרה עם שמירת מצב של דיסק האתחול, מעדכנים את קבוצת המופעים המנוהלת:

gcloud compute instance-groups managed update example-legacy-group \
  --remove-stateful-disks boot-disk

ה-MIG מסיר את ההגדרה עם שמירת המצב של שם המכשיר boot-disk באופן אוטומטי ואסינכרוני לדיסקים של האתחול של כל המופעים בקבוצה. דיסקי האתחול נשארים מצורפים למופעים, אבל הם כבר לא שומרים את המצב. כשיוצרים מחדש או מעדכנים את המכונות, או כשמכונות מתוקנות באופן אוטומטי, ה-MIG יוצר מחדש את דיסקי האתחול מהתמונה שצוינה בתבנית של הגדרות מכונה.

REST

כדי לציין אילו דיסקים ממדיניות שמירת המצב של קבוצת ה-MIG יהיו בלי שמירת מצב, צריך להסיר את ההגדרה של כל דיסק ממדיניות שמירת המצב של קבוצת ה-MIG באמצעות השיטה instanceGroupManagers.patch:

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/instanceGroupManagers/NAME

{
  "statefulPolicy": {
    "preservedState": {
      "disks": {
        "DEVICE_NAME": null,
        ...
      }
    }
  }
}

מחליפים את מה שכתוב בשדות הבאים:

  • PROJECT: מזהה הפרויקט של הבקשה.
  • ZONE: האזור שבו נמצאת קבוצת המופעים המנוהלים (MIG) (רלוונטי לקבוצת מופעים מנוהלים אזורית).
    • ל-MIG אזורי, מחליפים את zones/ZONE ב-regions/REGION ומציינים את האזור של ה-MIG.
  • NAME: השם של קבוצת ה-MIG שרוצים לעדכן.
  • DEVICE_NAME: שם המכשיר של הדיסק שרוצים להסיר ממדיניות שמירת הנתונים. אם מספקים ערך null, ההגדרה עם שמירת המצב של הדיסק הזה מוסרת. אפשר לציין שם אחד או יותר של מכשירים להסרה.

דוגמה

אתם מפעילים אפליקציה מדור קודם עם כמה צמתים ב-MIG בשם example-legacy-group. כל מכונה וירטואלית ב-MIG מאחסנת נתוני אפליקציה בדיסק אתחול עם שם המכשיר boot-disk, שהגדרתם כבעל שמירת מצב במדיניות שמירת המצב של ה-MIG. העברתם נתוני אפליקציה לדיסק נוסף ועכשיו אתם רוצים להפוך את דיסק האתחול לדיסק בלי שמירת מצב כדי שיהיה קל לעדכן לתמונות חדשות.

כדי להסיר את ההגדרה עם שמירת מצב של דיסק האתחול, צריך להחיל תיקון על קבוצת המופעים המנוהלת:

PATCH https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-east1-c/instanceGroupManagers/example-legacy-group

{
  "statefulPolicy": {
    "preservedState": {
      "disks": {
        "boot-disk": null
      }
    }
  }
}

ה-MIG מסיר את ההגדרה עם שמירת המצב של שם המכשיר boot-disk באופן אוטומטי ואסינכרוני לדיסקים של האתחול של כל המופעים בקבוצה. דיסקי האתחול נשארים מצורפים למופעים, אבל הם כבר לא שומרים את המצב. כשיוצרים מחדש או מעדכנים את המכונות, או כשמכונות מתוקנות באופן אוטומטי, ה-MIG יוצר מחדש את דיסקי האתחול מהתמונה שצוינה בתבנית של הגדרות מכונה.

הסרת דיסקים לאחסון מתמיד עם שמירת מצב מ-MIG

יכול להיות שתצטרכו להסיר לגמרי דיסק עם שמירת מצב ממכונות בקבוצת MIG, למשל אם שיניתם את הארכיטקטורה של האפליקציה והעברתם את המצב מהדיסק הזה.

אי אפשר להסיר דיסקים עם שמירת מצב מקבוצות MIG, ולכן צריך לבצע את השלבים הבאים:

  1. מסירים את ההגדרה עם שמירת המצב של הדיסק ממדיניות שמירת המצב. הפעולה הזו הופכת את הדיסקים עם שם המכשיר שצוין לדיסקים בלי שמירת מצב.
  2. אם עדיין רוצים לשמור את הדיסקים, מנתקים אותם מהמכונות הווירטואליות.
  3. משיקים תבנית של הגדרות מכונה חדשה שלא מגדירה יותר את הדיסק עם שם המכשיר שצוין.

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

כדי להגדיר דיסקים קבועים עם שמירת מצב למכונה וירטואלית ספציפית ב-MIG, מוסיפים את שם המכשיר של הדיסק להגדרות לכל מופע של המכונה הווירטואלית. כדי להחיל את ההגדרה לכל מכונה ולגרום לה לפעול, צריך לעדכן את המכונה הווירטואלית.

הגדרת דיסקים קבועים עם שמירת מצב בנפרד למכונות וירטואליות ספציפיות ב-MIG שימושית אם אתם צריכים:

  • העברת עומסי עבודה קיימים (הבאת דיסקים קיימים) ממכונות וירטואליות עצמאיות לקבוצות מנוהלות של מופעים עם שמירת מצב, כדי ליהנות מתיקון אוטומטי ומעדכונים קלים.
  • שחזור גיבויים של דיסקים שהוגדרו בנפרד למכונות וירטואליות.
  • אפשר לצרף באופן זמני דיסקים נוספים עם שמירת מצב למכונה וירטואלית ספציפית לצורך בדיקה, ניפוי באגים או העתקת נתונים.

הוספת דיסקים קיימים עם שמירת מצב למכונות וירטואליות חדשות ב-MIG

אפשר להוסיף דיסקים עם שמירת מצב למופעים חדשים שיוצרים באופן ידני בקבוצת מופעים מנוהלת (MIG). האפשרות הזו שימושית להעברת אפליקציה עם שמירת מצב ממכונות VM עצמאיות קיימות לקבוצת MIG עם שמירת מצב, למשל:

  1. יוצרים תבנית של הגדרות מכונה עם הגדרה משותפת לכל המכונות הווירטואליות.
  2. Detach the data disks from the standalone instances and delete these instances. אפשר גם לנתק דיסקים של אתחול אם הם מכילים מצב שצריך לשמור.
  3. יוצרים קבוצת מופעי מכונה מנוהלים (MIG) ריקה באמצעות תבנית של הגדרות מכונה שנוצרה קודם.
  4. יוצרים מופעים בקבוצת המופעים המנוהלים עם השמות המתאימים והדיסקים המשויכים מהשלב הקודם. ה-MIG מגיב לבקשה שלכם בפעולות הבאות:

    1. יוצר מכונה וירטואלית מתבנית של הגדרות מכונה באמצעות שם המכונה שצוין.
      • קבוצת MIG אזורית יוצרת את המכונה הווירטואלית באותו אזור שבו נמצא הדיסק. אם הדיסק הוא אזורי, קבוצת ה-MIG האזורית יוצרת את המכונה הווירטואלית בכל אחד מאזורי העותקים של הדיסק.
    2. יוצרת הגדרה לכל מופע עם ההגדרה של הדיסקים לשימור נתונים.
    3. מצרף את הדיסקים למכונה החדשה.

כשיוצרים באופן ידני מכונות ספציפיות ב-MIG באמצעות ה-CLI של gcloud או REST, אפשר להוסיף דיסקים קיימים עם שמירת מצב. ה-MIG מחיל את ההגדרה באופן מיידי על ה-VM שנוצר.

gcloud

כדי ליצור מכונה וירטואלית עם שם בהתאמה אישית ולצרף אליה דיסקים קיימים עם שמירת מצב, משתמשים בפקודה gcloud compute instance-groups managed create-instance עם דגל --stateful-disk אחד או יותר.

gcloud compute instance-groups managed create-instance NAME \
  --instance VM_NAME \
  [--zone ZONE | --region REGION] \
  --stateful-disk device-name=DEVICE_NAME,source=DISK[,mode=MODE][,auto-delete=DELETE_RULE]

מחליפים את מה שכתוב בשדות הבאים:

  • NAME: השם של קבוצת המופעים המנוהלת שבה צריך ליצור מופע.
  • VM_NAME: השם של המופע החדש שרוצים ליצור.
  • ZONE: האזור שבו נמצאת קבוצת המופעים המנוהלים (MIG) (רלוונטי לקבוצת מופעים מנוהלים אזורית).
  • REGION: האזור שבו נמצאת קבוצת ה-MIG (רלוונטי לקבוצת MIG אזורית).
  • DEVICE_NAME: שם המכשיר שבו רוצים להשתמש כשמצרפים את הדיסק.
  • DISK: ה-URI של דיסק קיים לאחסון מתמיד לצירוף תחת DEVICE_NAME שצוין, בפורמט projects/project-id/zones/zone/disks/disk-name לדיסק אזורי ו-projects/project-id/regions/region/disks/disk-name לדיסק אזורי.
  • MODE: מציין את מצב הדיסק. האפשרויות הנתמכות הן:
    • ro: קריאה בלבד.
    • rw: (ברירת מחדל). קריאה/כתיבה.
  • DELETE_RULE: ערך שמגדיר מה צריך לקרות לדיסק עם שמירת מצב כשמוחקם מופע של מכונה וירטואלית. האפשרויות הזמינות הן:

    • never: (ברירת מחדל). לא למחוק את הדיסק, אלא לנתק אותו כשמוחקים את המכונה שלו.
    • on-permanent-instance-deletion: מחיקת הדיסק עם שמירת הנתונים כשמוחקים את המכונה שלו לצמיתות מקבוצת המכונות, למשל כשמוחקים את המכונה באופן ידני או כשמקטינים את גודל הקבוצה.

    ללא קשר לערך של כלל המחיקה, דיסקים עם שמירת מצב נשמרים תמיד בפעולות של תיקון אוטומטי, עדכון ויצירה מחדש של מופעים.

דוגמה

רוצים להגדיר תיקון אוטומטי לשרת מסד נתונים שפועל כרגע במכונה וירטואלית עצמאית בשם db-instance, ושמאחסן כרגע נתונים בדיסק בשם db-data-disk-1.

יוצרים קבוצת MIG עם שמירת מצב עם תיקון אוטומטי, יוצרים מכונת VM דומה בתוך קבוצת ה-MIG ומצרפים את דיסק הנתונים הקיים db-data-disk-1 למופע החדש כדיסק עם שמירת מצב:

  1. עוצרים את המכונה הווירטואלית (VM),‏ db-instance, במהלך חלון זמן לתחזוקה.
  2. יצירת תבנית של הגדרות מכונה בשם db-template באמצעות ההגדרה db-instance.
  3. מנתקים את db-data-disk-1 מ-db-instance ומוחקים את db-instance.
  4. יוצרים קבוצת מופעי מכונה מנוהלים (MIG) ריקה, example-database-mig, מתוך db-template, ומגדירים תיקון אוטומטי.
  5. יוצרים קבוצת מופעי מכונה מנוהלים עם השם המקורי db-instance ומצרפים את db-data-disk-1 כדיסק עם שמירת מצב:

    gcloud compute instance-groups managed create-instance example-database-mig \
      --instance db-instance \
      --zone us-east1-c \
      --stateful-disk device-name=data-disk,source=projects/example-project/zones/us-east1-c/disks/db-data-disk-1,auto-delete=never
    

    הפקודה יוצרת מכונה, db-instance, ב-MIG, יוצרת הגדרה תואמת לכל מכונה עם דיסק stateful‏ db-data-disk-1 ומצרפת את הדיסק למכונה הווירטואלית החדשה, באמצעות data-disk כשם המכשיר.

REST

כדי ליצור מכונה וירטואלית אחת או יותר ב-MIG, להגדיר שמות מותאמים אישית למכונות הווירטואליות ולצרף למכונות האלה דיסק אחד או יותר עם שמירת מצב קיים, משתמשים בשיטה instanceGroupManagers.createInstances.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/NAME/createInstances

{
  "instances": [
    {
      "name": "VM_NAME",
      "preservedState" : {
        "disks": {
          "DEVICE_NAME" : {
            "source": "DISK",
            "mode": "MODE",
            "autoDelete": "DELETE_RULE"
          },
          ...
        }
      }
    },
    ...
  ]
}

מחליפים את מה שכתוב בשדות הבאים:

  • PROJECT_ID: מזהה הפרויקט של הבקשה.
  • ZONE: האזור שבו נמצאת קבוצת המופעים המנוהלים (MIG) (רלוונטי לקבוצת מופעים מנוהלים אזורית).
    • ל-MIG אזורי, מחליפים את zones/ZONE ב-regions/REGION ומציינים את האזור של ה-MIG.
  • NAME: השם של קבוצת המופעים המנוהלת (MIG) שבה רוצים ליצור מופע.
  • VM_NAME: השם של המכונה שרוצים ליצור.
  • DEVICE_NAME: שם המכשיר שבו רוצים להשתמש כשמצרפים את הדיסק.
  • DISK: ה-URI של דיסק קיים לאחסון מתמיד לצירוף תחת DEVICE_NAME שצוין, בפורמט projects/project-id/zones/zone/disks/disk-name לדיסק אזורי או projects/project-id/regions/region/disks/disk-name לדיסק אזורי.
  • MODE: מציין את מצב הדיסק. האפשרויות הנתמכות הן:
    • READ_ONLY: קריאה בלבד.
    • READ_WRITE: (ברירת מחדל). קריאה/כתיבה.
  • DELETE_RULE: ערך שמגדיר מה צריך לקרות לדיסק עם שמירת מצב כשמוחקים מכונה וירטואלית. האפשרויות הזמינות הן:

    • never: (ברירת מחדל). לא מוחקים את הדיסק, אלא מנתקים אותו כשהמכונה הווירטואלית שלו נמחקת.
    • on-permanent-instance-deletion: מחיקת הדיסק עם שמירת הנתונים כשמוחקים את המכונה שלו לצמיתות מקבוצת המכונות, למשל כשמוחקים את המכונה באופן ידני או כשמקטינים את גודל הקבוצה.

    ללא קשר לערך של כלל המחיקה, דיסקים עם שמירת מצב נשמרים תמיד בפעולות של תיקון אוטומטי, עדכון ויצירה מחדש של מופעים.

דוגמה

רוצים להגדיר תיקון אוטומטי לשרת מסד נתונים שפועל כרגע במכונה וירטואלית עצמאית בשם db-instance, ושמאחסן כרגע נתונים בדיסק בשם db-data-disk-1.

יוצרים קבוצת MIG עם שמירת מצב (stateful) עם תיקון אוטומטי, יוצרים מכונה דומה בתוך קבוצת ה-MIG ומצרפים את דיסק הנתונים הקיים db-data-disk-1 למכונת ה-VM החדשה כדיסק עם שמירת מצב:

  1. עוצרים את המכונה הווירטואלית (VM),‏ db-instance, במהלך חלון זמן לתחזוקה.
  2. יצירת תבנית של הגדרות מכונה בשם db-template באמצעות ההגדרה db-instance.
  3. מנתקים את db-data-disk-1 מ-db-instance ומוחקים את db-instance.
  4. יוצרים קבוצת מופעי מכונה מנוהלים (MIG) ריקה, example-database-mig, מתוך db-template, ומגדירים תיקון אוטומטי.
  5. יוצרים מכונה עם השם המקורי db-instance ומצרפים את db-data-disk-1 כדיסק עם שמירת מצב:

    POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-east1-c/instanceGroupManagers/example-database-mig/createInstances
    
    {
      "instances": [
        {
          "name": "db-instance",
          "preservedState" : {
            "disks": {
              "data-disk" : {
                "source": "projects/example-project/zones/us-east1-c/disks/db-data-disk-1",
                "mode": "READ_WRITE",
                "autoDelete": "never"
              }
            }
          }
        }
      ]
    }
    

    השיטה יוצרת מופע, db-instance, ב-MIG, יוצרת הגדרה תואמת לכל מופע עם הדיסק db-data-disk-1 stateful ומצרפת את הדיסק למופע החדש, באמצעות data-disk כשם המכשיר.

הוספה, הצהרה והחלפה של דיסקים עם שמירת נתונים בנפרד למכונות וירטואליות ב-MIG

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

הגדרת דיסקים עם שמירת מצב בנפרד שימושית למשימות הבאות:

  • הוספה של דיסק עם שמירת מצב מחוץ לקבוצת MIG למכונה וירטואלית בקבוצת ה-MIG הזו.
  • הצהרה על דיסק חסר מצב (stateless) כמכיל מצב (stateful) עבור מכונה וירטואלית ב-MIG.
  • החלפת דיסק עם שמירת מצב בדיסק אחר במכונה וירטואלית ב-MIG.

הוספת דיסק עם שמירת מצב מחוץ ל-MIG למכונה וירטואלית ב-MIG הזה. אפשר לצרף כל דיסק מחוץ ל-MIG למופע מנוהל על ידי הוספת הגדרה עם שמירת מצב לדיסק להגדרה המשויכת לכל מופע. אחרי שמחילים את ההגדרה, ה-MIG מצרף אוטומטית את הדיסק למופע ומתייחס אליו כאל דיסק עם נתונים.

הצהרה על דיסק של אחסון מתמיד (persistent disk) שהיה חסר מצב (stateless) כעל דיסק עם מצב (stateful). אפשר להגדיר דיסק בלי שמירת מצב שצורף בעבר למכונה וירטואלית כדיסק עם שמירת מצב. לשם כך, מוסיפים את ההגדרה של הדיסק עם שמירת המצב, כולל שם המכשיר וה-URI שלו, להגדרה המשויכת לכל מכונה. אחרי שמחילים את ההגדרה, ה-MIG מתחיל לשמור את הדיסק כ-stateful.

החלפת דיסק עם שמירת מצב בדיסק אחר. החלפת דיסק עם שמירת מצב בדיסק אחר עם שמירת מצב יכולה להיות שימושית, למשל, אם אתם צריכים גישה לגיבוי משוחזר. אפשר להחליף דיסק עם שמירת מצב בדיסק אחר על ידי עדכון ה-URI של הדיסק, תוך שמירה על אותו שם מכשיר בהגדרות לכל מופע. אחרי שמחילים את ההגדרה המעודכנת לכל מופע, ה-MIG מנתק את הדיסק הישן ומצרף את הדיסק החדש באמצעות אותו שם מכשיר. כשמחילים את העדכון, בוחרים אם להשאיר את המופע פועל, להפעיל אותו מחדש או ליצור אותו מחדש. כדי להחליף דיסק הפעלה, צריך להפעיל מחדש את המכונה הווירטואלית לפחות פעם אחת.

gcloud

כדי להגדיר דיסקים עם שמירת מצב בנפרד למכונה וירטואלית ב-MIG, מוסיפים או מעדכנים את ההגדרה של דיסקים עם שמירת מצב בהגדרה המשויכת לכל מכונה. לאחר מכן, מעדכנים את המופע כדי להחיל את ההגדרה.

אם לא קיים מערך של הגדרות אישיות למכונה, משתמשים בפקודה gcloud compute instance-groups managed instance-configs create עם דגל --stateful-disk אחד או יותר:

gcloud compute instance-groups managed instance-configs create NAME \
--instance VM_NAME \
--stateful-disk device-name=DEVICE_NAME[,source=DISK][,mode=MODE][,auto-delete=DELETE_RULE] \
[--no-update-instance | --update-instance] \
[--instance-update-minimal-action MINIMAL_ACTION]

אם כבר קיים מערך של הגדרות אישיות לכל מכונה, משתמשים בפקודה gcloud compute instance-groups managed instance-configs update עם דגל אחד או יותר של --stateful-disk.

הדגל --update-instance (ברירת מחדל) מחיל את השינויים באופן מיידי על המופע. אם משתמשים ב---no-update-instance, השינויים לא יחולו ויחולו בפעם הבאה שיוצרים מחדש את המופע או מעדכנים אותו.

gcloud compute instance-groups managed instance-configs update NAME \
--instance VM_NAME \
--stateful-disk device-name=DEVICE_NAME[,source=DISK][,mode=MODE][,auto-delete=DELETE_RULE] \
[--no-update-instance | --update-instance] \
[--instance-update-minimal-action MINIMAL_ACTION]

מחליפים את מה שכתוב בשדות הבאים:

  • NAME: השם של קבוצת המופעים המנוהלת.
  • VM_NAME: השם של מופע המכונה הווירטואלית שרוצים להגדיר עבורו דיסקים עם שמירת מצב.
  • DEVICE_NAME: שם המכשיר שמשמש לצירוף הדיסק.
  • DISK: ה-URI של דיסק קיים לאחסון מתמיד (persistent disk) לצירוף תחת DEVICE_NAME שצוין, בפורמט projects/project-id/zones/zone/disks/disk-name לדיסק אזורי ו-projects/project-id/regions/region/disks/disk-name לדיסק אזורי.

    הדגל המשני source=DISK הוא אופציונלי אם המכשיר כבר מוגדר בתצורה של המכונה. אחרת, חובה להזין ערך.

    אם לא מציינים URI, ה-URI של הדיסק שמוגדר כרגע לא משתנה.

  • MODE: מציין את מצב הדיסק. אפשר לציין את mode רק אם מציינים גם את source. האפשרויות הנתמכות הן:

    • ro: קריאה בלבד.
    • rw: (ברירת מחדל). קריאה/כתיבה.

    אם לא מציינים ערך, ערך ברירת המחדל מוגדר עבור הגדרה חדשה של דיסק עם שמירת מצב. הערך לא משתנה בהגדרה קיימת.

  • DELETE_RULE: ערך שמגדיר מה צריך לקרות לדיסק עם שמירת מצב כשמוחקים מכונה וירטואלית. האפשרויות הזמינות הן:

    • never: (ברירת מחדל). לא למחוק את הדיסק, אלא לנתק אותו כשמוחקים את המכונה שלו.
    • on-permanent-instance-deletion: מחיקת הדיסק עם שמירת הנתונים כשמוחקים את המכונה שלו באופן סופי מקבוצת המכונות. למשל, כשמוחקים את המכונה באופן ידני או כשמקטינים את גודל הקבוצה.

    אם לא מציינים ערך, ערך ברירת המחדל מוגדר עבור הגדרה חדשה של דיסק עם שמירת מצב. הערך לא משתנה בהגדרה קיימת.

    ללא קשר לערך של כלל המחיקה, דיסקים עם שמירת מצב נשמרים תמיד בפעולות של תיקון אוטומטי, עדכון ויצירה מחדש של מופעים.

  • MINIMAL_ACTION: ביצוע לפחות הפעולה שצוינה כשמחילים על המכונה את עדכון ההגדרות האישיות לכל מכונה. חובה להשתמש בה יחד עם הדגל --update-instance. הערך צריך להיות אחד מהערכים הבאים:

    • none: אין פעולה.
    • refresh: החלת עדכונים שאפשר להחיל בלי לעצור את המכונה הווירטואלית.
    • restart: עוצרים את המכונה הווירטואלית ומפעילים אותה מחדש.
    • replace: יצירה מחדש של המכונה הווירטואלית.

    אם לא מציינים פעולה, המערכת משתמשת בפעולה הכי פחות משבשת שנדרשת לעדכון.

דוגמה

הנתונים בדיסק עם שמירת מצב שמחובר כרגע, data-disk-1, נפגמו ואתם רוצים לשחזר אותם מהגיבוי האחרון. יצרת דיסק, data-disk-2, מקובץ snapshot כדי להחליף את הדיסק הפגום במופע, db-instance-1, שמנוהל על ידי MIG עם שמירת מצב, example-database-mig. הדיסק המקורי data-disk-1 מצורף תחת שם המכשיר data-disk עם כלל מחיקה אוטומטית שמונע את מחיקת הדיסק.

כדי להחליף את data-disk-1 ב-data-disk-2, מריצים את הפקודה הבאה:

gcloud compute instance-groups managed instance-configs update example-database-mig \
  --instance db-instance-1 \
  --stateful-disk device-name=data-disk,source=projects/example-project/zones/us-east1-c/disks/data-disk-2 \
  --update-instance \
  --instance-update-minimal-action restart

הפקודה מבצעת את הפעולות הבאות:

  1. עדכון ההגדרה לכל מכונה של db-instance-1:
    1. המקור של הדיסק עם שם המכשיר data-disk עודכן מ-data-disk-1 (ההגדרה האחרונה) ל-data-disk-2 (ההגדרה החדשה).
    2. הכלל למחיקה אוטומטית נשמר כדי שהדיסק לא יימחק אף פעם, כי הפרמטר auto-delete לא נכלל בדגל --stateful-disk, ובאופן אוטומטי כלל המחיקה הוא never.
  2. העדכון של ההגדרה לכל מופע יחול על מכונת db-instance-1 VM באופן מיידי כי הדגל --update-instance כלול. ה-MIG מתנתק data-disk-1 ומתחבר data-disk-2 תחת אותו שם מכשיר, data-disk.
  3. מכיוון שהפעולה המינימלית מוגדרת כ-restart, קבוצת ה-MIG מפעילה מחדש את המכונה כדי לעדכן את מכונת ה-VM, וכך אפליקציית מסד הנתונים יכולה להתחיל להשתמש בדיסק החדש.db-instance-1

Terraform

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

כדי להוסיף הגדרה לכל מכונה וירטואלית, משתמשים במשאב google_compute_per_instance_config וכוללים את הבלוק preserved_state כמו בדוגמה הבאה.

resource "google_compute_per_instance_config" "default" {
  instance_group_manager = google_compute_instance_group_manager.default.name
  zone                   = google_compute_instance_group_manager.default.zone
  name                   = "db-instance"
  preserved_state {
    disk {
      device_name = "data-disk"
      source      = google_compute_disk.default.id
      delete_rule = "NEVER"
    }
  }
}

כדי ללמוד איך להחיל הגדרות ב-Terraform או להסיר אותן, ראו פקודות בסיסיות ב-Terraform.

REST

כדי להגדיר דיסקים עם שמירת מצב בנפרד למכונות וירטואליות ב-MIG, מוסיפים או מעדכנים את ההגדרה של הדיסק עם שמירת מצב בהגדרות המשויכות לכל מכונה. לאחר מכן, מעדכנים את המופעים כדי להחיל את ההגדרה.

אם עדיין לא קיימות הגדרות לכל מכונה וירטואלית, אפשר להשתמש בשיטה instanceGroupManagers.updatePerInstanceConfigs או בשיטה regionInstanceGroupManagers.updatePerInstanceConfigs עם הגדרה ששומרת את המצב של דיסק אחד או יותר:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/NAME/updatePerInstanceConfigs

{
  "perInstanceConfigs": [
    {
      "name": "VM_NAME",
      "preservedState" : {
        "disks": {
          "DEVICE_NAME" : {
            "source": "DISK",
            "mode": "MODE",
            "autoDelete": "DELETE_RULE"
          },
          ...
        }
      },
      "fingerprint: "FINGERPRINT"
    },
    ...
  ]
}

אם כבר קיימות הגדרות לכל מכונה וירטואלית עבור המכונות הווירטואליות הנתונות, אפשר להשתמש בשיטה instanceGroupManagers.patchPerInstanceConfigs או בשיטה regionInstanceGroupManagers.patchPerInstanceConfigs עם הגדרה ששומרת את המצב של דיסק אחד או יותר:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/NAME/patchPerInstanceConfigs

{
  "perInstanceConfigs": [
    {
      "name": "VM_NAME",
      "preservedState" : {
        "disks": {
          "DEVICE_NAME" : {
            "source": "DISK",
            "mode": "MODE",
            "autoDelete": "DELETE_RULE"
          },
          ...
        }
      },
      "fingerprint: "FINGERPRINT"
    },
    ...
  ]
}

מחליפים את מה שכתוב בשדות הבאים:

  • PROJECT_ID: מזהה הפרויקט של הבקשה.
  • ZONE: האזור שבו נמצאת קבוצת המופעים המנוהלים (MIG) (רלוונטי לקבוצת מופעים מנוהלים אזורית).
    • ל-MIG אזורי, מחליפים את zones/ZONE ב-regions/REGION ומציינים את האזור של ה-MIG.
  • NAME: השם של ה-MIG.
  • VM_NAME: השם של מכונת ה-VM שרוצים להגדיר עבורה דיסקים עם שמירת מצב.
  • DEVICE_NAME: שם המכשיר שמשמש לצירוף הדיסק.
  • DISK: ה-URI של דיסק קיים לאחסון מתמיד (persistent disk) לצירוף תחת DEVICE_NAME שצוין, בפורמט projects/project-id/zones/zone/disks/disk-name לדיסק אזורי ו-projects/project-id/regions/region/disks/disk-name לדיסק אזורי.

    השדה "source": "DISK" הוא אופציונלי אם המכשיר כבר מוגדר בתצורה של המופע. אחרת, חובה להזין ערך.

    אם משמיטים את השדה source, ה-URI של הדיסק שמוגדר כרגע לא משתנה.

  • MODE: (אופציונלי). מציין את המצב של הדיסק. אפשר לציין את mode רק אם מציינים את source. האפשרויות הנתמכות הן:

    • READ_ONLY: קריאה בלבד.
    • READ_WRITE: (ברירת מחדל). קריאה/כתיבה.

    אם לא מציינים ערך, ערך ברירת המחדל מוגדר עבור הגדרה חדשה של דיסק עם שמירת מצב. הערך לא משתנה בהגדרה קיימת.

  • DELETE_RULE: (אופציונלי). ערך שמגדיר מה צריך לקרות לדיסק עם שמירת מצב כשמכונה וירטואלית נמחקת. האפשרויות הזמינות הן:

    • never: (ברירת מחדל). לא למחוק את הדיסק, אלא לנתק אותו כשמוחקים את המכונה שלו.
    • on-permanent-instance-deletion: מחיקת הדיסק עם שמירת הנתונים כשמוחקים את המופע שלו באופן סופי מקבוצת המופעים, למשל כשמוחקים את המופע באופן ידני או כשמקטינים את גודל הקבוצה.

    אם לא מציינים את השדה autoDelete, ערך ברירת המחדל מוגדר להגדרת דיסק חדשה עם שמירת מצב. הערך לא משתנה בהגדרה קיימת.

    ללא קשר לערך של כלל המחיקה, דיסקים עם שמירת מצב נשמרים תמיד בפעולות של תיקון אוטומטי, עדכון ויצירה מחדש של מופעים.

  • FINGERPRINT: (אופציונלי). טביעת האצבע של ההגדרה הנתונה אם היא כבר קיימת. משמש לנעילה אופטימית. כדי לראות את טביעת האצבע העדכנית, שולחים בקשת get() לאחזור המשאב.

השיטות updatePerInstanceConfigs ו-patchPerInstanceConfigs מעדכנות את ההגדרות שצוינו לכל מכונה, אבל לא מחילות את עדכוני ההגדרות על המכונות הווירטואליות המנוהלות המשויכות. השינויים חלים על מופע כשמנחים את ה-MIG ליצור מחדש את המופע או לעדכן אותו. אפשר גם לעדכן את המופע באופן סלקטיבי כדי להחיל את השינויים.

דוגמה

הנתונים בדיסק עם שמירת מצב שמחובר כרגע, data-disk-1, נפגמו ואתם רוצים לשחזר אותם מהגיבוי האחרון. יצרת דיסק, data-disk-2, מקובץ snapshot כדי להחליף את הדיסק הפגום במופע, db-instance-1, שמנוהל על ידי MIG עם שמירת מצב, example-database-mig. הדיסק המקורי data-disk-1 מצורף תחת שם המכשיר data-disk עם כלל מחיקה אוטומטית שמונע את מחיקת הדיסק.

כדי לעדכן את ההגדרות של מכונה ספציפית db-instance-1 עם הדיסק החדש, קוראים ל-method‏ patchPerInstanceConfigs:

POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-east1-c/instanceGroupManagers/example-database-mig/patchPerInstanceConfigs

{
  "perInstanceConfigs": [
    {
      "name": "db-instance-1",
      "preservedState" : {
        "disks": {
          "data-disk" : {
            "source": "projects/example-project/zones/us-east1-c/disks/data-disk-2"
          }
        }
      }
    }
  ]
}

השיטה מתקנת את ההגדרה לכל מופע של db-instance-1:

  1. עדכון של source לדיסק עם שם המכשיר data-disk מ-data-disk-1 (ההגדרה האחרונה) ל-data-disk-2 (ההגדרה החדשה).
  2. הפרמטרים mode ו-autoDelete לא משתנים כי הם לא מופיעים בבקשה.

עדיין לא הוחל עדכון ההגדרה במכונה הווירטואלית db-instance-1. ה-MIG מחיל את עדכון ההגדרות כשיוצרים מחדש את המופע או מעדכנים אותו.

כדי להחיל את עדכון ההגדרות של המכונה db-instance-1, קוראים ל-method‏ instanceGroupManagers.applyUpdatesToInstances של המכונה:

POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-east1-c/instanceGroupManagers/example-database-mig/applyUpdatesToInstances
{
  "instances": ["/zones/us-east1-c/instances/db-instance-1"],
  "minimalAction": "RESTART"
}

השיטה מעדכנת את המצב השמור של המכונה המנוהלת, מנתקת את data-disk-1 ומצרפת את data-disk-2 תחת אותו שם מכשיר data-disk. מכיוון שהערך של minimalAction מוגדר כ-RESTART, השיטה מפעילה מחדש את המכונה הווירטואלית db-instance-1, וכך אפליקציית מסד הנתונים יכולה להתחיל להשתמש בדיסק החדש.

ניתוק דיסק עם שמירת מצב או הגדרת דיסק ללא שמירת מצב עבור מכונה וירטואלית ספציפית

יכול להיות שתצטרכו לנתק דיסק עם שמירת מצב או להגדיר אותו כך שיתייחסו אליו כדיסק ללא שמירת מצב במכונה וירטואלית ספציפית. לדוגמה:

  • אם משנים את הארכיטקטורה של האפליקציה כדי להעביר את המצב מהדיסק.
  • אם הגדרתם בטעות את הדיסק כבעל מצב ורוצים לבטל את ההגדרה.

כדי לנתק דיסק עם שמירת מצב או להפוך אותו לדיסק בלי שמירת מצב עבור מכונת VM ספציפית, מסירים את ההגדרה של שמירת המצב של הדיסק מההגדרה המשויכת לכל מכונה, או מוחקים את ההגדרה כולה לכל מכונה. כשמחילים את השינוי:

  • אם הדיסק לא מוגדר בתבנית של הגדרות מכונה, ה-MIG ינתק את הדיסק.
    • ה-MIG לא מוחק את הדיסק כשמוחקים את ההגדרה שלו מההגדרה לכל מופע, ללא קשר לכלל המחיקה האוטומטית בהגדרה.
  • אם הדיסק מוגדר על ידי תבנית של הגדרות מכונה, ה-MIG מתייחס לדיסק כאל דיסק בלי שמירת מצב, כלומר ה-MIG יוצר מחדש את הדיסק מהמקור שלו בתבנית של הגדרות מכונה באירועים הבאים של יצירה מחדש של מכונה, עדכון או תיקון תוכנה אוטומטי (autohealing).

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

מידע נוסף זמין במאמר בנושא החלת עדכונים של הגדרות לכל מופע.

gcloud

כדי לנתק דיסקים עם שמירת מצב או להגדיר אותם כחסרי שמירת מצב בנפרד עבור מכונה וירטואלית בקבוצת MIG, צריך להסיר את ההגדרה של הדיסק עם שמירת מצב מההגדרה המשויכת לכל מופע או למחוק את ההגדרה כולה לכל מופע אם היא לא מכילה מצב אחר. מעדכנים את המופע כדי להחיל את ההגדרה.

כדי להסיר הגדרה של דיסק עם שמירת מצב מההגדרה המשויכת לכל מכונה, משתמשים בפקודה gcloud compute instance-groups managed instance-configs update עם הדגל --remove-stateful-disks. הדגל --update-instance (ברירת מחדל) מחיל את השינויים באופן מיידי על המופע. אם משתמשים ב---no-update-instance, השינויים לא יחולו ויחולו בפעם הבאה שיוצרים מחדש את המופע או מעדכנים אותו.

gcloud compute instance-groups managed instance-configs update NAME \
  --instance VM_NAME \
  --remove-stateful-disks DEVICE_NAME[,DEVICE_NAME,...] \
  [--no-update-instance | --update-instance] \
  [--instance-update-minimal-action MINIMAL_ACTION]

מחליפים את מה שכתוב בשדות הבאים:

  • NAME: השם של ה-MIG.
  • VM_NAME: השם של המכונה הווירטואלית שממנה רוצים להסיר את ההגדרה עם שמירת מצב.
  • DEVICE_NAME: שם המכשיר שמשמש לצירוף הדיסק.
  • MINIMAL_ACTION: ביצוע לפחות הפעולה שצוינה כשמעדכנים את המכונה הווירטואלית עם ההגדרה שלה לכל מופע. אפשר להשתמש רק עם --update-instance. הערך צריך להיות אחד מהערכים הבאים:

    • none: אין פעולה.
    • refresh: החלת עדכונים שאפשר להחיל בלי לעצור את המכונה הווירטואלית.
    • restart: עוצרים את המכונה הווירטואלית ומפעילים אותה מחדש.
    • replace: יצירה מחדש של המכונה הווירטואלית.

    אם לא מציינים פעולה, המערכת משתמשת בפעולה הכי פחות משבשת שנדרשת לעדכון.

דוגמה

אתם מפעילים אפליקציה מדור קודם בקבוצת מופעים מנוהלת בשם example-legacy-group. כל מכונת VM ב-MIG מאחסנת נתוני אפליקציה בדיסק אתחול עם שם המכשיר, boot-disk. הגדרתם כל דיסק אתחול להיות עם שמירת מצב באמצעות הגדרות לכל מופע. עכשיו העברתם נתוני אפליקציה לדיסק נוסף, ואתם רוצים להפוך את דיסק האתחול לדיסק ללא מצב (stateless) לכל מכונה וירטואלית כדי להקל על העדכון לתמונות חדשות.

לכל מופע, לדוגמה, ל-node-1, מריצים את הפקודה:

gcloud compute instance-groups managed instance-configs update example-legacy-group \
  --instance node-1 \
  --remove-stateful-disks boot-disk \
  --update-instance

הפקודה מבצעת את הפעולות הבאות:

  1. הסרת ההגדרה של הדיסק עם שם המכשיר boot-disk מההגדרה לכל מופע של node-1.
  2. העדכון של ההגדרה לכל מופע יחול על מכונת node-1 VM באופן מיידי כי הדגל --update-instance כלול. קבוצת ה-MIG מסירה את דיסק האתחול מpreservedStateFromConfig של המכונה המנוהלת, ומתייחסת לדיסק האתחול כאל דיסק בלי שמירת מצב. כלומר, קבוצת ה-MIG יוצרת מחדש את הדיסק מקובץ אימג' לאתחול בתבנית של הגדרות מכונה באירועים הבאים של יצירה מחדש, עדכון או תיקון תוכנה אוטומטי (autohealing) של המכונה.

REST

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

כדי להסיר הגדרה של דיסק עם שמירת מצב מההגדרה המשויכת לכל מופע, משתמשים בשיטה instanceGroupManagers.patchPerInstanceConfigs או בשיטה regionInstanceGroupManagers.patchPerInstanceConfigs:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/NAME/patchPerInstanceConfigs

{
  "perInstanceConfigs": [
    {
      "name": "VM_NAME",
      "preservedState" : {
        "disks": {
          "DEVICE_NAME" : null
        },
        ...
      },
      "fingerprint: "FINGERPRINT"
      ...
    }
  ]
}

מחליפים את מה שכתוב בשדות הבאים:

  • PROJECT_ID: מזהה הפרויקט של הבקשה.
  • ZONE: האזור שבו נמצאת קבוצת המופעים המנוהלים (MIG) (רלוונטי לקבוצת מופעים מנוהלים אזורית).
    • ל-MIG אזורי, מחליפים את zones/ZONE ב-regions/REGION ומציינים את האזור של ה-MIG.
  • NAME: השם של ה-MIG.
  • VM_NAME: השם של מכונת ה-VM שממנה רוצים להסיר את ההגדרות האישיות עם שמירת מצב.
  • DEVICE_NAME: שם המכשיר שמשמש לצירוף הדיסק.
  • FINGERPRINT: טביעת האצבע של ההגדרה שצוינה, אם היא כבר קיימת. משמש לנעילה אופטימית. כדי לראות את טביעת האצבע העדכנית, שולחים בקשת get() לאחזור המשאב.

השיטה patchPerInstanceConfigs מתקנת את ההגדרות שצוינו לכל מופע, אבל לא מחילה את השינויים על מכונות וירטואליות משויכות. השינויים יחולו על מכונה וירטואלית כשיוצרים מחדש את המכונה או מעדכנים אותה. אפשר ליישם את השינויים באופן ידני או להשתמש בעדכונים אוטומטיים.

דוגמה

אתם מפעילים אפליקציה מדור קודם בקבוצת MIG בשם example-legacy-group. כל מכונה וירטואלית ב-MIG מאחסנת נתוני אפליקציה בדיסק אתחול עם שם המכשיר boot-disk. הגדרתם את דיסק האתחול כ-stateful בהגדרות לכל מופע ב-MIG כשביצעתם העברה של מכונות ה-VM העצמאיות ל-MIG. העברתם נתוני אפליקציה לדיסק נוסף ועכשיו אתם רוצים להפוך את דיסק האתחול לדיסק ללא מצב (stateless) לכל מכונה וירטואלית, כדי שתוכלו לעדכן בקלות לתמונות חדשות.

  1. מבצעים קריאה לשיטה patchPerInstanceConfigs עבור המופעים, לדוגמה, עבור node-1 עם ערך null לדיסק האתחול:

    POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-east1-c/instanceGroupManagers/example-legacy-group/patchPerInstanceConfigs
    
    {
      "perInstanceConfigs": [
        {
          "name": "node-1",
          "preservedState" : {
            "disks": {
              "boot-disk" : null
            }
          }
        }
      ]
    }
    

    השיטה מסירה את ההגדרה של הדיסק עם שם המכשיר boot- disk מההגדרה לכל מופע של node-1. עדיין לא הוחל עדכון ההגדרה על המכונה הווירטואלית node-1. העדכון של ההגדרה יחול בפעם הבאה שיווצר מחדש מופע או שיתבצע עדכון.

  2. כדי להחיל את עדכון ההגדרות של המכונה על המכונה הווירטואלית node-1, קוראים לinstanceGroupManagers.applyUpdatesToInstances שיטה של המכונה:

    POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-east1-c/instanceGroupManagers/example-legacy-group/applyUpdatesToInstances
    {
      "instances": ["/zones/us-east1-c/instances/node-1"]
    }
    

    ה-MIG מסיר את דיסק האתחול מpreservedStateFromConfig עבור מופע node-1 ומתייחס לדיסק כאל דיסק חסר מצב. כלומר, ה-MIG יוצר מחדש את הדיסק מקובץ אימג' לאתחול בתבנית של הגדרות מכונה באירועים הבאים של יצירה מחדש של מכונה, עדכון או תיקון תוכנה אוטומטי (autohealing).

חיוב

‫Compute Engine לא מוחק באופן אוטומטי דיסקים לאחסון מתמיד עם שמירת מצב שניתקתם מ-MIG. עדיין נחייב אתכם על הנפח שהוקצה לדיסקים לאחסון מתמיד (persistent disk) שהוסרו. כדי להימנע מעלויות של נפח אחסון בדיסק אחרי ניתוק הדיסק, צריך למחוק אותו. מידע נוסף מפורט במאמר בנושא תמחור דיסקים.

משוב

נשמח לשמוע על תרחישי השימוש שלכם, על האתגרים שנתקלתם בהם ועל המשוב שלכם לגבי קבוצות של מכונות וירטואליות עם שמירת מצב. אפשר לשלוח משוב לצוות שלנו בכתובת mig-discuss@google.com.

המאמרים הבאים