יצירת מכונה וירטואלית מגיבוי

במאמר הזה מוסבר איך ליצור מכונה וירטואלית (VM) מגיבוי קיים ב-Google Distributed Cloud (GDC)‎ ללא חיבור לרשת.

אחרי שיוצרים גיבוי, אפשר ליצור שחזור של הגיבוי הזה, שמתחיל את השחזור של כל ה-VM. למכונה הווירטואלית ששוחזרה ולדיסקים שמשויכים אליה יש שמות שונים, בהתאם למה שציינתם בשדה New VM instance name במסוף GDC או בשדה restoredResourceName בממשק לתכנות יישומים (API).

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

המסמך הזה מיועד למפתחים בקבוצות של אדמינים בפלטפורמה או של מפעילי אפליקציות שמנהלים פעולות גיבוי ושחזור של מכונות וירטואליות. מידע נוסף מופיע במאמר קהלים למסמכי תיעוד של GDC עם air gap.

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

מוודאים שיש לכם גיבוי קיים. מידע נוסף זמין במאמר יצירת תוכנית גיבוי.

בקשת תפקידים ב-IAM

כדי ליצור מכונה וירטואלית מגיבוי, צריך לבקש מהאדמין של הפרויקט ב-IAM להקצות לכם את התפקידים הבאים:

  • אדמין של מכונות וירטואליות בפרויקט (project-vm-admin): יוצר, מקבל, מציג, צופה, מעדכן, מתקן ומוחק מכונות וירטואליות ודיסקים של מכונות וירטואליות במרחבי שמות של פרויקטים.

  • יוצר גיבוי (backup-creator): יוצר, מקבל, מציג, צופה, מעדכן, מתקן ומוחק בקשות גיבוי ידניות ובקשות שחזור ידניות.

  • צפייה בפרויקט (project-viewer): קבלת כל המשאבים במרחבי השמות של הפרויקט, הצגתם ברשימה ומעקב אחריהם.

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

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

שחזור גיבוי של VM באמצעות מסוף GDC או ה-API.

המסוף

  1. נכנסים למסוף GDC.
  2. בתפריט הניווט, לוחצים על Backup for Virtual Machines.
  3. בוחרים פרויקט.
  4. לוחצים על הכרטיסייה גיבויים.
  5. ברשימת הגיבויים, מוצאים את הגיבוי שרוצים לשחזר ולוחצים על Restore.
  6. בשדה New VM instance name, מזינים שם למופע של מכונה וירטואלית חדשה שבה רוצים לשחזר את הגיבוי.
  7. אופציונלי: בשדה התיאור New VM instance, מזינים תיאור.
  8. מזינים שם לשחזור.
  9. לוחצים על שחזור.

API

מגדירים משאב בהתאמה אישית של VirtualMachineRestoreRequest כדי להתחיל את תהליך השחזור. הגיבוי שאליו מתייחס השדה virtualMachineBackup הוא משאב בהתאמה אישית מסוג VirtualMachineBackup שנוצר על ידי VirtualMachineBackupRequest. דוגמה לVirtualMachineRestoreRequest:

מגדירים משאב בהתאמה אישית של VirtualMachineRestoreRequest כדי להתחיל את תהליך השחזור:

apiVersion: virtualmachine.gdc.goog/v1
kind: VirtualMachineRestoreRequest
metadata:
  name: RESTORE_REQUEST_NAME
  namespace: PROJECT_NAME
spec:
  virtualMachineBackup: VM_BACKUP_NAME
  restoreName: RESTORE_NAME
  restoredResourceName: RESTORED_RESOURCE_NAME
  restoredResourceDescription: RESTORED_RESOURCE_DESCRIPTION

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

  • ‫VM_BACKUP_NAME: השם של ה-VirtualMachineBackup שממנו רוצים לשחזר.
  • ‫PROJECT_NAME: השם של הפרויקט ב-GDC.
  • ‫RESTORE_REQUEST_NAME: השם שרוצים לתת לבקשת השחזור שמופעלת.
  • ‫RESTORE_NAME: השם שרוצים לתת לשחזור שמתחילים.
  • ‫RESTORED_RESOURCE_NAME: השם שרוצים לתת למכונה הווירטואלית שמשחזרים.
  • ‫RESTORED_RESOURCE_DESCRIPTION: הערות לגבי הסיבה לביצוע השחזור.

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

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

כדי להציג רשימה של פעולות שחזור באמצעות מסוף GDC:

  1. נכנסים למסוף GDC.
  2. בתפריט הניווט, לוחצים על Backup for Virtual Machines.
  3. בוחרים פרויקט.
  4. לוחצים על הכרטיסייה שחזורים.
  5. לוחצים על שחזור ברשימה כדי לראות את הפרטים שלו.

מחיקת שחזור

אפשר למחוק שחזור באמצעות מסוף GDC או kubectl.

המסוף

  1. נכנסים למסוף GDC.
  2. בתפריט הניווט, לוחצים על Backup for Virtual Machines.
  3. בוחרים פרויקט.
  4. לוחצים על הכרטיסייה שחזורים.
  5. ברשימת השחזורים, מוצאים את השחזור שרוצים למחוק ולוחצים על Delete Restore.
  6. בשדה Restore name, מזינים את שם השחזור שרוצים למחוק.
  7. לוחצים על מחיקת השחזור.

kubectl

  1. מציגים את השחזורים הקיימים:

    kubectl get virtualmachinerestores.virtualmachine.gdc.goog -n PROJECT_NAME
    

    מחליפים את PROJECT_NAME בשם הפרויקט.

  2. ברשימה, מוצאים את השחזור שרוצים למחוק.

  3. מחיקת השחזור:

    kubectl delete virtualmachinerestores.virtualmachine.gdc.goog RESTORE_NAME -n PROJECT_NAME
    

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

    • ‫RESTORE_NAME: שם השחזור.
    • ‫PROJECT_NAME: שם הפרויקט.