במאמר הזה מוסבר איך ליצור בבת אחת מספר גדול של מכונות וירטואליות (VM) למחשוב עתיר ביצועים (HPC) שהן זהות ועצמאיות זו מזו. המופעים משתמשים בסוגי מכונות H4D ופועלים על בלוקים של קיבולת שהוזמנו מראש.
מידע נוסף על יצירת מכונות וירטואליות בכמות גדולה זמין במאמר מידע על יצירת מכונות וירטואליות בכמות גדולה. כדי ליצור כמות גדולה של מכונות בלי להשתמש בהזמנות, כדי לשפר את יכולות ניהול האשכול, אפשר לעיין במאמר יצירת מכונות וירטואליות בכמות גדולה.
מידע על דרכים נוספות ליצירת אשכולות גדולים של מכונות וירטואליות מסוג H4D עם צימוד הדוק זמין במאמר סקירה כללית על יצירת אשכולות HPC.
לפני שמתחילים
בוחרים אפשרות צריכה: כדי ליצור מכונות וירטואליות בכמות גדולה ולהפעיל יכולות משופרות לניהול אשכולות, אפשר לבחור באפשרות 'הזמנה עתידית' במצב 'לוח שנה' או במכונות וירטואליות מסוג Spot.
אם תבחרו להשתמש במכונות וירטואליות מסוג Spot, יכול להיות שהמכונות הווירטואליות לא ימוקמו בצורה קומפקטית. בנוסף, אפשר לבצע preempt ל-Spot VMs לפי הצורך, והם לא עומדים בדרישות לניהול אירועי תחזוקה של המארח לקבוצות של מכונות וירטואליות.
קבלת קיבולת: התהליך לקבלת קיבולת שונה בכל אפשרות צריכה.
מידע נוסף זמין במאמר בנושא בחירת אפשרות צריכה וקבלת קיבולת.
-
אם עדיין לא עשיתם את זה, תצטרכו להגדיר אימות.
אימות הוא תהליך שבו מאמתים את הזהות שלכם כדי לקבל גישה לממשקי API ולשירותים של Cloud de Confiance by S3NS . כדי להריץ קוד או דוגמאות מסביבת פיתוח מקומית, אפשר לבצע אימות ל-Compute Engine באחת מהדרכים הבאות:
צריך לבחור את הכרטיסייה הרלוונטית לאופן שבו תכננתם להשתמש בדוגמאות בדף הזה:
המסוף
כשמשתמשים במסוף Cloud de Confiance כדי לגשת לשירותים ולממשקי ה-API, לא צריך להגדיר אימות. Cloud de Confiance by S3NS
gcloud
-
התקינו את ה-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 Instance Admin (v1) (
roles/compute.instanceAdmin.v1) - אדמין ברשת Compute (
roles/compute.networkAdmin)
להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
התפקידים המוגדרים מראש האלה כוללים את ההרשאות שנדרשות ליצירת מכונות וירטואליות בכמות גדולה. כדי לראות בדיוק אילו הרשאות נדרשות, אפשר להרחיב את הקטע ההרשאות הנדרשות:
ההרשאות הנדרשות
כדי ליצור מכונות וירטואליות בכמות גדולה, צריך את ההרשאות הבאות:
-
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בדיסק
יכול להיות שתקבלו את ההרשאות האלה באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש אחרים.
סקירה כללית
התהליך של יצירת מכונות HPC בכמות גדולה עם סוג המכונה H4D כולל את השלבים הבאים:
- אופציונלי: יצירת רשתות של ענן וירטואלי פרטי (VPC).
- אופציונלי: יוצרים מדיניות מיקום אם לא יוצרים את מופעי המחשוב באותו בלוק או תת-בלוק.
- יצירת מכונות H4D בכמות גדולה.
אופציונלי: יצירת רשתות של ענן וירטואלי פרטי (VPC)
כשיוצרים מכונת Compute Engine, אפשר לציין רשת VPC ותת-רשת. אם לא מציינים את ההגדרה הזו, נעשה שימוש ברשת וברשת המשנה שמוגדרות כברירת מחדל.
- אם רוצים להגדיר את מופעי H4D ב-MIG לשימוש ב-Cloud RDMA, צריך לבצע את השלבים שבקטע הזה.
- אם אתם לא רוצים להשתמש ב-Cloud RDMA, אתם יכולים לדלג על הקטע הזה ולהשתמש ברשת ברירת המחדל במקום זאת.
כדי להשתמש ב-Cloud RDMA עם מופעי H4D, צריך להגדיר לפחות שתי רשתות, אחת לכל סוג של ממשק רשת (NIC):
- סוג כרטיס הרשת
GVNIC: משתמש במנהל ההתקןgveלתעבורת TCP/IP ואינטרנט לתקשורת רגילה בין מכונות וירטואליות ובין מכונות וירטואליות לאינטרנט. - סוג כרטיס הרשת
IRDMA: משתמש במנהלי התקנים של IDPF/iRDMA לרשת Cloud RDMA בין מופעים.
למופעים שמשתמשים ב-Cloud RDMA יכול להיות רק ממשק IRDMA אחד. אפשר להוסיף עד שמונה ממשקי רשת נוספים של GVNIC, כך שבסך הכול יהיו עד 10 ממשקי רשת וירטואליים (vNIC) לכל מכונה.
כדי להגדיר את רשתות ה-VPC של Falcon לשימוש עם המקרים שלכם, אתם יכולים לפעול לפי ההוראות שמפורטות במסמכי התיעוד או להשתמש בסקריפט שסופק.
מדריכים להוראה
כדי ליצור את הרשתות, אפשר לפעול לפי ההוראות הבאות:
כדי ליצור את רשתות המארח עבור
GVNICממשקי הרשת, אפשר לעיין במאמר יצירה וניהול של רשתות VPC.אם מגדירים רק
GVNICממשק רשת אחד, אפשר להשתמש ברשת ה-VPC שמוגדרת כברירת מחדל וברשת המשנה האוטומטית שנמצאת באותו אזור כמו המכונה.כדי ליצור רשת לממשק הרשת
IRDMA, אפשר לעיין במאמר בנושא יצירת רשת VPC עם פרופיל רשת Falcon VPC. משתמשים בערך ברירת המחדל של יחידת השידור המקסימלית (MTU) עבור רשת Falcon VPC, שהוא8896.
Script
אפשר ליצור עד תשעה ממשקי רשת מסוג gVNIC וממשק רשת אחד מסוג IRDMA לכל מכונה. כל ממשק רשת צריך להיות מחובר לרשת נפרדת. כדי ליצור את הרשתות, אפשר להשתמש בסקריפט הבא, שיוצר שתי רשתות ל-gVNIC ורשת אחת ל-IRDMA.
- אופציונלי: לפני שמריצים את הסקריפט, מציגים רשימה של פרופילי רשת VPC של Falcon כדי לוודא שיש פרופיל זמין.
gcloud compute network-profiles list
מעתיקים את הקוד הבא ומפעילים פתרונות חכמים אותו בחלון מעטפת של Linux.
#!/bin/bash # Set the number of GVNIC interfaces to create. You can create up to 9. NUM_GVNIC=NUMBER_OF_GVNIC # Create regular VPC networks and subnets for the GVNIC interfaces for N in $(seq 0 $(($NUM_GVNIC - 1))); do gcloud compute networks create GVNIC_NAME_PREFIX-net-$N \ --subnet-mode=custom 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 # Optional: Create a firewall rule for the external IP address for the # first GVNIC network interface 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 # Create a Falcon VPC network for the Cloud RDMA network interface gcloud compute networks create RDMA_NAME_PREFIX-irdma \ --network-profile=ZONE-vpc-falcon \ --subnet-mode custom # Create a subnet in the Falcon VPC network gcloud compute networks subnets create RDMA_NAME_PREFIX-irdma-sub \ --network=RDMA_NAME_PREFIX-irdma \ --region=REGION \ --range=10.2.0.0/16 # offset to avoid overlap with GVNIC subnet rangesמחליפים את מה שכתוב בשדות הבאים:
-
NUMBER_OF_GVNIC: מספר ממשקי GVNIC שרוצים ליצור. צריך לציין מספר בין 1 ל-9. -
GVNIC_NAME_PREFIX: תחילית השם שמשמשת לרשת ה-VPC הרגילה ולרשת המשנה שמשתמשת בסוג כרטיס רשת GVNIC. -
REGION: האזור שבו רוצים ליצור את הרשתות. הערך הזה צריך להתאים לאזור שצוין בדגל--network-profileכשיוצרים את רשת ה-VPC של Falcon. לדוגמה, אם מציינים את האזור כ-europe-west4-b, האזור הואeurope-west4. -
IP_RANGE: טווח כתובות ה-IP מחוץ לרשת ה-VPC שמשמשות לכללי חומת האש של SSH. השיטה המומלצת היא לציין את טווחי כתובות ה-IP הספציפיים שמהם אתם רוצים לאפשר גישה, ולא את כל המקורות של IPv4 או IPv6. אל תשתמשו ב-0.0.0.0/0או ב-::/0כטווח מקורות, כי זה מאפשר תנועה מכל מקורות IPv4 או IPv6, כולל מקורות מחוץ ל- Cloud de Confiance by S3NS. -
RDMA_NAME_PREFIX: תחילית השם שתשמש לרשת ה-VPC ולתת-הרשת שמשתמשות בסוג כרטיס ה-NIC של IRDMA. -
ZONE: האזור שבו רוצים ליצור את הרשתות ואת מכונות ה-Compute. אפשר להשתמש ב-us-central1-aאו ב-europe-west4-b.
-
אופציונלי: כדי לוודא שהמשאבים של רשת ה-VPC נוצרו בהצלחה, בודקים את הגדרות הרשת במסוף Cloud de Confiance :
- נכנסים לדף VPC networks במסוף Cloud de Confiance .
- מחפשים ברשימה את הרשתות שיצרתם בשלב הקודם.
- כדי לראות את רשתות המשנה, את כללי חומת האש והגדרות רשת אחרות, לוחצים על שם הרשת.
אופציונלי: יצירת מדיניות מיקומי מודעות
אתם יכולים להגדיר את מיקום מכונת ה-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: האזור שבו רוצים ליצור את מדיניות המיקום הקומפקטי. מציינים אזור שבו זמין סוג המכונה שרוצים להשתמש בו. מידע על אזורים זמין במאמר אזורים ותחומים זמינים.
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: האזור שבו רוצים ליצור את מדיניות המיקום הקומפקטי. מציינים אזור שבו זמין סוג המכונה שרוצים להשתמש בו. מידע על אזורים זמין במאמר אזורים ותחומים זמינים.
יצירת מכונות וירטואליות בכמות גדולה
בקטע הזה מוסבר איך ליצור מכונות וירטואליות מסוג H4D בכמות גדולה.
לפני שיוצרים מופעי H4D עם Cloud RDMA, חשוב לעיין במגבלות הבאות:
- אי אפשר להשתמש במיגרציה פעילה במהלך אירועי תחזוקה של מארחים עם מופעים שיש להם ממשק רשת Cloud RDMA. צריך להגדיר את המופע כך שהוא יופסק במהלך אירועי תחזוקה.
- לממשק הרשת gVNIC יכולה להיות רק כתובת IPv6 אחת, פנימית או חיצונית, אבל לא שתיהן.
אפשר להשתמש רק בכתובות IPv4 עם ממשקי רשת של IRDMA ועם רשתות VPC של Falcon.
gcloud
כדי ליצור כמות גדולה של מכונות וירטואליות, משתמשים בפקודה gcloud compute instances create.
הפרמטרים שצריך לציין תלויים באפשרות הצריכה שבה אתם משתמשים לפריסה הזו. בוחרים את הכרטיסייה שמתאימה למודל ההקצאה של אפשרות הצריכה שלכם.
הזמנה בלבד
מתחילים עם הפקודה gcloud compute instances create הבאה.
gcloud compute instances bulk create \
--name-pattern=NAME_PATTERN \
--count=COUNT \
--machine-type=MACHINE_TYPE \
--image-family=IMAGE_FAMILY \
--image=project= IMAGE_PROJECT \
--instance-termination=action=DELETE \
--maintenance-policy=TERMINATE \
--region=REGION \
--boot-disk-type=hyperdisk-balanced \
--boot-disk-size=DISK_SIZE
כך עושים את זה:
מחליפים את מה שכתוב בשדות הבאים:
-
NAME_PATTERN: תבנית השם של המופעים. לדוגמה, שימוש ב-vm-#בתבנית השם יוצר מופעים עם שמות כמוvm-1ו-vm-2, עד למספר שצוין באמצעות הדגל--count. -
COUNT: מספר המופעים שרוצים ליצור. -
MACHINE_TYPE: סוג המכונה שבה רוצים להשתמש עבור המופעים. משתמשים באחד מסוגי המכונות H4D, למשלh4d-highmem-192-lssd.
IMAGE_FAMILY: משפחת התמונות של תמונת מערכת ההפעלה שרוצים להשתמש בה, לדוגמהrocky-linux-9-optimized-gcp.רשימה של תמונות מערכת הפעלה נתמכות זמינה במאמר בנושא מערכת הפעלה נתמכת. בוחרים גרסה של תמונת מערכת הפעלה שתומכת בממשק IRDMA.
-
IMAGE_PROJECT: מזהה הפרויקט של תמונת מערכת ההפעלה, לדוגמה,rocky-linux-cloud. -
REGION: מציינים אזור שבו סוג המכונה שרוצים להשתמש בו זמין, לדוגמהeurope-west4. מידע על אזורים זמינים זמין במאמר אזורים ותחומים זמינים. -
DISK_SIZE: אופציונלי: הגודל של דיסק האתחול ב-GiB. הערך חייב להיות מספר שלם.
-
אופציונלי: אם בחרתם להשתמש במדיניות מיקום קומפקטית, מוסיפים את הדגל
--resource-policies:--resource-policies=POLICY_NAMEמחליפים את POLICY_NAME בשם של מדיניות מיקום המודעות הקומפקטית.
כדי לציין את ההזמנה, מבצעים אחת מהפעולות הבאות:
-
אם אתם משתמשים במדיניות מיקום או אם אפשר למקם מכונות וירטואליות בכל מקום בבלוק ההזמנה, צריך להוסיף את הדגלים הבאים לפקודה:
--provisioning-model=RESERVATION_BOUND \ --reservation-affinity=specific \ --reservation=RESERVATION_NAME \מחליפים את RESERVATION_NAME בשם ההזמנה, לדוגמה,
h4d-highmem-exfr-prod. -
אם אתם לא משתמשים במדיניות מיקום קומפקטית ואתם רוצים שהמופעים יוצבו בבלוק ספציפי, אתם צריכים להוסיף את הדגלים הבאים לפקודה:
--provisioning-model=RESERVATION_BOUND \ --reservation-affinity=specific \ --reservation=<RESERVATION_BLOCK_NAME \מחליפים את RESERVATION_BLOCK_NAME בשם של בלוק בהזמנה, לדוגמה,
h4d-highmem-exfr-prod/reservationBlocks/h4d-highmem-exfr-prod-block-1.
כדי לראות את שם ההזמנה או את בלוקי ההזמנה הזמינים, אפשר לעיין במאמר בנושא הצגת הקיבולת.
-
-
אופציונלי: כדי להגדיר את המופעים לשימוש ב-Cloud RDMA, מוסיפים לפקודה דגלים דומים לאלה שבהמשך. בדוגמה הזו מוגדרים שני ממשקי רשת מסוג GVNIC וממשק רשת אחד מסוג IRDMA:
--network-interface=nic-type=GVNIC, \ network=GVNIC_NAME_PREFIX-net-0, \ subnet=GVNIC_NAME_PREFIX-sub-0, \ stack-type=STACK_TYPE, \ address=EXTERNAL_IPV4_ADDRESS \ --network-interface=nic-type=GVNIC, \ network=GVNIC_NAME_PREFIX-net-1, \ subnet=GVNIC_NAME_PREFIX-sub-1, no-address \ --network-interface=nic-type=IRDMA, \ network=RDMA_NAME_PREFIX-irdma, \ subnet=RDMA_NAME_PREFIX-irdma-sub, \ stack-type=IPV4_ONLY, no-address \מחליפים את מה שכתוב בשדות הבאים:
GVNIC_NAME_PREFIX: תחילית השם שבה השתמשתם כשייצרתם את רשת ה-VPC ואת תת-הרשת לממשק gVNIC.בממשק הרשת הראשון של GVNIC, אפשר להשמיט את הדגלים
networkו-subnetכדי להשתמש ברשתdefaultבמקום זאת.-
STACK_TYPE: אופציונלי: סוג הערימה של ממשק הרשת GVNIC. הערך שלSTACK_TYPEצריך להיות אחד מהערכים הבאים:IPV4_ONLYאוIPV4_IPV6. ערך ברירת המחדל הואIPV4_ONLY. -
EXTERNAL_IPV4_ADDRESS: אופציונלי: כתובת IPv4 חיצונית סטטית לשימוש עם ממשק הרשת. צריך לשריין כתובת IPv4 חיצונית מראש. מבצעים אחת מהפעולות הבאות:- מציינים כתובת IPv4 חוקית מתת-הרשת.
- אם לא רוצים שממשק הרשת יקבל כתובת IP חיצונית, צריך להשתמש בדגל
no-address. - מציינים
address=''אם רוצים שהממשק יקבל כתובת IP חיצונית ארעית.
כדי לציין כתובת IPv6 חיצונית, משתמשים בדגל
--external-ipv6-address. -
RDMA_NAME_PREFIX: תחילית השם שבה השתמשתם כשייצרתם את רשת ה-VPC ואת תת-הרשת לממשק IRDMA.
- אופציונלי: מוסיפים דגלים נוספים כדי להתאים אישית את שאר מאפייני המופע, לפי הצורך.
- מריצים את הפקודה.
כרטיס Spot
מתחילים עם הפקודה gcloud compute instances 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=hyperdisk-balanced \
--boot-disk-size=DISK_SIZE \
--provisioning-model=SPOT \
--instance-termination=action=TERMINATION_ACTION
כך עושים את זה:
מחליפים את מה שכתוב בשדות הבאים:
-
NAME_PATTERN: תבנית השם של המופעים. לדוגמה, שימוש ב-vm-#בתבנית השם יוצר מופעים עם שמות כמוvm-1ו-vm-2, עד למספר שצוין באמצעות הדגל--count. -
COUNT: מספר המופעים שרוצים ליצור. -
MACHINE_TYPE: סוג המכונה שבה רוצים להשתמש עבור המופעים. משתמשים באחד מסוגי המכונות H4D, למשלh4d-highmem-192-lssd.
IMAGE_FAMILY: משפחת התמונות של תמונת מערכת ההפעלה שרוצים להשתמש בה, לדוגמהrocky-linux-9-optimized-gcp.רשימה של תמונות מערכת הפעלה נתמכות זמינה במאמר בנושא מערכת הפעלה נתמכת. בוחרים גרסה של תמונת מערכת הפעלה שתומכת בממשק IRDMA.
-
IMAGE_PROJECT: מזהה הפרויקט של תמונת מערכת ההפעלה, לדוגמה,rocky-linux-cloud. -
REGION: מציינים אזור שבו סוג המכונה שרוצים להשתמש בו זמין, לדוגמהeurope-west4. מידע על אזורים זמינים זמין במאמר אזורים ותחומים זמינים. -
DISK_SIZE: אופציונלי: הגודל של דיסק האתחול ב-GiB. הערך חייב להיות מספר שלם.
TERMINATION_ACTION: הפעולה שצריך לבצע כש-Compute Engine מבצעת דחיקה של המכונה, אוSTOP(ברירת מחדל) אוDELETE.
-
-
אופציונלי: אם בחרתם להשתמש במדיניות מיקום קומפקטית, מוסיפים את הדגל הבא לפקודה:
--resource-policies=POLICY_NAME \מחליפים את
POLICY_NAMEבשם של מדיניות המיקום הקומפקטי. -
אופציונלי: כדי להגדיר את המופעים לשימוש ב-Cloud RDMA, מוסיפים לפקודה דגלים דומים לאלה שבהמשך. בדוגמה הזו מוגדרים שני ממשקי רשת מסוג GVNIC וממשק רשת אחד מסוג IRDMA:
--network-interface=nic-type=GVNIC, \ network=GVNIC_NAME_PREFIX-net-0, \ subnet=GVNIC_NAME_PREFIX-sub-0, \ stack-type=STACK_TYPE, \ address=EXTERNAL_IPV4_ADDRESS \ --network-interface=nic-type=GVNIC, \ network=GVNIC_NAME_PREFIX-net-1, \ subnet=GVNIC_NAME_PREFIX-sub-1, no-address \ --network-interface=nic-type=IRDMA, \ network=RDMA_NAME_PREFIX-irdma, \ subnet=RDMA_NAME_PREFIX-irdma-sub, \ stack-type=IPV4_ONLY, no-address \מחליפים את מה שכתוב בשדות הבאים:
GVNIC_NAME_PREFIX: תחילית השם שבה השתמשתם כשייצרתם את רשת ה-VPC ואת תת-הרשת לממשק gVNIC.בממשק הרשת הראשון של GVNIC, אפשר להשמיט את הדגלים
networkו-subnetכדי להשתמש ברשתdefaultבמקום זאת.-
STACK_TYPE: אופציונלי: סוג הערימה של ממשק הרשת GVNIC. הערך שלSTACK_TYPEצריך להיות אחד מהערכים הבאים:IPV4_ONLYאוIPV4_IPV6. ערך ברירת המחדל הואIPV4_ONLY. -
EXTERNAL_IPV4_ADDRESS: אופציונלי: כתובת IPv4 חיצונית סטטית לשימוש עם ממשק הרשת. צריך לשריין כתובת IPv4 חיצונית מראש. מבצעים אחת מהפעולות הבאות:- מציינים כתובת IPv4 חוקית מתת-הרשת.
- אם לא רוצים שממשק הרשת יקבל כתובת IP חיצונית, צריך להשתמש בדגל
no-address. - מציינים
address=''אם רוצים שהממשק יקבל כתובת IP חיצונית ארעית.
כדי לציין כתובת IPv6 חיצונית, משתמשים בדגל
--external-ipv6-address. -
RDMA_NAME_PREFIX: תחילית השם שבה השתמשתם כשייצרתם את רשת ה-VPC ואת תת-הרשת לממשק IRDMA.
- אופציונלי: מוסיפים דגלים נוספים כדי להתאים אישית את שאר מאפייני המופע, לפי הצורך.
- מריצים את הפקודה.
REST
כדי ליצור כמות גדולה של מכונות וירטואליות, שולחים בקשת POST אל ה-method instances.bulkInsert.
הפרמטרים שצריך לציין תלויים באפשרות הצריכה שבה אתם משתמשים לפריסה הזו. בוחרים את הכרטיסייה שמתאימה למודל ההקצאה של אפשרות הצריכה שלכם.
הזמנה בלבד
מתחילים עם בקשת POST הבאה ל-method instances.bulkInsert.
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":"hyperdisk-balanced",
"sourceImage":"projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
},
"mode":"READ_WRITE",
"type":"PERSISTENT"
}
],
"scheduling":{
"provisioningModel":"RESERVATION_BOUND",
"instanceTerminationAction":"DELETE",
"onHostMaintenance": "TERMINATE",
"automaticRestart":true
}
}
}
כך עושים את זה:
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט שבו רוצים ליצור את המופעים. -
ZONE: מציינים אזור שבו סוג המכונה שרוצים להשתמש בו זמין. אם אתם משתמשים במדיניות מיקום קומפקטית, אתם צריכים להשתמש באזור באותו אזור שבו מוגדרת מדיניות המיקום הקומפקטית. מידע על האזורים שבהם זמינים סוגי מכונות H4D זמין במאמר אזורים ותחומים זמינים. -
NAME_PATTERN: תבנית השם של המופעים. לדוגמה, שימוש ב-vm-#בתבנית השם יוצר מופעים עם שמות כמוvm-1ו-vm-2, עד למספר שצוין בשדהcount. -
COUNT: מספר המופעים שרוצים ליצור. -
MACHINE_TYPE: סוג המכונה שבה רוצים להשתמש עבור המופעים. משתמשים באחד מסוגי המכונות H4D, למשלh4d-highmem-192-lssd. -
DISK_SIZE: גודל דיסק האתחול ב-GiB. -
IMAGE_PROJECT: מזהה הפרויקט של תמונת מערכת ההפעלה, לדוגמה,debian-cloud. -
IMAGE_FAMILY: משפחת התמונות של תמונת מערכת ההפעלה שרוצים להשתמש בה, לדוגמהrocky-linux-9-optimized-gcp. רשימה של תמונות מערכת הפעלה נתמכות זמינה במאמר בנושא מערכת הפעלה נתמכת. בוחרים גרסה של תמונת מערכת הפעלה שתומכת בממשק IRDMA.
-
אופציונלי: אם בחרתם להשתמש במדיניות מיקום קומפקטית, צריך לכלול את הפרמטר
resourcePoliciesבגוף הבקשה כחלק מהפרמטר"instanceProperties"."resourcePolicies": [ "projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME" ],מחליפים את POLICY_NAME בשם של מדיניות מיקום קומפקטית.
-
כדי לציין את ההזמנה, מבצעים אחת מהפעולות הבאות:
-
אם אתם משתמשים במדיניות מיקום או אם אפשר למקם מכונות וירטואליות בכל מקום בבלוק ההזמנה, מוסיפים את הפרמטר
"instanceProperties"לגוף הבקשה:"reservationAffinity":{ "consumeReservationType":"SPECIFIC_RESERVATION", "key":"compute.googleapis.com/reservation-name", "values":[ "RESERVATION_NAME" ], },מחליפים את RESERVATION_NAME בשם ההזמנה, לדוגמה,
h4d-highmem-exfr-prod. -
אם אתם לא משתמשים במדיניות מיקום קומפקטית או שאתם רוצים למקם את המופעים בבלוק ספציפי, אתם צריכים להוסיף את הפרמטר הבא לגוף הבקשה כחלק מהפרמטר
"instanceProperties":"reservationAffinity":{ "consumeReservationType":"SPECIFIC_RESERVATION", "key":"compute.googleapis.com/reservation-name", "values":[ "RESERVATION_BLOCK_NAME" ], },מחליפים את RESERVATION_BLOCK_NAME בשם של בלוק בהזמנה, לדוגמה,
h4d-highmem-exfr-prod/reservationBlocks/h4d-highmem-exfr-prod-block-1.
כדי לראות את שם ההזמנה או את בלוקי ההזמנה הזמינים, אפשר לעיין במאמר בנושא הצגת הקיבולת.
-
אם רוצים להגדיר את המופעים לשימוש ב-Cloud RDMA, צריך לכלול בלוק פרמטרים דומה לזה שבהמשך בגוף הבקשה כחלק מהפרמטר
"instanceProperties". בדוגמה הזו מוגדרים שני ממשקי רשת מסוג GVNIC וממשק רשת אחד מסוג IRDMA:"networkInterfaces": [ { "network": "GVNIC_NAME_PREFIX-net-0", "subnetwork": "GVNIC_NAME_PREFIX-sub-0", "accessConfigs": [ { "type": "ONE_TO_ONE_NAT", "name": "External IP", "natIP": "EXTERNAL_IPV4_ADDRESS" } ], "stackType": "IPV4_ONLY", "nicType": "GVNIC", }, { "network": "GVNIC_NAME_PREFIX-net-1", "subnetwork": "GVNIC_NAME_PREFIX-sub-1", "stackType": "IPV4_ONLY", "nicType": "GVNIC", }, { "network": "RDMA_NAME_PREFIX-irdma", "subnetwork": "RDMA_NAME_PREFIX-irdma-sub", "stackType": "IPV4_ONLY", "nicType": "IRDMA", } ],מחליפים את מה שכתוב בשדות הבאים:
GVNIC_NAME_PREFIX: התוספת לשם שבה השתמשתם כשייצרתם את רשת ה-VPC ואת תת-הרשת לממשק gVNIC.בממשק הרשת של GVNIC, אפשר להשמיט את השדות
networkו-subnetworkכדי להשתמש ברשתdefault.-
EXTERNAL_IPV4_ADDRESS: אופציונלי: כתובת IPv4 חיצונית סטטית לשימוש עם ממשק הרשת. צריך לשריין כתובת IPv4 חיצונית מראש. -
RDMA_NAME_PREFIX: תחילית השם שבה השתמשתם כשייצרתם את רשת ה-VPC ואת תת-הרשת לממשק IRDMA.
- אופציונלי: מבצעים התאמה אישית של שאר מאפייני המופע לפי הצורך.
- שולחים את הבקשה.
כרטיס Spot
מתחילים עם בקשת POST הבאה ל-method instances.bulkInsert.
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":"hyperdisk-balanced",
"sourceImage":"projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
},
"mode":"READ_WRITE",
"type":"PERSISTENT"
}
],
"scheduling":{
"provisioningModel":"SPOT",
"instanceTerminationAction":"TERMINATION_ACTION"
}
}
}
כך עושים את זה:
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט שבו רוצים ליצור את המופעים. -
ZONE: מציינים אזור שבו סוג המכונה שרוצים להשתמש בו זמין. אם אתם משתמשים במדיניות מיקום קומפקטית, אתם צריכים להשתמש באזור באותו אזור שבו מוגדרת מדיניות המיקום הקומפקטית. מידע על האזורים שבהם זמינים סוגי מכונות H4D זמין במאמר אזורים ותחומים זמינים. -
NAME_PATTERN: תבנית השם של המופעים. לדוגמה, שימוש ב-vm-#בתבנית השם יוצר מופעים עם שמות כמוvm-1ו-vm-2, עד למספר שצוין בשדהcount. -
COUNT: מספר המופעים שרוצים ליצור. -
MACHINE_TYPE: סוג המכונה שבה רוצים להשתמש עבור המופעים. משתמשים באחד מסוגי המכונות H4D, למשלh4d-highmem-192-lssd. -
DISK_SIZE: גודל דיסק האתחול ב-GiB. -
IMAGE_PROJECT: מזהה הפרויקט של תמונת מערכת ההפעלה, לדוגמה,debian-cloud. -
IMAGE_FAMILY: משפחת התמונות של תמונת מערכת ההפעלה שרוצים להשתמש בה, לדוגמהrocky-linux-9-optimized-gcp. רשימה של תמונות מערכת הפעלה נתמכות זמינה במאמר בנושא מערכת הפעלה נתמכת. בוחרים גרסה של תמונת מערכת הפעלה שתומכת בממשק IRDMA.
TERMINATION_ACTION: הפעולה שיש לבצע כש-Compute Engine מבצעת דחיקה של המכונה,STOP(ברירת מחדל) אוDELETE.
-
אופציונלי: אם בחרתם להשתמש במדיניות מיקום קומפקטית, צריך לכלול את הפרמטר
resourcePoliciesכחלק מהפרמטר"instanceProperties"."resourcePolicies": [ "projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME" ]אם רוצים להגדיר את המופעים לשימוש ב-Cloud RDMA, צריך לכלול בלוק פרמטרים דומה לזה שבהמשך בגוף הבקשה כחלק מהפרמטר
"instanceProperties". בדוגמה הזו מוגדרים שני ממשקי רשת מסוג GVNIC וממשק רשת אחד מסוג IRDMA:"networkInterfaces": [ { "network": "GVNIC_NAME_PREFIX-net-0", "subnetwork": "GVNIC_NAME_PREFIX-sub-0", "accessConfigs": [ { "type": "ONE_TO_ONE_NAT", "name": "External IP", "natIP": "EXTERNAL_IPV4_ADDRESS" } ], "stackType": "IPV4_ONLY", "nicType": "GVNIC", }, { "network": "GVNIC_NAME_PREFIX-net-1", "subnetwork": "GVNIC_NAME_PREFIX-sub-1", "stackType": "IPV4_ONLY", "nicType": "GVNIC", }, { "network": "RDMA_NAME_PREFIX-irdma", "subnetwork": "RDMA_NAME_PREFIX-irdma-sub", "stackType": "IPV4_ONLY", "nicType": "IRDMA", } ],מחליפים את מה שכתוב בשדות הבאים:
GVNIC_NAME_PREFIX: התוספת לשם שבה השתמשתם כשייצרתם את רשת ה-VPC ואת תת-הרשת לממשק gVNIC.בממשק הרשת של GVNIC, אפשר להשמיט את השדות
networkו-subnetworkכדי להשתמש ברשתdefault.-
EXTERNAL_IPV4_ADDRESS: אופציונלי: כתובת IPv4 חיצונית סטטית לשימוש עם ממשק הרשת. צריך לשריין כתובת IPv4 חיצונית מראש. -
RDMA_NAME_PREFIX: תחילית השם שבה השתמשתם כשייצרתם את רשת ה-VPC ואת תת-הרשת לממשק IRDMA.
- אופציונלי: מבצעים התאמה אישית של שאר מאפייני המופע לפי הצורך.
- שולחים את הבקשה.