Mengimpor disk virtual


Jika Anda memiliki disk virtual pada lingkungan lokal dengan software dan konfigurasi yang Anda perlukan (terkadang disebut sebagai disk emas atau image emas), Anda dapat menghemat waktu dengan mengimpor disk virtual tersebut ke dalam Compute Engine dan menggunakan image yang dihasilkan untuk membuat virtual machine. Fitur impor mendukung hampir semua format file disk, termasuk VMDK dan VHD.

Jika mengekspor disk dari Compute Engine, Anda dapat membuat image dari disk tersebut.

Untuk mengetahui informasi tentang cara membuat sistem otomatis untuk memigrasikan beberapa virtual machine (VM), baca artikel Memigrasikan VM ke Compute Engine.

Sebelum memulai

  • Jika ada kebijakan image tepercaya yang ditentukan untuk project tempat tujuan Anda mengimpor image, tambahkan projects/compute-image-import dan projects/compute-image-tools ke daftar penayang yang diizinkan.
  • Untuk mengetahui cara memenuhi persyaratan sebelum mengimpor image, lihat Prasyarat untuk mengimpor dan mengekspor image VM.
  • Siapkan autentikasi, jika Anda belum melakukannya. Autentikasi adalah proses verifikasi identitas Anda untuk akses ke layanan dan API Google Cloud. Untuk menjalankan kode atau contoh dari lingkungan pengembangan lokal, Anda dapat melakukan autentikasi ke Compute Engine sebagai berikut.

    Pilih tab untuk melihat bagaimana Anda berencana menggunakan contoh di halaman ini:

    Konsol

    Saat menggunakan Konsol Google Cloud untuk mengakses API dan layanan Google Cloud, Anda tidak perlu menyiapkan autentikasi.

    gcloud

    1. Instal Google Cloud CLI, lalu initialize dengan menjalankan perintah berikut:

      gcloud init
    2. Menetapkan region dan zona default.

    REST

    Untuk menggunakan contoh REST API di halaman ini dalam lingkungan pengembangan lokal, gunakan kredensial yang Anda berikan ke gcloud CLI.

      Instal Google Cloud CLI, lalu initialize dengan menjalankan perintah berikut:

      gcloud init

Sistem operasi yang didukung

Anda dapat mengimpor disk yang dapat di-booting dan yang tidak dapat di-booting. Agar dapat di-booting di Compute Engine, disk virtual Anda harus menjalankan salah satu sistem operasi yang didukung.

Dukungan untuk BYOL dan BYOS

Jika lebih suka menggunakan lisensi atau langganan software sendiri, Anda dapat mengimpor disk virtual dengan lisensinya. Untuk mengetahui informasi tentang sistem operasi yang mendukung BYOL atau BYOS, lihat Detail sistem operasi.

Anda dapat mengimpor image dengan lisensi yang sudah ada menggunakan perintah gcloud compute instances import dengan flag --byol.

Batasan

Fitur ini memiliki batasan umum sebagai berikut:

  • Jika Anda mengimpor disk virtual yang menjalankan RHEL, bring your own license (BYOL) hanya didukung jika paket python-boto diinstal pada disk virtual sebelum mengimpor.

  • Sistem operasi pada disk virtual harus mendukung ACPI.

  • Fitur ini tidak didukung untuk project yang dilindungi dengan Kontrol Layanan VPC. Untuk lingkungan tersebut, lihat Mengimpor boot disk secara manual.

  • Anda tidak dapat mengimpor gambar Arm menggunakan alat impor gambar. Untuk mengimpor image Arm, ikuti petunjuk langkah demi langkah seperti yang dijelaskan di Mengimpor boot disk secara manual.

  • Compute Engine tidak mendukung pengimporan disk terenkripsi software karena disk tidak dapat dibaca tanpa kunci. Secara khusus, Anda tidak dapat mengimpor gambar Windows 10 dan yang lebih baru yang menggunakan enkripsi drive BitLocker.

Fitur ini memiliki batasan berikut di Linux:

  • Disk virtual Linux harus menggunakan grub sebagai bootloader.

  • Disk virtual Linux harus memenuhi persyaratan yang sama dengan image kustom, termasuk dukungan untuk perangkat Pengontrol Penyimpanan Virtio-SCSI.

Fitur ini memiliki batasan berikut di Windows:

  • Saat diinstal pada disk virtual Windows, software yang memberi izin ke aplikasi, seperti CB Protection dari Carbon Black, dapat menyebabkan kegagalan pada proses impor. Anda mungkin perlu meng-uninstal software tersebut sebelum mengimpor.

  • Pada VM berbasis Windows, Microsoft KM-TEST Loopback Adapter mencegah akses jaringan ke server metadata dan Anda harus menonaktifkan atau menghapusnya sebelum melakukan impor.

Izin

Untuk memungkinkan pengalaman yang lancar saat mengimpor image, pastikan Anda telah memberikan peran IAM yang diperlukan ke akun Anda, akun layanan Cloud Build, dan akun layanan Compute Engine. Untuk mengetahui informasi selengkapnya, lihat Memberikan peran IAM yang diperlukan.

Memeriksa kompatibilitas

Sebelum mencoba mengimpor disk untuk VM Anda, download dan jalankan alat precheck di dalam VM Anda. Alat pra-pemeriksaan memindai masalah kompatibilitas yang mungkin menyebabkan proses impor gagal atau disk tidak berfungsi dengan baik di Compute Engine.

Mengimpor disk virtual

Anda dapat mengimpor disk virtual menggunakan Google Cloud Console, Google Cloud CLI, atau Cloud Build API.

Mengimpor disk virtual yang dapat di-booting

Untuk disk yang dapat di-booting, Anda tidak perlu menentukan sistem operasi karena alat impor otomatis mendeteksi sistem operasi untuk menentukan driver dan paket mana yang diperlukan. Namun, jika perlu mengabaikan sistem operasi yang terdeteksi, Anda dapat menentukan flag --os atau parameter -os. Untuk mengetahui daftar nilai yang didukung, lihat flag --os.

Konsol

  1. Di konsol Google Cloud, upload file disk virtual ke Cloud Storage.
  2. Buka halaman Buat image .

    Buka halaman Buat image

  3. Tentukan Nama untuk image Anda.

  4. Di bagian Sumber, pilih Disk virtual (VMDK, VHD,..).

  5. Jelajahi atau masukkan lokasi penyimpanan secara manual untuk file Cloud Storage.

  6. Pilih sistem operasi yang tersedia di disk yang diimpor. Anda juga dapat melakukan perubahan berikut:

    • Anda dapat memilih untuk Menginstal paket tamu. Google merekomendasikan agar Anda menginstal lingkungan tamu. Untuk mengetahui informasi selengkapnya tentang lingkungan tamu, lihat lingkungan tamu.

    • Untuk sistem operasi Windows atau Red Hat Enterprise Linux (RHEL), Anda juga dapat memilih opsi pemberian lisensi. Anda dapat mengizinkan Compute Engine untuk memberikan lisensi atau Anda dapat membawa lisensi Anda sendiri (BYOL). Untuk informasi selengkapnya tentang membawa lisensi Anda sendiri (BYOL) di Windows, lihat Bring your own license (BYOL).

  7. (Opsional) Tentukan properti tambahan untuk image Anda. Misalnya, Anda dapat mengatur image ini sebagai bagian dari kelompok image.

  8. Klik Buat untuk mengimpor image.

gcloud

Gunakan perintah gcloud compute images import untuk membuat image Compute Engine yang dapat di-booting. Meskipun Compute Engine dapat membooting sebagian besar boot disk image, perintah import memastikan bahwa disk memiliki driver wajib dan paket lingkungan tamu terbaru, yang diperlukan untuk memulai suatu instance dan menghubungkannya dengan menggunakan SSH atau RDP.

Anda dapat mengimpor file disk virtual dari bucket Cloud Storage atau dari workstation lokal Anda.

Jika Anda mengimpor file disk virtual dari workstation Anda, alat impor secara otomatis mengupload file ke bucket Cloud Storage untuk Anda.

Jika mau, Anda dapat mengupload sendiri file disk virtual ke Cloud Storage sebelum memulai proses impor, tetapi Anda harus mengupload file ke bucket Cloud Storage dalam project yang sama, yang akan digunakan untuk proses impor.

gcloud compute images import IMAGE_NAME \
    --source-file SOURCE_FILE

Ganti kode berikut:

  • IMAGE_NAME: nama image tujuan Anda.
  • SOURCE_FILE: file disk virtual Anda. File ini dapat berupa file lokal atau file yang disimpan di Cloud Storage. Jika disk virtual Anda adalah file lokal, Anda dapat menggunakan jalur absolut atau relatif. Jika file disk virtual Anda sudah disimpan di Cloud Storage, file tersebut harus ada di bucket Cloud Storage dalam project yang digunakan untuk proses impor, dan Anda harus menentukan jalur lengkap file dalam format gs://BUCKET_NAME/OBJECT_NAME.

Jika Anda mengimpor image dengan lisensi yang sudah ada, tentukan flag --byol sebagai berikut:

gcloud compute images import IMAGE_NAME \
    --source-file SOURCE_FILE --byol

Untuk mendapatkan petunjuk tentang cara mengimpor image dengan lisensi yang sudah ada ke Google Cloud, lihat Bring your own license (BYOL).

Jika Anda menentukan file lokal, operasi upload dapat membutuhkan waktu lama, tergantung pada ukuran disk virtual dan kecepatan koneksi jaringan Anda. Operasi impor dapat membutuhkan waktu puluhan menit untuk dijalankan, tergantung pada ukuran disk.

Contoh

Contoh berikut mengimpor disk virtual bernama my_server.vmdk yang disimpan di gs://your_gcs_bucket.

gcloud compute images import my-imported-image \
    --source-file gs://your_gcs_bucket/my_server.vmdk

Parameter opsional

Secara default, paket lingkungan tamu ditambahkan ke semua boot disk image yang diimpor. Jika Anda tidak menginginkan paket ini, tambahkan flag --no-guest-environment ke perintah impor.

REST

  1. Tambahkan disk virtual ke Cloud Storage.

  2. Kirim permintaan POST ke Cloud Build API.

    POST https://cloudbuild.googleapis.com/v1/projects/PROJECT_ID/builds
    {
     "steps":[
       {
         "args":[
           "-image_name=IMAGE_NAME",
           "-source_file=SOURCE_FILE",
           "-timeout=7000s",
           "-client_id=api"
         ],
         "name":"gcr.io/compute-image-import/gce_vm_image_import:release",
         "env":[
           "BUILD_ID=$BUILD_ID"
         ]
       }
     ],
     "timeout":"7200s",
     "tags":[
       "gce-daisy",
       "gce-daisy-image-import"
     ]
    }
    

    Ganti kode berikut:

    • PROJECT_ID: project ID untuk project tempat Anda ingin mengimpor image.
    • IMAGE_NAME: nama image yang akan diimpor.
    • SOURCE_FILE: URI untuk image di Cloud Storage—misalnya, gs://my-bucket/my-image.vmdk.

    Untuk mengetahui nilai args tambahan yang dapat diberikan, lihat bagian flag opsional di halaman GitHub impor image VM.

    Contoh respons

    Contoh respons berikut menyerupai output yang ditampilkan:

    {
     "name": "operations/build/myproject-12345/operation-1578608233418",
     "metadata": {
      "@type": "type.googleapis.com/google.devtools.cloudbuild.v1.BuildOperationMetadata",
      "build": {
       "id": "3a2055bc-ccbd-4101-9434-d376b88b8940",
       "status": "QUEUED",
       "createTime": "2019-09-20T15:55:29.353258929Z",
       "steps": [
        {
         "name": "gcr.io/compute-image-import/gce_vm_image_import:release",
         "env": [
          "BUILD_ID=3a2055bc-ccbd-4101-9434-d376b88b8940"
         ],
         "args": [
          "-timeout=7000s",
          "-image_name=my-image",
          "-client_id=api",
          "-data-disk",
          "-source_file=gs://my-bucket/my-image.vmdk"
         ]
        }
       ],
       "timeout": "7200s",
       "projectId": "myproject-12345",
       "logsBucket": "gs://123456.cloudbuild-logs.googleusercontent.com",
       "options": {
        "logging": "LEGACY"
       },
       "logUrl": "https://console.cloud.google.com/cloud-build/builds/3a2055bc-ccbd-4101-9434-d376b88b8940?project=123456"
      }
    }
    

    Ada beberapa cara untuk memantau build Anda:

    • Jalankan permintaan projects.builds.get menggunakan build-id yang ditampilkan.
    • Tinjau log yang dihosting di logUrl yang disediakan.

Mengimpor dan menambahkan lisensi ke disk virtual

Untuk menambahkan lisensi saat mengimpor image, gunakan perintah gcloud compute images import berikut.

gcloud compute images import IMAGE_NAME \
  --source-file=SOURCE_FILE
  --os=OS

Ganti kode berikut:

  • IMAGE_NAME: nama image yang akan dibuat.
  • SOURCE_FILE: file lokal atau URI Cloud Storage dari disk virtual yang akan diimpor.
  • OS: OS disk image yang akan diimpor. Lisensi untuk OS disimpulkan dari nilai flag ini; tidak ada flag eksplisit untuk memberikan informasi lisensi saat mengimpor. Untuk mengetahui daftar nilai yang didukung, lihat flag --os.

Untuk informasi selengkapnya tentang cara melihat dan menambahkan lisensi, lihat Melihat dan menambahkan lisensi.

Mengimpor disk virtual yang tidak dapat di-booting

Konsol

  1. Di konsol Google Cloud, upload file disk virtual ke Cloud Storage.
  2. Buka halaman Buat image.

    Buka halaman Buat image

  3. Tentukan Nama untuk image Anda.

  4. Di bagian Sumber, pilih Disk virtual (VMDK, VHD, ...).

  5. Jelajahi atau masukkan lokasi penyimpanan secara manual untuk file Cloud Storage.

  6. Pada bagian sistem operasi, pilih Tidak ada sistem operasi. Data saja.

  7. (Opsional) Tentukan properti tambahan untuk image Anda. Misalnya, Anda dapat mengatur image ini sebagai bagian dari kelompok image.

  8. Klik Buat untuk mengimpor image.

gcloud

Anda dapat menggunakan perintah gcloud compute images import untuk membuat image Compute Engine yang tidak dapat di-booting. Jika disk virtual Anda tidak memiliki sistem operasi yang dapat di-booting yang diinstal, tentukan flag --data-disk. Ini melewati langkah yang menginstal driver dan paket lingkungan tamu, agar image dapat dibooting di Compute Engine.

gcloud compute images import IMAGE_NAME \
    --source-file SOURCE_FILE \
    --data-disk

Ganti kode berikut:

  • IMAGE_NAME: nama image tujuan Anda.
  • SOURCE_FILE: file disk virtual Anda. File ini dapat berupa file lokal atau file yang disimpan di Cloud Storage. Jika disk virtual Anda adalah file lokal, Anda dapat menggunakan jalur absolut atau relatif. Jika file disk virtual Anda sudah disimpan di Cloud Storage, file tersebut harus ada di bucket Cloud Storage dalam project yang digunakan untuk proses impor, dan Anda harus menentukan jalur lengkap file dalam format gs://BUCKET_NAME/OBJECT_NAME.

Contoh 1: Mengimpor disk virtual yang tidak dapat di-booting dari Cloud Storage

Contoh berikut mengimpor nama disk virtual my_disk.vmdk yang disimpan di gs://your_gcs_bucket.

gcloud compute images import my-imported-image \
    --source-file gs://your_gcs_bucket/my_disk.vmdk
    --data-disk

Contoh 2: Mengimpor file VMDK besar dengan menentukan nilai waktu tunggu

Nilai waktu tunggu default untuk proses impor adalah dua jam. File VMDK besar mungkin membutuhkan waktu hingga 24 jam untuk diimpor. Jika Anda tidak menentukan flag --timeout saat mengimpor file besar tersebut, prosesnya akan gagal setelah dua jam.

Contoh berikut mengimpor disk virtual bernama my_disk.vmdk yang disimpan di gs://your_gcs_bucket. Nilai waktu tunggu untuk impor ini adalah 24 jam.

gcloud compute images import my-imported-image \
    --source-file gs://your_gcs_bucket/my_disk.vmdk
    --data-disk --timeout=24h

REST

  1. Tambahkan disk virtual ke Cloud Storage.

  2. Kirim permintaan POST ke Cloud Build API.

    POST https://cloudbuild.googleapis.com/v1/projects/PROJECT_ID/builds
    {
      "steps":[
        {
          "args":[
            "-image_name=IMAGE_NAME",
            "-source_file=SOURCE_FILE",
            "-timeout=7000s",
            "-client_id=api",
            "-data_disk"
          ],
          "name":"gcr.io/compute-image-import/gce_vm_image_import:release",
          "env":[
            "BUILD_ID=$BUILD_ID"
          ]
        }
      ],
      "timeout":"7200s",
      "tags":[
        "gce-daisy",
        "gce-daisy-image-import"
      ]
    }
    

    Ganti nilai args berikut:

    • PROJECT_ID: project ID untuk project tempat Anda ingin mengimpor image.
    • IMAGE_NAME: nama image yang akan diimpor.
    • SOURCE_FILE: URI untuk image di Cloud Storage—misalnya, gs://my-bucket/my-image.vmdk.

Mengimpor disk menggunakan jaringan yang tidak mengizinkan alamat IP eksternal

Untuk mengimpor disk virtual menggunakan jaringan yang tidak mengizinkan IP eksternal, selesaikan langkah-langkah berikut:

  1. Tambahkan disk virtual ke Cloud Storage.

  2. Proses impor image imengharuskan pengelola paket diinstal pada sistem operasi untuk disk virtual. Pengelola paket ini mungkin perlu membuat permintaan ke package repository yang berada di luar Google Cloud. Agar dapat mengakses update ini, Anda perlu mengonfigurasi Cloud NAT. Untuk mengetahui informasi selengkapnya, lihat Membuat konfigurasi NAT menggunakan Cloud Router.

  3. Konfigurasikan Akses Google Pribadi. Untuk informasi selengkapnya, lihat Mengonfigurasi Akses Google Pribadi.

  4. Impor disk virtual menggunakan Google Cloud CLI atau REST.

    Saat Anda mengimpor disk virtual, VM sementara akan dibuat di project Anda. Untuk memastikan bahwa VM sementara ini tidak diberi alamat IP eksternal, Anda harus menentukan flag atau argumen tambahan.

    Untuk informasi selengkapnya, klik tab berikut:

gcloud

Gunakan perintah gcloud compute images import dengan flag --no-address untuk mengimpor disk virtual Anda.

gcloud compute images import IMAGE_NAME \
    --source-file=SOURCE_FILE \
    --zone=ZONE \
    --no-address

Ganti kode berikut:

  • IMAGE_NAME: nama disk image yang ingin Anda buat.
  • SOURCE_FILE: file disk virtual Anda. Ini bisa berupa file lokal atau file yang disimpan di Cloud Storage. Jika disk virtual Anda adalah file lokal, Anda dapat menggunakan jalur absolut atau relatif. Jika file disk virtual Anda sudah disimpan di Cloud Storage, file tersebut harus ada di bucket Cloud Storage dalam project yang digunakan untuk proses impor, dan Anda harus menentukan jalur lengkap file dalam format gs://BUCKET_NAME/OBJECT_NAME.
  • ZONE: zona tempat membuat image. Jika dibiarkan kosong, zona default untuk project akan digunakan.

REST

Kirim permintaan POST ke Cloud Build API dan tentukan argumen -no-external-ip.

 POST https://cloudbuild.googleapis.com/v1/projects/PROJECT_ID/builds
 {
   "steps":[
     {
       "args":[
         "-image_name=IMAGE_NAME",
         "-source_file=SOURCE_FILE",
         "-zone=ZONE",
         "-no_external_ip",
         "-timeout=7000s",
         "-client_id=api"
       ],
       "name":"gcr.io/compute-image-import/gce_vm_image_import:release",
       "env":[
         "BUILD_ID=$BUILD_ID"
       ]
     }
   ],
   "timeout":"7200s",
   "tags":[
     "gce-daisy",
     "gce-daisy-image-import"
   ]
 }
 

Ganti kode berikut:

  • PROJECT_ID: project ID untuk project tempat Anda ingin mengimpor image.
  • IMAGE_NAME: nama image yang akan diimpor.
  • SOURCE_FILE: URI untuk image di Cloud Storage. Contoh, gs://my-bucket/my-image.vmdk. untuk perintah gcloud compute images import.
  • ZONE: zona tempat membuat image. Jika dibiarkan kosong, zona default untuk project akan digunakan.

Mengimpor disk virtual dengan bootloader UEFI

Untuk sebagian besar disk virtual, Compute Engine dapat mendeteksi dan berhasil mengimpor disk dengan bootloader UEFI tanpa memerlukan flag tambahan.

Namun, untuk skenario seperti berikut, Anda mungkin perlu memaksa booting UEFI selama proses impor.

  • Jika proses impor image gagal mendeteksi bootloader UEFI selama impor.
  • Jika disk Anda dapat di-booting ganda dan memiliki kombinasi: hybrid-mbr + UEFI, atau protective-mbr + UEFI. Untuk disk yang dapat di-booting ganda, impor mungkin ditetapkan secara default ke booting non-UEFI.

gcloud

Anda dapat menggunakan perintah gcloud compute images import untuk memaksa impor menggunakan booting UEFI.

gcloud compute images import IMAGE_NAME \
    --source-file=SOURCE_FILE \
    --guest-os-features=UEFI_COMPATIBLE

Ganti kode berikut:

  • IMAGE_NAME: nama image yang akan diimpor.
  • SOURCE_FILE: URI untuk image di Cloud Storage—misalnya, gs://my-bucket/my-image.vmdk.

Contoh

Contoh berikut mengimpor disk virtual bernama my-disk.vmdk yang disimpan di gs://my-gcs-bucket/, dan memaksa penggunaan booting UEFI.

gcloud compute images import my-imported-image \
    --source-file gs://my-gcs-bucket/my-disk.vmdk \
    --guest-os-features=UEFI_COMPATIBLE

REST

Untuk memaksa impor agar menggunakan booting UEFI, Anda dapat menggunakan Cloud Build API dan menentukan argumen -uefi_compatible. Untuk melakukannya, selesaikan langkah-langkah berikut:

  1. Tambahkan disk virtual ke Cloud Storage.

  2. Kirim permintaan POST ke Cloud Build API.

    POST https://cloudbuild.googleapis.com/v1/projects/PROJECT_ID/builds
    {
     "steps":[
       {
         "args":[
           "-image_name=IMAGE_NAME",
           "-source_file=SOURCE_FILE",
           "-uefi_compatible",
           "-timeout=7000s",
           "-client_id=api"
         ],
         "name":"gcr.io/compute-image-import/gce_vm_image_import:release",
         "env":[
           "BUILD_ID=$BUILD_ID"
         ]
       }
     ],
     "timeout":"7200s",
     "tags":[
       "gce-daisy",
       "gce-daisy-image-import"
     ]
    }
    

    Ganti kode berikut:

    • PROJECT_ID: project ID untuk project tempat Anda ingin mengimpor image.
    • IMAGE_NAME: nama image yang akan diimpor.
    • SOURCE_FILE: URI untuk image di Cloud Storage—misalnya, gs://my-bucket/my-image.vmdk.

Mengimpor disk virtual menggunakan VPC bersama

Sebelum mengimpor disk virtual yang menggunakan VPC bersama, Anda harus menambahkan peran compute.networkUser ke akun layanan Cloud Build. Untuk mengetahui informasi selengkapnya, lihat Memberikan peran yang diperlukan ke akun layanan Cloud Build.

gcloud

Gunakan perintah gcloud compute images import untuk mengimpor disk virtual Anda.

gcloud compute images import IMAGE_NAME \
    --source-file SOURCE_FILE \
    --project SERVICE_PROJECT_ID \
    --zone ZONE \
    --network NETWORK \
    --subnet SUBNET

Ganti kode berikut:

  • IMAGE_NAME: nama image yang akan diimpor.
  • SOURCE_FILE: file disk virtual Anda. Ini bisa berupa file lokal atau file yang disimpan di Cloud Storage. Jika disk virtual Anda adalah file lokal, Anda dapat menggunakan jalur absolut atau relatif. Jika file disk virtual Anda sudah disimpan di Cloud Storage, file tersebut harus ada di bucket Cloud Storage dalam project yang digunakan untuk proses impor, dan Anda harus menentukan jalur lengkap file dalam format gs://BUCKET_NAME/OBJECT_NAME.
  • SERVICE_PROJECT_ID: ID project tempat Anda ingin mengimpor image.
  • ZONE: zona tempat Anda ingin mengimpor image. Zona ini harus sesuai dengan region subnet. Misalnya, jika SUBNET adalah us-west1. Zona impor harus berupa salah satu dari yang berikut: us-west1-a, us-west1-b, atau us-west1-c.
  • NETWORK: jalur lengkap ke jaringan VPC bersama. Contoh, projects/HOST_PROJECT_ID/global/networks/VPC_NETWORK_NAME.
  • SUBNET: jalur lengkap ke subnetwork VPC bersama Misalnya, projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME.

    Contoh perintah

    gcloud compute images import example-image \
     --source-file gs://source-bucket/source-file.vmdk \
     --project my-image-project \
     --zone us-west1-c \
     --network projects/my-vpc-project/global/networks/my-shared-vpc \
     --subnet projects/my-vpc-project/regions/us-west1/subnetworks/my-shared-subnet
    

REST

  1. Tambahkan disk virtual ke Cloud Storage.

  2. Kirim permintaan POST ke Cloud Build API.

    POST https://cloudbuild.googleapis.com/v1/projects/SERVICE_PROJECT_ID/builds
    {
     "steps":[
       {
         "args":[
           "-image_name=IMAGE_NAME",
           "-source_file=SOURCE_FILE",
           "-zone=ZONE",
           "-network=NETWORK",
           "-subnet=SUBNET",
           "-timeout=7000s",
           "-client_id=api"
         ],
         "name":"gcr.io/compute-image-import/gce_vm_image_import:release",
         "env":[
           "BUILD_ID=$BUILD_ID"
         ]
       }
     ],
     "timeout":"7200s",
     "tags":[
       "gce-daisy",
       "gce-daisy-image-import"
     ]
    }
    

    Ganti nilai args berikut:

    • SERVICE_PROJECT_ID: ID untuk project tempat Anda ingin mengimpor image.
    • IMAGE_NAME: nama image yang akan diimpor.
    • SOURCE_FILE: URI untuk image di Cloud Storage—misalnya, gs://my-bucket/my-image.vmdk.
    • ZONE: zona tempat Anda ingin mengimpor image. Zona ini harus sesuai dengan region subnet. Misalnya, jika SUBNET adalah us-west1. Zona impor harus berupa salah satu dari yang berikut: us-west1-a, us-west1-b, atau us-west1-c.
    • NETWORK: jalur lengkap ke jaringan VPC bersama. Contoh, projects/HOST_PROJECT_ID/global/networks/VPC_NETWORK_NAME.
    • SUBNET: jalur lengkap ke subnetwork VPC bersama Misalnya, projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME

Mengimpor disk virtual menggunakan akun layanan Compute Engine kustom

Selama proses impor image, instance virtual machine (VM) sementara akan dibuat dalam project Anda. Alat impor image pada VM sementara ini harus diautentikasi.

Akun layanan adalah identitas yang terpasang pada VM. Token akses akun layanan dapat diakses melalui server metadata instance dan digunakan untuk mengautentikasi alat impor image pada VM.

Secara default, proses impor menggunakan Agen Layanan Compute Engine default project. Namun, jika akun layanan Compute Engine default dinonaktifkan di project Anda atau jika ingin menggunakan akun layanan Compute Engine kustom, Anda harus membuat akun layanan dan menentukannya untuk proses impor.

gcloud

  1. Tambahkan disk virtual ke Cloud Storage.

  2. Buat akun layanan dan tetapkan peran minimum. Untuk informasi selengkapnya tentang cara membuat akun layanan, lihat Membuat dan mengelola akun layanan.

    Akun layanan Compute Engine yang ditentukan setidaknya harus memiliki peran berikut yang ditetapkan:

    • roles/compute.storageAdmin
    • roles/storage.objectViewer

    Untuk mengetahui informasi selengkapnya, lihat Memberikan peran yang diperlukan ke akun layanan Compute Engine.

  3. Gunakan gcloud compute images import untuk mengimpor image.

    gcloud compute images import IMAGE_NAME \
      --source-file SOURCE_FILE \
      --compute-service-account SERVICE_ACCOUNT_EMAIL
    

    Ganti kode berikut:

    • IMAGE_NAME: nama image tujuan Anda.
    • SOURCE_FILE: file disk virtual Anda. File ini dapat berupa file lokal atau file yang disimpan di Cloud Storage. Jika disk virtual Anda adalah file lokal, Anda dapat menggunakan jalur absolut atau relatif. Jika file disk virtual Anda sudah disimpan di Cloud Storage, file tersebut harus ada di bucket Cloud Storage dalam project yang digunakan untuk proses impor, dan Anda harus menentukan jalur lengkap file dalam format gs://BUCKET_NAME/OBJECT_NAME.
    • SERVICE_ACCOUNT_EMAIL: alamat email yang terkait dengan akun layanan Compute Engine yang dibuat pada langkah sebelumnya.

    Contoh

    Contoh berikut mengimpor disk virtual yang dapat di-booting bernama my_server.vmdk dan disimpan di gs://your_gcs_bucket menggunakan akun layanan yang memiliki email image-export-service-account@proj-12345.iam.gserviceaccount.com.

    gcloud compute images import my-imported-image \
      --source-file gs://your_gcs_bucket/my_server.vmdk \
      --compute-service-account image-export-service-account@proj-12345.iam.gserviceaccount.com
    

REST

  1. Tambahkan disk virtual ke Cloud Storage.

  2. Buat akun layanan dan tetapkan peran minimum. Untuk informasi selengkapnya tentang cara membuat akun layanan, lihat Membuat dan mengelola akun layanan.

    Akun layanan Compute Engine yang ditentukan setidaknya harus memiliki peran berikut yang ditetapkan:

    • roles/compute.storageAdmin
    • roles/storage.objectViewer

    Untuk mengetahui informasi selengkapnya, lihat Memberikan peran yang diperlukan ke akun layanan Compute Engine.

  3. Tambahkan disk virtual ke Cloud Storage.

  4. Kirim permintaan POST ke Cloud Build API.

    POST https://cloudbuild.googleapis.com/v1/projects/PROJECT_ID/builds
    {
    "steps":[
     {
       "args":[
         "-image_name=IMAGE_NAME",
         "-source_file=SOURCE_FILE",
         "-compute_service_account=SERVICE_ACCOUNT_EMAIL",
         "-timeout=7000s",
         "-client_id=api"
       ],
       "name":"gcr.io/compute-image-import/gce_vm_image_import:release",
       "env":[
         "BUILD_ID=$BUILD_ID"
       ]
     }
    ],
    "timeout":"7200s",
    "tags":[
     "gce-daisy",
     "gce-daisy-image-import"
    ]
    }
    

    Ganti kode berikut:

    • PROJECT_ID: project ID untuk project tempat Anda ingin mengimpor image.
    • IMAGE_NAME: nama image yang akan diimpor.
    • SOURCE_FILE: URI untuk image di Cloud Storage—misalnya, gs://my-bucket/my-image.vmdk.
    • SERVICE_ACCOUNT_EMAIL: alamat email yang terkait dengan akun layanan Compute Engine yang dibuat pada langkah sebelumnya.

Membuat image yang dapat di-booting

Jika Anda memiliki image kustom Compute Engine yang memiliki sistem operasi yang dapat dibooting, tetapi tidak memiliki driver Compute Engine atau paket lingkungan tamu yang diperlukan, Anda dapat menggunakan fitur impor image untuk membuat image tersebut dapat di-booting di Compute Engine.

Gunakan flag --source-image untuk menentukan image kustom agar dapat di-booting, bukan menggunakan flag --source-file yang menentukan disk baru untuk diimpor.

gcloud compute images import IMAGE_NAME \
    --source-image SOURCE_IMAGE_NAME

Ganti kode berikut:

  • IMAGE_NAME: nama image tujuan Anda.
  • SOURCE_IMAGE_NAME: nama image sumber.

    Untuk mendapatkan petunjuk tentang cara mengimpor image dengan lisensi yang sudah ada ke Google Cloud, lihat Bring your own license (BYOL).

Contoh perintah

Contoh berikut mengubah image Compute Engine bernama my-image menjadi image yang dapat di-booting bernama my-bootable-image. Dalam contoh ini, --os ubuntu-1604 akan mengabaikan sistem operasi yang terdeteksi.

gcloud compute images import my-bootable-image \
    --source-image my-image \
    --os ubuntu-1604

Pembersihan resource

File yang disimpan di Cloud Storage dan image di Compute Engine dikenakan biaya. Alat impor mengimpor file disk virtual ke Cloud Storage dan membuat satu image kustom Compute Engine.

Setelah Anda memverifikasi bahwa image diimpor dengan benar dan di-booting dengan benar sebagai instance Compute Engine, Anda dapat menghapus file disk virtual dari Cloud Storage. Alat ini mencetak URI file saat file diupload ke Cloud Storage. URI ini memiliki bentuk berikut: gs://BUCKET_NAME/tmpimage/IMAGE_NAME.

Jika Anda mengimpor image menggunakan flag --data-disk, lalu menjalankan alat import untuk kedua kalinya dengan flag --source-image agar image tersebut dapat di-booting, image pertama akan tetap ada. Jika Anda tidak memerlukan image itu, pertimbangkan untuk menghapusnya. Jika Anda menentukan nama image yang sama untuk flag --image dan --source-image, image akan otomatis ditimpa dan tidak diperlukan pembersihan lebih lanjut.

Langkah selanjutnya