העברת עומס העבודה למופע חדש של מחשוב

במצבים מסוימים, יכול להיות שתרצו להעביר את עומס העבודה ממכונה וירטואלית (VM) קיימת למכונה וירטואלית חדשה יותר. הסיבות למעבר למכונה וירטואלית חדשה כוללות את הדברים הבאים:

  • כדאי לנצל את סוגי המכונות החדשים כדי לקבל מהירויות אחסון או מהירויות רשת גבוהות יותר. לדוגמה, שדרוג מ-C2 ל-H3 כדי לשפר את רוחב הפס של הרשת.
  • ליהנות מביצועים טובים יותר ביחס למחיר בהשוואה למכונת ה-VM המקורית. לדוגמה, שדרוג מ-N1 ל-N4 כדי לקבל ערך גבוה יותר במעבד Intel Xeon דור 5.
  • להשתמש בתכונות שזמינות רק במכונה הווירטואלית החדשה. לדוגמה, שדרוג מ-N4 ל-C4 כדי ליהנות מביצועים משופרים ומאפשרויות תחזוקה נוספות, או שדרוג מ-H3 ל-H4D כדי לקבל תמיכה ב-Cloud RDMA.
  • שינוי מכונה וירטואלית (VM) למכונת Bare Metal.
  • מוסיפים דיסקים של SSD מקומי למכונת VM מסוג C3 או C3D.

כשמשדרגים לסדרת המכונות מהדור החדש ביותר, יכול להיות שאפשר להשתמש בהליך הפשוט יותר שמתואר במאמר עריכת סוג המכונה של מופע Compute אם המכונה הווירטואלית הנוכחית (מקור) עומדת בתנאים הבאים:

  • גרסת מערכת ההפעלה (OS) נתמכת על ידי סדרת המכונות החדשה.
  • סוג הדיסק של דיסק האתחול שמחובר למכונה הווירטואלית של המקור נתמך על ידי סדרת המכונות החדשה.
  • המכונה הווירטואלית לא משתמשת באחסון SSD מקומי.
  • המכונה הווירטואלית עם יחידות ה-GPU המצורפות משתמשת בסוג מכונה G2. פרטים נוספים זמינים במאמר הוספה או הסרה של יחידות GPU.
  • המכונה הווירטואלית משתמשת רק בתכונות שנתמכות בסדרת המכונות החדשה.
  • המכונה הווירטואלית לא שייכת לקבוצת מופעי מכונה מנוהלים (MIG).
  • כדי להשתמש בתכונות החדשות, לא צריך ליצור ממשקי רשת נוספים למופע.

לפני שמתחילים

  • אם עדיין לא עשיתם את זה, תצטרכו להגדיר אימות. אימות הוא תהליך שבו מאמתים את הזהות שלכם כדי לקבל גישה לממשקי API ולשירותים של Google Cloud . כדי להריץ קוד או דוגמאות מסביבת פיתוח מקומית, אפשר לבצע אימות ל-Compute Engine באחת מהדרכים הבאות:

    צריך לבחור את הכרטיסייה הרלוונטית לאופן שבו תכננתם להשתמש בדוגמאות בדף הזה:

    המסוף

    כשמשתמשים במסוף Google Cloud כדי לגשת לשירותים ולממשקי ה-API, לא צריך להגדיר אימות. Google Cloud

    gcloud

    1. התקינו את ה-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.instances.stop בפרויקט
    • compute.instances.create בפרויקט
    • compute.instances.start בפרויקט
    • compute.instances.setMachineType במופע
  • כדי ליצור קובץ snapshot של דיסק האתחול של מופע המקור:
    • compute.snapshots.create בפרויקט
    • compute.disks.createSnapshot בדיסק
  • כדי ליצור דיסק חדש:
    • compute.disks.list בפרויקט
    • compute.disks.create בפרויקט
    • compute.disks.update בפרויקט
  • כדי לצרף דיסק למופע:
    • compute.instances.attachDisk במופע
    • compute.disks.use בדיסק
  • כדי למחוק דיסק: compute.disks.delete בפרויקט
  • כדי לשנות את סוג הרשת:
    • compute.networks.list בפרויקט
    • compute.networks.update בפרויקט

יכול להיות שתקבלו את ההרשאות האלה באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש אחרים.

הערכת האפשרויות להעברת מכונות וירטואליות

ההעברה מסוג מכונה אחד לסוג מכונה אחר תלויה בכמה גורמים, כולל הזמינות האזורית של סוג המכונה החדש והתאימות של אפשרויות האחסון וממשקי הרשת ביחס למערכת ההפעלה של האורח במקור ולסדרת המכונות החדשה.

דרישות מחשוב

כדאי לעיין בדרישות הבאות לגבי המופע הנוכחי וסוג המכונה החדש:

  • כדי לזהות אילו סוגי מכונות מתאימים לעומס העבודה שלכם, אפשר לעיין במסמכי העזרה בנושא משפחת מכונות. כדאי לשקול אם האפליקציה דורשת חומרה ספציפית (מעבדים גרפיים), ביצועים גבוהים או עלויות נמוכות יותר.
  • בודקים את התכונות של סוגי הדיסקים שנתמכים על ידי סוג המכונה החדש. רוב התכונות של Persistent Disk נתמכות ב-Hyperdisk, אבל לא כולן. עם זאת, Hyperdisk מספק תכונות נוספות שלא זמינות ב-Persistent Disk.
  • בודקים את התכונות של סדרת המכונות הרלוונטית. יכול להיות שסדרת המכונות החדשה לא תתמוך באותם תכונות שבהן אתם משתמשים בסדרת המכונות הנוכחית, כמו סוגי מכונות בהתאמה אישית, SSD מקומי או מכונה וירטואלית מוגנת.
  • כדאי לעיין באזורים ובתחומי זמינות כדי לוודא שסדרת המכונות החדשה זמינה בכל האזורים שבהם נמצאת מכונת ה-VM הנוכחית. יכול להיות שתצטרכו לשנות את תוכניות הפריסה, הזמינות הגבוהה והתאוששות מאסון.
  • בודקים את תוכנית ההעברה של מערכת ההפעלה:
    • אם המכונה הווירטואלית החדשה דורשת גרסה חדשה יותר של מערכת ההפעלה, צריך לוודא שהאפליקציות תואמות לגרסה החדשה יותר של מערכת ההפעלה.
    • אם אתם עוברים ל-Arm ואין תמונת Arm זמינה לגרסת מערכת ההפעלה הנוכחית שלכם, אתם צריכים לבחור מערכת הפעלה חדשה או גרסה חדשה של מערכת ההפעלה כדי להריץ את האפליקציות שלכם, ולוודא שהאפליקציות תואמות למערכת ההפעלה החדשה.
  • אפשר לבצע מיגרציה ממכונה וירטואלית C3 למכונת Bare Metal C3, בתנאי שמכונת המקור C3 משתמשת במערכת הפעלה ובדרייבר רשת נתמכים.
  • אם אתם עוברים מסדרת מכונות שאינה C3 למכונת Bare Metal, אתם צריכים ליצור מכונה חדשה. יכול להיות שתצטרכו להפעיל היפרויזור משלכם, אבל אתם יכולים גם להפעיל כל מערכת הפעלה שתומכת במופעי Bare Metal, כל עוד מופעל מנהל ההתקן של IDPF. מכונות Bare metal משתמשות בממשק הרשת IDPF שמוצג רק כפונקציה פיזית, ולא כפונקציה וירטואלית.

דרישות אחסון

כדאי לבדוק את דרישות האחסון הבאות עבור המופע הנוכחי וסוג המופע החדש:

  • צריך לבדוק את סוגי האחסון הנתמכים ואת ממשקי האחסון הנתמכים בסדרת המכונות החדשה.
    • כברירת מחדל, סדרות מכונות מהדור הראשון והשני משתמשות רק בסוג האחסון Persistent Disk ובממשקי VirtIO-SCSI.
    • מכונות מהדור השלישי ומסדרות מכונות חדשות יותר (כמו M3,‏ C3 ו-N4) תומכות רק בממשק NVMe, וחלקן תומכות רק בסוגי האחסון Hyperdisk ו-Local SSD.
    • מכונות Bare metal תומכות רק ב-Hyperdisk.
  • תאימות הדיסק:
    • אם דיסק האתחול משתמש בסוג דיסק שלא נתמך בסדרת המכונות החדשה, למשל pd-standard, צריך ליצור דיסק אתחול חדש למכונה הווירטואלית החדשה.
    • אם משדרגים את מערכת ההפעלה לגרסה חדשה, ומערכת ההפעלה לא תומכת בשדרוגים במקום, צריך ליצור דיסק אתחול חדש. כל הנתונים בדיסק האתחול המקורי יאבדו, אלא אם תעתיקו אותם לדיסק זמני שאינו דיסק אתחול. לאחר מכן, יוצרים דיסק אתחול חדש ומעתיקים אליו את הנתונים שמאוחסנים בדיסק הזמני שאינו דיסק אתחול.
    • אם אתם לא משדרגים את גרסת מערכת ההפעלה, אתם יכולים לצלם תמונת מצב של דיסק האתחול הנוכחי ולשחזר אותה לדיסק החדש שנתמך. כשיוצרים מכונה וירטואלית, אפשר להשתמש בדיסק החדש הזה כדיסק האתחול.
    • אם בדיסק שאינו דיסק אתחול נעשה שימוש בסוג דיסק שלא נתמך בסדרת המכונות החדשה, אפשר להשתמש בתמונת מצב כדי לשנות את דיסק המקור לסוג דיסק חדש, כמו שמתואר במאמר שינוי סוג הדיסק.
  • אי אפשר להעביר דיסקים מקומיים של SSD למכונה וירטואלית חדשה. אפשר לצרף למכונה הווירטואלית הנוכחית דיסק גדול מספיק כדי לאחסן את כל הנתונים של ה-SSD המקומי, ואז להשתמש בתמונת מצב כדי לשנות את דיסק המקור לסוג דיסק חדש, כמו שמתואר במאמר בנושא שינוי סוג הדיסק. אחרי שיוצרים מכונת VM עם דיסקים מקומיים מסוג SSD שמצורפים אליה, אפשר להעתיק את הנתונים בחזרה לדיסקים המקומיים מסוג SSD.
  • אם המכונה הווירטואלית הנוכחית משתמשת בדיסקים במאגר אחסון, אבל אתם מעבירים את עומס העבודה למכונה וירטואלית באזור אחר, אתם צריכים ליצור מחדש את הדיסקים ואת מאגר האחסון באזור החדש.
  • אם סדרת המכונות החדשה משתמשת בממשק דיסק שונה (למשל, NVMe במקום SCSI), אז שמות מכשירי הדיסק במערכת ההפעלה של האורח שונים. חשוב לוודא שהאפליקציות והסקריפטים משתמשים בשמות מכשירים קבועים או בקישורים סמליים כשמפנים לדיסקים המצורפים.

דרישות רשת

כדאי לבדוק את דרישות הרשת עבור המופע הנוכחי וסוג המופע החדש:

  • בודקים את ממשקי הרשת הנתמכים של המכונה הווירטואלית החדשה.

    • כברירת מחדל, סדרות מכונות מהדור הראשון והשני משתמשות רק בממשק הרשת VirtIO.
    • סדרות מכונות מהדור השלישי ומעלה (כמו M3,‏ C3 ו-N4) תומכות רק בממשק הרשת gVNIC.
    • מכונות Bare metal תומכות רק בממשק הרשת IDPF.
  • מוודאים שהאפליקציה ומערכת ההפעלה תומכות בממשקים שזמינים לסדרת המכונות.

  • כדאי לבדוק את הגדרת הרשת של המכונה הווירטואלית כדי לראות אם צריך לשמור את כתובות ה-IP שהוקצו. אם כן, צריך להפוך את כתובות ה-IP לכתובות IP סטטיות.

  • אם אתם משתמשים בביצועי רשת Tier_1 לכל מכונה וירטואלית במכונה הווירטואלית הנוכחית, ודאו שהם זמינים או נדרשים בסדרת המכונות החדשה. לדוגמה, אפשר להשתמש ברשת Tier_1 עם סוג מכונה C2, אבל היא לא זמינה עם מכונה וירטואלית H3.

כדי לקבוע את סוג ממשק הרשת של המכונה הווירטואלית הנוכחית, משתמשים בפקודה gcloud compute instances describe כדי להציג את nic-type של המכונה הווירטואלית:

  gcloud compute instances describe VM_NAME --zone=ZONE

אם ה-VM נוצר עם סוג כרטיס ה-NIC שמוגדר כברירת מחדל (VirtIO), סוג כרטיס ה-NIC משתנה אוטומטית ל-gVNIC כשמשנים את סוג המכונה לסוג מכונה מהדור השלישי או מדורות מאוחרים יותר.

הכנה להעברת מכונות וירטואליות קיימות

אחרי שמסיימים את הקטע של ההערכה, השלב הבא הוא להתכונן להעברת המכונות הווירטואליות על ידי בקשת משאבים למכונה הווירטואלית החדשה והכנת גיבויים של המכונה הווירטואלית המקורית.

הכנת משאבי מחשוב

כדי להתכונן להעברת המופע הנוכחי למופע חדש:

  1. מבקשים מכסה באזור ובתחומים שבהם מתכננים להעביר את המשאבים. אם יש לכם מכסה קיימת לסוג מכונה, אתם יכולים לבקש להעביר את המכסה הזו. התהליך נמשך כמה ימים.
  2. יוצרים הזמנה למכונות הווירטואליות החדשות כדי לוודא שמשאבי המכונה זמינים באזור ובאזורים החדשים. חשוב להבין איך משתמשים במשאבים שמורים ולוודא שאפשר להשתמש במשאבים שמורים.
  3. הרחבת התוכניות לזמינות גבוהה ולהתאוששות מאסון כך שיכללו את האזור החדש.
  4. אם צריך, משדרגים את מערכת ההפעלה במכונה הווירטואלית הנוכחית.
    1. אם ספק מערכת ההפעלה תומך בכך, מבצעים שדרוג במקום של מערכת ההפעלה לגרסה שנתמכת על ידי סדרת המכונות החדשה, ומוודאים שעומס העבודה פועל כמצופה בגרסה החדשה של מערכת ההפעלה.
    2. אם שדרוג במקום של מערכת ההפעלה לא נתמך, כשיוצרים מכונה וירטואלית חדשה, צריך ליצור דיסק אתחול חדש. קובעים איזה מידע צריך להעתיק מדיסק האתחול הנוכחי, ומעתיקים אותו למיקום זמני בדיסק שאינו דיסק אתחול, כדי שאפשר יהיה להעביר אותו למכונה הווירטואלית החדשה. אם אין לכם דיסקים שאינם דיסקי אתחול שמצורפים למכונה הווירטואלית הנוכחית:
  5. אם רלוונטי להפצת Linux שלכם, בודקים את הכללים של udev בקטע /etc/udev/rules.d/. יכול להיות שהקובץ הזה יכיל רשומות שרלוונטיות לתצורת החומרה של המופע הנוכחי, אבל לא של המופע החדש. לדוגמה, הרשומה הבאה מבטיחה שהממשק eth0 יסופק על ידי מנהל ההתקן virtio-pci (VirtIO Net), וכך מונעת ממנהל ההתקן gve (gVNIC) לספק את הממשק הזה. הדבר עלול להוביל לסקריפטים להפעלה של רשתות ולבעיות בקישוריות במופע החדש:
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="virtio-pci", ATTR{dev_id}=="0x0", KERNELS=="0000:00:04.0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

הכנת משאבי אחסון

כדי להתכונן להעברת הנתונים בדיסקים שמצורפים למופע הנוכחי למופע חדש, פועלים לפי השלבים הבאים:

  1. במערכות Linux, צריך לבדוק את האפליקציות והסקריפטים המעודכנים כדי לוודא שהם פועלים עם שמות מכשירים קבועים או עם קישורי סמלים במקום עם שמות מכשירים בכונן.
  2. אם אתם מעבירים נתונים ממכונה וירטואלית שמופעלת באמצעות Microsoft Windows:
  3. אם המכונה הווירטואלית החדשה לא תומכת באותם סוגי דיסקים כמו המכונה הווירטואלית הנוכחית, יכול להיות שתצטרכו לעדכן את סקריפטים הפריסה או את תבניות המכונות כדי לתמוך בסדרת המכונות החדשה.
  4. אם המכונה הווירטואלית הנוכחית משתמשת בסוג דיסק לדיסק האתחול שלא נתמך בסדרת המכונות החדשה, ואתם מעבירים כמה מכונות וירטואליות עם אותה הגדרה, אתם יכולים ליצור אימג' בהתאמה אישית לשימוש כשיוצרים את המכונות הווירטואליות החדשות:
    1. יוצרים קובץ snapshot של דיסק האתחול pd-standard של המכונה הווירטואלית הנוכחית.
    2. יוצרים אימג' בהתאמה אישית באמצעות קובץ ה-snapshot של הדיסק כמקור.
  5. אם אתם צריכים להעביר מידע מ-SSD מקומי, אתם יכולים ליצור דיסק ריק בגודל מספיק כדי לגבות את דיסקי ה-SSD המקומיים.
    1. אם אפשר, משתמשים בסוג דיסק שנתמך על ידי מכונת ה-VM החדשה.
    2. אם אין סוגי דיסקים שנתמכים גם על ידי ה-VM הנוכחי וגם על ידי ה-VM החדש, צריך ליצור דיסק זמני באמצעות סוג דיסק שנתמך על ידי ה-VM הנוכחי.
    3. מחברים את הדיסק החדש למכונה הווירטואלית הנוכחית, ואז מעצבים את הדיסק ומעלים אותו.
    4. מעתיקים את הנתונים מדיסקי ה-SSD המקומיים שמחוברים למכונה הווירטואלית הנוכחית לדיסק הזמני הזה.
  6. משנים את סוג הדיסק של כל הדיסקים שמחוברים למכונה הווירטואלית הנוכחית ומשתמשים בסוג דיסק שלא נתמך על ידי המכונה הווירטואלית החדשה. כדי להעביר את נתוני הדיסק לדיסקים חדשים, יוצרים תמונות מצב של הדיסקים. אפשר גם להעביר קבצים ממכונה וירטואלית אחת לאחרת.

    1. אפשר לצלם את קובצי ה-Snapshot בזמן שהמכונה הווירטואלית פועלת, אבל נתונים שנכתבו לדיסקים אחרי צילום ה-Snapshot לא נשמרים. מכיוון שתמונות המצב הן מצטברות, אפשר לצלם תמונת מצב שנייה אחרי שמפסיקים את מכונת ה-VM כדי לתעד את כל השינויים האחרונים. הגישה הזו אמורה לצמצם את משך הזמן שבו המכונה הווירטואלית לא זמינה בזמן המעבר למכונה וירטואלית חדשה.
    2. אפשרות אחרת היא לצלם את כל ה-snapshots של הדיסקים אחרי שמפסיקים את ה-VM. מומלץ ליצור snapshot של כל הדיסקים שמצורפים ל-VM, גם אם סוג הדיסק נתמך בסדרת המכונות החדשה. כוללים דיסקים זמניים שמכילים את הנתונים המועתקים של ה-SSD המקומי.
    3. משך הזמן שדרוש ליצירת תמונת מצב של דיסק תלוי בכמה גורמים, כמו גודל הדיסק וכמות הנתונים שמאוחסנים בו. לדוגמה, אם מצלמים תמונת מצב של דיסק בנפח 1TiB ש-85% ממנו מלאים, יכול להיות שיחלפו 5 דקות עד שתמונת המצב תושלם. אבל אם מצלמים תמונת מצב של דיסק בנפח 100TiB שהוא מלא ב-85%, יכול להיות שייקח 11 דקות להשלים את הפעולה. מומלץ לבצע צילומי מצב של הדיסקים לפני שמתחילים בתהליך ההעברה, כדי להבין כמה זמן לוקח ליצור צילום מצב.
  7. אם יש לכם דיסק שאפשר להעביר למצב אופליין, אתם יכולים להשתמש בגישה הבאה כדי להעביר את הנתונים לדיסק חדש בזמן שהמכונה הווירטואלית של המקור עדיין זמינה:

    1. מנתקים את הדיסק מה-VM.
    2. יוצרים קובץ snapshot של הדיסק.
    3. משתמשים ב-snapshot כדי ליצור דיסק חדש באמצעות סוג דיסק שנתמך בסדרת המכונות החדשה. הגודל של הדיסק החדש צריך להיות זהה לזה של דיסק המקור או גדול ממנו.

הכנת משאבי רשת

כדי לעדכן את הגדרת הרשת שבה נעשה שימוש במכונה הנוכחית כדי לתמוך במכונה החדשה:

  1. אם אתם יוצרים מכונה וירטואלית באזור חדש, אתם צריכים ליצור רשת VPC ותתי-רשתות באזור החדש.
  2. אם הגדרתם מספרים מותאמים אישית של תורים ל-NIC, כדאי לעיין במאמר הקצאות של תורים ושינוי סוג המכונה.
  3. אם רוצים לשמור את כתובות ה-IP שבהן נעשה שימוש במכונה הווירטואלית של המקור, מקדמים את כתובות ה-IP לכתובות IP סטטיות.
  4. ביטול ההקצאה של כתובת IP סטטית לפני שמפסיקים את המכונה הווירטואלית של המקור.

הכנה של מערכת ההפעלה SUSE Enterprise Linux Server

כדי להימנע מתלות בחומרה ספציפית, צריך לבנות מחדש את initramfs (מערכת קבצים ראשונית של RAM). היא כוללת מגוון רחב יותר של מנהלי התקנים ומודולים, ולכן מערכת ההפעלה תואמת לסוגים אחרים של מופעים. אם לא תעשו זאת, תיתקלו בבעיה ידועה שתמנע את האתחול התקין של המכונה הווירטואלית.

לפני שמכבים את המערכת, מריצים את הפקודה הבאה כ-root כדי לבנות מחדש את initramfs עם כל הדרייברים:

  sudo dracut --force --no-hostonly

העברת עומס העבודה למכונה הווירטואלית החדשה

אחרי הכנת המכונות הווירטואליות להעברה, השלב הבא הוא להעביר את עומס העבודה למכונה הווירטואלית החדשה.

אם אתם מעבירים את מכונות ה-VM מסדרת מכונות מהדור הראשון לסדרת מכונות מהדור השני, כדאי לקרוא את ההוראות במאמר עריכת סוג המכונה של מכונת VM. אם רוצים לשנות את השם של מכונה וירטואלית קיימת, אפשר לעיין במידע במאמר בנושא שינוי השם של מכונה וירטואלית.

בקטע הזה מוסבר איך להעביר את עומס העבודה ממכונה וירטואלית (VM) מהדור הראשון או השני למכונה וירטואלית מהדור השלישי (או חדש יותר). במהלך התהליך הזה, יוצרים מופע חדש של מכונה וירטואלית, ואז מעבירים את עומסי העבודה למכונה הווירטואלית החדשה.

יצירת מכונה וירטואלית חדשה

כשמעבירים עומסי עבודה ממכונות וירטואליות מהדור הראשון או השני (לדוגמה, N1 או N2) לדור השלישי או לדורות מאוחרים יותר, צריך קודם ליצור מכונה וירטואלית חדשה ואז להעביר את עומסי העבודה.

  1. אם המכונה הווירטואלית של המקור משתמשת בדיסקים שאינם דיסקי אתחול עם סוג דיסק שנתמך על ידי סדרת המכונות החדשה, צריך לנתק את הדיסקים מהמכונה הווירטואלית.
  2. מפסיקים את ה-VM של המקור.
  3. יוצרים קובצי snapshot של כל הדיסקים שעדיין מצורפים למכונת ה-VM של המקור.
  4. יוצרים מכונה וירטואלית חדשה ב-Compute באמצעות אימג' ציבורי או אימג' בהתאמה אישית שמוגדר לשימוש ב-gVNIC. כשיוצרים את המכונה הווירטואלית החדשה, בוחרים באפשרויות הבאות:
    • בוחרים את סוג המכונה מתוך סדרת המכונות שבחרתם.
    • בוחרים תמונת מערכת הפעלה נתמכת או משתמשים בתמונה מותאמת אישית שיצרתם בעבר.
    • בוחרים סוג נתמך של דיסק לדיסק האתחול, למשל Hyperdisk Balanced.
    • אם יצרתם דיסקים חדשים מקובצי snapshot של הדיסקים המקוריים, צריך לכלול את הדיסקים החדשים האלה.
    • מציינים את רשת ה-VPC החדשה, אם יוצרים את המכונה באזור אחר.
    • אם גם VirtIO וגם gVNIC נתמכים במופע החדש, בוחרים ב-gVNIC.
    • מציינים את כתובות ה-IP הסטטיות, אם קידמתם את כתובות ה-IP הארעיות של המכונה הווירטואלית של המקור.
  5. מפעילים את מכונת ה-VM החדשה.

אחרי שהמופע מתחיל

אחרי שיצרתם את המכונה החדשה והפעלתם אותה, צריך לבצע את השלבים הבאים כדי לסיים את ההגדרה של המכונה החדשה ולהעתיק את כל הנתונים מהמכונה המקורית.

  1. מחברים את הדיסקים שניתקתם ממכונת ה-VM המקורית למכונה הווירטואלית החדשה.
  2. לכל דיסק שמצורף למכונת ה-VM של המקור ומשתמש בסוג דיסק שלא נתמך על ידי מכונת ה-VM החדשה, יוצרים דיסק מ-snapshot ומצרפים אותו למופע החדש. כשיוצרים את הדיסק החדש, בוחרים סוג דיסק שנתמך על ידי המכונה הווירטואלית החדשה ומציינים גודל שלא קטן מהגודל של הדיסק המקורי.
  3. אם המכונה הווירטואלית המקורית השתמשה במדיניות משאבים עבור דיסקים שנוצרו מחדש עבור המכונה הווירטואלית החדשה, צריך להוסיף את מדיניות המשאבים לדיסקים החדשים.
  4. אם יצרתם את המכונה הווירטואלית החדשה באמצעות תמונת מערכת הפעלה ציבורית ולא באמצעות תמונה בהתאמה אישית, אתם צריכים לבצע את הפעולות הבאות:
    1. מגדירים את המשתמשים, מנהלי ההתקנים, החבילות וספריות הקבצים הדרושים במופע החדש כדי לתמוך בעומס העבודה.
    2. מתקינים את האפליקציות והתוכנות ששיניתם במכונה הווירטואלית החדשה. אם נדרש, קומפלו מחדש את התוכניות במערכת ההפעלה או בארכיטקטורה החדשה.
  5. אופציונלי: אם העברתם את התוכן של דיסקים של SSD מקומי לדיסק זמני, ולמכונת ה-VM החדשה מצורף אחסון SSD מקומי, אחרי הפורמט וההרכבה של הדיסקים, תוכלו להעביר את הנתונים מהדיסק הזמני לדיסקים של ה-SSD המקומי.
  6. מקצים מחדש כתובות IP סטטיות שמשויכות למכונה הווירטואלית המקורית למכונה הווירטואלית החדשה.
  7. משלימים את כל המשימות הנוספות שנדרשות כדי להפוך את המכונה הווירטואלית החדשה לזמינה מאוד, כמו הגדרת מאזני עומסים ועדכון כללי ההעברה.
  8. אופציונלי: מעדכנים את רשומות ה-DNS, אם צריך, עבור המכונה הווירטואלית החדשה.
  9. מומלץ: תזמון גיבויים של הדיסקים החדשים.
  10. מומלץ: אם שיניתם את מערכת ההפעלה לגרסה או לארכיטקטורה אחרת, צריך לקמפל מחדש את האפליקציות.

אם אתם נתקלים בבעיות בקיבולת כשאתם מעבירים את עומסי העבודה, אתם יכולים לפנות למנהל החשבון הטכני (TAM). לבעיות אחרות, אפשר לפתוח בקשת תמיכה ב-Cloud Customer Care.

דוגמה להעברה מ-n1-standard-8 ל-n4-standard-8

בדוגמה הבאה מוצגת העברה של מכונת n1-standard-8 וירטואלית למכונת n4-standard-8 וירטואלית. למכונה הווירטואלית n1-standard-8 יש דיסק אתחול PD-SSD שמופעל על ידי תמונת Ubuntu1804 ודיסק נתונים PD-SSD. כדי לבצע את הפעולה הזו, צריך להשתמש ב-CLI או ב-API בארכיטקטורת REST.

יש שתי אפשרויות לשדרוג מכונת N1 וירטואלית למכונת N4 וירטואלית:

אפשרות 1: אם מכונת N1 VM משתמשת בממשק הרשת VirtIO, צריך ליצור מכונת N4 VM חדשה. ‫N4 תומך רק בממשק הרשת gvnic ובדיסקים מסוג Hyperdisk Balanced. יוצרים קובץ snapshot של דיסקי האתחול ודיסקי הנתונים של אחסון מתמיד (persistent disk), יוצרים דיסקים מסוג Hyperdisk Balanced מקובצי ה-snapshot האלה, מצרפים את הדיסקים מסוג Hyperdisk Balanced ויוצרים את מכונת ה-VM החדשה מסוג N4 עם הדיסקים מסוג Hyperdisk Balanced.

אפשר גם ליצור דיסק אתחול חדש מסוג Hyperdisk Balanced באמצעות גרסה עדכנית יותר של מערכת ההפעלה Ubuntu. בתרחיש הזה, אפשר ליצור דיסק חדש מסוג Hyperdisk Balanced מקובץ ה-snapshot של דיסק האתחול, אבל צריך לצרף את הדיסק הזה ל-VM מסוג N4 כדיסק שאינו דיסק אתחול. לאחר מכן תוכלו להעתיק נתונים שאינם נתוני מערכת מהתמונה ששוחזרה לדיסק האתחול החדש.

אפשרות 2: אם המכונה הווירטואלית N1 משתמשת בממשק הרשת gvnic, למערכת ההפעלה יש מנהל התקן של מכשיר אחסון NVMe, לא מחוברים אליה דיסקים מקומיים מסוג SSD או GPU, והיא לא חלק מקבוצת מופעי מכונה מנוהלים (MIG), אפשר לשנות את סוג המכונה מ-N1 ל-N4, אבל עדיין צריך לשנות את סוגי הדיסקים של Persistent Disk לדיסקים מסוג Hyperdisk Balanced. קודם צריך לנתק את דיסקי האתחול ואת דיסקי הנתונים של Persistent Disk, ליצור snapshots של הדיסקים, ליצור דיסקים מסוג Hyperdisk Balanced באמצעות ה-snapshots כמקור, ואז לצרף את הדיסקים החדשים מסוג Hyperdisk Balanced ל-VM מסוג N4 אחרי שמחליפים את סוג המכונה. אם יש יחידות GPU שמצורפות למכונה הווירטואלית, צריך קודם לנתק אותן.

הזמן ליצירת תמונת מצב של דיסק תלוי בכמה גורמים, כמו המספר הכולל של טרה-בייט בדיסק. לדוגמה, אם מצלמים תמונת מצב של דיסק בנפח 1 TB ש-85% ממנו מלאים, יכול להיות שתמונת המצב תושלם תוך 5 דקות. אבל אם מצלמים תמונת מצב של דיסק בנפח 100 TB עם 85% נפח אחסון מלא, יכול להיות שהפעולה תימשך 11 דקות. ‫Google ממליצה ליצור תמונות מצב של הדיסקים לפני שמתחילים את תהליך ההעברה, כדי להבין כמה זמן לוקח ליצור תמונות מצב.

gcloud

אפשרות 1: יצירת מכונת VM חדשה מסוג N4 עם דיסקים שנוצרו מהם קובצי snapshot:

  1. מפסיקים את מכונת ה-VM באמצעות הפקודה gcloud compute instances stop:

    gcloud compute instances stop VM_NAME \
      --zone=ZONE
    

    מחליפים את מה שכתוב בשדות הבאים:

    • VM_NAME השם של המכונה הווירטואלית הנוכחית n1-standard-8.
    • ZONE: האזור שבו נמצאת המכונה הווירטואלית.
  2. יוצרים תמונת מצב של הדיסקים. משתמשים בפקודה gcloud compute snapshots create כדי ליצור snapshot של דיסק האתחול ושל דיסק הנתונים של האחסון המתמיד שמצורפים למכונה הווירטואלית.

    gcloud compute snapshots create SNAPSHOT_NAME \
        --source-disk=SOURCE_DISK_NAME \
        --source-disk-zone=SOURCE_DISK_ZONE
    

    מחליפים את מה שכתוב בשדות הבאים:

    • SNAPSHOT_NAME: השם של קובץ ה-snapshot שרוצים ליצור.
    • SOURCE_DISK_NAME: השם של דיסק המקור.
    • SOURCE_DISK_ZONE: האזור של דיסק המקור.
  3. יוצרים דיסק חדש מסוג Hyperdisk Balanced לדיסק הנתונים, על ידי חזרה על השלב הקודם וציון פרטי דיסק הנתונים במקום דיסק האתחול. ‫gcloud compute disks create:

    gcloud compute disks create DISK_NAME \
        --project=PROJECT_NAME \
        --type=DISK_TYPE \
        --size=DISK_SIZE \
        --zone=ZONE \
        --source-snapshot=SNAPSHOT_NAME \
        --provisioned-iops=PROVISIONED_IOPS \
        --provisioned-throughput=PROVISIONED_THROUGHPUT
    
    

    מחליפים את מה שכתוב בשדות הבאים:

    • DISK_NAME: השם של הדיסק החדש שאתם יוצרים מהדיסק שנוצר ממנו ה-snapshot.
    • PROJECT_NAME: שם הפרויקט.
    • DISK_TYPE: סוג הדיסק החדש – בדוגמה הזו, זהו דיסק Hyperdisk Balanced.
    • DISK_SIZE: גודל הדיסק (לדוגמה: 100GB).
    • ZONE: האזור שבו נמצא הדיסק החדש.
    • SNAPSHOT_NAME: השם של דיסק המקור של ה-snapshot.
    • אופציונלי: PROVISIONED_IOPS: ביצועי ה-IOPS של הדיסק (לדוגמה: 3600).
    • אופציונלי: PROVISIONED_THROUGHPUT: ביצועי התפוקה של הקצאת הדיסק (לדוגמה: 290).
  4. חוזרים על השלב הקודם לכל דיסק שנוצר לו צילום מצב.

  5. יוצרים את מכונת ה-n4-standard-8 ומצרפים את דיסקי Hyperdisk Balanced באמצעות הפקודה gcloud compute instances create:

    gcloud compute instances create VM_NAME \
        --project=PROJECT_NAME \
        --zone=ZONE \
        --machine-type=NEW_MACHINE_TYPE \
        --boot-disk-device-name=BOOT_DISK_NAME \
        --disk=name=NON_BOOT_DISK_NAME, boot=no \
        --network-interface=nic-type=GVNIC
    

    מחליפים את מה שכתוב בשדות הבאים:

    • VM_NAME: השם של המופע החדש של המכונה הווירטואלית.
    • PROJECT_NAME: שם הפרויקט.
    • ZONE: האזור שבו נמצאת המכונה הווירטואלית החדשה.
    • NEW_MACHINE_TYPE: סוג המכונה. בדוגמה הזו זה n4-standard-8.
    • BOOT_DISK_NAME השם של דיסק האתחול מסוג Hyperdisk Balanced שיצרתם מקובץ ה-snapshot של דיסק המקור שמחובר ל-VM‏ n1-standard-8.
    • NON_BOOT_DISK_NAME השם של דיסק הנתונים מסוג Hyperdisk Balanced שיצרתם מדיסק ה-snapshot של המקור שמצורף ל-VM‏ n1-standard-8.
  6. מפעילים את מכונת ה-VM‏ n4-standard-8 באמצעות הפקודה gcloud compute instances start:

    gcloud compute instances start VM_NAME
    

    מחליפים את VM_NAME בשם של המכונה הווירטואלית החדשה.

אפשרות 2: ביצוע שדרוג במקום במחשב:

האפשרות הזו זמינה רק אם המכונה הווירטואלית N1 משתמשת בממשק הרשת gvnic, למערכת ההפעלה יש מנהל התקן של מכשיר אחסון NVMe, לא מצורפים אליה דיסקים מקומיים של SSD או יחידות GPU, והיא לא חלק מקבוצת מופעי מכונה מנוהלים (MIG). ביצוע התהליך הזה במכונת N1 וירטואלית עם ממשק רשת VirtIO יוצר שגיאה של אי-תאימות של מכונה וירטואלית.

  1. עוצרים את ה-VM.
  2. מנתקים את הדיסקים מה-VM.
  3. יוצרים snapshot של דיסקי האתחול והנתונים.
  4. יוצרים דיסקים מאוזנים של Hyperdisk לאתחול ולנתונים באמצעות קובץ snapshot של דיסק כמקור לכל דיסק.
  5. מגדירים את סוג המכונה למכונה וירטואלית מסוג N4.
  6. מצרפים את דיסק האתחול Hyperdisk Balanced ואת דיסק הנתונים Hyperdisk Balanced.
  7. מפעילים את מכונת ה-VM מסוג N4.

REST

אפשרות 1: יצירת מכונת VM חדשה מסוג N4 עם דיסקים שנוצרו מהם קובצי snapshot:

  1. מפסיקים את המכונה הווירטואלית באמצעות השיטה instances.stop:

     POST https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/zones/ZONE/instances/VM_NAME/stop
    

    מחליפים את מה שכתוב בשדות הבאים:

    • PROJECT_NAME: מזהה הפרויקט.
    • ZONE: האזור שבו נמצאת המכונה הווירטואלית.
    • VM_NAME: השם של מכונת ה-VM הנוכחית שלכם.n1-standard-8
  2. כדי ליצור snapshot של דיסק האתחול של אחסון מתמיד ושל דיסק הנתונים שמצורף למופע, משתמשים בשיטה disks.createSnapshot כדי ליצור snapshot של הדיסקים.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/zones/ZONE/disks/DISK_NAME/createSnapshot
    

    בגוף הבקשה, מציינים את השם של דיסק האחסון המתמיד (persistent disk) החדש שנוצר ממצב הגיבוי.

    לדוגמה:

    {
        "name": "SNAPSHOT_NAME"
    }
    

    מחליפים את מה שכתוב בשדות הבאים:

    • PROJECT_NAME: שם הפרויקט.
    • ZONE: האזור שבו נמצא הדיסק.
    • DISK_NAME: הדיסק שאתם מתכננים ליצור לו snapshot.
    • SNAPSHOT_NAME: שם לקובץ ה-snapshot, למשל hdb-boot-disk או hdb-data-disk.
  3. יוצרים דיסק Hyperdisk Balanced באמצעות השיטה disks.insert. צריך לבצע את השלב הזה פעמיים: פעם אחת כדי לכלול את name של דיסק האתחול Hyperdisk Balanced, ופעם שנייה כדי לכלול את name של דיסקי הנתונים. משתמשים ב-sourceSnapshot עבור דיסקים חדשים של Hyperdisk Balanced לאתחול ולנתונים, ב-type של הדיסק, ב-Hyperdisk Balanced וב-sizeGB של הדיסק בגוף הבקשה.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/zones/ZONEdisks
    

    מחליפים את מה שכתוב בשדות הבאים:

    • PROJECT_NAME: שם הפרויקט.
    • ZONE: האזור שבו נמצא הדיסק.

    בגוף הבקשה, כוללים את הפרטים הבאים:

    לדוגמה:

    {
        "name": "my-hdb-boot-disk" or "my-hdb-data-disk",
        "sourceSnapshot": "projects/your-project/global/snapshots/SNAPSHOT_NAME",
        "type": "projects/your-project/zones/us-central1-a/diskTypes/hyperdisk-balanced",
        "sizeGb": "100"
    }'
    
  4. כדי ליצור את המכונה הווירטואלית החדשה מסוג N4, משתמשים ב-method‏ instances.insert.

    
    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/zones/ZONE/instances
    
    

    מחליפים את מה שכתוב בשדות הבאים:

    • PROJECT_NAME: שם הפרויקט.
    • ZONE: האזור שבו נמצא הדיסק.

    בגוף הבקשה, כוללים את הפרטים הבאים:

    
      {
        "machineType":"projects/your-project/zones/us-central1-a/machineTypes/n4-standard-8" "name":"VM_NAME",
        "disks": [
          {
            "boot": true,
            "deviceName": "my-hdb-boot-disk",
            "source": "projects/your-project/zones/us-central1-a/disks/my-hdb-boot-disk",
            "type": "PERSISTENT"
          },
    
          {
            "boot": false,
            "deviceName": "my-hdb-data-disk",
            "source": "projects/your-project/zones/us-central1-a/disks/my-hdb-data-disk",
            "type": "PERSISTENT"
          }
          ],
            "networkInterfaces":[
              {
                "network":"global/networks/NETWORK_NAME",
                "subnetwork":"regions/REGION/subnetworks/SUBNET_NAME",
                "nicType": "GVNIC"
              }
           ]
         }
    
    

    מחליפים את מה שכתוב בשדות הבאים:

    • VM_NAME: שם המכונה הווירטואלית.
    • NETWORK_NAME: שם הרשת.
    • REGION: שם האזור.
    • SUBNET_NAME: השם של תת-הרשת.
  5. מפעילים את המכונה הווירטואלית באמצעות השיטה instances.start:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/zones/ZONE/instances/VM_NAME/start
    

    מחליפים את מה שכתוב בשדות הבאים:

    • PROJECT_NAME: שם הפרויקט.
    • ZONE: האזור שבו נמצאת המכונה הווירטואלית.
    • VM_NAME: שם המכונה הווירטואלית.

אפשרות 2: ביצוע שדרוג במקום במחשב:

האפשרות הזו זמינה רק אם המכונה הווירטואלית N1 משתמשת בממשק הרשת gvnic, לא מחוברים אליה כונני SSD מקומיים או יחידות GPU, והיא לא חלק מקבוצת מופעי מכונה מנוהלים (MIG). ביצוע התהליך הזה במכונת N1 וירטואלית עם ממשק רשת VirtIO יוצר שגיאה של אי-תאימות של מכונה וירטואלית.

  1. מפסיקים את המכונה הווירטואלית באמצעות השיטה instances.stop.

  2. מנתקים את הדיסקים באמצעות השיטה instances.detachDisk כדי לנתק את דיסק האתחול המקורי של דיסק האחסון המתמיד מה-VM מסוג N1. צריך גם לנתק את דיסקי הנתונים מה-VM.

    https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/zones/ZONE/instances/VM_NAME/detachDisk?deviceName=DISK_NAME
    

    מחליפים את מה שכתוב בשדות הבאים:

    • PROJECT_NAME: שם הפרויקט.
    • ZONE: האזור שבו נמצא הדיסק.
    • VM_NAME: השם של מכונת ה-VM של המקור עם הדיסק pd-ssd שמצורף אליה.
    • DISK_NAME: הדיסק שרוצים לנתק.
  3. יוצרים snapshot של הדיסקים. משתמשים בשיטה disks.createSnapshot כדי ליצור snapshot של דיסק האתחול של אחסון מתמיד ושל דיסקי הנתונים שמצורפים למופע.

  4. יוצרים דיסקים של מערכת הפעלה ונתונים מסוג Hyperdisk Balanced באמצעות השיטה disks.insert. כוללים את name של דיסק Hyperdisk Balanced, את sourceSnapshot של דיסק Hyperdisk Balanced החדש, את type של הדיסק, Hyperdisk Balanced ואת sizeGB של הדיסק בגוף הבקשה.

  5. מבצעים שדרוג של סוג המכונה במקום באמצעות השיטה instances.setMachineType. כוללים את machineType בגוף הבקשה:

    POST  https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/zones/ZONEinstances/VM_NAME/setMachineTypeMACHINE_TYPE
    

    מחליפים את מה שכתוב בשדות הבאים:

    • PROJECT_NAME: שם הפרויקט.
    • ZONE: האזור שבו נמצא הדיסק.
    • VM_NAME: השם של המכונה הווירטואלית שרוצים לשדרג.
    • MACHINE_TYPE: סוג המכונה החדש.

    בגוף הבקשה, כוללים את הפרטים הבאים:

    
    {
     "machineType": "projects/PROJECT_NAME/zones/ZONE/machineTypes/MACHINE_TYPE",
    }
    
    
  6. משתמשים בשיטה instances.attachDisk כדי לצרף את דיסק האתחול החדש Hyperdisk Balanced ואת דיסקי הנתונים מסוג Hyperdisk Balanced למכונה הווירטואלית N4.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/zones/ZONE/instancesVM_NAMEattachDiskDISK_NAME
    

    מחליפים את מה שכתוב בשדות הבאים:

    • PROJECT_NAME: שם הפרויקט.
    • ZONE: האזור שבו נמצא הדיסק.
    • VM_NAME: השם של מופע מכונת ה-VM של המקור עם דיסק pd-ssd שמצורף אליו.
    • DISK_NAME הדיסק שרוצים לצרף.

    בגוף הבקשה, כוללים את הפרטים הבאים:

    {
    "source": "projects/your-project/zones/us-central1-a/disks/my-hdb-boot-disk",
    "deviceName":"my-hdb-boot-disk","boot":true
    }
    
    {
    "source": "projects/your-project/zones/us-central1-a/disks/my-hdb-data-disk",
    "deviceName":"my-hdb-data-disk","boot":false
    }
    
  7. מפעילים את מכונת ה-VM מסוג N4 באמצעות השיטה instances.start.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/zones/ZONEinstances/VM_NAME/start
    

    מחליפים את מה שכתוב בשדות הבאים:

    • PROJECT_NAME: שם הפרויקט.
    • ZONE: האזור שבו נמצא הדיסק.
    • VM_NAME: שם המכונה הווירטואלית.

הסרת המשאבים

אחרי שמוודאים שאפשר להתחבר למכונה הווירטואלית החדשה, ושהעומס שלה פועל כמצופה במכונה הווירטואלית החדשה, אפשר להסיר את המשאבים שכבר לא נחוצים:

  1. קובצי ה-snapshot שיצרתם לדיסקים שמצורפים למכונת ה-VM המקורית.
  2. כל לוחות הזמנים של הצילומים לדיסקים שצורפו למכונת ה-VM המקורית.
  3. הדיסק הזמני שנוצר כדי להעתיק את הנתונים של ה-SSD המקומי למכונה הווירטואלית החדשה.
  4. המכונה הווירטואלית במקור וכל הדיסקים שמצורפים אליה.

המאמרים הבאים