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 GDC dengan air gap dan menggunakan image yang dihasilkan untuk membuat mesin virtual. Alat impor mendukung format image RAW dan QCOW.

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 sistem operasi (OS).
  • Akses ke server Management API. Ikuti langkah-langkah CLI di Login untuk login ke server Management API.

Meminta peran IAM

Hubungi Admin IAM Project Anda untuk meminta peran berikut di project Anda:

  • Admin Project Virtual Machine (project-vm-admin): membuat, mengubah, mencantumkan, dan menghapus VM di namespace project.

  • Project Viewer(project-viewer): melihat semua resource dalam namespace project.

  • Admin Project Image Mesin Virtual (project-vm-image-admin): membuat, mencantumkan, dan menghapus image VM di namespace project.

Semua peran VM harus terikat ke namespace project tempat VM berada. Ikuti langkah-langkah untuk memverifikasi akses Anda.

Mengimpor disk virtual

Anda dapat mengimpor file disk image VM langsung dari workstation Anda. Alat import akan otomatis mengupload file ke bucket penyimpanan objek di project Anda.

Untuk mengimpor disk virtual, gunakan gdcloud CLI atau Virtual Machine Manager API.

gdcloud

Perintah import memeriksa apakah image yang disediakan GDC memiliki paket yang diperlukan untuk mengonfigurasi kredensial agar dapat terhubung ke instance menggunakan secure shell (SSH) dan Remote Desktop Protocol (RDP). Hal ini mencakup paket untuk lingkungan tamu.

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

Untuk membuat image yang dapat di-booting, gunakan perintah gdcloud compute images import:

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.
  • 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.

API

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 \
      -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
    

    Ganti variabel berikut:

    • IMAGE_NAME: Nama image 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/.
    • IMAGE_OS: OS pada disk yang akan diimpor.
    • DISK_SIZE: Ukuran minimum disk yang harus dimiliki untuk dibuat dengan image ini. Gunakan buffer minimal 20% di atas ukuran sistem file gambar asli. Misalnya, gunakan setidaknya 12G untuk disk virtual dengan ukuran sistem file asli 10G.
  2. Pantau progres impor dengan membuat kueri status objek VirtualMachineImageImport:

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
      -n PROJECT_ID \
      get virtualmachineimageimport.virtualmachine.gdc.goog 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, Buat dan mulai VM.