ייבוא דיסקים וירטואליים

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

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

לפני שממשיכים, חשוב לוודא שיש לכם:

  • ה-CLI של gcloud הורד, הותקן והוגדר. כל פקודות ה-CLI ל-GDC משתמשות ב-CLI‏ gdcloud או kubectl, ונדרשת סביבת מערכת הפעלה (OS).
  • גישה לשרת Management API. פועלים לפי השלבים לשימוש ב-CLI במאמר בנושא כניסה כדי להיכנס לשרת של Management API.

שליחת בקשה לתפקידים ב-IAM

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

  • Virtual Machine Project Admin (project-vm-admin): יצירה, שינוי, הצגה ומחיקה של מכונות וירטואליות במרחב השמות של הפרויקט.

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

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

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

ייבוא דיסקים וירטואליים

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

כדי לייבא את הדיסקים הווירטואליים, משתמשים ב-CLI של gcloud או ב-Virtual Machine Manager API.

gdcloud

הפקודה import בודקת שלתמונה שסופקה על ידי GDC יש את החבילות הנדרשות להגדרת פרטי הכניסה לחיבור למופע באמצעות Secure Shell‏ (SSH) ו-Remote Desktop Protocol‏ (RDP). האיסור הזה כולל חבילות לסביבת האורח.

הפקודה גם מתקינה חבילות של פרוטוקול זמן רשת (NTP) ושל cloud-init כדי שהמופע יפעל בצורה תקינה ב-GDC.

כדי ליצור תמונה שאפשר להפעיל ממנה את המחשב, משתמשים בפקודה gdcloud compute images import:

gdcloud compute images import IMAGE_NAME \
  --source-file=SOURCE_FILE \
  --os=IMAGE_OS \
  --timeout=TIMEOUT

מחליפים את המשתנים הבאים:

  • ‫IMAGE_NAME: השם של תמונת היעד. השם לא יכול להיות ארוך מ-35 תווים.
  • ‫SOURCE_FILE: קובץ הדיסק הווירטואלי. הקובץ הזה הוא קובץ מקומי בתחנת העבודה שלכם. אפשר לציין נתיב מוחלט או יחסי.
  • ‫IMAGE_OS: מערכת ההפעלה בדיסק לייבוא.
  • ‫TIMEOUT: משך הזמן שייבוא יכול להימשך לפני שהוא נכשל עם הודעת השגיאה 'פסק זמן'. לדוגמה, אם מציינים 2h, התהליך ייכשל אחרי שעתיים. הזמן הקצוב לתפוגה שמוגדר כברירת מחדל הוא 1h.

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

API

כדי לייבא דיסק וירטואלי דרך ה-API, מבצעים את הפעולות הבאות:

  1. כדי להתחיל את תהליך ייבוא התמונות, צריך ליצור אובייקט VirtualMachineImageImport בשרת Management API:

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
      -n PROJECT_ID \
      apply -f - <<EOF
    apiVersion: virtualmachine.gdc.goog/v1
    kind: VirtualMachineImageImport
    metadata:
      name: IMAGE_NAME
      namespace: PROJECT_ID
    spec:
      source:
        objectStorage:
          bucketRef:
            name: vm-images-bucket
          objectName: SOURCE_FILE
      imageMetadata:
        name: IMAGE_NAME
        operatingSystem: IMAGE_OS
        minimumDiskSize: DISK_SIZE
    EOF
    

    מחליפים את המשתנים הבאים:

    • ‫IMAGE_NAME: השם של התמונה לייבוא. השם יכול לכלול עד 35 תווים.
    • ‫PROJECT_ID: מזהה הפרויקט שאליו רוצים לייבא את התמונה.
    • ‫SOURCE_FILE: השם של קובץ המקור שמכיל את ההעלאה של הדיסק הווירטואלי לאחסון אובייקטים. הערך הזה הוא החלק בנתיב של אחסון האובייקטים שאחרי vm-images-bucket/.
    • ‫IMAGE_OS: מערכת ההפעלה בדיסק לייבוא.
    • ‫DISK_SIZE: גודל המינימום של הדיסק שצריך ליצור עם התמונה הזו. להשתמש ב-20% לפחות של שטח אחסון נוסף מעבר לגודל של מערכת הקבצים של התמונה המקורית. לדוגמה, צריך להשתמש בערך 12G לפחות עבור דיסק וירטואלי עם גודל מקורי של מערכת קבצים של 10G.
  2. כדי לעקוב אחר התקדמות הייבוא, שולחים שאילתה לגבי הסטטוס של אובייקט VirtualMachineImageImport:

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
      -n PROJECT_ID \
      get virtualmachineimageimport.virtualmachine.gdc.goog IMAGE_NAME \
      -o jsonpath='{.status}'
    

פינוי משאבים

תהליך הייבוא כולל העלאה של קובץ הדיסק הווירטואלי לאחסון אובייקטים. אם משתמשים ב-gdcloud CLI, האובייקט מנוקה כשהפקודה מסתיימת, בין אם היא הסתיימה בהצלחה ובין אם לא. אם הפקודה מופסקת או אם ייבוא התמונה מתבצע באמצעות ה-API, יכול להיות שקובץ הדיסק הווירטואלי יישאר בקטגוריית אחסון האובייקטים שנקראת vm-images-bucket עד שתמחקו את הקובץ באופן ידני.

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

יוצרים מופע חדש של מכונה וירטואלית שמשתמשת באימג' בדף יצירה והפעלה של מכונה וירטואלית.