Mengimpor disk virtual

Jika Anda memiliki disk virtual di lingkungan lokal dengan software dan konfigurasi yang Anda butuhkan, yang terkadang disebut sebagai disk emas atau image emas, Anda dapat menghemat waktu dengan mengimpor disk virtual tersebut ke perangkat air-gapped GDC dan menggunakan image yang dihasilkan untuk membuat mesin virtual. Alat impor mendukung format image RAW dan QCOW untuk Linux dan ISO untuk Windows.

Sebelum memulai

Sebelum melanjutkan, pastikan Anda memiliki hal berikut:

  • gdcloud CLI didownload, diinstal, dan dikonfigurasi. Semua perintah CLI untuk GDC menggunakan CLI gdcloud atau kubectl, dan memerlukan lingkungan Linux.
  • Akses ke server Management API. Ikuti langkah-langkah CLI di Login untuk login ke server Management API.

Meminta izin dan akses

Untuk melakukan tugas yang tercantum di halaman ini, Anda harus memiliki peran Project VirtualMachine Admin dan Project VirtualMachine Image Admin. Ikuti langkah-langkah untuk memverifikasi atau meminta Admin IAM Project menetapkan peran Project VirtualMachine Admin (project-vm-admin) dan Project VirtualMachine Image Admin (project-vm-image-admin) kepada Anda di namespace project tempat VM berada.

Untuk operasi VM menggunakan konsol GDC atau gdcloud CLI, minta Admin IAM Project Anda untuk memberi Anda peran yang tercantum di paragraf sebelumnya dan peran Project Viewer (project-viewer).

Sistem operasi yang didukung

Bagian ini menjelaskan sistem operasi yang didukung VM GDC.

Dukungan OS Linux

Anda hanya dapat mengimpor image Linux dari disk yang dapat di-booting. Untuk mem-booting disk virtual Anda di GDC, disk harus menjalankan salah satu sistem operasi yang didukung:

  • Ubuntu 20.04
  • Ubuntu 22.04
  • RHEL 8

Dukungan OS Windows

GDC juga mendukung sistem operasi Windows 10 dan Windows Server 2019 Datacenter edition.

Anda dapat mengimpor image Windows dari media penginstalan ISO. GDC menginstal Windows dan membuat image yang dapat di-booting dari disk yang dihasilkan.

Impor gambar mengharuskan ISO tidak meminta input saat di-boot dengan Unified Extensible Firmware Interface (UEFI). Untuk membuat ISO tanpa perintah, mulai dari file ISO yang ada. Selesaikan langkah-langkah berikut:

  1. Ekstrak konten ISO menggunakan alat pengelolaan arsip 7Zip:

    7z x windows-installation.iso -oiso-unpack
    
  2. Buat ISO baru dari ISO yang diekstrak menggunakan mkisofs, dengan mengganti biner EFI "tanpa perintah":

    mkisofs -b boot/etfsboot.com -no-emul-boot -c BOOT.CAT -iso-level 4 -J -l -D -N -joliet-long -relaxed-filenames -v -V "Custom" -udf -boot-info-table -eltorito-alt-boot -eltorito-boot efi/microsoft/boot/efisys_noprompt.bin -no-emul-boot -o ISO_NAME.iso -allow-limited-size iso-unpack
    

    Ganti ISO_NAME dengan nama untuk ISO tanpa perintah. Contoh, noprompt-install.

Mengimpor disk virtual

Anda dapat mengimpor disk virtual menggunakan gcloud CLI atau Virtual Machine Manager API.

Untuk mendapatkan izin yang diperlukan untuk mengimpor image, minta Admin IAM Organisasi Anda untuk memberi Anda peran Project VirtualMachine Image Admin (project-vm-image-admin) untuk project Anda.

gdcloud

Gunakan perintah gdcloud compute images import untuk membuat image yang dapat di-booting.

Perintah import memastikan bahwa disk memiliki paket yang diperlukan, termasuk lingkungan tamu, yang diperlukan untuk mengonfigurasi kredensial agar terhubung ke instance menggunakan secure shell (SSH) di Linux dan Remote Desktop Protocol (RDP) di Windows.

Di Linux, perintah ini juga menginstal paket untuk Network Time Protocol (NTP) dan cloud-init agar instance berjalan dengan benar di GDC.

Anda dapat mengimpor file disk virtual langsung dari workstation Anda. Alat impor otomatis mengupload file ke bucket penyimpanan objek di project Anda.

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

Ganti variabel berikut:

  • IMAGE_NAME: nama image tujuan Anda. Nama tidak boleh lebih dari 35 karakter.
  • SOURCE_FILE: file disk virtual Anda. File ini adalah file lokal di workstation Anda. Anda dapat memberikan jalur absolut atau relatif.
  • IMAGE_OS: OS pada disk yang akan diimpor. Anda harus memasukkan sistem operasi sebagaiubuntu-2004, ubuntu-2204. rhel-8, windows-10, atau windows-2019.
  • TIMEOUT: durasi waktu impor dapat berlangsung sebelum gagal dengan "TIMEOUT". Misalnya, jika Anda menentukan 2h, proses akan gagal setelah 2 jam. Waktu tunggu default adalah 1h.

Operasi upload dapat memerlukan waktu yang lama, bergantung pada ukuran disk virtual dan kecepatan koneksi jaringan Anda. Operasi impor dapat membutuhkan waktu puluhan menit untuk dijalankan, bergantung pada ukuran disk.

Contoh berikut mengimpor disk virtual bernama ubuntu_server.img yang disimpan di direktori utama workstation Anda:

gdcloud compute images import imported-image \
  --source-file=~/ubuntu_server.img \
  --os=ubuntu-2004

API

Sebelum memulai proses impor dengan API, Anda harus mengupload disk virtual ke bucket penyimpanan objek bernama vm-images-bucket. Untuk membuat bucket penyimpanan objek, lihat Membuat bucket penyimpanan untuk project.

Untuk mengimpor disk virtual melalui API, lakukan hal berikut:

  1. Buat objek VirtualMachineImageImport di server Management API untuk memulai proses impor gambar:

    kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG \
      apply -n PROJECT_ID -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: OPERATING_SYSTEM
        minimumDiskSize: DISK_SIZE
    EOF
    

    Ganti variabel berikut:

    Variabel Deskripsi
    IMAGE_NAME Nama gambar yang akan diimpor. Nama tidak boleh lebih dari 35 karakter.
    PROJECT_ID Project ID untuk project tempat Anda ingin mengimpor image.
    SOURCE_FILE Nama file sumber yang berisi upload disk virtual ke penyimpanan objek. Nilai ini adalah bagian dari jalur penyimpanan objek setelah vm-images-bucket/.
    OPERATING_SYSTEM OS di disk yang akan diimpor. Nilai ini harus berupa ubuntu-2004, ubuntu-2204, rhel-8, windows-10, atau windows-2019.
    DISK_SIZE Ukuran minimum disk yang harus dimiliki untuk dibuat dengan image ini. Sebaiknya gunakan buffer minimal 20% di atas ukuran sistem file gambar asli. Misalnya: gunakan setidaknya 12 GiB untuk disk virtual dengan ukuran sistem file asli 10 GiB.
  2. Pantau progres impor dengan membuat kueri status objek VirtualMachineImageImport:

    kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG \
      get virtualmachineimageimport --namespace PROJECT_ID \
      IMAGE_NAME -o jsonpath='{.status}'
    

Membersihkan resource

Proses impor melibatkan penguploadan file disk virtual Anda ke penyimpanan objek. Jika Anda menggunakan gdcloud CLI, objek akan dibersihkan saat perintah selesai, baik berhasil maupun tidak. Jika perintah terganggu, atau impor image dilakukan dengan API, file disk virtual mungkin tetap berada di bucket penyimpanan objek bernama vm-images-bucket hingga Anda menghapus file secara manual.

Langkah berikutnya

Buat instance VM baru yang menggunakan image Anda di halaman, Membuat dan memulai VM.