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

במאמר הזה נסביר איך ליצור קבוצת מופעי מכונה מנוהלים (MIG) כדי להוסיף בבת אחת מכונות וירטואליות (VM) עם GPU.

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

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

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

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

מגבלות

ההגבלות הבאות חלות:

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

כדי ליצור את מכונות ה-GPU הווירטואליות בבת אחת:

  1. יוצרים תבנית של הגדרות מכונה, שנדרשת ליצירת MIG. לאחר מכן, קבוצת ה-MIG משתמשת בתבנית הזו כדי ליצור כל מכונה וירטואלית בקבוצה. בתבנית, מציינים את ההגדרות של מודל הקצאת ההרשאות של התחלה גמישה (Flex-start).

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

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

יצירת תבנית של הגדרות מכונה

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

המסוף

  1. עוברים לדף Instance templates.

    כניסה לדף Instance templates

  2. לוחצים על Create instance template. ייפתח הדף Create an instance template.

  3. בשדה Name, מזינים שם לתבנית של הגדרות מכונה.

  4. בקטע Machine configuration מבצעים את הפעולות הבאות:

    1. לוחצים על הכרטיסייה GPUs.

    2. ברשימה סוג ה-GPU, בוחרים את סוג ה-GPU.

    3. ברשימה Number of GPUs (מספר יחידות ה-GPU), בוחרים את מספר יחידות ה-GPU.

    4. בקטע Machine type, בוחרים סוג מכונה.

  5. בקטע Provisioning model:

    1. ברשימה VM provisioning model בוחרים באפשרות Flex-start.

    2. כדי להגדיר את משך ההפעלה של המכונות הווירטואליות שנוצרו באמצעות תבנית המכונה, בשדה Enter number of hours (הזנת מספר השעות) מזינים את מספר השעות. הערך צריך להיות בין שעה אחת (1) לבין שבעה ימים (168).

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

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

gcloud

כדי ליצור תבנית של הגדרות מכונה, משתמשים בפקודה instance-templates create:

gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
    --image-project=IMAGE_PROJECT \
    --image-family=IMAGE_FAMILY \
    --instance-termination-action=DELETE \
    --instance-template-region=REGION \
    --machine-type=MACHINE_TYPE \
    --maintenance-policy=TERMINATE \
    --max-run-duration=RUN_DURATION \
    --provisioning-model=FLEX_START \
    --reservation-affinity=none

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

  • INSTANCE_TEMPLATE_NAME: השם של תבנית הגדרות המכונה.

  • IMAGE_PROJECT: פרויקט התמונה שמכיל את התמונה, לדוגמה debian-cloud. מידע נוסף על פרויקטים של תמונות נתמכות זמין במאמר בנושא תמונות ציבוריות.

  • IMAGE_FAMILY: משפחת תמונות. המאפיין הזה מציין את תמונת מערכת ההפעלה העדכנית ביותר שלא הוצאה משימוש. לדוגמה, אם מציינים debian-12, נעשה שימוש בגרסה העדכנית ביותר במשפחת תמונות Debian 12. מידע נוסף על שימוש במשפחות של תמונות זמין במאמר בנושא שיטות מומלצות לשימוש במשפחות של תמונות.

  • REGION: האזור שבו רוצים ליצור את תבנית הגדרות המכונה.

  • MACHINE_TYPE: סוג מכונת GPU. אם מציינים סוג מכונה N1, צריך לכלול את הדגל --accelerator כדי לציין את המספר והסוג של יחידות ה-GPU שרוצים לצרף למכונות הווירטואליות.

  • RUN_DURATION: משך הזמן שבו רוצים שהמכונות הווירטואליות המבוקשות יפעלו. הערך צריך להיות בפורמט של מספר הימים, השעות, הדקות או השניות, ואחריו d, h, m או s בהתאמה. לדוגמה, מציינים 30m ל-30 דקות או 1d2h3m4s ליום אחד, שעתיים, שלוש דקות וארבע שניות. הערך צריך להיות בין 10 דקות לשבעה ימים.

REST

כדי ליצור תבנית של הגדרות מכונה, שולחים בקשת POST אל ה-method‏ instanceTemplates.insert:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceTemplates

{
  "name": "INSTANCE_TEMPLATE_NAME",
  "properties": {
    "disks": [
      {
        "boot": true,
        "initializeParams": {
          "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE
        }
      }
    ],
    "machineType": "MACHINE_TYPE",
    "networkInterfaces": [
      {
        "network": "global/networks/default"
      }
    ],
    "reservationAffinity": {
      "consumeReservationType": "NO_RESERVATION"
    },
    "scheduling": {
      "instanceTerminationAction": "DELETE",
      "maxRunDuration": {
        "seconds": RUN_DURATION
      },
      "onHostMaintenance": "TERMINATE",
      "provisioningModel": "FLEX_START"
    }
  }
}

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

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

  • REGION: האזור שבו רוצים ליצור את תבנית הגדרות המכונה.

  • INSTANCE_TEMPLATE_NAME: השם של תבנית הגדרות המכונה.

  • IMAGE_PROJECT: פרויקט התמונה שמכיל את התמונה, לדוגמה debian-cloud. מידע נוסף על פרויקטים של תמונות נתמכות זמין במאמר בנושא תמונות ציבוריות.

  • IMAGE: מציינים אחת מהאפשרויות הבאות:

    • גרסה ספציפית של תמונת מערכת ההפעלה – לדוגמה, debian-12-bookworm-v20240617.

    • משפחת תמונות, שצריכה להיות בפורמט family/IMAGE_FAMILY. התמונה הזו מציינת את תמונת מערכת ההפעלה האחרונה שלא הוצאה משימוש. לדוגמה, אם מציינים family/debian-12, נעשה שימוש בגרסה העדכנית ביותר במשפחת קובצי האימג' של Debian 12. מידע נוסף על שימוש במשפחות של תמונות זמין במאמר בנושא שיטות מומלצות לשימוש במשפחות של תמונות.

  • MACHINE_TYPE: סוג מכונת GPU. אם מציינים סוג מכונה N1, צריך לכלול את השדה guestAccelerators כדי לציין את המספר והסוג של יחידות ה-GPU שיוצמדו למכונות הווירטואליות.

  • RUN_DURATION: משך הזמן בשניות שבו אתם רוצים שהמכונות הווירטואליות המבוקשות יפעלו לפני שהקבוצה תמחק אותן באופן אוטומטי. הערך צריך להיות בין 600, שהוא 600 שניות (10 דקות), לבין 604800, שהוא 604,800 שניות (שבעה ימים).

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

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

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

המסוף

  1. עוברים לדף Instance groups.

    כניסה לדף Instance groups

  2. לוחצים על יצירת קבוצת מופעים. ייפתח הדף Create instance group.

  3. בשדה Name, מזינים שם ל-MIG.

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

    1. כדי להשבית את התיקונים:
      1. בקטע VM instance lifecycle (מחזור החיים של מכונת VM), מבטלים את הסימון בתיבה Allow repair of VMs in an alternate zone (אפשר לתקן מכונות וירטואליות באזור חלופי).
      2. ברשימה פעולת ברירת מחדל במקרה של כשל, בוחרים באפשרות ללא פעולה.
    2. כדי להגדיר את הקטע מיקום, מבצעים את הפעולות הבאות:
      • כדי ליצור קבוצת MIG אזורית, בוחרים באפשרות Single zone (אזור יחיד).
      • כדי ליצור קבוצת MIG אזורית, בוחרים באפשרות אזורים מרובים. בקטע Target distribution shape, בוחרים באפשרות Any single zone. בתיבת הדו-שיח שמופיעה, בוחרים באפשרות השבתת ההפצה מחדש של המופע.
  5. חוזרים לשדה תבנית של הגדרות מכונה. ברשימה Instance template, בוחרים את תבנית של הגדרות מכונה שיצרתם בקטע הקודם.

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

  7. מסמנים את תיבת הסימון Obtain VMs all at once with bulk target size policy (קבלת כל המכונות הווירטואליות בבת אחת באמצעות מדיניות גודל יעד בכמות גדולה).

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

gcloud

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

  • כדי ליצור קבוצת MIG אזורית, מריצים את הפקודה הבאה:

    gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \
        --default-action-on-vm-failure=do-nothing \
        --size=SIZE \
        --target-size-policy-mode=bulk \
        --template=INSTANCE_TEMPLATE_URL \
        --zone=ZONE \
    
  • כדי ליצור קבוצת MIG אזורית, מריצים את הפקודה הבאה:

    gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \
        --default-action-on-vm-failure=do-nothing \
        --size=SIZE \
        --target-size-policy-mode=bulk \
        --template=INSTANCE_TEMPLATE_URL \
        --zones=LIST_OF_ZONES \
    

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

  • INSTANCE_GROUP_NAME: השם של ה-MIG.
  • SIZE: מספר המכונות הווירטואליות ב-MIG.
  • INSTANCE_TEMPLATE_URL: כתובת ה-URL של תבנית של הגדרות מכונה שרוצים להשתמש בה כדי ליצור מכונות ב-MIG. כתובת ה-URL יכולה להכיל את המזהה או את השם של תבנית של הגדרות מכונה. מציינים אחד מהערכים הבאים:
    • לתבנית של הגדרות מכונה אזורית: projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID
    • בתבנית של הגדרות מכונה גלובלית: INSTANCE_TEMPLATE_ID
  • ZONE: האזור שבו קבוצת ה-MIG יוצרת מכונות וירטואליות.
  • LIST_OF_ZONES: רשימה מופרדת בפסיקים של אזורים שבהם קבוצת ה-MIG האזורית יוצרת מכונות וירטואליות. לדוגמה, us-central1-a, us-central1-b, us-central1-c.

REST

כדי ליצור קבוצת מופעי מכונה מנוהלים (MIG) עם יצירה בכמות גדולה, שולחים בקשת POST באופן הבא. בגוף הבקשה, מגדירים את השדה targetSizePolicy.mode לערך bulk.

אם בתבנית של הגדרות מכונה שבה אתם משתמשים מוגדר מודל הקצאת המשאבים flex-start, אתם צריכים להשבית את התיקונים ב-MIG על ידי הכללת השדה "instanceLifecyclePolicy": {"defaultActionOnFailure": "DO_NOTHING"} בבקשות הבאות.

  • כדי ליצור קבוצת MIG אזורית, שולחים בקשת POST אל ה-method‏ instanceGroupManagers.insert.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers
    
    {
      "name": "INSTANCE_GROUP_NAME",
      "targetSize": SIZE,
      "targetSizePolicy": {
        "mode": "bulk"
      },
      "instanceLifecyclePolicy": {
          "defaultActionOnFailure": "DO_NOTHING"
      },
      "versions": [
        {
          "instanceTemplate": "INSTANCE_TEMPLATE_URL"
        }
      ]
    }
    
  • כדי ליצור קבוצת MIG אזורית, שולחים בקשת POST אל ה-method‏ regionInstanceGroupManagers.insert.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers
    
    {
      "name": "INSTANCE_GROUP_NAME",
      "targetSize": SIZE,
      "targetSizePolicy": {
        "mode": "bulk"
      },
      "instanceLifecyclePolicy": {
          "defaultActionOnFailure": "DO_NOTHING"
      },
      "versions": [
        {
          "instanceTemplate": "INSTANCE_TEMPLATE_URL"
        }
      ]
    }
    

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

  • PROJECT_ID:מזהה הפרויקט.
  • ZONE:האזור שבו קבוצת ה-MIG יוצרת מכונות וירטואליות.
  • REGION:האזור שבו קבוצת ה-MIG יוצרת מכונות וירטואליות.
  • INSTANCE_GROUP_NAME:השם של ה-MIG.
  • SIZE:מספר המכונות הווירטואליות ב-MIG.
  • INSTANCE_TEMPLATE_URL: כתובת ה-URL של תבנית של הגדרות מכונה שרוצים להשתמש בה כדי ליצור מכונות ב-MIG. כתובת ה-URL יכולה להכיל את המזהה או את השם של תבנית של הגדרות מכונה. מציינים אחד מהערכים הבאים:
    • לתבנית של הגדרות מכונה אזורית: projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID
    • בתבנית של הגדרות מכונה גלובלית: INSTANCE_TEMPLATE_ID

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