במאמר הזה נסביר איך ליצור בבת אחת מספר גדול של מכונות וירטואליות (VM) למחשוב עתיר ביצועים (HPC) שהן זהות ועצמאיות זו מזו. המופעים משתמשים בסוגי מכונות H4D ופועלים על בלוקים של קיבולת שהוזמנו מראש.
מידע נוסף על יצירת כמות גדולה של מכונות וירטואליות זמין במאמר מידע על יצירת כמות גדולה של מכונות וירטואליות. כדי ליצור כמות גדולה של מכונות בלי להשתמש בהזמנות, כדי לשפר את יכולות ניהול האשכול, אפשר לעיין במאמר יצירת מכונות וירטואליות בכמות גדולה.
במאמר סקירה כללית על יצירת אשכולות HPC מוסבר איך יוצרים אשכולות גדולים של מכונות וירטואליות מסוג H4D עם צימוד חזק.
לפני שמתחילים
בוחרים אפשרות צריכה: כדי ליצור מכונות וירטואליות בכמות גדולה ולהפעיל יכולות משופרות של ניהול אשכולות, אפשר לבחור באפשרות Future Reservation (הזמנה עתידית) במצב Calendar (יומן) או באפשרות Spot VMs (מכונות וירטואליות מסוג Spot).
אם תבחרו להשתמש במכונות וירטואליות מסוג Spot, יכול להיות שהמכונות הווירטואליות לא ימוקמו בצורה קומפקטית. בנוסף, אפשר להפקיע את ה-VM במודל Spot לפי הצורך, והם לא כשירים לניהול אירועי תחזוקה של מארחים לקבוצות של מכונות וירטואליות.
קבלת קיבולת: התהליך לקבלת קיבולת שונה בכל אפשרות צריכה.
מידע נוסף זמין במאמר בנושא בחירת אפשרות צריכה וקבלת קיבולת.
-
אם עדיין לא עשיתם את זה, תצטרכו להגדיר אימות.
אימות הוא התהליך שבו מאמתים את הזהות שלכם כדי לקבל גישה לממשקי API ולשירותים של Google Cloud . כדי להריץ קוד או דוגמאות מסביבת פיתוח מקומית, אפשר לבצע אימות ל-Compute Engine באחת מהדרכים הבאות:
צריך לבחור את הכרטיסייה הרלוונטית לאופן שבו תכננתם להשתמש בדוגמאות בדף הזה:
המסוף
כשמשתמשים במסוף Google Cloud כדי לגשת לשירותים Google Cloud ולממשקי ה-API, לא צריך להגדיר אימות.
gcloud
-
התקינו את ה-CLI של Google Cloud. אחר כך, מאתחלים את ה-CLI של Google Cloud באמצעות הפקודה הבאה:
gcloud initאם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
-
- הגדרת אזור ותחום כברירת מחדל.
REST
כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של API בארכיטקטורת REST שבדף הזה, צריך להשתמש בפרטי הכניסה שאתם נותנים ל-CLI של gcloud.
התקינו את ה-CLI של Google Cloud.
אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
מידע נוסף מופיע במאמר אימות לשימוש ב-REST במסמכי האימות של Google Cloud .
התפקידים הנדרשים
כדי לקבל את ההרשאות שדרושות ליצירת מספר גדול של מכונות וירטואליות, בקשו מהאדמין להקצות לכם את התפקידים הבאים ב-IAM בפרויקט:
- אדמין מכונות של Compute (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).
- אופציונלי: יוצרים מדיניות מיקום אם לא יוצרים את המכונות הווירטואליות של Compute באותו בלוק או תת-בלוק.
- יצירת מכונות 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.
- אופציונלי: לפני שמריצים את הסקריפט, מציגים את פרופילי הרשת של Falcon VPC כדי לוודא שיש פרופיל זמין.
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, כולל מקורות מחוץ ל- Google Cloud. -
RDMA_NAME_PREFIX: תחילית השם שתשמש לרשת ה-VPC ולתת-הרשת שמשתמשות בסוג כרטיס ה-NIC של IRDMA. -
ZONE: האזור שבו רוצים ליצור את הרשתות ואת המכונות של Compute Engine. אפשר להשתמש ב-us-central1-aאו ב-europe-west4-b.
-
אופציונלי: כדי לוודא שמשאבי רשת ה-VPC נוצרו בהצלחה, בודקים את הגדרות הרשת במסוף Google Cloud :
- נכנסים לדף VPC networks במסוף Google Cloud .
- מחפשים ברשימה את הרשתות שיצרתם בשלב הקודם.
- כדי לראות את רשתות המשנה, את כללי חומת האש והגדרות רשת אחרות, לוחצים על שם הרשת.
אופציונלי: יצירת מדיניות מיקום מודעה
כדי לציין את מיקום ה-VM, אתם יכולים ליצור מדיניות למיקום קומפקטי. כשמחילים מדיניות למיקום קומפקטי על המכונות הווירטואליות, המערכת של Compute Engine מנסה ליצור מכונות וירטואליות שיהיו קרובות ככל האפשר זו לזו. אם האפליקציה שלכם רגישה לזמן אחזור ונדרשת דחיסה מקסימלית, אז ציינו את השדה maxDistance (תצוגה מקדימה) כשאתם יוצרים מדיניות למיקום קומפקטי. ערך נמוך יותר של maxDistance מבטיח מיקום קרוב יותר של המכונות הווירטואליות, אבל הוא גם מגדיל את הסיכוי שחלק מהמכונות הווירטואליות לא ייווצרו.
gcloud
כדי ליצור מדיניות למיקום קומפקטי, משתמשים בפקודה
gcloud compute resource-policies create group-placement:
gcloud compute resource-policies create group-placement POLICY_NAME \
--collocation=collocated \
--max-distance=MAX_DISTANCE \
--region=REGION
מחליפים את מה שכתוב בשדות הבאים:
-
POLICY_NAME: השם של מדיניות המיקום הקומפקטי. -
MAX_DISTANCE: הגדרת המרחק המקסימלי למכונות הווירטואליות. אפשר לציין את המרחק (תצוגה מקדימה, מומלץ) או לא לציין אותו (להסיר את הדגל--max-distance). בהתאם למה שסוג המכונה תומך בו, אפשר לציין אחד מהערכים הבאים:- כדי למקם מכונות וירטואליות באותו תת-בלוק:
1 - כדי למקם מכונות וירטואליות באותו בלוק:
2 - כדי למקם מכונות וירטואליות בבלוקים סמוכים:
3
- כדי למקם מכונות וירטואליות באותו תת-בלוק:
-
REGION: האזור שבו רוצים ליצור את מדיניות המיקום הקומפקטי. מציינים את האזור שמכיל את התחום שבו מתכננים ליצור מכונות, ומוודאים שסוג המכונה שרוצים להשתמש בו זמין באזור הזה. מידע נוסף על אזורים זמין במאמר אזורים זמינים.
REST
כדי ליצור מדיניות למיקום קומפקטי, שולחים בקשת POST אל ה-method resourcePolicies.insert.
בגוף הבקשה, כוללים את השדה collocation שמוגדר ל-COLLOCATED ואת השדה maxDistance.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/resourcePolicies
{
"name": "POLICY_NAME",
"groupPlacementPolicy": {
"collocation": "COLLOCATED",
"maxDistance": MAX_DISTANCE
}
}
מחליפים את מה שכתוב בשדות הבאים:
PROJECT_ID: מזהה הפרויקט.-
POLICY_NAME: השם של המדיניות למיקום קומפקטי. -
MAX_DISTANCE: הגדרת המרחק המקסימלי למכונות ה-VM. אפשר לציין את המרחק (תצוגה מקדימה, מומלץ) או לא לציין אותו (להסיר את השדהmaxDistance). בהתאם למה שסוג המכונה תומך בו, אפשר לציין אחד מהערכים הבאים:- כדי למקם מכונות וירטואליות באותו תת-בלוק:
1 - כדי למקם מכונות וירטואליות באותו בלוק:
2 - כדי למקם מכונות וירטואליות בבלוקים סמוכים:
3
- כדי למקם מכונות וירטואליות באותו תת-בלוק:
-
REGION: האזור שבו רוצים ליצור את מדיניות המיקום הקומפקטי. מציינים את האזור שמכיל את התחום שבו מתכננים ליצור מכונות, ומוודאים שסוג המכונה שרוצים להשתמש בו זמין באזור הזה. מידע על אזורים זמין במאמר אזורים ואזורים זמינים.
יצירת מכונות וירטואליות בכמות גדולה
בקטע הזה מוסבר איך ליצור מכונות וירטואליות מסוג H4D בכמות גדולה.
לפני שיוצרים מופעי H4D עם Cloud RDMA, חשוב לעיין במגבלות הבאות:
- אי אפשר להשתמש במיגרציה פעילה במהלך אירועי תחזוקה של מארחים עם מכונות שיש להן ממשק רשת Cloud RDMA. צריך להגדיר את המופע כך שהוא יופסק במהלך אירועי תחזוקה.
- לממשק הרשת gVNIC יכולה להיות רק כתובת IPv6 אחת, פנימית או חיצונית, אבל לא שתיהן.
אפשר להשתמש רק בכתובות IPv4 עם ממשקי רשת IRDMA ועם רשתות Falcon VPC.
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: אופציונלי: סוג ה-stack של ממשק הרשת 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: אופציונלי: סוג ה-stack של ממשק הרשת 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.
- אופציונלי: מתאימים אישית את שאר המאפיינים של המכונה לפי הצורך.
- שולחים את הבקשה.
המאמרים הבאים
- איך רואים את הטופולוגיה של אשכול H4D
- התחברות למכונות וירטואליות של Linux
- הגדרה והרחבה של אפליקציות MPI במכונות וירטואליות מסוג H4D באמצעות Cloud RDMA