ייבוא מכשירים וירטואליים

מכשיר וירטואלי הוא חבילה שמכילה תמונות דיסק והגדרת חומרה למכונה וירטואלית (VM).

פורמט נפוץ ופופולרי למכשירים וירטואליים הוא פורמט OVF. כשמכינים חבילה של מכשירים וירטואליים בפורמט OVF, נוצרת חבילת OVF. חבילת OVF היא תיקייה שמכילה .ovf קובץ תיאור ואוסף של משאבים אחרים, כמו דיסקים. כשחבילת OVF מאוחסנת בארכיון כקובץ יחיד, היא נקראת קובץ OVA.

בדף הזה מתוארים השלבים שבהם אפשר להשתמש כדי לייבא תמונת מכונה ממכשיר וירטואלי באמצעות Compute Engine.

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

פורמטים נתמכים של קבצים

אפשר לייבא קבצים של תמונות מכונה בפורמטים הבאים באמצעות Compute Engine:

  • פורמט וירטואליזציה פתוח (OVF): קובץ OVF אחד וקובצי דיסק של מכונה וירטואלית (VMDK) באותה קטגוריה.

  • Open Virtual Appliance ‏ (OVA): קובץ OVA אחד שמכיל קובץ OVF וקובצי דיסק. ‫Compute Engine תומך בייבוא של קובצי תמונות של מכונות בפורמט OVA, בפורמטים הבאים של קובצי דיסקים:

    • דיסק של מכונה וירטואלית (VMDK)
    • QEMU copy-on-write (QCOW)
    • ‫QEMU copy-on-write 2 ‏ (QCOW2)
    • פורמט דיסק משופר של QEMU‏ (QED)
    • VPC
    • קובץ אימג' של דיסק וירטואלי (VDI)
    • דיסק קשיח וירטואלי גרסה 2 ‏ (VHDX)

מגבלות

כשמייבאים תמונות של מכונות, חלות המגבלות הבאות:

תהליך הייבוא של תמונות מכונה

כדי לייבא תמונת מכונה לתמונת מכונה של Compute Engine באמצעות Compute Engine, מבצעים את השלבים הבאים:

  1. הכנת קובץ של תמונת מכונה לייבוא
  2. בחירת פרויקט יעד
  3. ייבוא תמונת מכונה ל-Compute Engine

הכנת קובץ מכונה לייבוא

כדי לייבא תמונת מכונה לתמונה של Compute Engine, קודם צריך להכין את קובץ תמונת המכונה לייבוא. בקטעים הבאים מוסבר בפירוט איך לבצע את המשימות האלה.

הוספת קובץ של תמונת מכונה ל-Cloud Storage

כדי לייבא תמונת מכונה לתמונת מכונה ב-Compute Engine, קודם צריך להוסיף את קובץ תמונת המכונה ל-Cloud Storage. מידע נוסף מופיע במאמר בנושא העלאת אובייקטים ממערכת קבצים. כדי לשפר את הביצועים, מומלץ להעלות את קובץ האימג' של המכונה לדלי באותו אזור שבו רוצים ליצור את האימג' של המכונה. Google Cloud

מתן ההרשאות הנדרשות

כדי לייבא תמונת מכונה לתמונת מכונה ב-Compute Engine, צריך להעניק הרשאות כמו שמתואר בטבלה הבאה.

תפקיד ההרשאות הנדרשות תיאור
צפייה באובייקט אחסון roles/storage.objectViewer מקצים לחשבון השירות שמוגדר כברירת מחדל ב-Migrate to Virtual Machines בפרויקט המארח (service-HOST_PROJECT_NUMBER@gcp-sa-vmmigration.iam.gserviceaccount.com) את התפקיד roles/storage.objectViewer בדלי שבו נמצאת התמונה שרוצים לייבא. ההרשאה הזו מאפשרת ל-Migrate to Virtual Machines לגשת לתמונת המקור.
מנהל מערכת של VM Migration roles/vmmigration.admin בפרויקט המארח, מעניקים לחשבון המשתמש שרוצים להשתמש בו כדי לייבא את תמונת המקור את התפקיד roles/vmmigration.admin.
חשבון שירות של VM Migration roles/vmmigration.serviceAgent בפרויקט המארח (service-HOST_PROJECT_NUMBER@gcp-sa-vmmigration.iam.gserviceaccount.com), מקצים לחשבון השירות שמוגדר כברירת מחדל ב-Migrate to Virtual Machines את התפקיד roles/vmmigration.serviceAgent בפרויקט היעד. לדוגמה, אם service-1234567890@gcp-sa-vmmigration.iam.gserviceaccount.com הוא חשבון השירות של Migrate to Virtual Machines בפרויקט המארח, צריך להעניק לחשבון השירות הזה את התפקיד roles/vmmigration.serviceAgent כדי ליצור את התמונה בפרויקט היעד.

בחירת פרויקט יעד

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

ייבוא תמונת מכונה ל-Compute Engine

אפשר לייבא תמונת מכונה ל-Compute Engine באמצעות פקודות של Google Cloud CLI או של REST API.

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

gcloud

כדי לייבא תמונת מכונה ל-Compute Engine באמצעות Google Cloud CLI, משתמשים בבקשה הבאה.

gcloud alpha migration vms machine-image-imports create IMAGE_NAME \
--source-file=SOURCE_FILE \
--location=REGION_ID \
--target-project=projects/HOST_PROJECT_ID/locations/global/targetProjects/TARGET_PROJECT

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

  • IMAGE_NAME: השם של תמונת המכונה שרוצים ליצור. מידע נוסף על כללי מתן השמות זמין במאמר בנושא מוסכמות למתן שמות.
  • SOURCE_FILE: הקובץ שממנו רוצים לייבא את תמונת המכונה. מזינים את הנתיב בפורמט gs://bucket/folder/file. כדי לקבל את הנתיב של אובייקט בתוך קטגוריה, ראו צפייה במטא-נתונים של אובייקט. הערה: אפשר לייבא תמונות רק מקבצים מסוג .ovf ו-.ova.
  • REGION_ID: האזור שבו רוצים להריץ את תהליך הייבוא של תמונת המכונה. תמונת המכונה נוצרת באזור הקרוב ביותר עם כמה אזורים. אם רוצים ליצור את תמונת המכונה באזור מסוים, צריך לוודא שהערך של singleRegionStorage מוגדר כ-true. רשימת האזורים הנתמכים זמינה במאמר Regions and Zones.
  • HOST_PROJECT_ID: השם של פרויקט המארח שממנו רוצים להעביר את תמונת המכונה.
  • TARGET_PROJECT: פרויקט היעד שבו רוצים ליצור את תמונת המכונה. אם עדיין לא הוספתם פרויקט יעד, תוכלו לעשות זאת באמצעות ההוראות שמופיעות במאמר הוספת פרויקט יעד.
  • REGION_ID: האזור שבו רוצים להריץ את תהליך הייבוא של תמונת המכונה. תמונת המכונה נוצרת באזור הקרוב ביותר עם כמה אזורים. אם רוצים ליצור את תמונת המכונה באזור מסוים, צריך לוודא שהערך של singleRegionStorage מוגדר כ-true. רשימת האזורים הנתמכים זמינה במאמר Regions and Zones.

מידע נוסף זמין במאמר gcloud compute migration machine-image-imports.

‫API בארכיטקטורת REST

כדי לייבא תמונת מכונה ל-Compute Engine באמצעות ה-API ל-REST, צריך לבצע את השלבים הבאים.

  1. יוצרים משאב לייבוא תמונת מכונה באמצעות הבקשה הבאה.

    POST https://vmmigration.googleapis.com/v1/projects/HOST_PROJECT_ID/locations/REGION_ID/imageImports?imageImportId=IMPORT_NAME
    {
    "cloudStorageUri": "SOURCE_FILE",
    "machineImageTargetDefaults": {
    "imageName": "IMAGE_NAME",
    "targetProject": "projects/HOST_PROJECT_ID/locations/global/targetProjects/TARGET_PROJECT",
    ...
    }
    }
    

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

    • HOST_PROJECT_ID: השם של פרויקט המארח שממנו רוצים להעביר את תמונת המכונה.
    • REGION_ID: האזור שבו רוצים להריץ את תהליך הייבוא של תמונת המכונה. תמונת המכונה נוצרת באזור הקרוב ביותר שכולל מספר אזורים. אם רוצים ליצור את תמונת המכונה באזור, צריך לוודא שהערך של singleRegionStorage הוא true. רשימת האזורים הנתמכים זמינה במאמר Regions and Zones.
    • SOURCE_FILE: הקובץ שממנו רוצים לייבא את תמונת המכונה. מזינים את הנתיב בפורמט gs://bucket/folder/file. כדי לקבל את הנתיב של אובייקט בתוך קטגוריה, ראו צפייה במטא-נתונים של אובייקט. הערה: אפשר לייבא תמונות מכונה רק מקבצים מסוג .ova ו-.ovf.
    • IMAGE_NAME: השם של תמונת המכונה שרוצים ליצור. מידע נוסף על כללי מתן השמות זמין במאמר בנושא מוסכמות למתן שמות.
    • TARGET_PROJECT: פרויקט היעד שבו רוצים ליצור את תמונת המכונה. אם עדיין לא הוספתם פרויקט יעד, תוכלו לעשות זאת באמצעות ההוראות שמופיעות במאמר הוספת פרויקט יעד.

    בדוגמה הזו, IMPORT_NAME הוא מזהה שמייצג את משאב הייבוא של תמונת המכונה. כשמייבאים תמונת מכונה ל-Compute Engine, הכלי Migrate to Virtual Machines יוצר קודם משאב לייבוא תמונת מכונה. משאב הייבוא של תמונת המכונה מייצג את תהליך הייבוא של תמונת המכונה. אפשר להשתמש ב-IMPORT_NAME כדי לקבל את הקישור לתמונת המכונה שיובאה כחלק מתהליך הייבוא של תמונת המכונה.

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

    שם השדה תיאור
    cloudStorageUri הנתיב של הקובץ שממנו רוצים לייבא את תמונת המכונה. מזינים את הנתיב בפורמט gs://bucket/folder/file. כדי לקבל את הנתיב של אובייקט בתוך קטגוריה, אפשר לעיין במאמר צפייה במטא-נתונים של אובייקט.
    הערה: אפשר לייבא תמונות מכונה רק מקבצים מסוג .ovf ו-.ova.
    machineImageTargetDefaults.targetProject פרויקט היעד שבו רוצים ליצור את תמונת המכונה. מידע נוסף זמין במאמר בנושא הפניית API של פרויקט היעד. לדוגמה:
    projects/HOST_PROJECT_ID/locations/global/targetProjects/TARGET_PROJECT
    בדוגמה, מחליפים את הערכים הבאים:
    • HOST_PROJECT_ID: השם של פרויקט המארח שממנו רוצים להעביר את תמונת המכונה.
    • TARGET_PROJECT: פרויקט היעד שבו רוצים ליצור את התמונה.
    machineImageTargetDefaults.machine_image_name השם של תמונת המכונה שרוצים ליצור. מידע נוסף על כללי מתן השמות זמין במאמר מוסכמות למתן שמות למשאבים.
    machineImageTargetDefaults.description (אופציונלי) תיאור של תמונת המכונה.
    machineImageTargetDefaults.machine_type (אופציונלי) המכונה שבה יוצרים את תמונת המכונה. אם לא מציינים את סוג המכונה, Compute Engine בוחר סוג מכונה רלוונטי על סמך המידע מתמונת המכונה של המקור.
    machineImageTargetDefaults.labels כדי לעשות סדר בפרויקט, אפשר להוסיף למשאבים תוויות שישמשו בתור צמדי מפתח/ערך. מידע נוסף על תיוג משאבים
    machineImageTargetDefaults.tags מוסיפים תגים שרוצים לצרף לתמונת המכונה. איך מנהלים את התגים של משאבים
    machineImageTargetDefaults.additionalLicenses אפשר להוסיף עד 10 רישיונות נוספים למופע של מכונה וירטואלית שנוצר מתמונת המכונה המיובאת, באמצעות פורמט כתובת URL תקין. לדוגמה, אפשר להוסיף רישיונות נוספים באמצעות פורמט כתובת ה-URL הבא:
    https://www.googleapis.com/compute/beta/projects/windows-sql-cloud/global/licenses/sql-server-2012-enterprise
    machineImageTargetDefaults.service_account מציינים את חשבון השירות בפרויקט היעד שבו נעשה שימוש בתמונת המכונה. כברירת מחדל, לא מוקצה חשבון שירות לתמונת המכונה.
    אם יוצרים מכונה ב-Compute Engine מתמונת מכונה ומתכננים להריץ עליה אפליקציה, יכול להיות שהמכונה תצטרך גישה לשירותים ולממשקי API אחרים של gcloud CLI. יוצרים חשבון שירות בפרויקט היעד עם ההרשאות הנדרשות לגישה לשירותים ולממשקי ה-API האלה לפני שיוצרים את מכונת Compute Engine. לאחר מכן, מציינים כאן את חשבון השירות. מידע נוסף זמין במאמר בנושא הגדרת מכונה וירטואלית להפעלה כחשבון שירות.
    כדי לצרף את חשבון השירות למכונה של Compute Engine, לחשבון המשתמש שלכם בפרויקט המארח של Compute Engine צריכות להיות ההרשאות הנדרשות. מידע נוסף זמין במאמר הגדרת הרשאות בחשבון השירות של פרויקט היעד.
    machineImageTargetDefaults.shielded_instance_config (אופציונלי) מפעילים Shielded VM במכונה הזו. מכונות וירטואליות מוגנות מוקשחות על ידי קבוצה של אמצעי בקרה לאבטחה שעוזרים להגן מפני ערכות rootkit וערכות bootkit. מהי מכונה וירטואלית מוגנת?
    machineImageTargetDefaults.singleRegionStorage מגדירים את הדגל הזה ל-true אם רוצים שתמונת המכונה storageLocations תהיה אזור. אם מגדירים את הדגל הזה כ-false, נבחר האזור הקרוב ביותר עם כמה אזורים.
    machineImageTargetDefaults.skip_os_adaptation מגדירים את הדגל הזה לערך true אם רוצים לדלג על התאמת מערכת ההפעלה.
    כדי שמכונות וירטואליות שנוצרו מתמונות של מכונות מיובאות יפעלו בצורה תקינה ב- Google Cloud, צריך לבצע שינויים בהגדרות שלהן. השינויים האלה נקראים התאמות למערכת ההפעלה. מערכת Compute Engine מבצעת התאמות של מערכת ההפעלה באופן אוטומטי בתהליך הייבוא של תמונת המכונה. מידע נוסף זמין במאמר התאמת מכונות וירטואליות להפעלה ב- Google Cloud.
    machineImageTargetDefaults.osAdaptationParameters.licenseType סוג הרישיון שבו רוצים להשתמש בתמונת המכונה. ‫Compute Engine תומך ברישיונות של תשלום לפי שימוש (PAYG) ורישיונות של החברה מביאה את הרישיון שלה (BYOL) למכונות וירטואליות שפרסתם. סוג הרישיון שמוקצה למכונה וירטואלית שעברה מיגרציה כברירת מחדל נקבע על ידי Compute Engine על סמך מערכת ההפעלה שעברה מיגרציה, כפי שמתואר במאמר בנושא מערכות הפעלה נתמכות.
    אם מערכת ההפעלה שלכם תומכת בכמה סוגי רישיונות, אתם יכולים לבטל את ברירת המחדל של סוג הרישיון כדי לציין במפורש סוג רישיון של PAYG או BYOL.
    machineImageTargetDefaults.osAdaptationParameters.network_interfaces ב-Compute Engine יש אפשרות ליצור תמונות מכונה עם כמה כרטיסי רשת (NIC). כל ממשק מצורף לרשת VPC אחרת, וכך תמונת המכונה מקבלת גישה לרשתות VPC שונות ב-gcloud CLI.
    לפני שמוסיפים עוד ממשקי רשת, חשוב לשים לב לשיקולים הבאים:
    • אי אפשר לצרף כמה ממשקי רשת לאותה רשת VPC. יכול להיות שההגדרה תישמר, אבל יצירת המופע של המכונה הווירטואלית תיכשל.
    • אחרי שמפעילים מופע של Compute Engine מתמונת מכונה באמצעות test-clone או cut-over, אי אפשר להוסיף או להסיר ממשק רשת במופע שנוצר. אפשר לחזור על הפעולה test-clone או cut-over עם פרטים שונים של היעד כדי ליצור מחדש את המופע.
      כדי להוסיף או להסיר ממשק רשת:
      • בוחרים באפשרות הוספת ממשק רשת כדי להוסיף ממשק רשת נוסף למופע של Compute Engine. אפשר להגדיר את כל האפשרויות כמו בממשק הרשת הראשוני.
    מידע נוסף זמין במאמר בנושא יצירת מופעים עם כמה ממשקי רשת.
    machineImageTargetDefaults.osAdaptationParameters.generalize מגדירים את הדגל הזה לערך true אם רוצים להכליל את תמונת המכונה.
    כשיוצרים מכונה מקובץ אימג' של מכונה, Windows מוסיף למכונה מידע ייחודי. הכללה היא תהליך שבו מסירים את המידע הזה כדי שתוכלו ליצור כמה מופעים מאותה תמונת מכונה.
    machineImageTargetDefaults.encryption ה Google-owned and Google-managed encryption key שבו רוצים להשתמש כדי להצפין את הנתונים במהלך תהליך הייבוא. מידע נוסף זמין במאמר ברירת המחדל של הצפנה במנוחה.

    משתמשים במפתחות הצפנה בניהול הלקוח (CMEK) כדי להצפין את הנתונים של תמונת המכונה. אתם יוצרים את מפתחות ההצפנה האלה, מנהלים אותם והם בבעלותכם. מידע נוסף זמין במאמר הגנה על משאבים באמצעות מפתחות Cloud KMS.

    הערה: מפתח ההצפנה שתבחרו לשימוש במהלך תהליך הייבוא ישמש גם לתמונת הפלט.

    כשמוסיפים מפתח CMEK, צריך להעניק הרשאות כמו שמתואר בטבלה הבאה.
    תפקיד ההרשאות הנדרשות תיאור
    חשבון שירות של Cloud VM Migration roles/vmmigration.serviceAgent צריך להעניק את ההרשאה הזו לחשבון השירות של Compute Engine כדי להצפין את הנתונים של תמונת המכונה שנוצרה במהלך תהליך הייבוא.
    Compute Engine Service Agent roles/compute.serviceAgent צריך להעניק את ההרשאה הזו לסוכן השירות של Compute Engine כדי להצפין את הנתונים במהלך תהליך הייבוא.

    אמורה להתקבל תגובה שדומה לדוגמה הבאה.

    {
      "name": "projects/HOST_PROJECT_ID/locations/REGION_ID/operations/OPERATION_ID",
      "metadata": {
        "createTime": "2023-10-31T09:12:26.94928636Z",
        "target": "projects/HOST_PROJECT_ID/locations/us-central1/imageImports/IMPORT_NAME",
        "verb": "create",
        "apiVersion": "v1",
        "@type": "type.googleapis.com/google.cloud.vmmigration.v1.OperationMetadata"
      }
    }
    
  2. כדי לבדוק אם משימת הייבוא של תמונת המכונה הושלמה, מריצים את הפקודה הבאה כדי לבצע בדיקה חוזרת של הפעולה.

    GET https://vmmigration.googleapis.com/v1/projects/HOST_PROJECT_ID/locations/REGION_ID/operations/OPERATION_ID
    

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

    • HOST_PROJECT_ID: השם של פרויקט המארח שממנו מעבירים את תמונת המכונה.
    • REGION_ID: האזור שבו רוצים להריץ את תהליך הייבוא של תמונת המכונה. תמונת המכונה נוצרת באזור הקרוב ביותר שכולל מספר אזורים. אם רוצים ליצור את תמונת המכונה באזור, צריך לוודא שהערך של singleRegionStorage הוא true. רשימת האזורים הנתמכים זמינה במאמר Regions and Zones.
    • OPERATION_ID: מזהה הפעולה של משימת ההעברה.

    אמורה להתקבל תגובה על השלמת הפעולה שדומה לדוגמה הבאה.

      {
        "done": true,
        "name": "projects/HOST_PROJECT_ID/locations/REGION_ID/operations/OPERATION_ID",
        "response": {
          "@type": "type.googleapis.com/google.cloud.vmmigration.v1.ImageImport",
          "name": "projects/HOST_PROJECT_ID/locations/us-central1/imageImports/IMPORT_NAME",
          "cloudStorageUri": "SOURCE_FILE",
          "createTime": "2023-10-31T09:04:04.413664947Z",
          "machineImageTargetDefaults": {
            "imageName": "IMAGE_NAME",
            "targetProject": "projects/HOST_PROJECT_ID/locations/global/targetProjects/TARGET_PROJECT"
          },
          "recentImageImportJobs": [
            {
              "name": "projects/HOST_PROJECT_ID/locations/us-central1/imageImports/IMPORT_NAME/imageImportJobs/image-import-job",
              "diskImageTargetDetails": {
               "imageName": "IMAGE_NAME",
               "targetProject": "projects/HOST_PROJECT_ID/locations/global/targetProjects/TARGET_PROJECT"
            },
             "state": "PENDING"
           }
          ]
        },
        "metadata": {
          "createTime": "2023-10-31T09:04:04.416740716Z",
          "endTime": "2023-10-31T09:05:36.79987142Z",
          "target": "projects/HOST_PROJECT_ID/locations/us-central1/imageImports/IMPORT_NAME",
          "verb": "create",
          "apiVersion": "v1",
          "@type": "type.googleapis.com/google.cloud.vmmigration.v1.OperationMetadata"
        }
      }
    
  3. כדי לעקוב אחרי השלמת הייבוא של תמונת המכונה, משתמשים בפקודה הבאה.

    GET https://vmmigration.googleapis.com/v1/projects/HOST_PROJECT_ID/locations/REGION_ID/imageImports/IMPORT_NAME/imageImportJobs/image-import-job
    

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

    • HOST_PROJECT_ID: השם של פרויקט המארח שממנו מעבירים את תמונת המכונה.
    • REGION_ID: האזור שבו רוצים להריץ את תהליך הייבוא של תמונת המכונה. תמונת המכונה נוצרת באזור הקרוב ביותר שכולל מספר אזורים. אם רוצים ליצור את תמונת המכונה באזור, צריך לוודא שהערך של singleRegionStorage הוא true. רשימת האזורים הנתמכים זמינה במאמר Regions and Zones.
    • IMPORT_NAME: המזהה שמייצג את משאב הייבוא של תמונת המכונה. כשמייבאים תמונת מכונה ל-Compute Engine, ‏ Migrate to Virtual Machines יוצרת קודם משאב לייבוא תמונת מכונה. משאב הייבוא של תמונת המכונה מייצג את תהליך הייבוא של תמונת המכונה. אפשר להשתמש ב-IMPORT_NAME כדי לקבל את הקישור לתמונת המכונה שיובאה כחלק מתהליך הייבוא של תמונת המכונה.

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

    {
      "createTime":"2023-10-31T09:12:27.053788394Z",
      "createdResources":[
        "https://www.googleapis.com/compute/v1/projects/USER_PROJECT/global/images/IMAGE_NAME"
      ],
      "diskImageTargetDetails": {
        "imageName":"IMAGE_NAME",
        "targetProject":"projects/HOST_PROJECT_ID/locations/global/targetProjects/TARGET_PROJECT"
      },
      "endTime":"2023-10-31T09:16:50.224865783Z",
      "name":"projects/HOST_PROJECT_ID/locations/us-central1/imageImports/IMPORT_NAME/imageImportJobs/image-import-job",
      "state":"SUCCEEDED"
    }
    

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