בדף הזה מוסבר איך ליצור אשכול Slurm למחשוב עתיר ביצועים (HPC) שמשתמש בגישה ישירה לזיכרון (RDMA) מרחוק עם מכונות וירטואליות מסוג H4D עם יכולות משופרות לניהול אשכולות. משתמשים ב-CLI של gcloud ובCluster Toolkit כדי להגדיר את האשכול.
סדרת המכונות H4D מיועדת במיוחד לעומסי עבודה תובעניים של HPC. H4D מציעה מכונות וירטואליות עם יכולת שינוי גודל משופרת של עומסי עבודה באמצעות רשת Cloud RDMA עם תפוקה של 200Gbps. מידע נוסף על מכונות וירטואליות מסוג H4D שמותאמות לצריכת מעבד גבוהה ב- Google Cloudזמין במאמר סדרת מכונות H4D.
לפני שמתחילים
לפני שיוצרים אשכול Slurm, אם עדיין לא עשיתם זאת, צריך לבצע את השלבים הבאים:
- Choose a consumption option (בחירת אפשרות צריכה): האפשרות שתבחרו תקבע איך תקבלו ותשתמשו במשאבי vCPU.
- קבלת קיבולת: קבלת קיבולת לאפשרות הצריכה שנבחרה.
- מוודאים שיש לכם מספיק מכסת קיבולת ב-Filestore: לפני הפריסה, צריך לוודא שיש לכם מספיק מכסה ב-Filestore באזור היעד. הקיבולת המינימלית הנדרשת תלויה בסוגי המכונות באשכול:
- A4, A4X, A3 Ultra ו-A3 Mega: נדרש נפח מינימלי של 10 TiB (10,240 GiB) של HIGH_SCALE_SSD (אזורי).
- A3 High: נדרש נפח אחסון מינימלי של 2.5 TiB (2,560 GiB) מסוג BASIC_SSD (סטנדרטי).
כדי לבדוק את המכסה או לבקש להגדיל אותה, אפשר לעיין במאמרים הבאים:
- כדי לבדוק את המכסה, אפשר לעיין במאמר הצגה של מכסות על API ספציפי.
- אם אין לכם מספיק מכסה, אתם יכולים לבקש להגדיל את המכסה.
- התקנת Cluster Toolkit: כדי להקצות אשכולות Slurm, צריך להשתמש ב-Cluster Toolkit בגרסה
v1.62.0ואילך.הוראות להתקנת Cluster Toolkit מופיעות במאמר בנושא הגדרת Cluster Toolkit.
מידע נוסף זמין במאמר בנושא בחירת אפשרות צריכה וקבלת קיבולת.
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
הגדרת קטגוריית אחסון
תוכניות לניהול של אשכולות משתמשות במודולים של Terraform כדי להקצות תשתית בענן. שיטת העבודה המומלצת עם Terraform היא אחסון המצב מרחוק בקובץ שמופעל בו ניהול גרסאות. ב- Google Cloud, אפשר ליצור קטגוריה של Cloud Storage עם ניהול גרסאות מופעל.
כדי ליצור את הקטגוריה הזו ולהפעיל את ניהול הגרסאות מ-CLI, מריצים את הפקודות הבאות:
gcloud storage buckets create gs://BUCKET_NAME \
--project=PROJECT_ID \
--default-storage-class=STANDARD --location=BUCKET_REGION \
--uniform-bucket-level-access
gcloud storage buckets update gs://BUCKET_NAME --versioning
מחליפים את מה שכתוב בשדות הבאים:
-
BUCKET_NAME: שם לקטגוריה של Cloud Storage שעומד בדרישות למתן שמות לקטגוריות. PROJECT_ID: מזהה הפרויקט.-
BUCKET_REGION: כל מיקום שזמין.
פתיחת הספרייה Cluster Toolkit
מריצים את הפקודה הבאה כדי לוודא שאתם נמצאים בספרייה Cluster Toolkit:
cd cluster-toolkit
כדי לפרוס את האשכול הזה צריך Cluster Toolkit v1.70.0 או גרסה מתקדמת יותר. כדי לבדוק את הגרסה, אפשר להריץ את הפקודה הבאה:
./gcluster --version
יצירת קובץ פריסה
יוצרים קובץ פריסה כדי לציין את הקטגוריה של Cloud Storage, להגדיר שמות לרשת ולרשת המשנה ולהגדיר משתני פריסה כמו מזהה פרויקט, אזור ואזור זמינות.
כדי ליצור קובץ פריסה, פועלים לפי השלבים לסוג המכונה H4D:
הפרמטרים שצריך להוסיף לקובץ הפריסה תלויים באפשרות הצריכה שבה אתם משתמשים לפריסה. בוחרים את הכרטיסייה שמתאימה לאפשרות הצריכה שרוצים להשתמש בה.
הזמנה בלבד
כדי ליצור את קובץ הפריסה, משתמשים בכלי לעריכת טקסט כדי ליצור קובץ YAML בשם h4d-slurm-deployment.yaml ומוסיפים את התוכן הבא.
terraform_backend_defaults:
type: gcs
configuration:
bucket: BUCKET_NAME
vars:
deployment_name: DEPLOYMENT_NAME
project_id: PROJECT_ID
region: REGION
zone: ZONE
h4d_cluster_size: NUMBER_OF_VMS
h4d_reservation_name: RESERVATION_NAME
מחליפים את מה שכתוב בשדות הבאים:
-
BUCKET_NAME: השם של הקטגוריה שלכם ב-Cloud Storage, שיצרתם בקטע הקודם. -
DEPLOYMENT_NAME: שם הפריסה. אם יוצרים כמה אשכולות, צריך לוודא שבוחרים שם ייחודי לכל אחד מהם. PROJECT_ID: מזהה הפרויקט.-
REGION: האזור שבו נמצאות המכונות השמורות. -
ZONE: האזור שבו רוצים להקצות את האשכול. אם אתם משתמשים באפשרות צריכה שמבוססת על הזמנה, צוות החשבון שלכם סיפק את המידע על האזור והאזור הזמין כשהקיבולת סופקה. -
NUMBER_OF_VMS: מספר המכונות הווירטואליות שרוצים להקצות לאשכול. -
RESERVATION_NAME: השם של ההזמנה.
Flex-start
כדי ליצור את קובץ הפריסה, משתמשים בכלי לעריכת טקסט כדי ליצור קובץ YAML בשם h4d-slurm-deployment.yaml ומוסיפים את התוכן הבא.
terraform_backend_defaults:
type: gcs
configuration:
bucket: BUCKET_NAME
vars:
deployment_name: DEPLOYMENT_NAME
project_id: PROJECT_ID
region: REGION
zone: ZONE
h4d_cluster_size: NUMBER_OF_VMS
h4d_dws_flex_enabled: true
מחליפים את מה שכתוב בשדות הבאים:
-
BUCKET_NAME: השם של הקטגוריה שלכם ב-Cloud Storage, שיצרתם בקטע הקודם. -
DEPLOYMENT_NAME: שם הפריסה. אם יוצרים כמה אשכולות, צריך לוודא שבוחרים שם ייחודי לכל אחד מהם. PROJECT_ID: מזהה הפרויקט.-
REGION: האזור שבו רוצים להקצות את האשכול. -
ZONE: האזור שבו רוצים להקצות את האשכול. -
NUMBER_OF_VMS: מספר המכונות הווירטואליות שרוצים להקצות לאשכול.
בפריסה הזו מוקצים צמתי מחשוב סטטיים, כלומר, תמיד יש מספר קבוע של צמתים באשכול. אם רוצים להפעיל שינוי גודל אוטומטי של האשכול, משתמשים בקובץ examples/h4d/hpc-slurm-h4d.yaml ועורכים את הערכים של node_count_static ושל node_count_dynamic_max כך שיתאימו לערכים הבאים:
node_count_static: 0
node_count_dynamic_max: $(vars.h4d_cluster_size)
Spot
כדי ליצור את קובץ הפריסה, משתמשים בכלי לעריכת טקסט כדי ליצור קובץ YAML בשם h4d-slurm-deployment.yaml ומוסיפים את התוכן הבא.
terraform_backend_defaults:
type: gcs
configuration:
bucket: BUCKET_NAME
vars:
deployment_name: DEPLOYMENT_NAME
project_id: PROJECT_ID
region: REGION
zone: ZONE
h4d_cluster_size: NUMBER_OF_VMS
h4d_enable_spot_vm: true
מחליפים את מה שכתוב בשדות הבאים:
-
BUCKET_NAME: השם של הקטגוריה שלכם ב-Cloud Storage, שיצרתם בקטע הקודם. -
DEPLOYMENT_NAME: שם הפריסה. אם יוצרים כמה אשכולות, צריך לוודא שבוחרים שם ייחודי לכל אחד מהם. PROJECT_ID: מזהה הפרויקט.-
REGION: האזור שבו רוצים להקצות את האשכול. -
ZONE: האזור שבו רוצים להקצות את האשכול. -
NUMBER_OF_VMS: מספר המכונות הווירטואליות שרוצים להקצות לאשכול.
הקצאת אשכול Slurm מסוג H4D
Cluster Toolkit מקצה את האשכול על סמך קובץ הפריסה שיצרתם בשלב הקודם ותוכנית האב של האשכול שמוגדרת כברירת מחדל. מידע נוסף על התוכנה שמותקנת באמצעות תוכנית התכנון
באמצעות Cloud Shell, מהספרייה שבה התקנתם את Cluster Toolkit ויצרתם את קובץ הפריסה, אתם יכולים להקצות את האשכול באמצעות הפקודה הבאה, שמשתמשת בקובץ התוכנית של H4D Slurm. השלב הזה נמשך בערך 20-30 דקות.
./gcluster deploy -d h4d-slurm-deployment.yaml examples/hpc-slurm-h4d/hpc-slurm-h4d.yaml --auto-approve
התחברות לאשכול Slurm
כדי לגשת לאשכול, צריך להיכנס לצומת הכניסה של Slurm. כדי להיכנס, אפשר להשתמש במסוף Google Cloud או ב-Google Cloud CLI.
המסוף
עוברים לדף Compute Engine > VM instances.
מאתרים את צומת הכניסה. השם צריך להיות בפורמט
DEPLOYMENT_NAME+login-001.בעמודה Connect של צומת הכניסה, לוחצים על SSH.
gcloud
כדי להתחבר לצומת הכניסה, מבצעים את השלבים הבאים:
מזהים את צומת הכניסה באמצעות הפקודה
gcloud compute instances list.gcloud compute instances list \ --zones=
ZONE\ --filter="name ~ login" --format "value(name)"אם הפלט מציג כמה אשכולות Slurm, אפשר לזהות את צומת הכניסה לפי
DEPLOYMENT_NAMEשציינתם.משתמשים בפקודה
gcloud compute sshכדי להתחבר לצומת הכניסה.gcloud compute ssh LOGIN_NODE \ --zone=
ZONE--tunnel-through-iapמחליפים את מה שכתוב בשדות הבאים:
-
ZONE: האזור שבו נמצאות מכונות ה-VM של האשכול. -
LOGIN_NODE: השם של צומת הכניסה שזיהיתם בשלב הקודם.
-
פריסה מחדש של אשכול Slurm
אם אתם צריכים להגדיל את מספר צמתי החישוב או להוסיף מחיצות חדשות לאשכול, יכול להיות שתצטרכו לעדכן את ההגדרות של אשכול Slurm באמצעות פריסה מחדש.
כדי לפרוס מחדש את האשכול באמצעות תמונה קיימת:
מריצים את הפקודה הבאה:
./gcluster deploy -d h4d-slurm-deployment.yaml examples/h4d/h4d-slurm-deployment.yaml --only cluster-env,cluster --auto-approve -w
הפקודה הזו מיועדת רק לפריסות מחדש שבהן כבר קיים קובץ אימג'. היא פורסת מחדש רק את האשכול ואת התשתית שלו.
כיבוי סופי של אשכול Slurm
כדי להסיר את אשכול Slurm ואת המופעים שבו, מבצעים את הפעולות הבאות:
אם עוד לא עשיתם זאת, מתנתקים מהאשכול.
לפני שמריצים את הפקודה destroy, עוברים אל ספריית השורש של Cluster Toolkit. כברירת מחדל, DEPLOYMENT_FOLDER נמצא בשורש של ספריית Cluster Toolkit.
כדי להרוס את האשכול, מריצים את הפקודה:
./gcluster destroy DEPLOYMENT_FOLDER --auto-approve
מחליפים את מה שכתוב בשדות הבאים:
-
DEPLOYMENT_FOLDER: השם של תיקיית הפריסה. בדרך כלל זה אותו הדבר כמו DEPLOYMENT_NAME.
-
בסיום ההסרה של האשכול אמורה להופיע הודעה דומה לזו שבהמשך:
Destroy complete! Resources: xx destroyed.
הוראות מתקדמות לפריסה ידנית, כולל הסבר על השמדה נקייה של התשתית, מופיעות בתיקיית הפריסה שנמצאת בתיקיית השורש של Cluster Toolkit: DEPLOYMENT_FOLDER/instructions.txt
המאמרים הבאים
- אימות השימוש בהזמנה
- הצגת הטופולוגיה של מכונות ה-VM
- ניהול אירועים במארח במכונות וירטואליות
- ניהול אירועים של מארחים בהזמנות
- מעקב אחר מכונות וירטואליות באשכול Slurm
- דיווח על מארח עם בעיה