אם למכונה הווירטואלית (VM) שלכם לא מצורף SSD מקומי והיא לא חלק מקבוצת מופעי מכונה מנוהלים (MIG), אתם יכולים לשנות את סוג המכונה של המכונה אחרי עצירה שלה.
אם סוג המכונה הקיים לא מתאים לעומסי העבודה שמופעלים במכונה הווירטואלית, צריך לשנות את סוג המכונה של המכונה הווירטואלית. לדוגמה, אפשר להפעיל מכונה וירטואלית עם סוג מכונה קטן יותר במהלך ההגדרה, הפיתוח והבדיקה, ואז לשנות את המכונה הווירטואלית כך שתשתמש בסוג מכונה גדול יותר כשמוכנים לעומסי עבודה של סביבת ייצור.
אפשר להשתמש בהליך הזה במקרים הבאים:
- כדי לעבור לסוג מכונה דומה אבל עם מספר שונה של יחידות vCPU או זיכרון באותה סדרת מכונות, למשל:
- אפשר לשנות את
n2-highcpu-4ל-n2-standard-4. - אפשר לשנות את
c3d-standard-30ל-c3d-highmem-30.
- אפשר לשנות את
- כדי לשנות את סוג המכונה כך שישתמש בסדרת מכונות אחרת.
האפשרות הזו נתמכת רק בסדרות מכונות מהדור הראשון והשני, לא כולל סדרות המכונות T2A ו-A2. לדוגמה:
- אפשר לשנות את
n2-standard-4ל-c2-standard-8. - אפשר לשנות את
n1-highmem-4ל-n2d-standard-16.
- אפשר לשנות את
אם רוצים לשנות את סוג המכונה של מכונה וירטואלית שמשתמשת בסדרת מכונות מהדור הראשון או השני (N1, N2, M1 וכו') לסוג מכונה של סדרת מכונות מהדור השלישי או מהדורות מאוחרים יותר (M3, C3, N4 וכו'), צריך לפעול לפי ההליך שמתואר במאמר העברת עומס עבודה למופע מחשוב חדש.
אפשר לשנות את סוג המכונה בלי להשפיע על המשאבים הבאים:
- מפתחות ה-SSH של המכונה הווירטואלית
- ההגדרות של מכונות וירטואליות, כמו המטא-נתונים של מכונות וירטואליות
- הנתונים בדיסק קשיח קבוע או ב-Hyperdisk שמצורפים, כולל אפליקציות מותקנות ונתוני אפליקציות
כדי לשנות את סוג המכונה של מכונות וירטואליות ב-MIG, אפשר לעיין במאמר בנושא יישום אוטומטי של עדכוני הגדרות של מכונות וירטואליות ב-MIG.
לפני שמתחילים
- איך מפסיקים מכונה וירטואלית
- חשוב להבין מהם סוגי מכונות.
-
אם עדיין לא עשיתם את זה, תצטרכו להגדיר אימות.
אימות הוא תהליך שבו מאמתים את הזהות שלכם כדי לקבל גישה לממשקי API ולשירותים של Google Cloud . כדי להריץ קוד או דוגמאות מסביבת פיתוח מקומית, אפשר לבצע אימות ל-Compute Engine באחת מהדרכים הבאות:
צריך לבחור את הכרטיסייה הרלוונטית לאופן שבו תכננתם להשתמש בדוגמאות בדף הזה:
המסוף
כשמשתמשים במסוף Google Cloud כדי לגשת לשירותים Google Cloud ולממשקי ה-API, לא צריך להגדיר אימות.
Java
כדי להשתמש בדוגמאות של Java שבדף הזה בסביבת פיתוח מקומית, מתקינים ומפעילים את ה-CLI של gcloud, ואז מגדירים את Application Default Credentials באמצעות פרטי הכניסה של המשתמש.
-
התקינו את ה-CLI של Google Cloud.
-
אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
-
אם אתם משתמשים במעטפת מקומית, צריך ליצור פרטי כניסה לאימות מקומי עבור חשבון המשתמש:
gcloud auth application-default login
אם אתם משתמשים ב-Cloud Shell, אתם לא צריכים לעשות את זה.
אם מוחזרת שגיאת אימות ואתם משתמשים בספק זהויות חיצוני (IdP), ודאו ש נכנסתם ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Python
כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של Python שבדף הזה, מתקינים ומפעילים את ה-CLI של gcloud, ואז מגדירים את Application Default Credentials באמצעות פרטי הכניסה של המשתמש.
-
התקינו את ה-CLI של Google Cloud.
-
אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
-
אם אתם משתמשים במעטפת מקומית, צריך ליצור פרטי כניסה לאימות מקומי עבור חשבון המשתמש:
gcloud auth application-default login
אם אתם משתמשים ב-Cloud Shell, אתם לא צריכים לעשות את זה.
אם מוחזרת שגיאת אימות ואתם משתמשים בספק זהויות חיצוני (IdP), ודאו ש נכנסתם ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
REST
כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של API בארכיטקטורת REST שבדף הזה, צריך להשתמש בפרטי הכניסה שאתם נותנים ל-CLI של gcloud.
התקינו את ה-CLI של Google Cloud.
אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
מידע נוסף מופיע במאמר אימות לשימוש ב-REST במסמכי האימות של Google Cloud .
-
התפקידים הנדרשים
כדי לקבל את ההרשאות שדרושות לשינוי סוג המכונה של מכונה וירטואלית, צריך לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים בפרויקט:
- Compute Instance Admin (v1) (
roles/compute.instanceAdmin.v1) -
כדי להתחבר למכונה וירטואלית שיכולה לפעול כחשבון שירות: משתמש בחשבון שירות (v1) (
roles/iam.serviceAccountUser)
להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
התפקידים המוגדרים מראש האלה מכילים את ההרשאות שנדרשות לשינוי סוג המכונה של מכונה וירטואלית. כדי לראות בדיוק אילו הרשאות נדרשות, אפשר להרחיב את הקטע ההרשאות הנדרשות:
ההרשאות הנדרשות
כדי לשנות את סוג המכונה של מכונה וירטואלית, נדרשות ההרשאות הבאות:
-
compute.instances.setMachineTypeב-VM -
compute.instances.startב-VM -
compute.instances.stopב-VM
יכול להיות שתקבלו את ההרשאות האלה באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש אחרים.
מגבלות
- אם למכונת החישוב שלכם מצורף SSD מקומי אחד או יותר, צריך לפעול לפי ההוראות שבמאמר העברת עומס העבודה למכונת חישוב חדשה.
- אם מופע המחשוב משתמש בכתובת IP חיצונית ארעית, יכול להיות שכתובת ה-IP תשתנה כשמשנים את סוג המכונה של המופע. כדי לשמור את כתובת ה-IP, צריך להפוך אותה לכתובת IP חיצונית סטטית לפני שמשנים את סוג המכונה.
- האפשרות לשנות את סוג המכונה של מופע Compute לא זמינה בחלק מההגדרות:
- אי אפשר לשנות את סוג המכונה במכונות Bare Metal.
- אם רוצים לשנות את סוג המכונה מסדרת מכונות מהדור הראשון או השני של מכונות לסוג מכונה מסדרת מכונות מהדור השלישי או מדורות מאוחרים יותר, אי אפשר להשתמש בהליך הזה. במקום זאת, פועלים לפי ההוראות במאמר העברת עומס עבודה למופע מחשוב חדש.
- אם רוצים לשנות את סוג המכונה לסוג מכונת Arm, אי אפשר להשתמש בהליך הזה. במקום זאת, פועלים לפי ההוראות במאמר העברת עומס עבודה למופע מחשוב חדש.
- במקרים של מופעים שעברו אופטימיזציה לשימוש במאיץ, אי אפשר לשנות את סוג המכונה באמצעות התהליך הזה. עם זאת, במכונות מסוג G4, G2, A2 Standard ו-N1, כדי לעבור לסוג מכונה דומה אבל עם מספר שונה של יחידות GPU באותה סדרת מכונות שעברו אופטימיזציה להאצת ביצועים, צריך לפעול לפי ההוראות במאמר שינוי מספר יחידות ה-GPU במכונות שעברו אופטימיזציה להאצת ביצועים.
- אם רוצים לשנות את סוג המכונה לסוג חדש יותר, אבל גם רוצים להוסיף למכונה ממשקי רשת נוספים, אי אפשר להשתמש בהליך הזה. במקום זאת, פועלים לפי ההוראות במאמר העברת עומס עבודה למופע מחשוב חדש.
השלכות על החיוב
כל סוג מכונה מחויב בתעריף שונה, לכן חשוב להבין את ההשלכות של שינוי סוגי המכונות על התמחור. לדוגמה, סוג מכונה e2-standard-2 עולה יותר מסוג מכונה e2-micro.
שינוי סוג המכונה עשוי להשפיע גם על ההנחות על שימוש מתמשך במכונה הווירטואלית. הנחות על שימוש מתמשך מחושבות בנפרד לקטגוריות שונות באותו אזור. אם משנים את סוגי המכונות כך שהסוג החדש יהיה בקטגוריה אחרת, זמן הריצה הבא של המכונה הווירטואלית ייספר במסגרת הנחה על שימוש קבוע של הקטגוריה החדשה.
לדוגמה, נניח שיש לכם מכונה וירטואלית עם n2-standard-2 סוג מכונה שפועלת במשך חצי חודש. אחר כך מחליטים לשנות את סוג המכונה ל-m1-ultramem-40. אחרי שתבצעו את השינוי הזה, מערכת Compute Engine תתחיל לספור את זמן הפעולה של המכונה הווירטואלית לצורך הנחה על שימוש מתמשך בקטגוריית הזיכרון והמעבד הווירטואלי שעברו אופטימיזציה לזיכרון.
בחשבון שלכם תופיע הנחה על שימוש קבוע שחלה על סוג המכונה n2-standard-2 לפני ששיניתם את סוג המכונה, והנחה נפרדת על שימוש קבוע שחלה על m1-ultramem-40, אם המכונה הווירטואלית שלכם ממשיכה לפעול ב-m1-ultramem-40 לפחות 25% משאר החודש.
מעבר לסוג מכונה קטן יותר
אם עוברים מסוג מכונה עם יותר משאבים לסוג מכונה עם פחות משאבים, למשל מ-e2-standard-8 ל-e2-standard-2, יכול להיות שתיתקלו בבעיות שקשורות למשאבי חומרה או במגבלות בביצועים, כי סוגי מכונות קטנים פחות חזקים מסוגי מכונות גדולים. חשוב לוודא שסוג המכונה החדש יכול לתמוך באפליקציות או בשירותים שפועלים במכונה הווירטואלית הנוכחית, או לעדכן את השירותים והאפליקציות כך שיפעלו בסוגי המכונות הקטנים יותר.
לפני שמשנים את סוג המכונה, כדאי לעיין בהמלצות להתאמת גודל. מידע על המלצות לגבי גודל ב-Compute Engine זמין במאמר החלת המלצות לגבי סוגי מכונות על מכונות וירטואליות.
שיטות מומלצות
ריכזנו כאן כמה שיטות מומלצות שיעזרו לכם לשנות את סוג המכונה של המכונה הווירטואלית בצורה מוצלחת.
יוצרים גיבויים קבועים של הנתונים בדיסק לאחסון מתמיד באמצעות קובצי snapshot. מומלץ לצלם תמונת מצב של הנתונים בדיסק לאחסון מתמיד לפני שמשנים את סוג המכונה. כדי לוודא שסוג המכונה החדש יכול לתמוך בנתונים במכונה הוירטואלית הקיימת, אפשר ליצור snapshot של דיסק קבוע ולהשתמש בו כדי להפעיל מכונה וירטואלית שנייה עם סוג המכונה החדש, כדי לוודא שהמכונה הוירטואלית מופעלת בהצלחה.
מוסיפים דיסקים נוספים לקובץ
/etc/fstab. אם יש לכם דיסקים נוספים שמצורפים למכונה הווירטואלית, הקפידו להוסיף אותם לקובץ/etc/fstabכדי שהם יותקנו באופן אוטומטי כשהמכונה הווירטואלית תופעל מחדש.יוצרים הזמנה לפני שמשנים את סוג המכונה. כדי להימנע משגיאות שקשורות לזמינות משאבים, כדאי ליצור שמירת מקום ב-Compute Engine לסוגי המכונות החדשים כשהם יהיו זמינים כדי לשריין אותם באזור. הזמנות עוזרות לוודא שהמשאבים זמינים כשאתם צריכים אותם.
כדי ליצור הזמנה, מבצעים את השלבים הבאים:
יוצרים הזמנה (או מזהים הזמנות קיימות) עם מאפיינים זהים לאלה של מכונות ה-VM המתוכננות. מספר מכונות ה-VM בהזמנה צריך להיות שווה למספר מכונות ה-VM שרוצים לשנות או גדול ממנו. אופציונלי: כדי למנוע ממכונות וירטואליות אחרות להשתמש בהזמנה הזו, משתמשים באפשרות
specificReservationRequired.מוודאים שהמכונות הווירטואליות המתוכננות יוכלו להשתמש בהזמנה:
- מוודאים שלמכונות הווירטואליות יש את ההעדפה הנכונה להזמנה.
- לפני שמבצעים שינויים במכונות הווירטואליות, צריך לוודא שיש מספיק קיבולת בהזמנה.
שינוי סוג המכונה
אפשר לשנות את סוג המכונה רק במכונה וירטואלית שהופסקה. מכונה וירטואלית נחשבת למופסקת רק כשהיא במצבTERMINATED. אי אפשר לשנות את סוג המכונה של מכונה וירטואלית שפועלת.
אם אתם משדרגים את סוג המכונה לדור האחרון, כדאי לעיין במאמר הערכת אפשרויות להעברת מכונות וירטואליות לפני שתמשיכו.
המסוף
נכנסים לדף VM instances במסוף Google Cloud .
בעמודה Name (שם), לוחצים על שם המכונה הווירטואלית שרוצים לשנות את סוג המכונה שלה.
בדף פרטי המכונה הווירטואלית, מבצעים את השלבים הבאים:
- אם המכונה הווירטואלית פועלת, לוחצים על Stop כדי להפסיק את המכונה הווירטואלית. אם האפשרות עצירה לא מופיעה, לוחצים על פעולות נוספות > עצירה.
- כדי לערוך את המכונה הווירטואלית, לוחצים על Edit (עריכה).
בקטע Machine configuration, בוחרים את סוג המכונה שרוצים להשתמש בה או יוצרים סוג מכונה בהתאמה אישית.
כדי לשמור את השינויים, לוחצים על שמירה.
מפעילים מחדש את ה-VM.
gcloud
מפסיקים את ה-VM באמצעות הפקודה
gcloud compute instances stop:gcloud compute instances stop VM_NAME
מחליפים את
VM_NAMEבמכונה הווירטואלית שמכילה את סוג המכונה שרוצים לשנות.משנים את סוג המכונה באמצעות הפקודה
gcloud compute instances set-machine-type:gcloud compute instances set-machine-type VM_NAME \ --machine-type NEW_MACHINE_TYPEמחליפים את
NEW_MACHINE_TYPEבסוג המכונה החדש של המכונה הווירטואלית. סוג המכונה יכול להיות אחד מהערכים הבאים:-
לדוגמה:
e2-standard-2 -
לדוגמה, אפשר לציין
--machine-type e2-custom-4-2048כדי להגדיר סוג מכונה מותאם אישית עם 4 ליבות vCPU וזיכרון בנפח 2GB.
-
מפעילים את ה-VM באמצעות הפקודה
gcloud compute instances start:gcloud compute instances start VM_NAME
מחליפים את
VM_NAMEבשם המכונה הווירטואלית ששיניתם.
Java
Java
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Javaהוראות ההגדרה שבמדריך למתחילים של Compute Engine באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Compute Engine Java API.
כדי לבצע אימות ב-Compute Engine, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
Python
Python
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Pythonהוראות ההגדרה שבמדריך למתחילים של Compute Engine באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Compute Engine Python API.
כדי לבצע אימות ב-Compute Engine, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
REST
מפסיקים את ה-VM באמצעות השיטה
instances.stop:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/stop
מחליפים את מה שכתוב בשדות הבאים:
PROJECT_ID: מזהה הפרויקט
ZONE: האזור שמכיל את המכונה הווירטואלית
VM_NAME: המכונה הווירטואלית שמכילה את סוג המכונה שרוצים לשנות
משנים את סוג המכונה באמצעות השיטה
instances.setMachineType:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/setMachineType
בגוף הבקשה, מציינים את
machineTypeהמעודכן:{ machineType: "zones/MACHINE_TYPE_ZONE/machineTypes/NEW_MACHINE_TYPE" }מחליפים את מה שכתוב בשדות הבאים:
MACHINE_TYPE_ZONE: האזור שמכיל את סוג המכונה
NEW_MACHINE_TYPE: סוג המכונה החדש של המכונה הווירטואליתסוג המכונה יכול להיות אחד מהערכים הבאים:
-
לדוגמה:
e2-standard-2 -
לדוגמה, אפשר לציין
--machine-type e2-custom-4-2048כדי להגדיר סוג מכונה בהתאמה אישית עם 4 ליבות vCPU וזיכרון של 2GB.
-
מפעילים את ה-VM באמצעות השיטה
instances.start:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/start
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט -
ZONE: האזור שמכיל את המכונה הווירטואלית -
VM_NAME: השם של המכונה הווירטואלית ששיניתם
-
המאמרים הבאים
- מידע נוסף על המלצות לגבי סוגי מכונות
- מידע נוסף על קבוצות מנוהלות של מופעים
- תבניות לאפליקציות עמידות שניתנות להרחבה
- כדי לעדכן מכונה וירטואלית מהדור הראשון או השני לשימוש בסדרת מכונות מהדור השלישי או מדורות מאוחרים יותר, אפשר לעיין במאמר בנושא העברת עומס העבודה למופע מחשוב חדש.