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

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

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

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

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

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

    המסוף

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

    gcloud

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

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

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

      התקינו את ה-CLI של Google Cloud ואז היכנסו ל-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 בדיסק

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

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

למידע נוסף על סידור NIC, ראו בדיקת רוחב הפס של הרשת וסידור NIC.

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

מדריכי הוראות

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

ברשתות ה-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
    
          
  2. מחליפים את מה שכתוב בשדות הבאים:

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

      כניסה לדף VPC networks

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

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

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

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

יצירת המכונה

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

המסוף

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

    כניסה לדף Create an instance

  2. בחלונית Machine configuration מבצעים את הפעולות הבאות:

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

    2. בוחרים את האזור (Region) ואת התחום (Zone) שבהם שמרתם מקום.

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

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

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

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

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

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

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

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

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

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

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

      1. בקטע Network interfaces, מבצעים את הפעולות הבאות:

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

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

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

        • לממשק רשת שמשמש לתקשורת בין GPU ל-GPU, בוחרים את רשת ה-VPC של RoCE ואת רשת המשנה מהרשימות Network ו-Subnetwork, ומגדירים את הרשימה כרטיס רשת ל-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. בוחרים באפשרות Set a wait time for VM creation.

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

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

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

      • כדי למחוק את המכונה הווירטואלית, לוחצים על Delete.
      • כדי לעצור את המכונה הווירטואלית, לוחצים על Stop.

    הזמנה מראש

    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 בוחרים אחת מהאפשרויות הבאות:
        • כדי לעצור את ה-VM במהלך ההפקעה, בוחרים באפשרות Stop (ברירת המחדל).
        • כדי למחוק את המכונה הווירטואלית כשהיא מפסיקה לפני הזמן, בוחרים באפשרות Delete.
  6. כדי ליצור את המכונה ולהפעיל אותה, לוחצים על Create.

gcloud

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

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

הזמנה

במכונות מסוג A4 או A3 Ultra אפשר להשתמש בסוגי ההזמנות הבאים:

  • מקומות שמורים לעתיד בגושי קיבולת
  • מקומות שמורים לעתיד במצב תזמון

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

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

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: שם המכונה הווירטואלית.
    • ‫MACHINE_TYPE: סוג המכונה שבה משתמשים בשביל ה-VM. למידע נוסף, קראו את המאמר סוגי מכונות GPU במסמכי התיעוד של Compute Engine.
    • ‫IMAGE_FAMILY: משפחת קובצי האימג' של מערכת ההפעלה שבה רוצים להשתמש. רשימה של כל מערכות ההפעלה הנתמכות
    • ‫IMAGE_PROJECT: מזהה הפרויקט של קובץ האימג' של מערכת ההפעלה.
    • ‫ZONE: האזור שבו זמין סוג המכונה שבו רוצים להשתמש. כדי לציין מדיניות למיקום קומפקטי, צריך להשתמש באזור באותו מחוז כמו המדיניות למיקום קומפקטי. למידע על אזורים, קראו את המאמר זמינות של GPU לפי אזורים ותחומים.
    • ‫DISK_SIZE: גודל דיסק האתחול ב-GB. למידע נוסף, קראו את המאמר מגבלות הגודל של Google Cloud Hyperdisk או מגבלות הגודל של Persistent Disk, בהתאם לסוג הדיסק.
    • ‫GVNIC_NAME_PREFIX: התחילית של השם שציינתם כשיצרתם את רשתות ה-VPC הרגילות ואת רשתות המשנה שמשתמשות ב-gVNIC.
    • ‫RDMA_NAME_PREFIX: התחילית של השם שציינתם כשיצרתם את רשתות ה-VPC ואת רשתות המשנה שמשתמשות בכרטיסי רשת של 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. מריצים את הפקודה.

התחלה גמישה (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 \
    --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: שם המכונה הווירטואלית.
    • ‫MACHINE_TYPE: סוג המכונה שבה משתמשים בשביל ה-VM. למידע נוסף, קראו את המאמר סוגי מכונות GPU במסמכי התיעוד של Compute Engine.
    • ‫IMAGE_FAMILY: משפחת קובצי האימג' של מערכת ההפעלה שבה רוצים להשתמש. רשימה של כל מערכות ההפעלה הנתמכות
    • ‫IMAGE_PROJECT: מזהה הפרויקט של קובץ האימג' של מערכת ההפעלה.
    • ‫ZONE: האזור שבו זמין סוג המכונה שבו רוצים להשתמש. כדי לציין מדיניות למיקום קומפקטי, צריך להשתמש באזור באותו מחוז כמו המדיניות למיקום קומפקטי. למידע על אזורים, קראו את המאמר זמינות של GPU לפי אזורים ותחומים.
    • ‫DISK_SIZE: גודל דיסק האתחול ב-GB. למידע נוסף, קראו את המאמר מגבלות הגודל של Google Cloud Hyperdisk או מגבלות הגודל של Persistent Disk, בהתאם לסוג הדיסק.
    • ‫GVNIC_NAME_PREFIX: התחילית של השם שציינתם כשיצרתם את רשתות ה-VPC הרגילות ואת רשתות המשנה שמשתמשות ב-gVNIC.
    • ‫RDMA_NAME_PREFIX: התחילית של השם שציינתם כשיצרתם את רשתות ה-VPC ואת רשתות המשנה שמשתמשות בכרטיסי רשת של RDMA.
    • ‫REQUEST_VALID_FOR_DURATION: משך הזמן שבו הבקשה ליצירת המכונה הווירטואלית נשארת בתוקף. צריך לציין את הערך כמספר ימים, שעות, דקות או שניות, ואחריו d,‏ h,‏ m ו-s בהתאמה. לדוגמה, מציינים 30m ל-30 דקות או 1h2m3s לשעה אחת, שתי דקות ושלוש שניות.

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

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

    • ‫TERMINATION_ACTION: אם Compute Engine עוצר (STOP) או מוחק (DELETE) את ה-VM בסוף משך ההפעלה.

  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: שם המכונה הווירטואלית.
    • ‫MACHINE_TYPE: סוג המכונה שבה משתמשים בשביל ה-VM. למידע נוסף, קראו את המאמר סוגי מכונות GPU במסמכי התיעוד של Compute Engine.
    • ‫IMAGE_FAMILY: משפחת קובצי האימג' של מערכת ההפעלה שבה רוצים להשתמש. רשימה של כל מערכות ההפעלה הנתמכות
    • ‫IMAGE_PROJECT: מזהה הפרויקט של קובץ האימג' של מערכת ההפעלה.
    • ‫ZONE: האזור שבו זמין סוג המכונה שבו רוצים להשתמש. כדי לציין מדיניות למיקום קומפקטי, צריך להשתמש באזור באותו מחוז כמו המדיניות למיקום קומפקטי. למידע על אזורים, קראו את המאמר זמינות של GPU לפי אזורים ותחומים.
    • ‫DISK_SIZE: גודל דיסק האתחול ב-GB. למידע נוסף, קראו את המאמר מגבלות הגודל של Google Cloud Hyperdisk או מגבלות הגודל של Persistent Disk, בהתאם לסוג הדיסק.
    • ‫GVNIC_NAME_PREFIX: התחילית של השם שציינתם כשיצרתם את רשתות ה-VPC הרגילות ואת רשתות המשנה שמשתמשות ב-gVNIC.
    • ‫RDMA_NAME_PREFIX: התחילית של השם שציינתם כשיצרתם את רשתות ה-VPC ואת רשתות המשנה שמשתמשות בכרטיסי רשת של RDMA.
    • ‫TERMINATION_ACTION: הפעולה שצריך לבצע כש-Compute Engine מפקיע את המכונה, STOP (ברירת המחדל) או DELETE.

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

      --resource-policies=POLICY_NAME
    

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

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

REST

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

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

הזמנה

במכונות מסוג A4 או A3 Ultra אפשר להשתמש בסוגי ההזמנות הבאים:

  • מקומות שמורים לעתיד בגושי קיבולת
  • מקומות שמורים לעתיד במצב תזמון

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

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

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: סוג המכונה שבה משתמשים בשביל ה-VM. למידע נוסף, קראו את המאמר סוגי מכונות GPU במסמכי התיעוד של Compute Engine.
    • ‫INSTANCE_NAME: שם המכונה הווירטואלית.
    • ‫DISK_SIZE: גודל דיסק האתחול ב-GB. למידע נוסף, קראו את המאמר מגבלות הגודל של Google Cloud Hyperdisk או מגבלות הגודל של Persistent Disk, בהתאם לסוג הדיסק.
    • ‫IMAGE_PROJECT: מזהה הפרויקט של קובץ האימג' של מערכת ההפעלה.
    • ‫IMAGE_FAMILY: משפחת קובצי האימג' של מערכת ההפעלה שבה רוצים להשתמש. רשימה של כל מערכות ההפעלה הנתמכות
    • ‫NETWORK_PROJECT_ID: מזהה הפרויקט של הרשת.
    • ‫GVNIC_NAME_PREFIX: התחילית של השם שציינתם כשיצרתם את רשתות ה-VPC הרגילות ואת רשתות המשנה שמשתמשות ב-gVNIC.
    • ‫REGION: האזור של רשת המשנה.
    • ‫RDMA_NAME_PREFIX: התחילית של השם שציינתם כשיצרתם את רשתות ה-VPC ואת רשתות המשנה שמשתמשות בכרטיסי רשת של 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. שולחים את הבקשה.

התחלה גמישה (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"
    }
  ],
  "params": {
    "requestValidForDuration": {
      "seconds": REQUEST_VALID_FOR_DURATION
    }
  },
  "scheduling": {
    "provisioningModel": "FLEX_START",
    "maxRunDuration": {
      "seconds": MAX_RUN_DURATION
    },
    "instanceTerminationAction": "TERMINATION_ACTION",
    "onHostMaintenance": "TERMINATE"
  }
}

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

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

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

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

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

    • ‫TERMINATION_ACTION: אם Compute Engine עוצר (STOP) או מוחק (DELETE) את ה-VM בסוף משך ההפעלה.

  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: סוג המכונה שבה משתמשים בשביל ה-VM. למידע נוסף, קראו את המאמר סוגי מכונות GPU במסמכי התיעוד של Compute Engine.
    • ‫INSTANCE_NAME: שם המכונה הווירטואלית.
    • ‫DISK_SIZE: גודל דיסק האתחול ב-GB. למידע נוסף, קראו את המאמר מגבלות הגודל של Google Cloud Hyperdisk או מגבלות הגודל של Persistent Disk, בהתאם לסוג הדיסק.
    • ‫IMAGE_PROJECT: מזהה הפרויקט של קובץ האימג' של מערכת ההפעלה.
    • ‫IMAGE_FAMILY: משפחת קובצי האימג' של מערכת ההפעלה שבה רוצים להשתמש. רשימה של כל מערכות ההפעלה הנתמכות
    • ‫NETWORK_PROJECT_ID: מזהה הפרויקט של הרשת.
    • ‫GVNIC_NAME_PREFIX: התחילית של השם שציינתם כשיצרתם את רשתות ה-VPC הרגילות ואת רשתות המשנה שמשתמשות ב-gVNIC.
    • ‫REGION: האזור של רשת המשנה.
    • ‫RDMA_NAME_PREFIX: התחילית של השם שציינתם כשיצרתם את רשתות ה-VPC ואת רשתות המשנה שמשתמשות בכרטיסי רשת של 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 בקטע הקודם, בצעו את הפעולות הבאות:

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