יצירת מופע A3 Ultra או A4

במאמר הזה מוסבר איך ליצור מכונות A3 Ultra או A4 עם יחידות GPU מצורפות. מידע נוסף על יצירת מכונות Compute Engine עם מעבדי GPU מצורפים זמין במאמר סקירה כללית על יצירת מכונה עם מעבדי GPU מצורפים.

סדרות המכונות A4 ו-A3 Ultra נועדו לאפשר לכם להריץ אשכולות AI/ML בקנה מידה גדול, עם תכונות כמו מיקום ממוקד של עומסי עבודה, אמצעי בקרה מתקדמים לתחזוקת אשכולות ותזמון מודע-טופולוגיה. מידע נוסף מופיע במאמר סקירה כללית על ניהול אשכולות.

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

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

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

    המסוף

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

    gcloud

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

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

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

      התקינו את ה-CLI של Google Cloud ואז היכנסו ל-CLI של gcloud באמצעות הזהות המאוחדת שלכם.

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

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

כדי לקבל את ההרשאות שנדרשות ליצירת מכונות, צריך לבקש מהאדמין להקצות לכם ב-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 בדיסק

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

קובעים איך ליצור מופעי A3 Ultra או A4

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

  1. בחירת אפשרות צריכה: כדי ללמוד איך לבחור אפשרות צריכה למופע A3 Ultra או A4, אפשר לעיין במאמר בחירת אפשרות צריכה במסמכי התיעוד של AI Hypercomputer.

  2. קבלת קיבולת: כדי להבין איך לקבל קיבולת למופעי A3 Ultra או A4 לאפשרות הצריכה שבחרתם, אפשר לעיין במאמר סקירה כללית על קיבולת במסמכי התיעוד של AI Hypercomputer.

  3. הוראות ליצירה: כדי לקבל מידע על כל האפשרויות שבהן אפשר להשתמש כדי ליצור מכונות A3 Ultra או A4, כמו קבוצות של מכונות מנוהלות (MIG) או אשכולות, אפשר לעיין במאמר סקירה כללית על יצירת מכונות וירטואליות ואשכולות במסמכי התיעוד של AI Hypercomputer.

    אם אתם רוצים להשתמש בתכונות לניהול אשכולות של A3 Ultra או A4, או אם אתם לא רוצים ליצור מופעים עצמאיים, אתם צריכים לבחור באפשרות יצירה במסמכי התיעוד של AI Hypercomputer.

יצירת מופע A3 Ultra או A4

כדי ליצור מופע A3 Ultra או A4, מבצעים את השלבים הבאים:

  1. יצירת רשתות VPC

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

  3. יצירת המופע

  4. הכנת המופע לשימוש

יצירת רשתות VPC

כדי להגדיר את הרשת לסוגי מכונות A4 או A3 Ultra, צריך ליצור שלוש רשתות VPC לממשקי הרשת הבאים:

  • ‫2 רשתות VPC רגילות לממשקי הרשת (NIC) של gVNIC. הם משמשים לתקשורת בין מארחים.
  • רשת VPC אחת עם פרופיל רשת RoCE עבור כרטיסי ה-NIC של CX-7. ברשת ה-VPC של RoCE צריכות להיות 8 רשתות משנה, רשת משנה אחת לכל כרטיס רשת CX-7. כרטיסי ה-NIC האלה משתמשים ב-RDMA over Converged Ethernet ‏ (RoCE), שמספק תקשורת עם רוחב פס גבוה וזמן אחזור נמוך, שחיונית לתקשורת בין יחידות GPU.

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

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

מדריכים להוראה

כדי ליצור את הרשתות, אפשר לפעול לפי ההוראות הבאות:

ברשתות VPC האלה, מומלץ להגדיר ערך גדול יותר ליחידת השידור המקסימלית (MTU). עבור סוגי מכונות A4 או A3 Ultra, ה-MTU המומלץ הוא 8896 בייט. כדי לבדוק את הגדרות ה-MTU המומלצות לסוגים אחרים של מכונות GPU, אפשר לעיין במאמר בנושא הגדרות MTU לסוגים של מכונות GPU.

Script

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

ברשתות VPC האלה, מומלץ להגדיר ערך גדול יותר ליחידת השידור המקסימלית (MTU). עבור סוגי מכונות A4 או A3 Ultra, ה-MTU המומלץ הוא 8896 בייט. כדי לבדוק את הגדרות ה-MTU המומלצות לסוגים אחרים של מכונות GPU, אפשר לעיין במאמר בנושא הגדרות MTU לסוגים של מכונות GPU.

  1. משתמשים בסקריפט הבא כדי ליצור רשתות VPC עבור gVNIC ו-CX-7 NIC.

      
        #!/bin/bash
    
        # Create regular VPC networks and subnets for the gVNICs
        for N in $(seq 0 1); do
          gcloud compute networks create GVNIC_NAME_PREFIX-net-$N \
            --subnet-mode=custom \
            --mtu=8896
    
          gcloud compute networks subnets create GVNIC_NAME_PREFIX-sub-$N \
            --network=GVNIC_NAME_PREFIX-net-$N \
            --region=REGION \
            --range=10.$N.0.0/16
    
          gcloud compute firewall-rules create GVNIC_NAME_PREFIX-internal-$N \
            --network=GVNIC_NAME_PREFIX-net-$N \
            --action=ALLOW \
            --rules=tcp:0-65535,udp:0-65535,icmp \
            --source-ranges=10.0.0.0/8
        done
    
        # Create SSH firewall rules
        gcloud compute firewall-rules create GVNIC_NAME_PREFIX-ssh \
          --network=GVNIC_NAME_PREFIX-net-0 \
          --action=ALLOW \
          --rules=tcp:22 \
          --source-ranges=IP_RANGE
    
        # Assumes that an external IP is only created for vNIC 0
        gcloud compute firewall-rules create GVNIC_NAME_PREFIX-allow-ping-net-0 \
          --network=GVNIC_NAME_PREFIX-net-0 \
          --action=ALLOW \
          --rules=icmp \
          --source-ranges=IP_RANGE
    
      
        #!/bin/bash
    
        # List and make sure network profiles exist in the machine type's zone
        gcloud compute network-profiles list --filter "location.name=ZONE"
    
        # Create network for RDMA NICs
        gcloud compute networks create RDMA_NAME_PREFIX-mrdma \
          --network-profile=ZONE-vpc-roce \
          --subnet-mode custom \
          --mtu=8896
    
        # Create subnets
        for N in $(seq 0 7); do
          gcloud compute networks subnets create RDMA_NAME_PREFIX-mrdma-sub-$N \
            --network=RDMA_NAME_PREFIX-mrdma \
            --region=REGION \
            --range=10.$((N+2)).0.0/16 # offset to avoid overlap with gVNICs
        done
    
      

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

    • GVNIC_NAME_PREFIX: התחילית של השם המותאם אישית שמשמשת לרשתות ולתת-רשתות רגילות של VPC עבור gVNIC.
    • RDMA_NAME_PREFIX: תחילית השם המותאמת אישית שבה רוצים להשתמש עבור רשת ה-VPC ותת-הרשתות של RoCE עבור כרטיסי ה-NIC של CX-7.
    • ZONE: מציינים אזור שבו סוג המכונה שרוצים להשתמש בו זמין, למשל us-central1-a. מידע על אזורים זמין במאמר זמינות של GPU לפי אזורים ותחומים.
    • REGION: האזור שבו רוצים ליצור את רשתות המשנה. האזור הזה צריך להתאים לאזור שצוין. לדוגמה, אם האזור הוא us-central1-a, האזור הוא us-central1.
    • IP_RANGE: טווח כתובות ה-IP שבו ייעשה שימוש עבור כללי חומת האש של SSH.
  2. אופציונלי: כדי לוודא שהמשאבים של רשת ה-VPC נוצרו בהצלחה, בודקים את הגדרות הרשת במסוף Cloud de Confiance :
    1. נכנסים לדף VPC networks במסוף Cloud de Confiance .

      מעבר לרשתות VPC

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

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

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

הוראות ליצירת מדיניות למיקום קומפקטי עם ערך מרחק מקסימלי של 3 (למיקום מכונות בבלוקים סמוכים) או 2 (למיקום מכונות בבלוק יחיד) מופיעות במאמר יצירת מדיניות למיקום קומפקטי.

יצירת המופע

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

המסוף

  1. נכנסים לדף Create an instance במסוף Cloud de Confiance .

    כניסה לדף Create an instance

  2. בחלונית Machine configuration (הגדרות המכונה), מבצעים את הפעולות הבאות:

    1. מציינים שם למכונה. מוסכמות למתן שמות למשאבים

    2. בוחרים את האזור והתחום שבהם שריינתם קיבולת.

    3. לוחצים על הכרטיסייה GPUs ומבצעים את השלבים הבאים:

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

        • למופעי A4, בוחרים באפשרות NVIDIA B200.

        • למופעי A3 Ultra, בוחרים באפשרות NVIDIA H200 141GB.

      2. ברשימה Number of GPUs בוחרים באפשרות 8.

  3. בתפריט הניווט, לוחצים על מערכת הפעלה ואחסון. בחלונית OS and storage שמופיעה, מבצעים את הפעולות הבאות:

    1. לוחצים על Change. מופיעה החלונית תצורת דיסק אתחול.

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

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

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

    • בתפריט הניווט, לוחצים על Networking (רשת). בחלונית Networking שמופיעה, מבצעים את הפעולות הבאות:

      1. בקטע Network interfaces (ממשקי רשת), מבצעים את השלבים הבאים:

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

      3. לוחצים על הוספת ממשק רשת. משתמשים באפשרות הזו כדי להוסיף ממשקי רשת שמצורפים לרשתות ה-VPC שיצרתם בקטע הקודם. כשמוסיפים את ממשקי הרשת, חשוב לזכור את הדברים הבאים:

        • לממשק רשת שמשמש לתקשורת בין מארחים, בוחרים רשת VPC רגילה ותת-רשת מהרשימות Network ו-Subnetwork, ומגדירים את הרשימה Network interface card ל-gVNIC.

        • עבור ממשק רשת שמשמש לתקשורת בין GPU ל-GPU, בוחרים את רשת ה-VPC ואת רשת המשנה של RoCE מהרשימות Network (רשת) ו-Subnetwork (רשת משנה), ומגדירים את הרשימה Network interface card (כרטיס רשת) ל-MRDMA עבור ממשקי הרשת האלה.

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

    Flex-start

    1. בקטע Provisioning model, ברשימה VM provisioning model, בוחרים באפשרות Flex-start.
    2. בשדה Enter number of hours מזינים את משך הזמן המקסימלי שבו רוצים שהמכונה הווירטואלית תפעל. הערך צריך להיות בין 0.01 (0.01 שעות, או 36 שניות) לבין 168 (168 שעות, או שבעה ימים).

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

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

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

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

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

    הזמנה בלבד

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

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

    כרטיס Spot

    1. בקטע Provisioning model בוחרים באפשרות Spot מהרשימה VM provisioning model.
    2. אופציונלי: כדי לבחור את פעולת הסיום שמתבצעת כש-Compute Engine מבצעת דחיקה של מכונת ה-VM, מבצעים את השלבים הבאים:

      1. מרחיבים את הקטע VM provisioning model advanced settings.
      2. ברשימה On VM termination בוחרים באחת מהאפשרויות הבאות:
        • כדי לעצור את המכונה הווירטואלית במהלך הפסקת הפעולה לפני הזמן, בוחרים באפשרות Stop (ברירת מחדל).
        • כדי למחוק את המכונה הווירטואלית במהלך ההפסקה לפני הזמן, בוחרים באפשרות מחיקה.
  6. כדי ליצור את המכונה ולהפעיל אותה, לוחצים על Create.

gcloud

כדי ליצור את המכונה הווירטואלית, משתמשים בפקודה gcloud compute instances create.

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

Flex-start

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

gcloud compute instances create INSTANCE_NAME  \
    --machine-type=MACHINE_TYPE \
    --image-family=IMAGE_FAMILY \
    --image-project=IMAGE_PROJECT \
    --zone=ZONE \
    --boot-disk-type=hyperdisk-balanced \
    --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=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-0,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-1,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-2,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-3,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-4,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-5,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-6,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-7,no-address \
    --reservation-affinity=none \
    --provisioning-model=FLEX_START \
    --request-valid-for-duration=REQUEST_VALID_FOR_DURATION \
    --max-run-duration=MAX_RUN_DURATION \
    --instance-termination-action=TERMINATION_ACTION \
    --maintenance-policy=TERMINATE

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

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

    • INSTANCE_NAME: שם ה-VM.
    • MACHINE_TYPE: סוג המכונה שבה רוצים להשתמש עבור המכונה הווירטואלית. מידע נוסף זמין במאמר בנושא סוגי מכונות GPU.
    • IMAGE_FAMILY: משפחת התמונות של תמונת מערכת ההפעלה שרוצים להשתמש בה. רשימה של מערכות הפעלה נתמכות זמינה במאמר פרטים על מערכות הפעלה.
    • IMAGE_PROJECT: מזהה הפרויקט של תמונת מערכת ההפעלה.
    • ZONE: האזור שבו זמין סוג המכונה שרוצים להשתמש בו. כדי לציין מדיניות למיקום קומפקטי, משתמשים באזור באותו אזור כמו המדיניות למיקום קומפקטי. מידע על אזורים זמין במאמר זמינות של GPU לפי אזורים ותחומים.
    • DISK_SIZE: גודל דיסק האתחול ב-GB.
    • GVNIC_NAME_PREFIX: תחילית השם שציינתם כשאתם יוצרים את רשתות ה-VPC הרגילות ואת רשתות המשנה שמשתמשות ב-gVNIC.
    • RDMA_NAME_PREFIX: תחילית השם שציינתם כשייצרתם את רשתות ה-VPC ואת תת-הרשתות שמשתמשות בכרטיסי NIC של RDMA.
    • REQUEST_VALID_FOR_DURATION: משך הזמן שהבקשה ליצירת המכונה הווירטואלית (VM) נשארת בתוקף. הערך צריך להיות בפורמט של מספר הימים, השעות, הדקות או השניות, ואחריו d, h, m ו-s בהתאמה. לדוגמה, מציינים 30m ל-30 דקות או 1h2m3s לשעה, שתי דקות ושלוש שניות.

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

      • עומסי עבודה עם דרישות אזוריות מחמירות: אם עומס העבודה מחייב אתכם ליצור את המכונה הווירטואלית באזור מסוים, צריך לציין משך זמן בין 90 שניות (90s) לשעתיים (2h). משך זמן ארוך יותר מגדיל את הסיכויים לקבלת משאבים.
      • עומסי עבודה ללא דרישות מחמירות לגבי תחום: אם המכונה הווירטואלית יכולה לפעול בכל תחום באזור, צריך לציין משך של אפס שניות (0s). הפעולה הזו מציינת ש-Compute Engine יקצה משאבים רק אם הם זמינים באופן מיידי. אם הבקשה ליצירת מכונה וירטואלית נכשלת כי המשאבים לא זמינים, צריך לנסות שוב את הבקשה באזור אחר.
    • MAX_RUN_DURATION: משך הזמן שבו רוצים שהמכונות הווירטואליות המבוקשות יפעלו. צריך להזין את הערך בפורמט של מספר הימים, השעות, הדקות או השניות, ואחריו את הערכים d, h, m ו-s בהתאמה. הערך צריך להיות בין 10 דקות לשבעה ימים.

    • TERMINATION_ACTION: מציין אם Compute Engine מפסיק (STOP) או מוחק (DELETE) את המכונה הווירטואלית בסוף משך ההפעלה שלה.

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

      --resource-policies=POLICY_NAME
    

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

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

הזמנה בלבד

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

gcloud compute instances create INSTANCE_NAME  \
    --machine-type=MACHINE_TYPE \
    --image-family=IMAGE_FAMILY \
    --image-project=IMAGE_PROJECT \
    --zone=ZONE \
    --boot-disk-type=hyperdisk-balanced \
    --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=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-0,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-1,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-2,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-3,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-4,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-5,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-6,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-7,no-address \
    --reservation-affinity=specific \
    --reservation=RESERVATION \
    --provisioning-model=RESERVATION_BOUND \
    --instance-termination-action=TERMINATION_ACTION \
    --maintenance-policy=TERMINATE \
    --restart-on-failure

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

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

    • INSTANCE_NAME: שם ה-VM.
    • MACHINE_TYPE: סוג המכונה שבה רוצים להשתמש עבור המכונה הווירטואלית. מידע נוסף זמין במאמר בנושא סוגי מכונות GPU.
    • IMAGE_FAMILY: משפחת התמונות של תמונת מערכת ההפעלה שרוצים להשתמש בה. רשימה של מערכות הפעלה נתמכות זמינה במאמר פרטים על מערכות הפעלה.
    • IMAGE_PROJECT: מזהה הפרויקט של תמונת מערכת ההפעלה.
    • ZONE: האזור שבו זמין סוג המכונה שרוצים להשתמש בו. כדי לציין מדיניות למיקום קומפקטי, משתמשים באזור באותו אזור כמו המדיניות למיקום קומפקטי. מידע על אזורים זמין במאמר זמינות של GPU לפי אזורים ותחומים.
    • DISK_SIZE: גודל דיסק האתחול ב-GB.
    • GVNIC_NAME_PREFIX: תחילית השם שציינתם כשאתם יוצרים את רשתות ה-VPC הרגילות ואת רשתות המשנה שמשתמשות ב-gVNIC.
    • RDMA_NAME_PREFIX: תחילית השם שציינתם כשייצרתם את רשתות ה-VPC ואת תת-הרשתות שמשתמשות בכרטיסי NIC של RDMA.
    • 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) את המכונה הווירטואלית בסיום תקופת השמירה.

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

      --resource-policies=POLICY_NAME
    

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

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

כרטיס Spot

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

gcloud compute instances create INSTANCE_NAME  \
    --machine-type=MACHINE_TYPE \
    --image-family=IMAGE_FAMILY \
    --image-project=IMAGE_PROJECT \
    --zone=ZONE \
    --boot-disk-type=hyperdisk-balanced \
    --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=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-0,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-1,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-2,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-3,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-4,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-5,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-6,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-7,no-address \
    --provisioning-model=SPOT \
    --instance-termination-action=TERMINATION_ACTION \
    --maintenance-policy=TERMINATE \
    --no-restart-on-failure

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

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

    • INSTANCE_NAME: שם ה-VM.
    • MACHINE_TYPE: סוג המכונה שבה רוצים להשתמש עבור המכונה הווירטואלית. מידע נוסף זמין במאמר בנושא סוגי מכונות GPU.
    • IMAGE_FAMILY: משפחת התמונות של תמונת מערכת ההפעלה שרוצים להשתמש בה. רשימה של מערכות הפעלה נתמכות זמינה במאמר פרטים על מערכות הפעלה.
    • IMAGE_PROJECT: מזהה הפרויקט של תמונת מערכת ההפעלה.
    • ZONE: האזור שבו זמין סוג המכונה שרוצים להשתמש בו. כדי לציין מדיניות למיקום קומפקטי, משתמשים באזור באותו אזור כמו המדיניות למיקום קומפקטי. מידע על אזורים זמין במאמר זמינות של GPU לפי אזורים ותחומים.
    • DISK_SIZE: גודל דיסק האתחול ב-GB.
    • GVNIC_NAME_PREFIX: תחילית השם שציינתם כשאתם יוצרים את רשתות ה-VPC הרגילות ואת רשתות המשנה שמשתמשות ב-gVNIC.
    • RDMA_NAME_PREFIX: תחילית השם שציינתם כשייצרתם את רשתות ה-VPC ואת תת-הרשתות שמשתמשות בכרטיסי NIC של RDMA.
    • TERMINATION_ACTION: הפעולה שתתבצע כש-Compute Engine יבצע דחיקה של המכונה, האפשרויות הן STOP (ברירת מחדל) או DELETE.

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

      --resource-policies=POLICY_NAME
    

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

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

REST

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

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

Flex-start

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

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
{
  "machineType": "projects/PROJECT_ID/zones/ZONE/machineTypes/MACHINE_TYPE",
  "name": "INSTANCE_NAME",
  "disks":[
    {
      "boot":true,
      "initializeParams":{
        "diskSizeGb": "DISK_SIZE",
        "diskType": "hyperdisk-balanced",
        "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/RDMA_NAME_PREFIX-mrdma",
        "nicType": "MRDMA",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-0"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
        "nicType": "MRDMA",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-1"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
        "nicType": "MRDMA",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-2"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
        "nicType": "MRDMA",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-3"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
        "nicType": "MRDMA",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-4"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
        "nicType": "MRDMA",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-5"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
        "nicType": "MRDMA",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-6"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
        "nicType": "MRDMA",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-7"
      }
     ],
  "reservationAffinity":{
    "consumeReservationType": "NO_RESERVATION",
  },
  "scheduling":{
    "provisioningModel": "FLEX_START",
    "requestValidForDuration": {
      "seconds": REQUEST_VALID_FOR_DURATION
    },
    "maxRunDuration": {
      "seconds": MAX_RUN_DURATION
    },
    "instanceTerminationAction": "TERMINATION_ACTION",
    "onHostMaintenance": "TERMINATE",
  }
}

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

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

    • PROJECT_ID: מזהה הפרויקט שבו רוצים ליצור את המכונה הווירטואלית.
    • ZONE: האזור שבו זמין סוג המכונה שרוצים להשתמש בו. אם רוצים לציין מדיניות למיקום קומפקטי, צריך להשתמש באזור שנמצא באותו אזור כמו המדיניות למיקום קומפקטי. מידע על אזורים זמין במאמר זמינות של GPU לפי אזורים ותחומים.
    • MACHINE_TYPE: סוג המכונה שבה רוצים להשתמש עבור המכונה הווירטואלית. מידע נוסף זמין במאמר בנושא סוגי מכונות GPU.
    • INSTANCE_NAME: שם ה-VM.
    • DISK_SIZE: גודל דיסק האתחול ב-GB.
    • IMAGE_PROJECT: מזהה הפרויקט של תמונת מערכת ההפעלה.
    • IMAGE_FAMILY: משפחת התמונות של תמונת מערכת ההפעלה שרוצים להשתמש בה. רשימה של מערכות הפעלה נתמכות זמינה במאמר פרטים על מערכות הפעלה.
    • NETWORK_PROJECT_ID: מזהה הפרויקט של הרשת.
    • GVNIC_NAME_PREFIX: תחילית השם שציינתם כשאתם יוצרים את רשתות ה-VPC הרגילות ואת רשתות המשנה שמשתמשות ב-gVNIC.
    • REGION: האזור של רשת המשנה.
    • RDMA_NAME_PREFIX: תחילית השם שציינתם כשייצרתם את רשתות ה-VPC ואת תת-הרשתות שמשתמשות בכרטיסי NIC של RDMA.
    • REQUEST_VALID_FOR_DURATION: משך הזמן, בשניות, שבו הבקשה ליצירת המכונה הווירטואלית נשארת בתוקף.

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

      • עומסי עבודה עם דרישות אזוריות מחמירות: אם עומס העבודה מחייב אתכם ליצור את המכונה הווירטואלית באזור מסוים, צריך לציין משך זמן בין 90 שניות (90) לשעתיים (7200). משך זמן ארוך יותר מגדיל את הסיכויים לקבלת משאבים.
      • עומסי עבודה ללא דרישות מחמירות לגבי תחום: אם המכונה הווירטואלית יכולה לפעול בכל תחום באזור, צריך לציין משך של אפס שניות (0). הפעולה הזו מציינת ש-Compute Engine יקצה משאבים רק אם הם זמינים באופן מיידי. אם הבקשה ליצירת מכונה וירטואלית נכשלת כי המשאבים לא זמינים, צריך לנסות שוב את הבקשה באזור אחר.
    • MAX_RUN_DURATION: משך הזמן שבו רוצים שהמכונות הווירטואליות המבוקשות יפעלו. אתם צריכים לעצב את הערך כמספר השניות. לדוגמה, מציינים 86400 ל-86,400 שניות (24 שעות). הערך צריך להיות בין 10 דקות לשבעה ימים.

    • TERMINATION_ACTION: מציין אם Compute Engine מפסיק (STOP) או מוחק (DELETE) את המכונה הווירטואלית בסוף משך ההפעלה שלה.

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

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

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

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

הזמנה בלבד

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

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
{
  "machineType": "projects/PROJECT_ID/zones/ZONE/machineTypes/MACHINE_TYPE",
  "name": "INSTANCE_NAME",
  "disks":[
    {
      "boot":true,
      "initializeParams":{
        "diskSizeGb": "DISK_SIZE",
        "diskType": "hyperdisk-balanced",
        "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/RDMA_NAME_PREFIX-mrdma",
        "nicType": "MRDMA",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-0"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
        "nicType": "MRDMA",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-1"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
        "nicType": "MRDMA",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-2"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
        "nicType": "MRDMA",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-3"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
        "nicType": "MRDMA",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-4"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
        "nicType": "MRDMA",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-5"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
        "nicType": "MRDMA",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-6"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
        "nicType": "MRDMA",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-7"
      }
     ],
  "reservationAffinity":{
    "consumeReservationType": "SPECIFIC_RESERVATION",
    "key": "compute.googleapis.com/reservation-name",
    "values":[
      "RESERVATION"
    ]
  },
  "scheduling":{
    "provisioningModel": "RESERVATION_BOUND",
    "instanceTerminationAction": "TERMINATION_ACTION",
    "onHostMaintenance": "TERMINATE",
    "automaticRestart": true
  }
}

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

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

    • PROJECT_ID: מזהה הפרויקט שבו רוצים ליצור את המכונה הווירטואלית.
    • ZONE: האזור שבו זמין סוג המכונה שרוצים להשתמש בו. אם רוצים לציין מדיניות למיקום קומפקטי, צריך להשתמש באזור שנמצא באותו אזור כמו המדיניות למיקום קומפקטי. מידע על אזורים זמין במאמר זמינות של GPU לפי אזורים ותחומים.
    • MACHINE_TYPE: סוג המכונה שבה רוצים להשתמש עבור המכונה הווירטואלית. מידע נוסף זמין במאמר בנושא סוגי מכונות GPU.
    • INSTANCE_NAME: שם ה-VM.
    • DISK_SIZE: גודל דיסק האתחול ב-GB.
    • IMAGE_PROJECT: מזהה הפרויקט של תמונת מערכת ההפעלה.
    • IMAGE_FAMILY: משפחת התמונות של תמונת מערכת ההפעלה שרוצים להשתמש בה. רשימה של מערכות הפעלה נתמכות זמינה במאמר פרטים על מערכות הפעלה.
    • NETWORK_PROJECT_ID: מזהה הפרויקט של הרשת.
    • GVNIC_NAME_PREFIX: תחילית השם שציינתם כשאתם יוצרים את רשתות ה-VPC הרגילות ואת רשתות המשנה שמשתמשות ב-gVNIC.
    • REGION: האזור של רשת המשנה.
    • RDMA_NAME_PREFIX: תחילית השם שציינתם כשייצרתם את רשתות ה-VPC ואת תת-הרשתות שמשתמשות בכרטיסי NIC של RDMA.
    • 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) את המכונה הווירטואלית בסיום תקופת השמירה.

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

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

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

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

כרטיס Spot

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

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
{
  "machineType": "projects/PROJECT_ID/zones/ZONE/machineTypes/MACHINE_TYPE",
  "name": "INSTANCE_NAME",
  "disks":[
    {
      "boot":true,
      "initializeParams":{
        "diskSizeGb": "DISK_SIZE",
        "diskType": "hyperdisk-balanced",
        "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/RDMA_NAME_PREFIX-mrdma",
        "nicType": "MRDMA",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-0"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
        "nicType": "MRDMA",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-1"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
        "nicType": "MRDMA",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-2"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
        "nicType": "MRDMA",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-3"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
        "nicType": "MRDMA",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-4"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
        "nicType": "MRDMA",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-5"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
        "nicType": "MRDMA",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-6"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
        "nicType": "MRDMA",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-7"
      }
     ],
  "scheduling":
  {
    "provisioningModel": "SPOT",
    "instanceTerminationAction": "TERMINATION_ACTION",
    "onHostMaintenance": "TERMINATE",
    "automaticRestart": false
  }
}

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

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

    • PROJECT_ID: מזהה הפרויקט שבו רוצים ליצור את המכונה הווירטואלית.
    • ZONE: האזור שבו זמין סוג המכונה שרוצים להשתמש בו. אם רוצים לציין מדיניות למיקום קומפקטי, צריך להשתמש באזור שנמצא באותו אזור כמו המדיניות למיקום קומפקטי. מידע על אזורים זמין במאמר זמינות של GPU לפי אזורים ותחומים.
    • MACHINE_TYPE: סוג המכונה שבה רוצים להשתמש עבור המכונה הווירטואלית. מידע נוסף זמין במאמר בנושא סוגי מכונות GPU.
    • INSTANCE_NAME: שם ה-VM.
    • DISK_SIZE: גודל דיסק האתחול ב-GB.
    • IMAGE_PROJECT: מזהה הפרויקט של תמונת מערכת ההפעלה.
    • IMAGE_FAMILY: משפחת התמונות של תמונת מערכת ההפעלה שרוצים להשתמש בה. רשימה של מערכות הפעלה נתמכות זמינה במאמר פרטים על מערכות הפעלה.
    • NETWORK_PROJECT_ID: מזהה הפרויקט של הרשת.
    • GVNIC_NAME_PREFIX: תחילית השם שציינתם כשאתם יוצרים את רשתות ה-VPC הרגילות ואת רשתות המשנה שמשתמשות ב-gVNIC.
    • REGION: האזור של רשת המשנה.
    • RDMA_NAME_PREFIX: תחילית השם שציינתם כשייצרתם את רשתות ה-VPC ואת תת-הרשתות שמשתמשות בכרטיסי NIC של RDMA.
    • TERMINATION_ACTION: הפעולה שתתבצע כש-Compute Engine יבצע דחיקה של המכונה, האפשרויות הן STOP (ברירת מחדל) או DELETE.

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

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

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

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

הכנת המופע לשימוש

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

  1. מכונות A4 ו-A3 Ultra דורשות דרייברים של GPU. אם תמונת מערכת ההפעלה שבה נעשה שימוש במופע לא כוללת מנהלי התקנים של GPU, צריך להתקין אותם.

  2. אם יצרתם מכונה וירטואלית (VM) במודל Spot בקטע הקודם, מבצעים את השלבים הבאים:

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