Mengimpor perangkat virtual


Perangkat virtual adalah paket yang berisi disk image dan konfigurasi hardware untuk instance mesin virtual (VM).

Format yang banyak digunakan dan populer untuk perangkat virtual adalah format OVF. Saat mengemas perangkat virtual dalam format OVF, Anda akan menghasilkan paket OVF. Paket OVF adalah folder yang berisi file deskriptor .ovf dan kumpulan resource lainnya, seperti disk. Jika paket OVF diarsipkan ke dalam satu file, paket tersebut disebut sebagai file OVA.

Halaman ini menjelaskan langkah-langkah yang dapat Anda gunakan untuk mengimpor image mesin dari perangkat virtual menggunakan Compute Engine.

Sebelum memulai

Format yang didukung

Anda dapat mengimpor file image mesin dalam format berikut menggunakan Compute Engine:

  • Open Virtualization Format (OVF): Satu file OVF dan file disk virtual machine (VMDK) dalam bucket yang sama.
  • Open Virtual Appliance (OVA): Satu file OVA yang berisi file OVF dan file VMDK.

Proses impor image mesin

Untuk mengimpor image mesin ke image mesin Compute Engine menggunakan Compute Engine, gunakan langkah-langkah berikut:

  1. Menyiapkan file image mesin untuk diimpor
  2. Memilih project target
  3. Mengimpor image mesin ke Compute Engine

Menyiapkan file mesin untuk diimpor

Untuk mengimpor image mesin ke image Compute Engine, Anda harus menyiapkan file image mesin terlebih dahulu untuk diimpor. Bagian berikut membahas tugas ini secara mendetail.

Menambahkan file image mesin ke Cloud Storage

Untuk mengimpor image mesin ke image mesin Compute Engine, Anda harus menambahkan file image mesin ke Cloud Storage terlebih dahulu. Untuk informasi selengkapnya, lihat Mengupload objek dari sistem file. Untuk performa yang lebih baik, sebaiknya upload file image mesin ke bucket di Google Cloud yang sama dengan tempat Anda ingin membuat image mesin.

Memberikan izin yang diperlukan

Untuk mengimpor image mesin ke image mesin Compute Engine, berikan izin seperti yang dijelaskan dalam tabel berikut.

Peran Izin diperlukan Deskripsi
Storage Object Viewer roles/storage.objectViewer Berikan peran roles/vmmigration.serviceAgent ke akun layanan Migrate to Virtual Machines default di project host (service-HOST_PROJECT_NUMBER@gcp-sa-vmmigration.iam.gserviceaccount.com) di bucket tempat image yang ingin Anda impor berada. Izin ini memungkinkan Migrate to Virtual Machines mengakses image sumber.
VM Migration Administrator roles/vmmigration.admin Di project host, berikan peran roles/vmmigration.admin ke akun pengguna yang ingin Anda gunakan untuk mengimpor image sumber.
Akun Layanan Migrasi VM roles/vmmigration.serviceAgent Berikan peran roles/vmmigration.serviceAgent ke akun layanan Migrate to Virtual Machines default di project host (service-HOST_PROJECT_NUMBER@gcp-sa-vmmigration.iam.gserviceaccount.com) pada project target. Misalnya, jika service-1234567890@gcp-sa-vmmigration.iam.gserviceaccount.com adalah akun layanan Migrate to Virtual Machines di project host, Anda harus memberikan peran roles/vmmigration.serviceAgent kepada akun layanan ini agar dapat membuat image di project target.

Memilih project target

Untuk menghosting image mesin, Anda harus membuat atau memilih project target. Project target menentukan project tujuan untuk image virtual machine. Untuk informasi selengkapnya tentang cara membuat atau memilih project target, lihat Menambahkan project target.

Mengimpor image mesin ke Compute Engine

Anda dapat mengimpor image mesin ke Compute Engine menggunakan perintah Google Cloud CLI atau REST API.

Saat Anda mengimpor image mesin, Compute Engine akan membuat beberapa resource sementara, seperti VM atau disk, di project target. Resource sementara ini akan dihapus setelah proses impor image mesin selesai.

gcloud

Untuk mengimpor image mesin ke Compute Engine menggunakan Google Cloud CLI, gunakan permintaan berikut.

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

Ganti kode berikut:

  • IMAGE_NAME: nama image mesin yang ingin Anda buat. Untuk informasi selengkapnya tentang aturan penamaan, lihat Konvensi penamaan.
  • SOURCE_FILE: file tempat Anda ingin mengimpor image mesin. Masukkan jalur dalam format gs://bucket/folder/file. Untuk mendapatkan jalur objek di dalam bucket, lihat Melihat metadata objek. Perhatikan bahwa Anda hanya dapat mengimpor gambar dari file .ovf dan .ova.
  • REGION_ID: region tempat Anda ingin proses impor image mesin dijalankan. Image mesin dibuat di multi-region terdekat. Jika Anda ingin image mesin dibuat di region, pastikan singleRegionStorage disetel ke benar (true). Untuk mengetahui daftar region yang didukung, lihat Region dan Zona.
  • HOST_PROJECT_ID: nama project host tempat Anda ingin memigrasikan image mesin.
  • TARGET_PROJECT: project target tempat Anda ingin membuat image mesin. Jika Anda belum menambahkan project target, lakukan menggunakan petunjuk yang diberikan di Menambahkan project target.
  • REGION_ID: region tempat Anda ingin proses impor image mesin dijalankan. Image mesin dibuat di multi-region terdekat. Jika Anda ingin image mesin dibuat di region, pastikan singleRegionStorage disetel ke benar (true). Untuk mengetahui daftar region yang didukung, lihat Region dan Zona.

Untuk informasi selengkapnya, lihat gcloud migration vms image-imports.

REST API

Untuk mengimpor image mesin ke Compute Engine menggunakan REST API, gunakan langkah-langkah berikut.

  1. Buat resource impor image mesin menggunakan permintaan berikut.

    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",
    ...
    }
    }
    

    Ganti kode berikut:

    • HOST_PROJECT_ID: nama project host tempat Anda ingin memigrasikan image mesin.
    • REGION_ID: region tempat Anda ingin proses impor image mesin dijalankan. Image mesin dibuat di multi-region terdekat. Jika Anda ingin image mesin dibuat di region, pastikan singleRegionStorage ditetapkan ke benar. Untuk mengetahui daftar region yang didukung, lihat Region dan Zona.
    • SOURCE_FILE: file tempat Anda ingin mengimpor image mesin. Masukkan jalur dalam format gs://bucket/folder/file. Untuk mendapatkan jalur objek di dalam bucket, lihat Melihat metadata objek. Perhatikan bahwa Anda hanya dapat mengimpor image mesin dari file .ova dan .ovf.
    • IMAGE_NAME: nama image mesin yang ingin Anda buat. Untuk informasi selengkapnya tentang aturan penamaan, lihat Konvensi penamaan.
    • TARGET_PROJECT: project target tempat Anda ingin membuat image mesin. Jika Anda belum menambahkan project target, lakukan menggunakan petunjuk yang diberikan di Menambahkan project target.

    Dalam contoh ini, IMPORT_NAME adalah ID yang mewakili resource impor image mesin. Saat Anda mengimpor image mesin ke Compute Engine, Migrate to Virtual Machines akan membuat resource impor image mesin terlebih dahulu. Resource impor image mesin mewakili proses impor image mesin. Anda dapat menggunakan IMPORT_NAME untuk mendapatkan link ke image mesin yang diimpor sebagai bagian dari proses impor image mesin.

    Lihat tabel berikut untuk mengetahui daftar lengkap kolom permintaan pembuatan impor image mesin yang didukung.

    Nama kolom Deskripsi
    cloudStorageUri Jalur file tempat Anda ingin mengimpor image mesin. Masukkan jalur dalam format gs://bucket/folder/file. Untuk mendapatkan jalur objek di dalam bucket, lihat Melihat metadata objek.
    Perhatikan bahwa Anda hanya dapat mengimpor image mesin dari file .ovf dan .ova.
    machineImageTargetDefaults.targetProject Project target tempat Anda ingin membuat image mesin. Untuk informasi selengkapnya, lihat referensi API project target. Misalnya,
    projects/HOST_PROJECT_ID/locations/global/targetProjects/TARGET_PROJECT
    Dalam contoh, ganti hal berikut:
    • HOST_PROJECT_ID: nama project host tempat Anda ingin memigrasikan image mesin.
    • TARGET_PROJECT: project target tempat Anda ingin membuat image.
    machineImageTargetDefaults.machine_image_name Nama image mesin yang akan dibuat. Untuk informasi selengkapnya tentang aturan penamaan, lihat konvensi penamaan resource.
    machineImageTargetDefaults.description (Opsional) Deskripsi image mesin.
    machineImageTargetDefaults.machine_type (Opsional) Mesin yang akan digunakan untuk membuat image mesin. Jika Anda tidak menentukan jenis mesin, Compute Engine akan memilih jenis mesin yang relevan berdasarkan informasi dari image mesin sumber.
    machineImageTargetDefaults.labels Untuk mengatur project, tambahkan label sebagai key-value pair ke resource Anda. Lihat Memberi label pada resource.
    machineImageTargetDefaults.tags Tambahkan tag yang ingin Anda lampirkan ke image mesin. Lihat Mengelola tag untuk resource.
    machineImageTargetDefaults.additionalLicenses Anda dapat menambahkan hingga 10 lisensi tambahan ke instance VM yang dibuat dari image mesin yang diimpor menggunakan format URL yang valid. Misalnya, Anda dapat menambahkan lisensi tambahan menggunakan format URL berikut:
    https://www.googleapis.com/compute/beta/projects/windows-sql-cloud/global/licenses/sql-server-2012-enterprise
    machineImageTargetDefaults.service_account Tentukan akun layanan di project target yang digunakan oleh image komputer. Secara default, tidak ada akun layanan yang ditetapkan ke image mesin.
    Jika Anda membuat instance Compute Engine dari image mesin dan berencana untuk menjalankan aplikasi di dalamnya, instance tersebut mungkin memerlukan akses ke layanan dan API gcloud CLI lainnya. Buat akun layanan di project target dengan izin yang diperlukan untuk mengakses layanan dan API ini sebelum membuat instance Compute Engine. Kemudian, tentukan akun layanan tersebut di sini. Untuk informasi selengkapnya, lihat menyiapkan VM untuk dijalankan sebagai akun layanan.
    Untuk memasang akun layanan ke instance Compute Engine, akun pengguna Anda di project host Compute Engine memerlukan izin yang diperlukan. Untuk mengetahui informasi selengkapnya, lihat Mengonfigurasi izin pada akun layanan project target.
    machineImageTargetDefaults.shielded_instance_config (Opsional) Aktifkan Shielded VM pada instance ini. Shielded VM telah melalui proses hardening oleh serangkaian kontrol keamanan yang membantu memberikan pertahanan dari rootkit dan bootkit. Lihat Apa itu Shielded VM?
    machineImageTargetDefaults.singleRegionStorage Tetapkan tanda ini ke true jika Anda ingin storageLocations image mesin menjadi region. Jika Anda menetapkan tanda ini ke salah, multi-region terdekat akan dipilih.
    machineImageTargetDefaults.skip_os_adaptation Tetapkan tanda ini ke true jika Anda ingin melewati adaptasi OS.
    Agar berfungsi dengan benar di Google Cloud, VM yang dibuat dari image mesin yang diimpor memerlukan perubahan pada konfigurasinya. Perubahan ini disebut sebagai adaptasi OS. Compute Engine melakukan adaptasi OS secara otomatis dalam proses impor image mesin. Untuk mengetahui informasi selengkapnya, lihat Menyesuaikan instance VM agar dapat berjalan di Google Cloud.
    machineImageTargetDefaults.osAdaptationParameters.licenseType Jenis lisensi yang ingin Anda gunakan untuk image mesin. Compute Engine mendukung lisensi bayar sesuai penggunaan (PAYG) dan lisensi bawa sendiri (BYOL) untuk VM yang di-deploy. Jenis lisensi default untuk VM yang dimigrasikan ditetapkan oleh Compute Engine berdasarkan sistem operasi yang dimigrasikan, seperti yang dijelaskan dalam Sistem operasi yang didukung.
    Jika sistem operasi Anda mendukung beberapa jenis lisensi, Anda dapat mengganti jenis lisensi default untuk menentukan jenis lisensi PAYG atau BYOL secara eksplisit.
    machineImageTargetDefaults.osAdaptationParameters.network_interfaces Compute Engine memungkinkan Anda membuat image mesin secara opsional dengan beberapa antarmuka jaringan (NIC). Setiap antarmuka dilampirkan ke jaringan VPC yang berbeda, sehingga memberikan akses image mesin tersebut ke jaringan VPC yang berbeda di gcloud CLI.
    Sebelum menambahkan antarmuka jaringan tambahan, perhatikan pertimbangan berikut:
    • Melampirkan beberapa antarmuka jaringan ke jaringan VPC yang sama tidak didukung. Meskipun konfigurasi mungkin disimpan, pembuatan instance VM akan gagal.
    • Setelah instance Compute Engine dibuat instance-nya dari image mesin, dengan menggunakan test-clone atau cut-over, Anda tidak dapat menambahkan atau menghapus antarmuka jaringan pada instance yang dibuat. Anda dapat mengulangi test-clone atau cut-over dengan detail target yang berbeda untuk membuat ulang instance.
      Untuk menambahkan atau menghapus antarmuka jaringan:
      • Pilih Add network interface untuk menambahkan antarmuka jaringan tambahan ke instance Compute Engine. Anda dapat menetapkan semua opsi yang sama seperti yang Anda lakukan dengan antarmuka jaringan awal.
    Untuk mengetahui informasi selengkapnya, lihat Membuat instance dengan beberapa antarmuka jaringan.
    machineImageTargetDefaults.osAdaptationParameters.generalize Tetapkan tanda ini ke true jika Anda ingin memgeneralisasi image mesin.
    Saat Anda membuat instance dari image mesin, Windows akan menambahkan beberapa informasi unik ke instance. Generalisasi adalah proses yang menghapus informasi ini sehingga Anda dapat membuat beberapa instance dari image mesin yang sama.
    machineImageTargetDefaults.encryption Kunci enkripsi yang dikelola Google yang ingin Anda gunakan untuk mengenkripsi data selama proses impor. Untuk mengetahui informasi selengkapnya, lihat Enkripsi dalam penyimpanan default.

    Gunakan kunci enkripsi yang dikelola pelanggan (CMEK) untuk mengenkripsi data image mesin. Kunci enkripsi ini dibuat, dikelola, dan dimiliki oleh Anda. Untuk informasi selengkapnya, lihat Melindungi resource dengan menggunakan kunci Cloud KMS.
    Saat menambahkan CMEK, Anda harus memberikan izin seperti yang dijelaskan dalam tabel berikut.
    Peran Izin diperlukan Deskripsi
    Akun Layanan Migrasi VM Cloud roles/vmmigration.serviceAgent Berikan izin ini ke akun layanan Compute Engine untuk mengenkripsi data image mesin yang dibuat selama proses impor.
    Agen Layanan Compute Engine roles/compute.serviceAgent Berikan izin ini ke agen layanan Compute Engine untuk mengenkripsi data selama proses impor.

    Anda akan melihat respons yang mirip dengan contoh respons berikut.

    {
      "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. Periksa apakah tugas impor image mesin sudah selesai dengan melakukan polling operasi menggunakan perintah berikut.

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

    Ganti kode berikut:

    • HOST_PROJECT_ID: nama project host tempat Anda memigrasikan image mesin.
    • REGION_ID: region tempat Anda ingin proses impor image mesin dijalankan. Image mesin dibuat di multi-region terdekat. Jika Anda ingin image mesin dibuat di region, pastikan singleRegionStorage ditetapkan ke benar. Untuk mengetahui daftar region yang didukung, lihat Region dan Zona.
    • OPERATION_ID: ID operasi tugas migrasi.

    Anda akan melihat respons penyelesaian operasi yang mirip dengan contoh respons berikut.

      {
        "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. Pantau tugas impor image mesin untuk diselesaikan menggunakan perintah berikut.

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

    Ganti kode berikut:

    • HOST_PROJECT_ID: nama project host tempat Anda memigrasikan image mesin.
    • REGION_ID: region tempat Anda ingin proses impor image mesin dijalankan. Image mesin dibuat di multi-region terdekat. Jika Anda ingin image mesin dibuat di region, pastikan singleRegionStorage ditetapkan ke benar. Untuk mengetahui daftar region yang didukung, lihat Region dan Zona.
    • IMPORT_NAME: ID yang mewakili resource impor image mesin. Saat Anda mengimpor image mesin ke Compute Engine, Migrate to Virtual Machines akan membuat resource impor image mesin terlebih dahulu. Resource impor image mesin mewakili proses impor image mesin. Anda dapat menggunakan IMPORT_NAME untuk mendapatkan link ke image mesin yang diimpor sebagai bagian dari proses impor image mesin.

    Anda akan melihat respons penyelesaian tugas yang mirip dengan respons contoh berikut.

    {
      "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"
    }
    

Langkah selanjutnya