הפחתת זמן האחזור באמצעות מדיניות למיקום קומפקטי

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

מדיניות למיקום קומפקטי מציינת ש-Compute Engine ממקם את המכונות קרוב יותר זו לזו באופן פיזי. השימוש ב-SR-IOV יכול לשפר את הביצועים ולהפחית את זמן האחזור ברשת בין המכונות כשמריצים עומסי עבודה של מחשוב עתיר ביצועים (HPC), למידת מכונה (ML) או שרת מסד נתונים.

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

  • אם עדיין לא עשיתם את זה, תצטרכו להגדיר אימות. אימות הוא התהליך שבו מאמתים את הזהות שלכם כדי לקבל גישה לממשקי API ולשירותים של Google Cloud . כדי להריץ קוד או דוגמאות מסביבת פיתוח מקומית, אפשר לבצע אימות ל-Compute Engine באחת מהדרכים הבאות:

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

    המסוף

    כשמשתמשים במסוף Google Cloud כדי לגשת לשירותים Google Cloud ולממשקי ה-API, לא צריך להגדיר אימות.

    gcloud

    1. התקינו את ה-CLI של Google Cloud. אחר כך, מאתחלים את ה-CLI של Google Cloud באמצעות הפקודה הבאה:

      gcloud init

      אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.

  • הגדרת אזור ותחום כברירת מחדל
  • REST

    כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של API בארכיטקטורת REST שבדף הזה, צריך להשתמש בפרטי הכניסה שאתם נותנים ל-CLI של gcloud.

      התקינו את ה-CLI של Google Cloud.

      אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.

    מידע נוסף מופיע במאמר אימות לשימוש ב-REST במסמכי האימות של Google Cloud .

התפקידים הנדרשים

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

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

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

ההרשאות הנדרשות

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

  • כדי ליצור מדיניות מיקום: ‫compute.resourcePolicies.create בפרויקט
  • כדי להחיל מדיניות מיקום על מכונות וירטואליות קיימות: compute.instances.addResourcePolicies בפרויקט
  • כדי ליצור מכונות וירטואליות:
    • ‫compute.instances.create בפרויקט
    • כדי להשתמש באימג' בהתאמה אישית ליצירת המכונה הווירטואלית (VM)‏: compute.images.useReadOnly בקובץ אימג'
    • כדי להשתמש ב-snapshot ליצירת המכונה הווירטואלית: compute.snapshots.useReadOnly בקובץ snapshot
    • כדי להשתמש בתבנית של הגדרות מכונה ליצירת המכונה הווירטואלית: compute.instanceTemplates.useReadOnly בתבנית של הגדרות המכונה
    • כדי להקצות רשת מדור קודם למכונה הווירטואלית: compute.networks.use בפרויקט
    • כדי לציין כתובת IP סטטית למכונה הווירטואלית: compute.addresses.use בפרויקט
    • כדי להקצות כתובת IP חיצונית למכונה הווירטואלית כשמשתמשים ברשת מדור קודם: compute.networks.useExternalIp בפרויקט
    • כדי לציין רשת משנה למכונה הווירטואלית: compute.subnetworks.use בפרויקט או ברשת המשנה שנבחרה
    • כדי להקצות כתובת IP חיצונית למכונה הווירטואלית כשמשתמשים ברשת VPC: compute.subnetworks.useExternalIp בפרויקט או ברשת המשנה שנבחרה
    • כדי להגדיר מטא-נתונים של המכונה הווירטואלית למכונה הווירטואלית: compute.instances.setMetadata בפרויקט
    • כדי להגדיר תגים למכונה הווירטואלית: compute.instances.setTags במכונה הווירטואלית
    • כדי להגדיר תוויות למכונה הווירטואלית: compute.instances.setLabels במכונה הווירטואלית
    • כדי להגדיר חשבון שירות לשימוש של המכונה הווירטואלית: compute.instances.setServiceAccount במכונה הווירטואלית
    • כדי ליצור דיסק חדש למכונה הווירטואלית: compute.disks.create בפרויקט
    • כדי לצרף דיסק קיים במצב קריאה-בלבד או במצב קריאה וכתיבה: compute.disks.use בדיסק
    • כדי לצרף דיסק קיים במצב קריאה-בלבד: compute.disks.useReadOnly בדיסק
  • כדי ליצור הזמנה: compute.reservations.create בפרויקט
  • כדי ליצור תבנית של הגדרות מכונה: compute.instanceTemplates.create בפרויקט
  • כדי ליצור MIG: ‫compute.instanceGroupManagers.create בפרויקט
  • כדי לראות את הפרטים של מופע Compute: compute.instances.get בפרויקט

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

יצירת מדיניות למיקום קומפקטי

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

  • אם רוצים להחיל מדיניות מיקום קומפקטית על מופע Compute שאינו M3,‏ M2,‏ M1,‏ N2D או N2, צריך לבצע אחת מהפעולות הבאות בהתאם לסוג המכונה:

  • אם אתם רוצים להחיל מדיניות למיקום קומפקטי על מופע A3 Mega,‏ A3 High או A3 Edge שנוצר לפני 1 באוקטובר 2025, אתם צריכים לפנות לצוות ניהול החשבון שלכם.

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

gcloud

  • כדי להחיל את מדיניות המיקום הקומפקטי על מכונות M3,‏ M2,‏ M1,‏ N2D או N2, יוצרים את המדיניות באמצעות הפקודה gcloud compute resource-policies create group-placement עם הדגל --collocation=collocated.

    gcloud compute resource-policies create group-placement POLICY_NAME \
        --collocation=collocated \
        --region=REGION
    

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

    • ‫POLICY_NAME: השם של מדיניות המיקום הקומפקטי.

    • ‫REGION: האזור שבו יוצרים את מדיניות המיקום.

  • כדי להחיל את מדיניות המיקום הקומפקטי על מקרים עצמאיים של A4X Max או A4X, יוצרים את המדיניות באמצעות הפקודה gcloud compute resource-policies create group-placement עם הדגלים --collocation=collocated ו---gpu-topology=1x72.

    gcloud compute resource-policies create group-placement POLICY_NAME \
        --collocation=collocated \
        --gpu-topology=1x72 \
        --region=REGION
    
  • כדי להחיל את המדיניות למיקום קומפקטי על כל מכונת Compute אחרת שנתמכת, יוצרים את המדיניות באמצעות הפקודה gcloud beta compute resource-policies create group-placement עם הדגלים --collocation=collocated ו---max-distance.

    gcloud beta compute resource-policies create group-placement POLICY_NAME \
        --collocation=collocated \
        --max-distance=MAX_DISTANCE \
        --region=REGION
    

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

  • ‫POLICY_NAME: השם של מדיניות המיקום הקומפקטי.

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

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

REST

  • כדי להחיל את מדיניות המיקום הקומפקטי על מכונות M3,‏ M2,‏ M1,‏ N2D או N2, צריך ליצור את המדיניות על ידי שליחת בקשת POST אל ה-method‏ resourcePolicies.insert. בגוף הבקשה, כוללים את השדה collocation ומגדירים אותו לערך COLLOCATED.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/resourcePolicies
    
    {
      "name": "POLICY_NAME",
      "groupPlacementPolicy": {
        "collocation": "COLLOCATED"
      }
    }
    
  • כדי להחיל את המדיניות למיקום קומפקטי על מכונות עצמאיות מסוג A4X Max או A4X, יוצרים את המדיניות על ידי שליחת בקשת POST אל ה-method‏ resourcePolicies.insert. בגוף הבקשה, כוללים את השדה collocation שמוגדר ל-COLLOCATED ואת השדה gpuTopology שמוגדר ל-1x72.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/resourcePolicies
    
    {
      "name": "POLICY_NAME",
      "groupPlacementPolicy": {
        "collocation": "COLLOCATED",
        "gpuTopology": "1x72"
      }
    }
    
  • כדי להחיל את מדיניות המיקום הקומפקטי על מכונות וירטואליות נתמכות אחרות, צריך ליצור את המדיניות על ידי שליחת בקשת POST אל ה-method‏ beta.resourcePolicies.insert. בגוף הבקשה, כוללים את הפרטים הבאים:

    • השדה collocation מוגדר ל-COLLOCATED.

    • השדה maxDistance.

    POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/resourcePolicies
    
    {
      "name": "POLICY_NAME",
      "groupPlacementPolicy": {
        "collocation": "COLLOCATED",
        "maxDistance": MAX_DISTANCE
      }
    }
    

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

  • ‫PROJECT_ID: מזהה הפרויקט שבו רוצים ליצור את מדיניות מיקום האחסון.

  • ‫REGION: האזור שבו יוצרים את מדיניות מיקום המשאבים.

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

החלת מדיניות למיקום קומפקטי

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

כדי להחיל מדיניות למיקום קומפקטי על משאב של Compute Engine, בוחרים באחת מהשיטות הבאות:

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

החלת המדיניות על מופע קיים

לפני שמחילים מדיניות למיקום קומפקטי על מכונה קיימת של Compute Engine, חשוב לוודא את הדברים הבאים:

אחרת, לא תצליחו להחיל את המדיניות למיקום קומפקטי על המכונה של Compute Engine. אם למכונה כבר יש מדיניות מיקום ואתם רוצים להחליף אותה, קראו את המאמר החלפת מדיניות מיקום במכונה.

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

gcloud

  1. עוצרים את המכונה.

  2. כדי להחיל מדיניות למיקום קומפקטי על מכונת Compute קיימת, משתמשים בפקודה gcloud compute instances add-resource-policies.

    gcloud compute instances add-resource-policies INSTANCE_NAME \
        --resource-policies=POLICY_NAME \
        --zone=ZONE
    

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

    • ‫INSTANCE_NAME: השם של מכונת Compute קיימת.

    • ‫POLICY_NAME: השם של מדיניות קיימת למיקום קומפקטי.

    • ‫ZONE: האזור שבו קיימת מכונת ה-Compute.

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

REST

  1. מפסיקים את מכונת החישוב.

  2. כדי להחיל מדיניות למיקום קומפקטי על מכונת חישוב קיימת, שולחים בקשת POST אל ה-method‏ instances.addResourcePolicies.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/addResourcePolicies
    
    {
      "resourcePolicies": [
        "projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME"
      ]
    }
    

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

    • ‫PROJECT_ID: מזהה הפרויקט שבו קיימת מדיניות המיקום הקומפקטית ומופע Compute.

    • ‫ZONE: האזור שבו נמצאת המכונה של Compute Engine.

    • ‫INSTANCE_NAME: השם של מכונת Compute קיימת.

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

    • ‫POLICY_NAME: השם של מדיניות קיימת למיקום קומפקטי.

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

החלת המדיניות במהלך יצירת מכונה

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

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

gcloud

כדי ליצור מכונה עם מדיניות מיקום קומפקטי, משתמשים בפקודה gcloud compute instances create עם הדגלים --maintenance-policy ו---resource-policies.

gcloud compute instances create INSTANCE_NAME \
    --machine-type=MACHINE_TYPE \
    --maintenance-policy=MAINTENANCE_POLICY \
    --resource-policies=POLICY_NAME \
    --zone=ZONE

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

  • ‫INSTANCE_NAME: השם של מכונת ה-Compute שרוצים ליצור.

  • ‫MACHINE_TYPE: סוג מכונה נתמך למדיניות למיקום קומפקטי.

  • ‫MAINTENANCE_POLICY: מדיניות התחזוקה של המארח של מכונת ה-Compute. אם מדיניות המיקום הקומפקטי שציינתם משתמשת בערך מרחק מקסימלי של 1 או 2, או אם סוג המכונה שבחרתם לא תומך בהעברה פעילה, תוכלו לציין רק TERMINATE. אחרת, אפשר לציין MIGRATE או TERMINATE.

  • ‫POLICY_NAME: השם של מדיניות קיימת למיקום קומפקטי.

  • ‫ZONE: האזור שבו יוצרים את מכונת ה-Compute.

REST

כדי ליצור מכונת Compute שמציינת מדיניות למיקום קומפקטי, שולחים בקשת POST אל ה-method‏ instances.insert. בגוף הבקשה, כוללים את השדות onHostMaintenance ו-resourcePolicies.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances

{
  "name": "INSTANCE_NAME",
  "machineType": "zones/ZONE/machineTypes/MACHINE_TYPE",
  "disks": [
    {
      "boot": true,
      "initializeParams": {
        "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
      }
    }
  ],
  "networkInterfaces": [
    {
      "network": "global/networks/default"
    }
  ],
  "resourcePolicies": [
    "projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME"
  ],
  "scheduling": {
    "onHostMaintenance": "MAINTENANCE_POLICY"
  }
}

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

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

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

  • ‫INSTANCE_NAME: השם של מכונת ה-Compute שרוצים ליצור.

  • ‫MACHINE_TYPE: סוג מכונה נתמך למדיניות למיקום קומפקטי.

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

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

    • גרסה ספציפית של קובץ האימג' של מערכת ההפעלה, לדוגמה debian-12-bookworm-v20240617.

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

  • ‫REGION: האזור שבו נמצאת מדיניות המיקום הקומפקטי.

  • ‫POLICY_NAME: השם של מדיניות קיימת למיקום קומפקטי.

  • ‫MAINTENANCE_POLICY: מדיניות התחזוקה של המארח של מכונת ה-Compute. אם במדיניות למיקום קומפקטי שהגדרתם ערך המרחק המקסימלי הוא 1 או 2, או אם סוג המכונה שבחרתם לא תומך במיגרציה פעילה, אתם יכולים להגדיר רק TERMINATE. אחרת, אפשר לציין MIGRATE או TERMINATE.

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

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

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

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

gcloud

כדי ליצור כמות גדולה של מכונות וירטואליות עם מדיניות מיקום קומפקטית, משתמשים בפקודה gcloud compute instances bulk create עם הדגלים --maintenance-policy ו---resource-policies.

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

gcloud compute instances bulk create \
    --count=COUNT \
    --machine-type=MACHINE_TYPE \
    --maintenance-policy=MAINTENANCE_POLICY \
    --name-pattern=NAME_PATTERN \
    --resource-policies=POLICY_NAME \
    --zone=ZONE

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

  • ‫COUNT: מספר המכונות הווירטואליות של Compute Engine שרוצים ליצור. המספר לא יכול להיות גבוה מהמספר המקסימלי של מכונות וירטואליות של Compute Engine שנתמכות במדיניות המיקום הקומפקטי שצוינה.

  • ‫MACHINE_TYPE: סוג מכונה נתמך למדיניות למיקום קומפקטי.

  • ‫MAINTENANCE_POLICY: מדיניות התחזוקה של המארח של המכונה. אם במדיניות למיקום קומפקטי שציינתם ערך המרחק המקסימלי הוא 1 או 2, או שסוג המכונה שבחרתם לא תומך במיגרציה פעילה, אתם יכולים לציין רק TERMINATE. אחרת, אפשר לציין MIGRATE או TERMINATE.

  • ‫NAME_PATTERN: תבנית השם של מכונות Compute. כדי להחליף רצף של מספרים בשם של מכונה וירטואלית, משתמשים ברצף של תווי סולמית (#). לדוגמה, אם משתמשים ב-vm-# בתבנית השם, נוצרים מכונות עם שמות שמתחילים ב-vm-1, ב-vm-2 וכן הלאה, עד למספר המכונות שצוין ב-COUNT.

  • ‫POLICY_NAME: השם של מדיניות קיימת למיקום קומפקטי.

  • ‫ZONE: האזור שבו ייצרו את מכונות ה-Compute בכמות גדולה.

REST

כדי ליצור כמות גדולה של מכונות וירטואליות עם מדיניות מיקום קומפקטית, שולחים בקשת POST אל ה-method‏ instances.bulkInsert. בגוף הבקשה, כוללים את השדות onHostMaintenance ו-resourcePolicies.

לדוגמה, כדי ליצור מכונות וירטואליות של Compute בכמות גדולה באזור אחד ולציין תבנית שם למכונות הוירטואליות של Compute, שולחים בקשת POST באופן הבא:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/bulkInsert

{
  "count": "COUNT",
  "namePattern": "NAME_PATTERN",
  "instanceProperties": {
    "machineType": "MACHINE_TYPE",
    "disks": [
      {
        "boot": true,
        "initializeParams": {
          "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
        }
      }
    ],
    "networkInterfaces": [
      {
        "network": "global/networks/default"
      }
    ],
    "resourcePolicies": [
      "projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME"
    ],
    "scheduling": {
      "onHostMaintenance": "MAINTENANCE_POLICY"
    }
  }
}

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

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

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

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

  • ‫NAME_PATTERN: תבנית השם של מכונות Compute. כדי להחליף רצף של מספרים בשם של מופע, משתמשים ברצף של תווים של סולמית (#). לדוגמה, אם משתמשים בתבנית השם vm-#, נוצרים מכונות Compute עם שמות שמתחילים ב-vm-1, vm-2 וכן הלאה, עד למספר המכונות שצוין ב-COUNT.

  • ‫MACHINE_TYPE: סוג מכונה נתמך למדיניות למיקום קומפקטי.

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

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

    • גרסה ספציפית של קובץ האימג' של מערכת ההפעלה, לדוגמה debian-12-bookworm-v20240617.

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

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

  • ‫POLICY_NAME: השם של מדיניות קיימת למיקום קומפקטי.

  • ‫MAINTENANCE_POLICY: מדיניות התחזוקה של המארח של המכונה. אם המדיניות למיקום קומפקטי שציינתם משתמשת בערך מרחק מקסימלי של 1 או 2, או אם סוג המכונה שבחרתם לא תומך במיגרציה פעילה, תוכלו לציין רק TERMINATE. אחרת, אפשר לציין MIGRATE או TERMINATE.

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

החלת המדיניות במהלך יצירת הזמנה

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

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

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

המסוף

  1. פותחים את הדף Reservations במסוף Google Cloud .

    כניסה לדף Reservations

  2. לוחצים על Create reservation (יצירת בקשה לשמירת מקום). ייפתח הדף Create a reservation.

  3. בשדה Name, נותנים שם לבקשה.

  4. ברשימות Region ו-Zone, בוחרים את האזור והתחום שבהם רוצים לשריין את המשאבים.

  5. בקטע Use with VM instance, בוחרים באפשרות Select specific reservation.

  6. בקטע VM instances and GPUs (מכונות וירטואליות ויחידות GPU), מבצעים את הפעולות הבאות:

    1. בשדה Number of VM instances מקלידים את מספר המכונות הווירטואליות שרוצים לשריין.

    2. מציינים סדרת מכונות וסוג מכונה שתומכים במדיניות מיקום קומפקטית.

  7. בקטע מדיניות מיקום קבוצות, לוחצים על הרשימה בחירה או יצירה של מדיניות מיקום קבוצות ואז מבצעים אחת מהפעולות הבאות:

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

      1. לוחצים על יצירת מדיניות למיקום קבוצות. מופיעה החלונית Create a group placement policy.

      2. בשדה שם המדיניות, מזינים שם למדיניות.

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

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

  8. לוחצים על Create כדי ליצור את הבקשה לשמירת מקום.

gcloud

כדי ליצור מקום שמור לפרויקט יחיד עם מדיניות למיקום קומפקטי על ידי ציון מאפיינים ישירות, משתמשים בפקודה gcloud compute reservations create עם הדגלים --require-specific-reservation ו---resource-policies=policy.

gcloud compute reservations create RESERVATION_NAME \
    --machine-type=MACHINE_TYPE \
    --require-specific-reservation \
    --resource-policies=policy=POLICY_NAME \
    --vm-count=NUMBER_OF_INSTANCES \
    --zone=ZONE

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

  • ‫RESERVATION_NAME: שם ההזמנה.

  • ‫MACHINE_TYPE: סוג מכונה נתמך למדיניות למיקום קומפקטי.

  • ‫POLICY_NAME: השם של מדיניות קיימת למיקום קומפקטי.

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

  • ‫ZONE: האזור שבו רוצים לשריין מכונות וירטואליות. אפשר להזמין מכונות Compute רק באזור שבו נמצאת המדיניות למיקום קומפקטי שצוינה.

REST

כדי ליצור מקום שמור לפרויקט יחיד עם מדיניות למיקום קומפקטי על ידי ציון מאפיינים ישירות, שולחים בקשת POST אל ה-method‏ reservations.insert. בגוף הבקשה, כוללים את השדה resourcePolicies ואת השדה specificReservationRequired שמוגדר ל-true.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/reservations

{
  "name": "RESERVATION_NAME",
  "resourcePolicies": {
    "policy" : "projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME"
  },
  "specificReservation": {
    "count": "NUMBER_OF_INSTANCES",
    "instanceProperties": {
      "machineType": "MACHINE_TYPE",
    }
  },
  "specificReservationRequired": true
}

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

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

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

  • ‫RESERVATION_NAME: השם של ההזמנה.

  • ‫REGION: האזור שבו נמצאת מדיניות המיקום הקומפקטי.

  • ‫POLICY_NAME: השם של מדיניות קיימת למיקום קומפקטי.

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

  • ‫MACHINE_TYPE: סוג מכונה נתמך למדיניות למיקום קומפקטי.

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

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

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

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

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

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

  • כדי ליצור תבנית גלובלית או אזורית של הגדרות מכונה שמציינת מדיניות קיימת למיקום קומפקטי, צריך להשתמש ב-CLI של gcloud או ב-API ל-REST.

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

המסוף

  1. נכנסים לדף Instance templates במסוף Google Cloud .

    כניסה לדף Instance templates

  2. לוחצים על יצירת תבנית של הגדרות מכונה. מופיע הדף Create an instance template.

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

  4. בקטע Machine configuration, מציינים סדרת מכונות וסוג של מכונה שנתמכים במדיניות למיקום קומפקטי.

  5. בקטע Placement policy, ברשימה Placement policy בוחרים באפשרות Compact. כשבוחרים באפשרות הזו, מסוףGoogle Cloud יוצר באופן אוטומטי מדיניות למיקום קומפקטי בלי ערך מרחק מקסימלי, שתומכת בעד 22 מכונות.

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

gcloud

כדי ליצור תבנית של הגדרות מכונה שמציינת מדיניות למיקום קומפקטי, משתמשים בפקודה gcloud compute instance-templates create עם הדגלים --maintenance-policy ו---resource-policies.

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

gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
    --machine-type=MACHINE_TYPE \
    --maintenance-policy=MAINTENANCE_POLICY \
    --resource-policies=POLICY_NAME

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

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

  • ‫MACHINE_TYPE: סוג מכונה נתמך למדיניות למיקום קומפקטי.

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

  • ‫POLICY_NAME: השם של מדיניות קיימת למיקום קומפקטי.

REST

כדי ליצור תבנית של הגדרות מכונה שמציינת מדיניות למיקום קומפקטי, שולחים בקשת POST לאחת מה-methods הבאות:

בגוף הבקשה, כוללים את השדות onHostMaintenance ו-resourcePolicies.

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

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/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"
      }
    ],
    "resourcePolicies": [
      "POLICY_NAME"
    ],
    "scheduling": {
      "onHostMaintenance": "MAINTENANCE_POLICY"
    }
  }
}

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

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

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

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

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

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

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

  • ‫MACHINE_TYPE: סוג מכונה נתמך למדיניות למיקום קומפקטי.

  • ‫POLICY_NAME: השם של מדיניות קיימת למיקום קומפקטי.

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

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

החלת המדיניות על מופעים ב-MIG

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

החלת המדיניות במהלך יצירת קבוצת MIG

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

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

gcloud

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

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

gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \
    --size=SIZE \
    --template=INSTANCE_TEMPLATE_NAME \
    --zone=ZONE

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

  • ‫INSTANCE_GROUP_NAME: השם של קבוצת ה-MIG שרוצים ליצור.

  • ‫SIZE: הגודל של ה-MIG.

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

  • ‫ZONE: האזור שבו יוצרים את ה-MIG, שחייב להיות באזור שבו נמצאת מדיניות המיקום הקומפקטי.

REST

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

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

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

{
  "name": "INSTANCE_GROUP_NAME",
  "targetSize": SIZE,
  "versions": [
    {
      "instanceTemplate": "global/instanceTemplates/INSTANCE_TEMPLATE_NAME"
    }
  ]
}

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

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

  • ‫ZONE: האזור שבו יוצרים את קבוצת ה-MIG, שחייב להיות באזור שבו נמצאת מדיניות המיקום הקומפקטי.

  • ‫INSTANCE_GROUP_NAME: השם של קבוצת ה-MIG שרוצים ליצור.

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

  • ‫SIZE: הגודל של ה-MIG.

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

החלת המדיניות על קבוצת MIG קיימת

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

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

gcloud

כדי לעדכן קבוצת MIG כך שתשתמש בתבנית של הגדרות מכונה שמציינת מדיניות למיקום קומפקטי, משתמשים בפקודה gcloud compute instance-groups managed rolling-action start-update.

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

gcloud compute instance-groups managed rolling-action start-update MIG_NAME \
    --version=template=INSTANCE_TEMPLATE_NAME \
    --zone=ZONE

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

  • ‫MIG_NAME: השם של קבוצת MIG קיימת.

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

  • ‫ZONE: האזור שבו נמצאת קבוצת ה-MIG. אפשר להחיל את המדיניות למיקום קומפקטי רק על קבוצת MIG שנמצאת באותו אזור של המדיניות למיקום.

REST

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

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

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME

{
  "instanceTemplate": "global/instanceTemplates/INSTANCE_TEMPLATE_NAME"
}

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

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

  • ‫ZONE: האזור שבו נמצאת קבוצת ה-MIG. אפשר להחיל את המדיניות למיקום קומפקטי רק על קבוצת מופעים מנוהלת (MIG) שנמצאת באותו אזור כמו המדיניות למיקום.

  • ‫MIG_NAME: השם של קבוצת MIG קיימת.

  • ‫INSTANCE_TEMPLATE_NAME: השם של תבנית גלובלית קיימת של הגדרות מכונה, שכוללת מדיניות למיקום קומפקטי.

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

מה השלב הבא?