במאמר הזה נסביר איך ליצור מכונה וירטואלית (VM) עם הפעלה גמישה. מכונות וירטואליות עם הפעלה גמישה פועלות עד שבעה ימים ועוזרות לכם להשיג משאבים מבוקשים כמו יחידות GPU במחיר מוזל. התכונות האלה הופכות את המכונות הווירטואליות עם הפעלה גמישה לפתרון משתלם להפעלת עומסי עבודה לפרקי זמן קצרים, כמו כוונון עדין של מודלים והסקת מידע באצווה.
מידע נוסף על המאפיינים העיקריים של מכונות וירטואליות עם הפעלה גמישה, כולל הדרישות וההגבלות שחלות כשיוצרים אותן, זמין במאמר מידע על מכונות וירטואליות עם הפעלה גמישה.
לפני שמתחילים
- מידע נוסף על שימוש בסוג מכונה שעבר אופטימיזציה לשימוש במאיץ (למעט A4X Max או A4X) במכונה וירטואלית זמין במאמר סקירה כללית על יצירת מכונה עם מעבדי GPU מצורפים.
-
אם עדיין לא עשיתם את זה, תצטרכו להגדיר אימות.
אימות הוא תהליך שבו מאמתים את הזהות שלכם כדי לקבל גישה לממשקי API ולשירותים של Google Cloud . כדי להריץ קוד או דוגמאות מסביבת פיתוח מקומית, אפשר לבצע אימות ל-Compute Engine באחת מהדרכים הבאות:
צריך לבחור את הכרטיסייה הרלוונטית לאופן שבו תכננתם להשתמש בדוגמאות בדף הזה:
המסוף
כשמשתמשים במסוף Google Cloud כדי לגשת לשירותים ולממשקי ה-API, לא צריך להגדיר אימות. Google Cloud
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) בפרויקט.
כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
זהו תפקיד שמוגדר מראש וכולל את ההרשאות שנדרשות ליצירת מכונה וירטואלית עצמאית עם תשלום לפי שימוש. כדי לראות בדיוק אילו הרשאות נדרשות, אפשר להרחיב את הקטע ההרשאות הנדרשות:
ההרשאות הנדרשות
כדי ליצור מכונת Flex-start עצמאית, נדרשות ההרשאות הבאות:
-
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בדיסק
יכול להיות שתקבלו את ההרשאות האלה באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש אחרים.
יצירת Flex-start VM
אם רוצים ליצור Flex-start VM שמשתמשת בסוג מכונה שאינו A2, G4, G2 או N1, אפשר לעיין במאמרים הבאים:
כדי ליצור Flex-start VM מסוג A2 או G2 שמציין מדיניות למיקום קומפקטי לזמן אחזור מינימלי ברשת, צריך להשתמש ב-CLI של gcloud או ב-API בארכיטקטורת REST. אחרת, בוחרים באחת מהאפשרויות הבאות:
המסוף
נכנסים לדף Create an instance במסוף Google Cloud .
בחלונית Machine configuration (הגדרות המכונה), מבצעים את הפעולות הבאות:
בשדה Name, מזינים שם ל-Flex-start VM.
מציינים את האזור והתחום שבהם רוצים ליצור את המכונה הווירטואלית. כדי לבדוק את האזורים והתחומים שבהם סוג המכונה שרוצים להשתמש בו זמין, אפשר לעיין במאמר אזורים ותחומים זמינים.
בהתאם לעומס העבודה שרוצים להריץ, מציינים את סוג המכונה באופן הבא:
כדי לציין סוג מכונה וירטואלית שעברה אופטימיזציה למאיץ, מבצעים את הפעולות הבאות:
לוחצים על הכרטיסייה GPUs.
ברשימה GPU type (סוג ה-GPU), בוחרים סוג GPU, חוץ מ-NVIDIA GB200 192GB.
ברשימה Number of GPUs (מספר יחידות ה-GPU), בוחרים את מספר יחידות ה-GPU שרוצים לצרף למכונה הווירטואלית.
אופציונלי: אם דגם ה-GPU שלכם תומך בתחנות עבודה וירטואליות של NVIDIA RTX (vWS) לעומסי עבודה של גרפיקה, ואתם מתכננים להריץ עומסי עבודה עתירי גרפיקה, בוחרים באפשרות הפעלת תחנת עבודה וירטואלית (NVIDIA GRID).
כדי לציין סוג מכונה H4D:
לוחצים על הכרטיסייה Compute optimized (אופטימיזציה של מחשוב).
בעמודה סדרה, בוחרים באפשרות H4D.
בתפריט הניווט, לוחצים על מתקדם. בחלונית Advanced שמופיעה, מבצעים את הפעולות הבאות:
בקטע Provisioning model, ברשימה VM provisioning model, בוחרים באפשרות Flex-start.
בשדה Enter number of hours (הזנת מספר השעות) מזינים את משך הזמן המקסימלי שבו רוצים שהמכונה הווירטואלית תפעל. הערך צריך להיות בין
0.01(0.01 שעות או 36 שניות) לבין168(168 שעות או שבעה ימים).מסמנים את התיבה הגדרת זמן המתנה ליצירת מכונה וירטואלית. לאחר מכן, על סמך הדרישות האזוריות של עומס העבודה, מציינים את אחד משני משכי הזמן הבאים כדי להגדיל את הסיכויים לכך שבקשת יצירת המכונה הווירטואלית תצליח:
אם העומס שלכם מחייב אתכם ליצור את המכונה הווירטואלית באזור ספציפי, אתם צריכים לציין משך זמן בין 90 שניות לבין שעתיים. ככל שהמשך ארוך יותר, כך גדל הסיכוי להשיג משאבים.
אם אפשר להריץ את מכונת ה-VM בכל אזור בתוך האזור, צריך לציין משך של 0 שניות או לבטל את הסימון של התיבה הגדרת זמן המתנה ליצירת מכונת VM. הפעולה הזו מציינת ש-Compute Engine מקצה משאבים רק אם הם זמינים באופן מיידי. אם בקשת יצירת המכונה הווירטואלית נכשלת כי המשאבים לא זמינים, צריך לנסות שוב את הבקשה באזור אחר.
בשדה On VM termination, בוחרים אם להפסיק את הפעילות של Flex-start VM או למחוק אותה בסוף משך ההפעלה שלה:
כדי למחוק את מכונת ה-VM, בוחרים באפשרות מחיקה.
כדי לעצור את המכונה הווירטואלית, בוחרים באפשרות עצירה.
כדי ליצור את Flex-start VM, לוחצים על Create.
gcloud
כדי ליצור מכונה וירטואלית מסוג A2, G4, G2 או N1 Flex-start, משתמשים בפקודה gcloud compute instances create עם הדגלים הבאים:
הדגל
--request-valid-for-durationהדגל
--provisioning-model=FLEX_STARTהדגל
--instance-termination-actionהדגל
--max-run-durationהדגל
--maintenance-policy=TERMINATEהדגל
--reservation-affinity=none
כדי ליצור Flex-start VM, מריצים את הפקודה הבאה:
gcloud compute instances create VM_NAME \
--machine-type=MACHINE_TYPE \
--zone=ZONE \
--request-valid-for-duration=VALID_FOR_DURATION \
--provisioning-model=FLEX_START \
--instance-termination-action=TERMINATION_ACTION \
--max-run-duration=RUN_DURATION \
--maintenance-policy=TERMINATE \
--reservation-affinity=none
מחליפים את מה שכתוב בשדות הבאים:
VM_NAME: השם של ה-VM החדש.MACHINE_TYPE: סוג המכונה לשימוש ב-Flex-start VM. אם מציינים סוג מכונה G4, G2 או N1, צריך לשים לב לנקודות הבאות:בסוגי מכונות G4 או G2, אפשר לציין תחנות עבודה וירטואליות (vWS) של NVIDIA RTX לשימוש בעומסי עבודה שדורשים הרבה גרפיקה. כדי לעשות זאת, מוסיפים את הדגל
--acceleratorלפקודה באופן הבא:--accelerator=count=VWS_ACCELERATOR_COUNT,type=VWS_ACCELERATOR_TYPEמחליפים את מה שכתוב בשדות הבאים:
VWS_ACCELERATOR_COUNT: מספר ה-NVIDIA RTX vWS שעומס העבודה דורש. המספר הזה צריך להיות זהה למספר ה-GPU שמצורפים לסוג המכונה G4 או G2 שבו רוצים להשתמש.
VWS_ACCELERATOR_TYPE: סוג המאיץ של NVIDIA RTX vWS שבו רוצים להשתמש. מציינים אחד מהערכים הבאים:לסוגי מכונות G4:
nvidia-rtx-pro-6000-vwsלסוגי מכונות G2:
nvidia-l4-vws
בסוגי מכונות N1, צריך לציין את מספר יחידות ה-GPU ואת הסוג שלהן כדי לצרף אותן למכונה הווירטואלית. אחרת, יצירת ה-VM תיכשל. כדי לצרף GPU למכונה וירטואלית מסוג N1, מוסיפים את הדגל
--acceleratorלפקודה באופן הבא:--accelerator=count=NUMBER_OF_ACCELERATORS,type=ACCELERATOR_TYPEמחליפים את מה שכתוב בשדות הבאים:
NUMBER_OF_ACCELERATORS: מספר יחידות ה-GPU שרוצים לצרף למכונה הווירטואלית מסוג N1.
ACCELERATOR_TYPE: דגם GPU נתמך למכונות וירטואליות מסוג N1.
ZONE: האזור שבו רוצים ליצור את המכונה הווירטואלית. כדי לוודא שסוג המכונה שציינתם זמין באזור שבו אתם רוצים ליצור את המכונה הווירטואלית, אפשר לעיין במאמר אזורים ותחומים זמינים.
VALID_FOR_DURATION: הזמן המקסימלי להמתנה להקצאת המשאבים המבוקשים. הערך צריך להיות בפורמט של מספר הימים, השעות, הדקות או השניות, ואחריוd,h,mו-sבהתאמה. לדוגמה, מציינים30mל-30 דקות או1h2m3sלשעה, שתי דקות ושלוש שניות. בהתאם לדרישות האזוריות של עומס העבודה, מציינים את אחד מהמשכים הבאים כדי להגדיל את הסיכויים לכך שבקשת יצירת ה-VM תצליח:אם עומס העבודה מחייב אתכם ליצור את המכונה הווירטואלית באזור ספציפי, אתם צריכים לציין משך זמן בין 90 שניות (
90s) לשעתיים (2h). משך זמן ארוך יותר מגדיל את הסיכויים לקבל משאבים.אם המכונה הווירטואלית יכולה לפעול בכל תחום באזור, צריך לציין משך של אפס שניות (
0s). הערך הזה מציין ש-Compute Engine יקצה משאבים רק אם הם זמינים באופן מיידי. אם בקשת היצירה נכשלת כי המשאבים לא זמינים, צריך לנסות שוב את הבקשה באזור אחר.
TERMINATION_ACTION: האם לעצור או למחוק את המכונה הווירטואלית (VM) בסיום משך ההפעלה שלה. מציינים אחד מהערכים הבאים:כדי לעצור את המכונה הווירטואלית:
STOPכדי למחוק את המכונה הווירטואלית:
DELETE
RUN_DURATION: הזמן המקסימלי שהמכונה הווירטואלית פועלת לפני שמערכת Compute Engine מפסיקה או מוחקת אותה באופן אוטומטי. צריך לעצב את הערך כמספר הימים, השעות, הדקות או השניות, ואחריוd,h,mו-sבהתאמה. הערך צריך להיות בין 10 דקות לשבעה ימים.
אם רוצים להחיל מדיניות למיקום קומפקטי על מכונת Flex-start VM מסוג A2 או G2, צריך לכלול את הדגל --resource-policies בפקודה:
gcloud compute instances create VM_NAME \
--machine-type=MACHINE_TYPE \
--zone=ZONE \
--request-valid-for-duration=VALID_FOR_DURATION \
--provisioning-model=FLEX_START \
--instance-termination-action=TERMINATION_ACTION \
--max-run-duration=RUN_DURATION \
--maintenance-policy=TERMINATE \
--reservation-affinity=none \
--resource-policies=POLICY_NAME
מחליפים את POLICY_NAME בשם של מדיניות למיקום קומפקטי קיימת. אפשר ליצור Flex-start VM רק באותו אזור שבו מוגדרת מדיניות המיקום.
REST
כדי ליצור מכונה וירטואלית מסוג A2, G4, G2 או N1 עם תשלום לפי שימוש, שולחים בקשת POST אל ה-method instances.insert.
בגוף הבקשה, כוללים את השדות הבאים:
השדה
params.requestValidForDuration.השדה
scheduling.provisioningModelמוגדר ל-FLEX_START.השדה
scheduling.instanceTerminationAction.השדה
scheduling.maxRunDuration.השדה
scheduling.onHostMaintenanceמוגדר ל-TERMINATE.הערך של
reservationAffinity.consumeReservationTypeהוגדר ל-NO_RESERVATION.
כדי ליצור מכונה וירטואלית עם הפעלה גמישה, שולחים בקשת POST באופן הבא:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
{
"name": "VM_NAME",
"machineType": "zones/ZONE/machineTypes/MACHINE_TYPE",
"disks": [
{
"initializeParams": {
"sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
},
"boot": true
}
],
"networkInterfaces": [
{
"network": "global/networks/default"
}
],
"params": {
"requestValidForDuration": {
"seconds": VALID_FOR_DURATION
}
},
"scheduling": {
"provisioningModel": "FLEX_START",
"instanceTerminationAction": "TERMINATION_ACTION",
"maxRunDuration": {
"seconds": RUN_DURATION
},
"onHostMaintenance": "TERMINATE"
},
"reservationAffinity": {
"consumeReservationType": "NO_RESERVATION"
}
}
מחליפים את מה שכתוב בשדות הבאים:
PROJECT_ID: מזהה הפרויקט שבו רוצים ליצור את המכונה הווירטואלית.
ZONE: האזור שבו רוצים ליצור את המכונה הווירטואלית. כדי לוודא שסוג מכונה מסוים זמין באזור שבו רוצים ליצור את המכונה הווירטואלית, אפשר לעיין במאמר בנושא אזורים ותחומים זמינים.
VM_NAME: השם של ה-VM החדש.MACHINE_TYPE: סוג המכונה לשימוש ב-Flex-start VM. אם מציינים סוג מכונה G4, G2 או N1, כדאי לשים לב לנקודות הבאות:בסוגי מכונות G4 או G2, אפשר לציין תחנות עבודה וירטואליות (vWS) של NVIDIA RTX לשימוש בעומסי עבודה שדורשים הרבה גרפיקה. כדי לעשות זאת, כוללים את השדה
guestAcceleratorsבגוף הבקשה באופן הבא:"guestAccelerators": [ { "acceleratorCount": VWS_ACCELERATOR_COUNT, "acceleratorType": "projects/PROJECT_ID/zones/ZONE/acceleratorTypes/VWS_ACCELERATOR_TYPE" } ]מחליפים את מה שכתוב בשדות הבאים:
VWS_ACCELERATOR_COUNT: מספר ה-NVIDIA RTX vWS שעומס העבודה דורש. המספר הזה צריך להיות זהה למספר ה-GPU שמצורפים לסוג המכונה G4 או G2 שבה רוצים להשתמש.
VWS_ACCELERATOR_TYPE: סוג המאיץ של NVIDIA RTX vWS שרוצים להשתמש בו. מציינים אחד מהערכים הבאים:- לסוגי מכונות G2:
nvidia-l4-vws - לסוגי מכונות G4:
nvidia-rtx-pro-6000-vws
- לסוגי מכונות G2:
בסוגי מכונות N1, צריך לציין את מספר יחידות ה-GPU ואת הסוג שלהן כדי לצרף אותן למכונה הווירטואלית. אחרת, יצירת ה-VM תיכשל. כדי לצרף GPU למכונה וירטואלית מסוג N1, צריך לכלול את השדה
guestAcceleratorsבגוף הבקשה באופן הבא:"guestAccelerators": [ { "acceleratorCount": ACCELERATOR_COUNT, "acceleratorType": "projects/PROJECT_ID/zones/ZONE/acceleratorTypes/ACCELERATOR_TYPE" } ]מחליפים את מה שכתוב בשדות הבאים:
NUMBER_OF_ACCELERATORS: מספר יחידות ה-GPU שרוצים לצרף למכונה הווירטואלית מסוג N1.
ACCELERATOR_TYPE: דגם GPU נתמך למכונות וירטואליות מסוג N1.
IMAGE_PROJECT: פרויקט התמונה שמכיל את התמונה, לדוגמה,debian-cloud. מידע נוסף על פרויקטים של תמונות נתמכות זמין במאמר תמונות ציבוריות.
IMAGE: מציינים אחת מהאפשרויות הבאות:גרסה ספציפית של תמונת מערכת ההפעלה – לדוגמה,
debian-12-bookworm-v20240617.משפחת תמונות, שצריכה להיות בפורמט
family/IMAGE_FAMILY. הערך הזה מציין שימוש בקובץ האימג' העדכני ביותר של מערכת ההפעלה שלא הוצא משימוש. לדוגמה, אם מצייניםfamily/debian-12, נעשה שימוש בגרסה העדכנית ביותר במשפחת קובצי האימג' של Debian 12. מידע נוסף על השימוש בסטים של תמונות זמין במאמר בנושא שיטות מומלצות לשימוש בסטים של תמונות.
VALID_FOR_DURATION: הזמן המקסימלי בשניות להמתנה להקצאת המכונה הווירטואלית. בהתאם לדרישות האזוריות של עומס העבודה, מציינים את אחד משני משכי הזמן הבאים כדי להגדיל את הסיכויים שהבקשה ליצירת מכונה וירטואלית תצליח:אם עומס העבודה מחייב אתכם ליצור את המכונה הווירטואלית באזור ספציפי, אתם צריכים לציין משך זמן בין 90 שניות (
90) לשעתיים (7200). משך זמן ארוך יותר מגדיל את הסיכויים לקבל משאבים.אם המכונה הווירטואלית יכולה לפעול בכל תחום באזור, צריך לציין משך של אפס שניות (
0). הערך הזה מציין ש-Compute Engine יקצה משאבים רק אם הם זמינים באופן מיידי. אם בקשת היצירה נכשלת כי המשאבים לא זמינים, צריך לנסות שוב את הבקשה באזור אחר.
TERMINATION_ACTION: האם לעצור או למחוק את המכונה הווירטואלית (VM) בסיום משך ההפעלה שלה. מציינים אחד מהערכים הבאים:כדי לעצור את המכונה הווירטואלית:
STOPכדי למחוק את המכונה הווירטואלית:
DELETE
RUN_DURATION: הזמן המקסימלי, בשניות, שהמכונה הווירטואלית פועלת לפני ש-Compute Engine עוצר או מוחק אותה באופן אוטומטי. הערך צריך להיות בין600(600 שניות, או 10 דקות) לבין604800(604,800 שניות, או שבעה ימים).
אם רוצים להחיל מדיניות למיקום קומפקטי על מכונה וירטואלית מסוג A2 או G2 עם Flex-start VM, צריך לכלול את השדה resourcePolicies בבקשה:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
{
"name": "VM_NAME",
"machineType": "zones/ZONE/machineTypes/MACHINE_TYPE",
"disks": [
{
"initializeParams": {
"sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
},
"boot": true
}
],
"networkInterfaces": [
{
"network": "global/networks/default"
}
],
"params": {
"requestValidForDuration": {
"seconds": VALID_FOR_DURATION
}
},
"scheduling": {
"provisioningModel": "FLEX_START",
"instanceTerminationAction": "TERMINATION_ACTION",
"maxRunDuration": {
"seconds": RUN_DURATION
},
"onHostMaintenance": "TERMINATE"
},
"reservationAffinity": {
"consumeReservationType": "NO_RESERVATION"
},
"resourcePolicies": [
"projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME"
]
}
מחליפים את מה שכתוב בשדות הבאים:
REGION: האזור שבו קיימת מדיניות למיקום קומפקטי. אפשר ליצור Flex-start VM רק באותו אזור שבו מוגדרת מדיניות המיקום.
POLICY_NAME: השם של מדיניות המיקום הקומפקטי.
המאמרים הבאים
נסו בעצמכם
אנחנו ממליצים למשתמשים חדשים ב-Google Cloud ליצור חשבון כדי שיוכלו להעריך את הביצועים של Compute Engine באמצעות תרחישים ממשיים. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300 $להרצה, לבדיקה ולפריסה של עומסי העבודה.
אני רוצה לנסות את Compute Engine בחינם