בדף הזה מוסבר איך ליצור אשכול Slurm למחשוב עתיר ביצועים (HPC) שמשתמש בגישה ישירה לזיכרון (RDMA) מרחוק עם מכונות וירטואליות מסוג H4D, עם יכולות משופרות לניהול אשכולות. כדי להגדיר את האשכול, משתמשים ב-CLI של gcloud וב-Cluster Toolkit.
סדרת המכונות H4D תוכננה במיוחד כדי לענות על הצרכים של עומסי עבודה תובעניים ב-HPC. ב-H4D יש מכונות עם יכולת משופרת להרחבת עומסי העבודה באמצעות רשת Cloud RDMA עם קצב העברת נתונים של 200Gbps. מידע נוסף על סוגי מכונות H4D שמותאמות לצריכת מעבד גבוהה (compute-optimized) ב- Google Cloudזמין במאמר סדרת המכונות H4D.
לפני שמתחילים
לפני שיוצרים אשכול Slurm, אם עדיין לא עשיתם זאת, צריך לבצע את השלבים הבאים:
- בחירת אפשרות צריכה: האפשרות שתבחרו קובעת איך אתם רוצים לקבל משאבי vCPU ולהשתמש בהם.
- קבלת נפח אחסון: קבלת נפח אחסון לאפשרות הצריכה שנבחרה.
- מוודאים שיש לכם מספיק מכסת קיבולת ב-Filestore: לפני הפריסה, צריך לוודא שיש לכם מספיק מכסה ב-Filestore באזור היעד.
הקיבולת המינימלית הנדרשת תלויה בסוגי המכונות באשכול:
- A4X Max, A4X, A4, 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.
מידע נוסף זמין במאמר בחירת אפשרות צריכה וקבלת קיבולת.
מפעילים את Cloud Shell במסוף Google Cloud .
בחלק התחתון של מסוף Google Cloud יתחיל סשן של Cloud Shell ותופיע הודעה של שורת הפקודה. Cloud Shell היא סביבת מעטפת שבה ה-CLI של Google Cloud מותקן ומוגדרים ערכים לפרויקט הקיים. הסשן יופעל תוך כמה שניות.
הגדרה של קטגוריית אחסון
בתרשימי האשכולות נעשה שימוש במודולים של 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_INSTANCES
h4d_reservation_name: RESERVATION_NAME
מחליפים את מה שכתוב בשדות הבאים:
-
BUCKET_NAME: השם של הקטגוריה שלכם ב-Cloud Storage, שיצרתם בקטע הקודם. -
DEPLOYMENT_NAME: שם לפריסה. אם יוצרים כמה אשכולות, צריך לבחור שם ייחודי לכל אחד מהם. PROJECT_ID: מזהה הפרויקט.-
REGION: האזור שבו נמצאות המכונות השמורות. -
ZONE: האזור שבו רוצים להקצות את האשכול. אם אתם משתמשים באפשרות צריכה שמבוססת על הזמנה, צוות החשבון שלכם סיפק את המידע על האזור ועל האזור הזמין כשהקיבולת סופקה. -
NUMBER_OF_INSTANCES: מספר המכונות של Compute Engine שרוצים באשכול. -
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_INSTANCES
h4d_dws_flex_enabled: true
מחליפים את מה שכתוב בשדות הבאים:
-
BUCKET_NAME: השם של הקטגוריה שלכם ב-Cloud Storage, שיצרתם בקטע הקודם. -
DEPLOYMENT_NAME: שם לפריסה. אם יוצרים כמה אשכולות, צריך לבחור שם ייחודי לכל אחד מהם. PROJECT_ID: מזהה הפרויקט.-
REGION: האזור שבו רוצים להקצות את האשכול. -
ZONE: האזור שבו רוצים להקצות את האשכול. -
NUMBER_OF_INSTANCES: מספר המכונות של Compute Engine שרוצים באשכול.
בפריסה הזו מוקצים צמתי מחשוב סטטיים, כלומר, תמיד יש באשכול מספר קבוע של צמתים. אם רוצים להפעיל את שינוי הגודל האוטומטי של האשכול, משתמשים בקובץ 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_INSTANCES
h4d_enable_spot_vm: true
מחליפים את מה שכתוב בשדות הבאים:
-
BUCKET_NAME: השם של הקטגוריה שלכם ב-Cloud Storage, שיצרתם בקטע הקודם. -
DEPLOYMENT_NAME: שם לפריסה. אם יוצרים כמה אשכולות, צריך לבחור שם ייחודי לכל אחד מהם. PROJECT_ID: מזהה הפרויקט.-
REGION: האזור שבו רוצים להקצות את האשכול. -
ZONE: האזור שבו רוצים להקצות את האשכול. -
NUMBER_OF_INSTANCES: מספר המכונות ב-Compute Engine שרוצים להגדיר באשכול.
הקצאת אשכול Slurm מסוג H4D
Cluster Toolkit מקצה את האשכול על סמך קובץ הפריסה שיצרתם בשלב הקודם ותרשים האשכול שמוגדר כברירת מחדל. מידע נוסף על התוכנה שמותקנת על ידי התבנית זמין במאמר מידע נוסף על קובצי אימג' בהתאמה אישית של Slurm.
ב-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: האזור שבו נמצאות המכונות הווירטואליות של האשכול. -
LOGIN_NODE: השם של צומת הכניסה, שזיהיתם בשלב הקודם.
-
פריסה מחדש של אשכול Slurm
אם אתם צריכים להגדיל את מספר צמתי החישוב או להוסיף מחיצות חדשות לאשכול, יכול להיות שתצטרכו לעדכן את ההגדרות של אשכול Slurm באמצעות פריסה מחדש.
כדי לפרוס מחדש את האשכול באמצעות תמונה קיימת:
מריצים את הפקודה הבאה:
./gcluster deploy -d h4d-slurm-deployment.yaml examples/h4d/h4d-slurm-deployment.yaml --only cluster-env,cluster --auto-approve -w
הפקודה הזו מיועדת רק לפריסות מחדש שבהן כבר קיים קובץ אימג'. היא פורסת מחדש רק את האשכול ואת תשתית ה-IT שלו.
השמדת אשכול Slurm
כדי להסיר את אשכול Slurm ואת המופעים שבו, מבצעים את הפעולות הבאות:
אם עוד לא עשיתם את זה, מתנתקים מהאשכול.
לפני שמריצים את פקודת ההשמדה, עוברים לספריית הבסיס של 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
המאמרים הבאים
- אימות השימוש בהזמנה
- הצגת הטופולוגיה של מכונות וירטואליות
- ניהול אירועים במארח במכונות וירטואליות
- ניהול אירועים של מארחים בכל ההזמנות
- מעקב אחרי מכונות וירטואליות באשכול Slurm
- דיווח על מארח לא תקין