Mengimpor disk virtual

Dokumen ini menjelaskan langkah-langkah untuk mengimpor disk image virtual machine (VM) ke Google Distributed Cloud (GDC) dengan air gap.

Impor disk virtual yang ada, yang sering disebut disk emas atau image emas, ke GDC untuk menghemat waktu dan menggunakan image yang dihasilkan untuk membuat virtual machine. Alat impor mendukung format gambar RAW dan QCOW.

Dokumen ini ditujukan untuk developer dalam grup administrator platform atau operator aplikasi yang membuat image VM. Untuk mengetahui informasi selengkapnya, lihat Audiens untuk dokumentasi GDC dengan air gap.

Sebelum memulai

Sebelum melanjutkan, pastikan Anda memiliki hal berikut:

Menyiapkan lingkungan

  • gdcloud CLI didownload, diinstal, dan dikonfigurasi. Semua perintah CLI untuk GDC menggunakan gdcloud CLI atau kubectl CLI, dan memerlukan lingkungan sistem operasi (OS).

Meminta peran IAM

Untuk mendapatkan izin yang diperlukan untuk mengimpor disk virtual, minta Admin Project IAM Anda untuk memberi Anda peran berikut pada project Anda:

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

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

  • Virtual Machine Image Project Admin (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 virtual langsung dari workstation Anda. Alat impor 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 guna 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 protokol waktu jaringan (NTP) dan cloud-init agar instance berjalan dengan baik 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, prosesnya 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, tergantung pada ukuran disk.

API

Untuk mengimpor disk virtual melalui API, lakukan hal berikut:

  1. Buat resource kustom VirtualMachineImageImport di server API pengelolaan untuk memulai proses impor image:

    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:

    • MANAGEMENT_API_SERVER: file kubeconfig untuk server API pengelolaan.
    • 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 untuk disk yang Anda buat dari image ini. Gunakan setidaknya 20% buffer di atas ukuran sistem file image asli. Misalnya, gunakan setidaknya 12G untuk disk virtual dengan ukuran sistem file asli sebesar 10 GB.
  2. Pantau progres impor dengan mengkueri status resource kustom VirtualMachineImageImport:

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
      -n PROJECT_ID \
      get virtualmachineimageimport.virtualmachine.gdc.goog IMAGE_NAME \
      -o jsonpath='{.status}'
    

Membersihkan resource

Proses impor melibatkan upload file disk virtual Anda ke penyimpanan objek. Jika Anda menggunakan gdcloud CLI, CLI akan menghapus objek saat perintah selesai, meskipun impor gagal. Jika Anda menghentikan perintah, atau jika Anda mengimpor image dengan API, file disk virtual mungkin tetap berada di bucket penyimpanan objek bernama vm-images-bucket hingga Anda menghapus file tersebut secara manual.

Langkah berikutnya