יצירת מספר רב של מכונות וירטואליות שעברו אופטימיזציה באמצעות AI עם A3 High או A3 Mega

במאמר הזה נסביר איך ליצור בבת אחת מכונות וירטואליות (VM) שמשתמשות בסוגי מכונות שעברו אופטימיזציה למאיצים מסוג A3 High או A3 Mega. מידע נוסף על סוגי המכונות זמין במאמרים A3 High ו-A3 Mega במסמכי העזרה של Compute Engine.

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

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

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

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

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

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

המסוף

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

gcloud

במסוף Google Cloud , מפעילים את Cloud Shell.

הפעלת Cloud Shell

בחלק התחתון של Google Cloud המסוף יתחיל סשן של Cloud Shell ותופיע הודעה של שורת הפקודה. Cloud Shell היא סביבת מעטפת שבה ה-CLI של Google Cloud מותקן ומוגדרים ערכים לפרויקט הקיים. הסשן יופעל תוך כמה שניות.

REST

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

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

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

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

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

כדי לקבל את ההרשאות שנדרשות ליצירת מכונות וירטואליות בכמות גדולה, צריך לבקש מהאדמין להקצות לכם ב-IAM את התפקיד אדמין מכונות של Compute ‏ (v1) (roles/compute.instanceAdmin.v1) בפרויקט. כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.

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

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

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

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

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

סקירה כללית

יצירת מספר רב של מופעים באמצעות סוג המכונה a3h או a3m כוללת את השלבים הבאים:

  1. יצירת רשתות VPC
  2. אופציונלי: יצירת מדיניות למיקום קומפקטי
  3. יצירת מכונות בכמות גדולה

יצירת רשתות VPC

כדי לאפשר תקשורת יעילה בין מכונות וירטואליות של GPU, צריך ליצור רשת ניהול ורשת נתונים אחת או יותר. הרשת לניהול משמשת לגישה חיצונית, למשל SSH, ולרוב התקשורת הכללית ברשת. רשתות הנתונים משמשות לתקשורת עם ביצועים גבוהים בין מעבדי ה-GPU במכונות וירטואליות שונות, למשל לתנועה של Remote Direct Memory Access ‏ (RDMA).

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

יצירת רשת ניהול, רשת משנה וכלל לחומת האש

כדי להגדיר את רשת הניהול:

  1. יוצרים את רשת הניהול באמצעות הפקודה networks create:

    gcloud compute networks create NETWORK_NAME_PREFIX-mgmt-net \
        --project=PROJECT_ID \
        --subnet-mode=custom \
        --mtu=8244
    
  2. יוצרים את רשת המשנה לניהול באמצעות הפקודה networks subnets create:

    gcloud compute networks subnets create NETWORK_NAME_PREFIX-mgmt-sub \
        --project=PROJECT_ID \
        --network=NETWORK_NAME_PREFIX-mgmt-net \
        --region=REGION \
        --range=192.168.0.0/24
    
  3. יוצרים כללים לחומת האש באמצעות הפקודה firewall-rules create.

    1. יוצרים כלל לחומת האש עבור רשת הניהול.

      gcloud compute firewall-rules create NETWORK_NAME_PREFIX-mgmt-internal \
          --project=PROJECT_ID \
          --network=NETWORK_NAME_PREFIX-mgmt-net \
          --action=ALLOW \
          --rules=tcp:0-65535,udp:0-65535,icmp \
          --source-ranges=192.168.0.0/16
      
    2. יוצרים את כלל חומת האש tcp:22 כדי להגביל את כתובות ה-IP של המקור שיכולות להתחבר למכונה הווירטואלית באמצעות SSH.

      gcloud compute firewall-rules create NETWORK_NAME_PREFIX-mgmt-external-ssh \
          --project=PROJECT_ID \
          --network=NETWORK_NAME_PREFIX-mgmt-net \
          --action=ALLOW \
          --rules=tcp:22 \
          --source-ranges=SSH_SOURCE_IP_RANGE
      
    3. יוצרים את כלל חומת האש icmp שאפשר להשתמש בו כדי לבדוק בעיות בהעברת נתונים ברשת.

      gcloud compute firewall-rules create NETWORK_NAME_PREFIX-mgmt-external-ping \
          --project=PROJECT_ID \
          --network=NETWORK_NAME_PREFIX-mgmt-net \
          --action=ALLOW \
          --rules=icmp \
          --source-ranges=0.0.0.0/0
      

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

  • NETWORK_NAME_PREFIX: תחילית השם שתשמש לרשתות ולרשתות המשנה של ה-VPC.
  • PROJECT_ID : מזהה הפרויקט.
  • REGION: האזור שבו רוצים ליצור את הרשתות.
  • SSH_SOURCE_IP_RANGE: טווח כתובות IP בפורמט CIDR. ההגדרה הזו מציינת אילו כתובות IP של מקור יכולות להתחבר למכונה הווירטואלית באמצעות SSH.

יצירת רשתות נתונים, רשתות משנה וכלל לחומת האש

מספר רשתות הנתונים משתנה בהתאם לסוג מכונת ה-GPU שאתם יוצרים.

A3 Mega

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

for N in $(seq 1 8); do
gcloud compute networks create NETWORK_NAME_PREFIX-data-net-$N \
    --project=PROJECT_ID \
    --subnet-mode=custom \
    --mtu=8244

gcloud compute networks subnets create NETWORK_NAME_PREFIX-data-sub-$N \
    --project=PROJECT_ID \
    --network=NETWORK_NAME_PREFIX-data-net-$N \
    --region=REGION \
    --range=192.168.$N.0/24

gcloud compute firewall-rules create NETWORK_NAME_PREFIX-data-internal-$N \
    --project=PROJECT_ID \
    --network=NETWORK_NAME_PREFIX-data-net-$N \
    --action=ALLOW \
    --rules=tcp:0-65535,udp:0-65535,icmp \
    --source-ranges=192.168.0.0/16
done

A3 High

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

for N in $(seq 1 4); do
gcloud compute networks create NETWORK_NAME_PREFIX-data-net-$N \
    --project=PROJECT_ID \
    --subnet-mode=custom \
    --mtu=8244

gcloud compute networks subnets create NETWORK_NAME_PREFIX-data-sub-$N \
    --project=PROJECT_ID \
    --network=NETWORK_NAME_PREFIX-data-net-$N \
    --region=REGION \
    --range=192.168.$N.0/24

gcloud compute firewall-rules create NETWORK_NAME_PREFIX-data-internal-$N \
    --project=PROJECT_ID \
    --network=NETWORK_NAME_PREFIX-data-net-$N \
    --action=ALLOW \
    --rules=tcp:0-65535,udp:0-65535,icmp \
    --source-ranges=192.168.0.0/16
done

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

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

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

gcloud

כדי ליצור מדיניות למיקום קומפקטי, משתמשים בפקודה gcloud beta compute resource-policies create group-placement:

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

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

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

REST

כדי ליצור מדיניות מיקום קומפקטית, שולחים בקשת POST אל ה-method‏ 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: מזהה הפרויקט.
  • POLICY_NAME: השם של מדיניות המיקום הקומפקטי.
  • MAX_DISTANCE: הגדרת המרחק המקסימלי של המכונות הווירטואליות. הערך צריך להיות 3 כדי למקם מכונות וירטואליות בבלוקים סמוכים, או 2 כדי למקם מכונות וירטואליות באותו בלוק. מידע על המספר המקסימלי של מכונות וירטואליות שנתמכות בכל maxDistance לכל סדרת מכונות זמין במאמר מידע על מדיניות מיקום קומפקטי במסמכי Compute Engine.
  • REGION: האזור שבו רוצים ליצור את מדיניות המיקום הקומפקטי. מציינים אזור שבו זמין סוג המכונה שרוצים להשתמש בו. מידע על אזורים זמין במאמר זמינות של GPU לפי אזורים ותחומים.

יצירה בכמות גדולה של מכונות וירטואליות (VM) מסוג A3 High או A3 Mega

כדי ליצור מכונות וירטואליות מסוג A3 High או A3 Mega בכמות גדולה, אפשר להשתמש באחת מהשיטות הבאות.

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

gcloud

כדי ליצור מכונה וירטואלית (VM) מסוג A3 High או A3 Mega, משתמשים בפקודה gcloud compute instances bulk create.

A3 Mega

כדי ליצור כמות גדולה של מכונות מסוג a3h או a3m, משתמשים בפקודה gcloud compute instances bulk create.

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

הזמנה בלבד

לפני שמריצים את הפקודה, אפשר להוסיף את הדגל של מדיניות למיקום קומפקטי.

gcloud compute instances bulk create \
    --name-pattern=NAME_PATTERN \
    --count=COUNT \
     --machine-type=MACHINE_TYPE \
    --image-family=IMAGE_FAMILY \
    --image-project=IMAGE_PROJECT \
    --region=REGION \
    --boot-disk-type=DISK_TYPE \
    --boot-disk-size=DISK_SIZE \
    --scopes=cloud-platform \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-0,subnet=GVNIC_NAME_PREFIX-sub-0 \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-1,subnet=GVNIC_NAME_PREFIX-sub-1,no-address 
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-2,subnet=GVNIC_NAME_PREFIX-sub-2,no-address \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-3,subnet=GVNIC_NAME_PREFIX-sub-3,no-address \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-4,subnet=GVNIC_NAME_PREFIX-sub-4,no-address \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-5,subnet=GVNIC_NAME_PREFIX-sub-5,no-address \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-6,subnet=GVNIC_NAME_PREFIX-sub-6,no-address \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-7,subnet=GVNIC_NAME_PREFIX-sub-7,no-address \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-8,subnet=GVNIC_NAME_PREFIX-sub-8,no-address \
    --reservation-affinity=specific \
    --reservation=RESERVATION \
    --provisioning-model=RESERVATION_BOUND \
    --instance-termination-action=TERMINATION_ACTION \
    --maintenance-policy=TERMINATE \
    --restart-on-failure

כך עושים את זה:

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

    • NAME_PATTERN: תבנית השם לשימוש במופעי a3h או a3m. לדוגמה, שימוש ב-instance-# בתבנית השם יוצר מופעים של a3h-or-a3m עם שמות כמו instance-1 ו-instance-2, עד למספר המופעים של a3h-or-a3m שצוין על ידי --count.
    • COUNT: מספר המופעים מסוג a3h או a3m שרוצים ליצור.
    • MACHINE_TYPE: סוג המכונה שבה רוצים להשתמש עבור מופע a3h או a3m. מציינים את סוג המכונה A4 או A3 Ultra. מידע נוסף זמין במאמר בנושא סוגי מכונות GPU.
    • IMAGE_FAMILY: משפחת התמונות של תמונת מערכת ההפעלה שרוצים להשתמש בה. בסדרת מכונות A3 Mega, מומלץ מאוד להשתמש בתמונת מערכת הפעלה שמותאמת לקונטיינרים בגרסה cos-121-lts ואילך ולהשבית את העדכונים האוטומטיים, או להשתמש בתמונת Rocky Linux בגרסה rocky-linux-8-optimized-gcp-nvidia-580. רשימה של מערכות הפעלה נתמכות מופיעה במאמר מערכות הפעלה נתמכות.
    • IMAGE_PROJECT: מזהה הפרויקט של תמונת מערכת ההפעלה. לדוגמה, אפשר להשתמש ב-cos-cloud עבור קובץ האימג' של מערכת ההפעלה שמותאמת לקונטיינרים בגרסה cos-121-lts ואילך, או להשתמש ב-rocky-linux-accelerator-cloud עבור קובץ האימג' של Rocky Linux בגרסה rocky-linux-8-optimized-gcp-nvidia-580.
    • REGION: מציינים אזור שבו סוג המכונה שרוצים להשתמש בו זמין. אם רוצים לציין מדיניות למיקום קומפקטי, צריך להשתמש באותו אזור כמו המדיניות למיקום קומפקטי. מידע על אזורים זמין במאמר זמינות של GPU לפי אזורים ותחומים.
    • DISK_TYPE: סוג דיסק האתחול. מומלץ להשתמש ב-hyperdisk-balanced.
    • DISK_SIZE: גודל דיסק האתחול ב-GB.
    • GVNIC_NAME_PREFIX: תחילית השם שציינתם כש יצרתם את רשתות ה-VPC ותת-הרשתות הרגילות שמשתמשות בכרטיסי gVNIC NIC.
    • RESERVATION: שם ההזמנה או בלוק ספציפי בהזמנה. כדי לראות את שם ההזמנה או את הבלוקים הזמינים, אפשר לעיין במאמר איך רואים את הקיבולת שהוזמנה. בהתאם לדרישה שלכם לגבי מיקום המופע, בוחרים באחת מהאפשרויות הבאות:
      • כדי ליצור מכונות וירטואליות בכמה בלוקים או בבלוק אחד:

        projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME

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

      • כדי ליצור מופעים בבלוק ספציפי:

        projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME/reservationBlocks/RESERVATION_BLOCK_NAME
    • TERMINATION_ACTION: האם Compute Engine מפסיק (STOP) או מוחק (DELETE) את מכונת a3h או a3m בסוף תקופת שמירת המקום.

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

      --resource-policies=POLICY_NAME
    

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

    • POLICY_NAME: השם של מדיניות המיקום הקומפקטי.
  3. מריצים את הפקודה.

כרטיס Spot

לפני שמריצים את הפקודה, אפשר להוסיף את הדגל של מדיניות למיקום קומפקטי.

gcloud compute instances bulk create \
    --name-pattern=NAME_PATTERN \
    --count=COUNT \
     --machine-type=MACHINE_TYPE \
    --image-family=IMAGE_FAMILY \
    --image-project=IMAGE_PROJECT \
    --region=REGION \
    --boot-disk-type=DISK_TYPE \
    --boot-disk-size=DISK_SIZE \
    --scopes=cloud-platform \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-0,subnet=GVNIC_NAME_PREFIX-sub-0 \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-1,subnet=GVNIC_NAME_PREFIX-sub-1,no-address 
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-2,subnet=GVNIC_NAME_PREFIX-sub-2,no-address \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-3,subnet=GVNIC_NAME_PREFIX-sub-3,no-address \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-4,subnet=GVNIC_NAME_PREFIX-sub-4,no-address \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-5,subnet=GVNIC_NAME_PREFIX-sub-5,no-address \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-6,subnet=GVNIC_NAME_PREFIX-sub-6,no-address \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-7,subnet=GVNIC_NAME_PREFIX-sub-7,no-address \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-8,subnet=GVNIC_NAME_PREFIX-sub-8,no-address \
    --provisioning-model=SPOT \
    --instance-termination-action=TERMINATION_ACTION \
    --maintenance-policy=TERMINATE \
    --no-restart-on-failure

כך עושים את זה:

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

    • NAME_PATTERN: תבנית השם לשימוש במופעי a3h או a3m. לדוגמה, שימוש ב-instance-# בתבנית השם יוצר מופעים של a3h-or-a3m עם שמות כמו instance-1 ו-instance-2, עד למספר המופעים של a3h-or-a3m שצוין על ידי --count.
    • COUNT: מספר המופעים מסוג a3h או a3m שרוצים ליצור.
    • MACHINE_TYPE: סוג המכונה שבה רוצים להשתמש עבור מופע a3h או a3m. מציינים את סוג המכונה A4 או A3 Ultra. מידע נוסף זמין במאמר בנושא סוגי מכונות GPU.
    • IMAGE_FAMILY: משפחת התמונות של תמונת מערכת ההפעלה שרוצים להשתמש בה. בסדרת מכונות A3 Mega, מומלץ מאוד להשתמש בתמונת מערכת הפעלה שמותאמת לקונטיינרים בגרסה cos-121-lts ואילך ולהשבית את העדכונים האוטומטיים, או להשתמש בתמונת Rocky Linux בגרסה rocky-linux-8-optimized-gcp-nvidia-580. רשימה של מערכות הפעלה נתמכות מופיעה במאמר מערכות הפעלה נתמכות.
    • IMAGE_PROJECT: מזהה הפרויקט של תמונת מערכת ההפעלה. לדוגמה, אפשר להשתמש ב-cos-cloud עבור קובץ האימג' של מערכת ההפעלה שמותאמת לקונטיינרים בגרסה cos-121-lts ואילך, או להשתמש ב-rocky-linux-accelerator-cloud עבור קובץ האימג' של Rocky Linux בגרסה rocky-linux-8-optimized-gcp-nvidia-580.
    • REGION: מציינים אזור שבו סוג המכונה שרוצים להשתמש בו זמין. אם רוצים לציין מדיניות למיקום קומפקטי, צריך להשתמש באותו אזור כמו המדיניות למיקום קומפקטי. מידע על אזורים זמין במאמר זמינות של GPU לפי אזורים ותחומים.
    • DISK_TYPE: סוג דיסק האתחול. מומלץ להשתמש ב-hyperdisk-balanced.
    • DISK_SIZE: גודל דיסק האתחול ב-GB.
    • GVNIC_NAME_PREFIX: תחילית השם שציינתם כש יצרתם את רשתות ה-VPC ותת-הרשתות הרגילות שמשתמשות בכרטיסי gVNIC NIC.
    • TERMINATION_ACTION: הפעולה שתתבצע כש-Compute Engine יבצע דחיקה של המכונה, האפשרויות הן STOP (ברירת מחדל) או DELETE.

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

      --resource-policies=POLICY_NAME
    

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

    • POLICY_NAME: השם של מדיניות המיקום הקומפקטי.
  3. מריצים את הפקודה.

A3 High

כדי ליצור כמות גדולה של מכונות מסוג a3h או a3m, משתמשים בפקודה gcloud compute instances bulk create.

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

הזמנה בלבד

לפני שמריצים את הפקודה, אפשר להוסיף את הדגל של מדיניות למיקום קומפקטי.

gcloud compute instances bulk create \
    --name-pattern=NAME_PATTERN \
    --count=COUNT \
     --machine-type=MACHINE_TYPE \
    --image-family=IMAGE_FAMILY \
    --image-project=IMAGE_PROJECT \
    --region=REGION \
    --boot-disk-type=DISK_TYPE \
    --boot-disk-size=DISK_SIZE \
    --scopes=cloud-platform \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-0,subnet=GVNIC_NAME_PREFIX-sub-0 \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-1,subnet=GVNIC_NAME_PREFIX-sub-1,no-address 
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-2,subnet=GVNIC_NAME_PREFIX-sub-2,no-address \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-3,subnet=GVNIC_NAME_PREFIX-sub-3,no-address \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-4,subnet=GVNIC_NAME_PREFIX-sub-4,no-address \
    --reservation-affinity=specific \
    --reservation=RESERVATION \
    --provisioning-model=RESERVATION_BOUND \
    --instance-termination-action=TERMINATION_ACTION \
    --maintenance-policy=TERMINATE \
    --restart-on-failure

כך עושים את זה:

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

    • NAME_PATTERN: תבנית השם לשימוש במופעי a3h או a3m. לדוגמה, שימוש ב-instance-# בתבנית השם יוצר מופעים של a3h-or-a3m עם שמות כמו instance-1 ו-instance-2, עד למספר המופעים של a3h-or-a3m שצוין על ידי --count.
    • COUNT: מספר המופעים מסוג a3h או a3m שרוצים ליצור.
    • MACHINE_TYPE: סוג המכונה שבה רוצים להשתמש עבור מופע a3h או a3m. מציינים את סוג המכונה A4 או A3 Ultra. מידע נוסף זמין במאמר בנושא סוגי מכונות GPU.
    • IMAGE_FAMILY: משפחת התמונות של תמונת מערכת ההפעלה שרוצים להשתמש בה. בסדרת המכונות A3 High, מומלץ מאוד להשתמש בקובץ אימג' של מערכת הפעלה שמותאמת לקונטיינרים בגרסה cos-121-lts ואילך, ולהשבית את העדכונים האוטומטיים. רשימה של מערכות הפעלה נתמכות מופיעה במאמר מערכות הפעלה נתמכות.
    • IMAGE_PROJECT: מזהה הפרויקט של תמונת מערכת ההפעלה. לדוגמה, אפשר להשתמש ב-cos-cloud עבור קובץ האימג' של מערכת הפעלה שמותאמת לקונטיינרים בגרסה cos-121-lts ואילך.
    • REGION: מציינים אזור שבו סוג המכונה שרוצים להשתמש בו זמין. אם רוצים לציין מדיניות למיקום קומפקטי, צריך להשתמש באותו אזור כמו המדיניות למיקום קומפקטי. מידע על אזורים זמין במאמר זמינות של GPU לפי אזורים ותחומים.
    • DISK_TYPE: סוג דיסק האתחול. מומלץ להשתמש ב-hyperdisk-balanced.
    • DISK_SIZE: גודל דיסק האתחול ב-GB.
    • GVNIC_NAME_PREFIX: תחילית השם שציינתם כש יצרתם את רשתות ה-VPC ותת-הרשתות הרגילות שמשתמשות בכרטיסי gVNIC NIC.
    • RESERVATION: שם ההזמנה או בלוק ספציפי בהזמנה. כדי לראות את שם ההזמנה או את הבלוקים הזמינים, אפשר לעיין במאמר איך רואים את הקיבולת שהוזמנה. בהתאם לדרישה שלכם לגבי מיקום המופע, בוחרים באחת מהאפשרויות הבאות:
      • כדי ליצור מכונות וירטואליות בכמה בלוקים או בבלוק אחד:

        projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME

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

      • כדי ליצור מופעים בבלוק ספציפי:

        projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME/reservationBlocks/RESERVATION_BLOCK_NAME
    • TERMINATION_ACTION: האם Compute Engine מפסיק (STOP) או מוחק (DELETE) את מכונת a3h או a3m בסוף תקופת שמירת המקום.

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

      --resource-policies=POLICY_NAME
    

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

    • POLICY_NAME: השם של מדיניות המיקום הקומפקטי.
  3. מריצים את הפקודה.

כרטיס Spot

לפני שמריצים את הפקודה, אפשר להוסיף את הדגל של מדיניות למיקום קומפקטי.

gcloud compute instances bulk create \
    --name-pattern=NAME_PATTERN \
    --count=COUNT \
     --machine-type=MACHINE_TYPE \
    --image-family=IMAGE_FAMILY \
    --image-project=IMAGE_PROJECT \
    --region=REGION \
    --boot-disk-type=DISK_TYPE \
    --boot-disk-size=DISK_SIZE \
    --scopes=cloud-platform \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-0,subnet=GVNIC_NAME_PREFIX-sub-0 \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-1,subnet=GVNIC_NAME_PREFIX-sub-1,no-address 
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-2,subnet=GVNIC_NAME_PREFIX-sub-2,no-address \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-3,subnet=GVNIC_NAME_PREFIX-sub-3,no-address \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-4,subnet=GVNIC_NAME_PREFIX-sub-4,no-address \
    --provisioning-model=SPOT \
    --instance-termination-action=TERMINATION_ACTION \
    --maintenance-policy=TERMINATE \
    --no-restart-on-failure

כך עושים את זה:

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

    • NAME_PATTERN: תבנית השם לשימוש במופעי a3h או a3m. לדוגמה, שימוש ב-instance-# בתבנית השם יוצר מופעים של a3h-or-a3m עם שמות כמו instance-1 ו-instance-2, עד למספר המופעים של a3h-or-a3m שצוין על ידי --count.
    • COUNT: מספר המופעים מסוג a3h או a3m שרוצים ליצור.
    • MACHINE_TYPE: סוג המכונה שבה רוצים להשתמש עבור מופע a3h או a3m. מציינים את סוג המכונה A4 או A3 Ultra. מידע נוסף זמין במאמר בנושא סוגי מכונות GPU.
    • IMAGE_FAMILY: משפחת התמונות של תמונת מערכת ההפעלה שרוצים להשתמש בה. בסדרת המכונות A3 High, מומלץ מאוד להשתמש בקובץ אימג' של מערכת הפעלה שמותאמת לקונטיינרים בגרסה cos-121-lts ואילך, ולהשבית את העדכונים האוטומטיים. רשימה של מערכות הפעלה נתמכות מופיעה במאמר מערכות הפעלה נתמכות.
    • IMAGE_PROJECT: מזהה הפרויקט של תמונת מערכת ההפעלה. לדוגמה, אפשר להשתמש ב-cos-cloud עבור קובץ האימג' של מערכת הפעלה שמותאמת לקונטיינרים בגרסה cos-121-lts ואילך.
    • REGION: מציינים אזור שבו סוג המכונה שרוצים להשתמש בו זמין. אם רוצים לציין מדיניות למיקום קומפקטי, צריך להשתמש באותו אזור כמו המדיניות למיקום קומפקטי. מידע על אזורים זמין במאמר זמינות של GPU לפי אזורים ותחומים.
    • DISK_TYPE: סוג דיסק האתחול. מומלץ להשתמש ב-hyperdisk-balanced.
    • DISK_SIZE: גודל דיסק האתחול ב-GB.
    • GVNIC_NAME_PREFIX: תחילית השם שציינתם כש יצרתם את רשתות ה-VPC ותת-הרשתות הרגילות שמשתמשות בכרטיסי gVNIC NIC.
    • TERMINATION_ACTION: הפעולה שתתבצע כש-Compute Engine יבצע דחיקה של המכונה, האפשרויות הן STOP (ברירת מחדל) או DELETE.

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

      --resource-policies=POLICY_NAME
    

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

    • POLICY_NAME: השם של מדיניות המיקום הקומפקטי.
  3. מריצים את הפקודה.

REST

כדי ליצור מכונה וירטואלית מסוג A3 High או A3 Mega, משתמשים ב-method‏ instances.bulkInsert.

A3 Mega

כדי ליצור כמות גדולה של מכונות מסוג a3h או a3m, שולחים בקשת POST אל ה-method‏ instances.bulkInsert.

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

הזמנה בלבד

לפני ששולחים את הבקשה, אפשר להוסיף לגוף הבקשה את שדה המשנה instanceProperties של מדיניות מיקום קומפקטית.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/bulkInsert
{
  "namePattern":"NAME_PATTERN",
  "count":"COUNT",
  "instanceProperties":{
    "machineType":"MACHINE_TYPE",
    "disks":[
      {
        "boot":true,
        "initializeParams":{
          "diskSizeGb":"DISK_SIZE",
          "diskType":"DISK_TYPE",
          "sourceImage":"projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
        },
        "mode":"READ_WRITE",
        "type":"PERSISTENT"
      }
    ],
    "serviceAccounts": [
      {
        "email": "default",
        "scopes": [
          "https://www.googleapis.com/auth/cloud-platform"
        ]
      }
    ],
    "networkInterfaces": [
      {
        "accessConfigs": [
          {
            "name": "external-nat",
            "type": "ONE_TO_ONE_NAT"
          }
        ],
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-0",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-0"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-1",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-1"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-2",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-2"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-3",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-3"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-4",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-4"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-5",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-5"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-6",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-6"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-7",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-7"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-8",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-8"
      },
    "reservationAffinity":{
        "consumeReservationType":"SPECIFIC_RESERVATION",
        "key":"compute.googleapis.com/reservation-name",
        "values":[
          "RESERVATION"
        ]
      },
    "scheduling":{
        "provisioningModel":"RESERVATION_BOUND",
        "instanceTerminationAction":"DELETE",
        "onHostMaintenance": "TERMINATE",
        "automaticRestart":true
      }
  }
}

כך עושים את זה:

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

    • PROJECT_ID: מזהה הפרויקט שבו רוצים ליצור את מופע a3h או a3m.
    • ZONE: מציינים אזור שבו סוג המכונה שרוצים להשתמש בו זמין. אם רוצים לציין מדיניות למיקום קומפקטי, צריך להשתמש באזור שנמצא באותו אזור כמו המדיניות למיקום קומפקטי. מידע על אזורים זמין במאמר זמינות של GPU לפי אזורים ותחומים.
    • NAME_PATTERN: תבנית השם לשימוש במופעי a3h או a3m. לדוגמה, שימוש ב-instance-# בתבנית השם יוצר מופעים של a3h-or-a3m עם שמות כמו instance-1 ו-instance-2, עד למספר המופעים של a3h-or-a3m שצוין על ידי --count.
    • COUNT: מספר המופעים מסוג a3h או a3m שרוצים ליצור.
    • MACHINE_TYPE: סוג המכונה שרוצים להשתמש בה עבור מופע a3h או a3m. מציינים את סוג המכונה A4 או A3 Ultra. מידע נוסף זמין במאמר בנושא סוגי מכונות GPU.
    • VM_NAME: שם ה-VM.
    • DISK_SIZE: גודל דיסק האתחול ב-GB.
    • DISK_TYPE: סוג דיסק האתחול. מומלץ להשתמש ב-hyperdisk-balanced.
    • IMAGE_PROJECT: מזהה הפרויקט של תמונת מערכת ההפעלה. לדוגמה, אפשר להשתמש ב-cos-cloud עבור קובץ האימג' של מערכת ההפעלה שמותאמת לקונטיינרים cos-121-lts ואילך, או להשתמש ב-rocky-linux-accelerator-cloud עבור קובץ האימג' של Rocky Linux rocky-linux-8-optimized-gcp-nvidia-580.
    • IMAGE_FAMILY: משפחת התמונות של תמונת מערכת ההפעלה שרוצים להשתמש בה. בסדרת מכונות A3 Mega, מומלץ מאוד להשתמש בתמונת מערכת הפעלה שמותאמת לקונטיינרים בגרסה cos-121-lts ואילך ולהשבית את העדכונים האוטומטיים, או להשתמש בתמונת Rocky Linux בגרסה rocky-linux-8-optimized-gcp-nvidia-580. רשימה של מערכות הפעלה נתמכות מופיעה במאמר מערכות הפעלה נתמכות.
    • NETWORK_PROJECT_ID: מזהה הפרויקט של הרשת.
    • GVNIC_NAME_PREFIX: תחילית השם שציינתם כש יצרתם את רשתות ה-VPC ותת-הרשתות הרגילות שמשתמשות בכרטיסי gVNIC NIC.
    • REGION: האזור של רשת המשנה.
    • RESERVATION: שם ההזמנה או בלוק ספציפי בהזמנה. כדי לראות את שם ההזמנה או את הבלוקים הזמינים, אפשר לעיין במאמר איך רואים את הקיבולת שהוזמנה. בהתאם לדרישה שלכם לגבי מיקום המופע, בוחרים באחת מהאפשרויות הבאות:
      • כדי ליצור מכונות וירטואליות בכמה בלוקים או בבלוק אחד:

        projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME

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

      • כדי ליצור מופעים בבלוק ספציפי:

        projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME/reservationBlocks/RESERVATION_BLOCK_NAME
    • TERMINATION_ACTION: האם Compute Engine מפסיק (STOP) או מוחק (DELETE) את מכונת a3h או a3m בסוף תקופת שמירת המקום.

  2. אופציונלי: אם בחרתם להשתמש במדיניות מיקום קומפקטית, מוסיפים את שדה המשנה instanceProperties הבא לגוף הבקשה:

        "resourcePolicies": [
          "projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME"
        ]
    

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

    • PROJECT_ID: מזהה הפרויקט של מדיניות המיקום הקומפקטית.
    • REGION: האזור של מדיניות המיקום הקומפקטי.
    • POLICY_NAME: השם של מדיניות המיקום הקומפקטי.
  3. שולחים את הבקשה.

כרטיס Spot

לפני ששולחים את הבקשה, אפשר להוסיף לגוף הבקשה את שדה המשנה instanceProperties של מדיניות מיקום קומפקטית.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/bulkInsert
{
  "namePattern":"NAME_PATTERN",
  "count":"COUNT",
  "instanceProperties":{
    "machineType":"MACHINE_TYPE",
    "disks":[
      {
        "boot":true,
        "initializeParams":{
          "diskSizeGb":"DISK_SIZE",
          "diskType":"DISK_TYPE",
          "sourceImage":"projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
        },
        "mode":"READ_WRITE",
        "type":"PERSISTENT"
      }
    ],
    "serviceAccounts": [
      {
        "email": "default",
        "scopes": [
          "https://www.googleapis.com/auth/cloud-platform"
        ]
      }
    ],
    "networkInterfaces": [
      {
        "accessConfigs": [
          {
            "name": "external-nat",
            "type": "ONE_TO_ONE_NAT"
          }
        ],
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-0",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-0"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-1",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-1"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-2",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-2"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-3",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-3"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-4",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-4"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-5",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-5"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-6",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-6"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-7",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-7"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-8",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-8"
      },
    "scheduling":
    {
      "provisioningModel": "SPOT",
      "instanceTerminationAction": "TERMINATION_ACTION",
      "onHostMaintenance": "TERMINATE",
      "automaticRestart": false
    }
  }
}

כך עושים את זה:

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

    • PROJECT_ID: מזהה הפרויקט שבו רוצים ליצור את מופע a3h או a3m.
    • ZONE: מציינים אזור שבו סוג המכונה שרוצים להשתמש בו זמין. אם רוצים לציין מדיניות למיקום קומפקטי, צריך להשתמש באזור שנמצא באותו אזור כמו המדיניות למיקום קומפקטי. מידע על אזורים זמין במאמר זמינות של GPU לפי אזורים ותחומים.
    • NAME_PATTERN: תבנית השם לשימוש במופעי a3h או a3m. לדוגמה, שימוש ב-instance-# בתבנית השם יוצר מופעים של a3h-or-a3m עם שמות כמו instance-1 ו-instance-2, עד למספר המופעים של a3h-or-a3m שצוין על ידי --count.
    • COUNT: מספר המופעים מסוג a3h או a3m שרוצים ליצור.
    • MACHINE_TYPE: סוג המכונה שרוצים להשתמש בה עבור מופע a3h או a3m. מציינים את סוג המכונה A4 או A3 Ultra. מידע נוסף זמין במאמר בנושא סוגי מכונות GPU.
    • VM_NAME: שם ה-VM.
    • DISK_SIZE: גודל דיסק האתחול ב-GB.
    • DISK_TYPE: סוג דיסק האתחול. מומלץ להשתמש ב-hyperdisk-balanced.
    • IMAGE_PROJECT: מזהה הפרויקט של תמונת מערכת ההפעלה. לדוגמה, אפשר להשתמש ב-cos-cloud עבור קובץ האימג' של מערכת ההפעלה שמותאמת לקונטיינרים cos-121-lts ואילך, או להשתמש ב-rocky-linux-accelerator-cloud עבור קובץ האימג' של Rocky Linux rocky-linux-8-optimized-gcp-nvidia-580.
    • IMAGE_FAMILY: משפחת התמונות של תמונת מערכת ההפעלה שרוצים להשתמש בה. בסדרת מכונות A3 Mega, מומלץ מאוד להשתמש בתמונת מערכת הפעלה שמותאמת לקונטיינרים בגרסה cos-121-lts ואילך ולהשבית את העדכונים האוטומטיים, או להשתמש בתמונת Rocky Linux בגרסה rocky-linux-8-optimized-gcp-nvidia-580. רשימה של מערכות הפעלה נתמכות מופיעה במאמר מערכות הפעלה נתמכות.
    • NETWORK_PROJECT_ID: מזהה הפרויקט של הרשת.
    • GVNIC_NAME_PREFIX: תחילית השם שציינתם כש יצרתם את רשתות ה-VPC ותת-הרשתות הרגילות שמשתמשות בכרטיסי gVNIC NIC.
    • REGION: האזור של רשת המשנה.
    • TERMINATION_ACTION: הפעולה שתתבצע כש-Compute Engine יבצע דחיקה של המכונה, האפשרויות הן STOP (ברירת מחדל) או DELETE.

  2. אופציונלי: אם בחרתם להשתמש במדיניות מיקום קומפקטית, מוסיפים את שדה המשנה instanceProperties הבא לגוף הבקשה:

        "resourcePolicies": [
          "projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME"
        ]
    

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

    • PROJECT_ID: מזהה הפרויקט של מדיניות המיקום הקומפקטית.
    • REGION: האזור של מדיניות המיקום הקומפקטי.
    • POLICY_NAME: השם של מדיניות המיקום הקומפקטי.
  3. שולחים את הבקשה.

A3 High

כדי ליצור כמות גדולה של מכונות מסוג a3h או a3m, שולחים בקשת POST אל ה-method‏ instances.bulkInsert.

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

הזמנה בלבד

לפני ששולחים את הבקשה, אפשר להוסיף לגוף הבקשה את שדה המשנה instanceProperties של מדיניות מיקום קומפקטית.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/bulkInsert
{
  "namePattern":"NAME_PATTERN",
  "count":"COUNT",
  "instanceProperties":{
    "machineType":"MACHINE_TYPE",
    "disks":[
      {
        "boot":true,
        "initializeParams":{
          "diskSizeGb":"DISK_SIZE",
          "diskType":"DISK_TYPE",
          "sourceImage":"projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
        },
        "mode":"READ_WRITE",
        "type":"PERSISTENT"
      }
    ],
    "serviceAccounts": [
      {
        "email": "default",
        "scopes": [
          "https://www.googleapis.com/auth/cloud-platform"
        ]
      }
    ],
    "networkInterfaces": [
      {
        "accessConfigs": [
          {
            "name": "external-nat",
            "type": "ONE_TO_ONE_NAT"
          }
        ],
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-0",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-0"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-1",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-1"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-2",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-2"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-3",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-3"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-4",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-4"
      },
    "reservationAffinity":{
        "consumeReservationType":"SPECIFIC_RESERVATION",
        "key":"compute.googleapis.com/reservation-name",
        "values":[
          "RESERVATION"
        ]
      },
    "scheduling":{
        "provisioningModel":"RESERVATION_BOUND",
        "instanceTerminationAction":"DELETE",
        "onHostMaintenance": "TERMINATE",
        "automaticRestart":true
      }
  }
}

כך עושים את זה:

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

    • PROJECT_ID: מזהה הפרויקט שבו רוצים ליצור את מופע a3h או a3m.
    • ZONE: מציינים אזור שבו סוג המכונה שרוצים להשתמש בו זמין. אם רוצים לציין מדיניות למיקום קומפקטי, צריך להשתמש באזור שנמצא באותו אזור כמו המדיניות למיקום קומפקטי. מידע על אזורים זמין במאמר זמינות של GPU לפי אזורים ותחומים.
    • NAME_PATTERN: תבנית השם לשימוש במופעי a3h או a3m. לדוגמה, שימוש ב-instance-# בתבנית השם יוצר מופעים של a3h-or-a3m עם שמות כמו instance-1 ו-instance-2, עד למספר המופעים של a3h-or-a3m שצוין על ידי --count.
    • COUNT: מספר המופעים מסוג a3h או a3m שרוצים ליצור.
    • MACHINE_TYPE: סוג המכונה שרוצים להשתמש בה עבור מופע a3h או a3m. מציינים את סוג המכונה A4 או A3 Ultra. מידע נוסף זמין במאמר בנושא סוגי מכונות GPU.
    • VM_NAME: שם ה-VM.
    • DISK_SIZE: גודל דיסק האתחול ב-GB.
    • DISK_TYPE: סוג דיסק האתחול. מומלץ להשתמש ב-hyperdisk-balanced.
    • IMAGE_PROJECT: מזהה הפרויקט של תמונת מערכת ההפעלה. לדוגמה, אפשר להשתמש ב-cos-cloud עבור קובץ האימג' של מערכת הפעלה שמותאמת לקונטיינרים בגרסה cos-121-lts ואילך.
    • IMAGE_FAMILY: משפחת התמונות של תמונת מערכת ההפעלה שרוצים להשתמש בה. בסדרת המכונות A3 High, מומלץ מאוד להשתמש בקובץ אימג' של מערכת הפעלה שמותאמת לקונטיינרים בגרסה cos-121-lts ואילך, ולהשבית את העדכונים האוטומטיים. רשימה של מערכות הפעלה נתמכות מופיעה במאמר מערכות הפעלה נתמכות.
    • NETWORK_PROJECT_ID: מזהה הפרויקט של הרשת.
    • GVNIC_NAME_PREFIX: תחילית השם שציינתם כש יצרתם את רשתות ה-VPC ותת-הרשתות הרגילות שמשתמשות בכרטיסי gVNIC NIC.
    • REGION: האזור של רשת המשנה.
    • RESERVATION: שם ההזמנה או בלוק ספציפי בהזמנה. כדי לראות את שם ההזמנה או את הבלוקים הזמינים, אפשר לעיין במאמר איך רואים את הקיבולת שהוזמנה. בהתאם לדרישה שלכם לגבי מיקום המופע, בוחרים באחת מהאפשרויות הבאות:
      • כדי ליצור מכונות וירטואליות בכמה בלוקים או בבלוק אחד:

        projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME

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

      • כדי ליצור מופעים בבלוק ספציפי:

        projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME/reservationBlocks/RESERVATION_BLOCK_NAME
    • TERMINATION_ACTION: האם Compute Engine מפסיק (STOP) או מוחק (DELETE) את מכונת a3h או a3m בסוף תקופת שמירת המקום.

  2. אופציונלי: אם בחרתם להשתמש במדיניות מיקום קומפקטית, מוסיפים את שדה המשנה instanceProperties הבא לגוף הבקשה:

        "resourcePolicies": [
          "projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME"
        ]
    

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

    • PROJECT_ID: מזהה הפרויקט של מדיניות המיקום הקומפקטית.
    • REGION: האזור של מדיניות המיקום הקומפקטי.
    • POLICY_NAME: השם של מדיניות המיקום הקומפקטי.
  3. שולחים את הבקשה.

כרטיס Spot

לפני ששולחים את הבקשה, אפשר להוסיף לגוף הבקשה את שדה המשנה instanceProperties של מדיניות מיקום קומפקטית.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/bulkInsert
{
  "namePattern":"NAME_PATTERN",
  "count":"COUNT",
  "instanceProperties":{
    "machineType":"MACHINE_TYPE",
    "disks":[
      {
        "boot":true,
        "initializeParams":{
          "diskSizeGb":"DISK_SIZE",
          "diskType":"DISK_TYPE",
          "sourceImage":"projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
        },
        "mode":"READ_WRITE",
        "type":"PERSISTENT"
      }
    ],
    "serviceAccounts": [
      {
        "email": "default",
        "scopes": [
          "https://www.googleapis.com/auth/cloud-platform"
        ]
      }
    ],
    "networkInterfaces": [
      {
        "accessConfigs": [
          {
            "name": "external-nat",
            "type": "ONE_TO_ONE_NAT"
          }
        ],
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-0",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-0"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-1",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-1"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-2",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-2"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-3",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-3"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-4",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-4"
      },
    "scheduling":
    {
      "provisioningModel": "SPOT",
      "instanceTerminationAction": "TERMINATION_ACTION",
      "onHostMaintenance": "TERMINATE",
      "automaticRestart": false
    }
  }
}

כך עושים את זה:

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

    • PROJECT_ID: מזהה הפרויקט שבו רוצים ליצור את מופע a3h או a3m.
    • ZONE: מציינים אזור שבו סוג המכונה שרוצים להשתמש בו זמין. אם רוצים לציין מדיניות למיקום קומפקטי, צריך להשתמש באזור שנמצא באותו אזור כמו המדיניות למיקום קומפקטי. מידע על אזורים זמין במאמר זמינות של GPU לפי אזורים ותחומים.
    • NAME_PATTERN: תבנית השם לשימוש במופעי a3h או a3m. לדוגמה, שימוש ב-instance-# בתבנית השם יוצר מופעים של a3h-or-a3m עם שמות כמו instance-1 ו-instance-2, עד למספר המופעים של a3h-or-a3m שצוין על ידי --count.
    • COUNT: מספר המופעים מסוג a3h או a3m שרוצים ליצור.
    • MACHINE_TYPE: סוג המכונה שרוצים להשתמש בה עבור מופע a3h או a3m. מציינים את סוג המכונה A4 או A3 Ultra. מידע נוסף זמין במאמר בנושא סוגי מכונות GPU.
    • VM_NAME: שם ה-VM.
    • DISK_SIZE: גודל דיסק האתחול ב-GB.
    • DISK_TYPE: סוג דיסק האתחול. מומלץ להשתמש ב-hyperdisk-balanced.
    • IMAGE_PROJECT: מזהה הפרויקט של תמונת מערכת ההפעלה. לדוגמה, אפשר להשתמש ב-cos-cloud עבור קובץ האימג' של מערכת הפעלה שמותאמת לקונטיינרים בגרסה cos-121-lts ואילך.
    • IMAGE_FAMILY: משפחת התמונות של תמונת מערכת ההפעלה שרוצים להשתמש בה. בסדרת המכונות A3 High, מומלץ מאוד להשתמש בקובץ אימג' של מערכת הפעלה שמותאמת לקונטיינרים בגרסה cos-121-lts ואילך, ולהשבית את העדכונים האוטומטיים. רשימה של מערכות הפעלה נתמכות מופיעה במאמר מערכות הפעלה נתמכות.
    • NETWORK_PROJECT_ID: מזהה הפרויקט של הרשת.
    • GVNIC_NAME_PREFIX: תחילית השם שציינתם כש יצרתם את רשתות ה-VPC ותת-הרשתות הרגילות שמשתמשות בכרטיסי gVNIC NIC.
    • REGION: האזור של רשת המשנה.
    • TERMINATION_ACTION: הפעולה שתתבצע כש-Compute Engine יבצע דחיקה של המכונה, האפשרויות הן STOP (ברירת מחדל) או DELETE.

  2. אופציונלי: אם בחרתם להשתמש במדיניות מיקום קומפקטית, מוסיפים את שדה המשנה instanceProperties הבא לגוף הבקשה:

        "resourcePolicies": [
          "projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME"
        ]
    

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

    • PROJECT_ID: מזהה הפרויקט של מדיניות המיקום הקומפקטית.
    • REGION: האזור של מדיניות המיקום הקומפקטי.
    • POLICY_NAME: השם של מדיניות המיקום הקומפקטי.
  3. שולחים את הבקשה.

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

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