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
- Aktifkan VM Migration API di project Anda.
- Pastikan disk booting dikonfigurasi dengan sistem operasi yang didukung.
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:
- Menyiapkan file image mesin untuk diimpor
- Memilih project target
- 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 virtual ke image virtual Compute Engine, Anda harus menambahkan file image virtual 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, pastikansingleRegionStorage
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, pastikansingleRegionStorage
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.
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, pastikansingleRegionStorage
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 menggunakanIMPORT_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 dengan beberapa antarmuka jaringan (NIC) secara opsional. 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
ataucut-over
, Anda tidak dapat menambahkan atau menghapus antarmuka jaringan pada instance yang dibuat. Anda dapat mengulangitest-clone
ataucut-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.
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" } }
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, pastikansingleRegionStorage
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" } }
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, pastikansingleRegionStorage
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 menggunakanIMPORT_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
- Pelajari sole-tenant node.
- Pelajari BYOL.