Gunakan image mesin untuk menyimpan semua konfigurasi, metadata, izin, dan data dari beberapa disk untuk instance Compute Engine. Instance yang Anda gunakan untuk membuat image mesin disebut sebagai instance sumber.
Untuk mengetahui informasi tentang waktu dan cara menggunakan image mesin, lihat Image mesin.
Dokumen ini menjelaskan langkah-langkah untuk membuat image mesin dari instance sumber.
Sebelum memulai
-
Siapkan autentikasi jika Anda belum melakukannya.
Autentikasi memverifikasi identitas Anda untuk mengakses layanan Cloud de Confiance by S3NS dan API. Untuk menjalankan
kode atau sampel dari lingkungan pengembangan lokal, Anda dapat melakukan autentikasi ke
Compute Engine dengan memilih salah satu opsi berikut:
Pilih tab untuk melihat bagaimana Anda berencana menggunakan contoh di halaman ini:
Konsol
Saat menggunakan konsol Cloud de Confiance untuk mengakses layanan Cloud de Confiance by S3NS dan API, Anda tidak perlu menyiapkan autentikasi.
gcloud
-
Instal Google Cloud CLI, lalu login ke gcloud CLI dengan identitas gabungan Anda. Setelah login, inisialisasi Google Cloud CLI dengan menjalankan perintah berikut:
gcloud init
-
- Tetapkan 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 login ke gcloud CLI dengan identitas gabungan Anda.
Untuk mengetahui informasi selengkapnya, lihat Melakukan autentikasi untuk menggunakan REST dalam dokumentasi autentikasi Cloud de Confiance .
Pembatasan dan batasan
- Anda dapat membuat image mesin dari instance tertentu paling banyak 6 kali setiap 60 menit.
- Anda dapat melindungi image mesin menggunakan Cloud Key Management Service (Cloud KMS) atau kunci enkripsi yang disediakan pelanggan (CSEK). Kunci enkripsi melindungi konten disk. Namun, metadata tidak dilindungi.
- Jika Anda menggunakan CSEK untuk melindungi image mesin, salinan lengkap semua data disk akan disimpan selama pembuatan image mesin. Dalam semua skenario lainnya, data disk disimpan dalam salinan diferensial.
Anda tidak dapat membuat image mesin dari instance Compute Engine sumber yang:
- Memiliki disk terpasang dengan kapasitas gabungan yang melebihi 200 TiB.
- Tidak memiliki disk yang terpasang.
- Memiliki volume Hyperdisk yang terpasang.
- Gunakan jenis mesin Z3 kecuali untuk
z3-highmem-192-highlssd-metal. - Gunakan jenis mesin C3D, H3, atau A3.
Untuk instance yang tidak mendukung pembuatan image mesin, Anda dapat membuat image OS dari boot disk instance, seperti yang dijelaskan di Membuat image kustom.
Anda tidak dapat menentukan disk yang akan disertakan dan disk yang akan dikecualikan secara bersamaan.
Properti instance dan disk tidak didukung oleh image mesin
Saat Anda membuat image mesin dari instance atau membuat instance dari image mesin, properti instance dan disk berikut tidak dipertahankan atau dipulihkan:
disks.architecturedisks.descriptiondisks.labelsdisks.lockeddisks.multiWriterdisks.onUpdateActiondisks.provisionedIopsdisks.shieldedInstanceInitialStatedisks.sourceImagedisks.sourceImageEncryptionKeydisks.sourceInstantSnapshotdisks.sourceSnapshotdisks.sourceSnapshotEncryptionKeyprivateIpv6GoogleAccessresourceManagerTagsresourcePoliciessecure_tagshieldedInstanceConfig
Membuat image mesin dari instance
Secara default, image mesin mencakup disk boot dan semua disk lain yang terpasang ke instance Compute Engine sumber. Anda dapat secara opsional menentukan disk non-boot yang akan disertakan atau dikecualikan, tetapi Anda tidak dapat mengecualikan disk boot.
Membuat image mesin dari instance dan menyertakan semua disk yang terpasang
Anda dapat membuat image mesin menggunakan Cloud de Confiance konsol, Google Cloud CLI, atau REST.
Untuk membuat image mesin, Anda memerlukan informasi berikut:
- Nama untuk image mesin yang ingin Anda buat.
- Nama instance sumber.
- Zona tempat instance sumber berada.
- Deskripsi opsional.
storageLocationopsional. Jika Anda tidak menentukan lokasi, lokasi penyimpanan default-nya adalah lokasi Cloud Storage multiregional instance sumber.- Kunci enkripsi opsional. Anda dapat memilih antara Google Cloud-powered encryption key, kunci Cloud Key Management Service (Cloud KMS) atau kunci enkripsi yang disediakan pelanggan (CSEK). Jika kunci enkripsi tidak ditentukan, image mesin akan dienkripsi menggunakan Google Cloud-powered encryption key.
Jika Anda ingin menggunakan image mesin untuk cloning instance dan pembuatan snapshot, hapus informasi OS dan aplikasi yang unik untuk instance tersebut sebelum membuat image mesin dari instance. Misalnya, untuk instance VM Windows, gunakan
GCESysprepuntuk menyiapkan sistem untuk replikasi.
Konsol
Di konsol Cloud de Confiance , buka halaman Image mesin.
Klik Buat image mesin.
Tentukan Nama untuk image mesin Anda.
Opsional: Berikan Deskripsi.
Pilih Instance VM sumber.
Opsional: Tentukan tempat untuk menyimpan image mesin. Pilih antara penyimpanan Multi-regional atau Regional. Untuk mengetahui informasi selengkapnya tentang lokasi, lihat Lokasi penyimpanan image mesin.
Opsional: Pilih metode Enkripsi.
Klik Buat.
gcloud
Gunakan
perintah gcloud compute machine-images create
untuk membuat image mesin dari instance.
gcloud compute machine-images create MACHINE_IMAGE_NAME \
--source-instance=SOURCE_INSTANCE_NAME
Ganti kode berikut:
MACHINE_IMAGE_NAME: nama image mesin yang ingin Anda buat.SOURCE_INSTANCE_NAME: nama instance sumber tempat Anda ingin membuat image.
Contoh
Misalnya, Anda dapat menggunakan perintah gcloud berikut untuk membuat image mesin
yang disebut my-machine-image dari instance sumber yang disebut my-instance:
gcloud compute machine-images create my-machine-image \
--source-instance=my-instance
Proses ini memerlukan waktu beberapa menit. Setelah image mesin dibuat, Anda akan mendapatkan output yang terlihat seperti berikut:
Created [https://www.googleapis.com/compute/v1/projects/project-12345/global/machineImages/my-machine-image]. NAME STATUS my-machine-image READY
REST
Di API, buat permintaan POST ke metode
machineimages.insert
. Dalam isi permintaan, sertakan permintaan POST berikut:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/machineImages
{
"name": "MACHINE_IMAGE_NAME",
"sourceInstance": "SOURCE_INSTANCE_URL"
}
Ganti kode berikut:
PROJECT_ID: ID project.MACHINE_IMAGE_NAME: nama image mesin yang ingin Anda buat.SOURCE_INSTANCE_URL: URL lengkap atau sebagian instance sumber yang ingin Anda gunakan untuk membuat image mesin. Misalnya, jika Anda memiliki instance sumber bernamamy-instancedalam project bernamamyProject. URL berikut valid:https://www.googleapis.com/compute/v1/projects/myProject/global/instances/my-instanceprojects/myProject/global/instances/my-instanceglobal/instances/my-instance
Membuat image mesin dan menyertakan disk tertentu (Pratinjau)
Anda dapat menggunakan pencadangan disk selektif untuk membuat image mesin yang mencakup atau mengecualikan disk non-boot tertentu.
Pencadangan disk selektif memungkinkan Anda melakukan tugas berikut saat membuat image mesin:
Menyertakan non-boot disk tertentu: Anda dapat membuat image mesin yang mencadangkan hanya boot disk dan daftar non-boot disk tertentu yang Anda berikan.
Mengecualikan disk non-boot tertentu: Anda dapat membuat image mesin yang mencadangkan boot disk dan semua disk non-boot yang terpasang kecuali disk yang Anda tentukan dalam daftar pengecualian.
Praktik terbaik untuk instance Linux
Untuk instance Linux, sebaiknya ikuti praktik terbaik berikut:
Saat Anda membuat image mesin yang mengecualikan disk non-boot tertentu atau menghilangkannya menggunakan daftar penyertaan, pastikan file
/etc/fstabdi instance Compute Engine sumber Linux menggunakan opsinofailuntuk disk tersebut. Hal ini mencegah instance Compute Engine yang dipulihkan gagal di-boot jika disk yang diharapkan tidak ada.Selama proses booting instance Compute Engine yang dipulihkan dari image mesin, sistem operasi akan mencoba memasang semua disk yang tercantum dalam
/etc/fstab. Jika disk yang diharapkan tidak ada dan opsinofailtidak ditentukan, proses booting akan berhenti, dan instance tidak dapat di-boot. Sebagai solusi untuk menangani kegagalan booting, lihat Solusi untuk kegagalan booting yang disebabkan oleh pengecualian disk tertentu.
Hanya sertakan disk tertentu
Gunakan petunjuk berikut untuk membuat image mesin hanya dari disk tertentu. Anda harus selalu menyertakan disk boot. Anda tidak dapat membuat image mesin hanya dari disk tertentu menggunakan konsol Cloud de Confiance . Anda harus menggunakan Google Cloud CLI atau REST.
Google Cloud CLI
Gunakan perintah
gcloud beta compute machine-images create
untuk membuat image mesin hanya dari disk tertentu.
gcloud beta compute machine-images create MACHINE_IMAGE_NAME \
--source-instance=SOURCE_INSTANCE_NAME \
--source-instance-zone=ZONE \
--include-disks=BOOT_DISK,DISK_NAME_1,DISK_NAME_2
Ganti kode berikut:
MACHINE_IMAGE_NAME: nama image mesin yang ingin Anda buat.SOURCE_INSTANCE_NAME: nama instance sumber tempat Anda ingin membuat image.ZONE: zona tempat instance sumber berada.BOOT_DISK, DISK_NAME_1,DISK_NAME_2: daftar yang dipisahkan koma dari boot disk dan non-boot disk yang terpasang ke instance sumber yang ingin Anda sertakan dalam image mesin.
Misalnya, Anda dapat menggunakan perintah gcloud berikut untuk membuat image
mesin yang disebut my-gmi-include dari instance sumber yang disebut my-instance
yang berada di us-central1-a, termasuk hanya data-disk-1 dan data-disk-2:
gcloud beta compute machine-images create my-gmi-include \
--source-instance=my-instance \
--source-instance-zone=us-central1-a \
--include-disks=boot-disk,data-disk-1,data-disk-2
REST
Di API, buat permintaan POST ke metode
machineimages.insert
. Dalam isi permintaan, sertakan permintaan POST berikut:
POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/global/machineImages
{
"name": "MACHINE_IMAGE_NAME",
"sourceInstance": "SOURCE_INSTANCE_URL",
"params": {
"includedDisks": ["BOOT_DISK", "DISK_NAME_1", "DISK_NAME_2"]
}
}
Ganti kode berikut:
PROJECT_ID: ID project yang berisi image mesin, misalnya,my-project.MACHINE_IMAGE_NAME: nama image mesin yang ingin Anda buat.SOURCE_INSTANCE_URL: URL lengkap atau sebagian instance sumber yang ingin Anda gunakan untuk membuat image mesin.BOOT_DISK, DISK_NAME_1, DISK_NAME_2: daftar boot disk dan non-boot disk yang terpasang ke instance sumber yang ingin Anda sertakan dalam image mesin.
Membuat image mesin dan mengecualikan disk tertentu (Pratinjau)
Gunakan petunjuk berikut untuk membuat image mesin dan mengecualikan disk tertentu dari pencadangan. Anda tidak dapat mengecualikan disk booting. Anda tidak dapat membuat image mesin dan mengecualikan disk tertentu menggunakan konsol Cloud de Confiance . Anda dapat menggunakan Google Cloud CLI atau REST.
gcloud
Gunakan perintah
gcloud beta compute machine-images create
untuk membuat image mesin dan mengecualikan disk tertentu.
gcloud beta compute machine-images create MACHINE_IMAGE_NAME \
--source-instance=SOURCE_INSTANCE_NAME \
--source-instance-zone=ZONE \
--exclude-disks=DISK_NAME_1,DISK_NAME_2
Ganti kode berikut:
MACHINE_IMAGE_NAME: nama image mesin yang ingin Anda buat.SOURCE_INSTANCE_NAME: nama instance sumber tempat Anda ingin membuat image.ZONE: zona tempat instance sumber berada.DISK_NAME_1,DISK_NAME_2: daftar yang dipisahkan koma dari disk non-boot yang terpasang ke instance sumber yang ingin Anda kecualikan dari image mesin.
Contoh
Misalnya, Anda dapat menggunakan perintah gcloud berikut untuk membuat image
mesin yang disebut my-gmi-exclude dari instance sumber yang disebut my-instance yang berada
di us-central1-a, tidak termasuk temp-disk-1 dan scratch-disk:
gcloud beta compute machine-images create my-gmi-exclude \
--source-instance=my-instance \
--source-instance-zone=us-central1-a \
--exclude-disks=temp-disk-1,scratch-disk
REST
Di API, buat permintaan POST ke metode
machineimages.insert
. Dalam isi permintaan, sertakan permintaan POST berikut:
POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/global/machineImages
{
"name": "MACHINE_IMAGE_NAME",
"sourceInstance": "SOURCE_INSTANCE_URL",
"params": {
"excludedDisks": ["DISK_NAME_1", "DISK_NAME_2"]
}
}
Ganti kode berikut:
PROJECT_ID: ID project yang berisi image mesin.MACHINE_IMAGE_NAME: nama image mesin yang ingin Anda buat.SOURCE_INSTANCE_URL: URL lengkap atau sebagian instance sumber yang ingin Anda gunakan untuk membuat image mesin.DISK_NAME_1, DISK_NAME_2: daftar disk non-boot yang terpasang ke instance sumber yang ingin dikecualikan dari image mesin.
Solusi untuk kegagalan booting yang disebabkan oleh pengecualian disk tertentu
Jika Anda membuat instance dari image mesin yang disknya dikecualikan menyebabkan kegagalan booting, Anda dapat memulihkan instance menggunakan salah satu solusi berikut:
Hubungkan ke konsol serial: aktifkan dan hubungkan ke konsol serial interaktif dari instance Compute Engine yang tidak dapat di-boot. Login untuk memecahkan masalah dan mengedit file
/etc/fstabsecara langsung untuk menghapus entri disk yang tidak ada atau menambahkan opsinofail.Penukaran disk: jika instance Compute Engine gagal di-boot karena disk dikecualikan dari image mesin tetapi masih tercantum di
/etc/fstabtanpa opsinofail, gunakan petunjuk berikut untuk memperbaiki konfigurasi menggunakan Google Cloud CLI.Hentikan instance Compute Engine yang tidak dapat di-booting menggunakan perintah
gcloud compute instances stop:gcloud compute instances stop UNBOOTABLE_INSTANCE_NAME \ --zone=ZONE
Ganti kode berikut:
UNBOOTABLE_INSTANCE_NAME: nama instance Compute Engine yang tidak dapat di-boot.ZONE: zona tempat instance Compute Engine berada.
Lepaskan boot disk menggunakan perintah
gcloud compute instances detach-disk:gcloud compute instances detach-disk UNBOOTABLE_INSTANCE_NAME \ --disk=BOOT_DISK_NAME \ --zone=ZONE
Ganti kode berikut:
UNBOOTABLE_INSTANCE_NAME: nama instance Compute Engine yang tidak dapat di-boot.BOOT_DISK_NAME: nama boot disk yang terpasang ke instance Compute Engine yang tidak dapat di-boot.ZONE: zona tempat instance Compute Engine berada.
Pasang disk sebagai disk sekunder ke instance Compute Engine lain yang berfungsi menggunakan perintah
gcloud compute instances attach-disk:gcloud compute instances attach-disk SECONDARY_INSTANCE_NAME \ --disk=BOOT_DISK_NAME \ --zone=ZONE
Ganti kode berikut:
SECONDARY_INSTANCE_NAME: nama instance Compute Engine sekunder yang berfungsi dan digunakan untuk memperbaiki disk.BOOT_DISK_NAME: nama boot disk yang terpasang ke instance Compute Engine yang tidak dapat di-boot.ZONE: zona tempat instance Compute Engine berada.
Pasang disk dan edit file
/etc/fstab-nya untuk memperbaiki entri yang bermasalah menggunakan urutan petunjuk berikut:Hubungkan ke instance Compute Engine sekunder menggunakan SSH:
gcloud compute ssh SECONDARY_INSTANCE_NAME \ --zone=ZONE
Ganti kode berikut:
SECONDARY_INSTANCE_NAME: nama instance Compute Engine sekunder yang berfungsi dan digunakan untuk memperbaiki disk.ZONE: zona tempat instance Compute Engine berada.
Identifikasi disk terlampir, biasanya
/dev/sdbatau yang serupa, menggunakanlsblk:lsblk
Buat direktori pemasangan sementara:
sudo mkdir /mnt/repair
Pasang partisi root:
sudo mount /dev/DEVICE_PARTITION /mnt/repair
Ganti
DEVICE_PARTITIONdengan nama perangkat dan nomor partisi disk sekunder terlampir pada instance Compute Engine sekunder (misalnya,sdb1).Buka file
fstab:sudo nano /mnt/repair/etc/fstab
Tambahkan opsi
nofailke entri disk yang hilang atau beri komentar pada seluruh baris dengan menambahkan#di awal.Simpan dan keluar.
Lepaskan disk:
sudo umount /mnt/repair
Lepaskan disk dari instance Compute Engine sekunder menggunakan perintah
gcloud compute instances detach-disk:gcloud compute instances detach-disk SECONDARY_INSTANCE_NAME \ --disk=BOOT_DISK_NAME \ --zone=ZONE
Ganti kode berikut:
SECONDARY_INSTANCE_NAME: nama instance Compute Engine sekunder yang berfungsi dan digunakan untuk memperbaiki disk.BOOT_DISK_NAME: nama boot disk yang terpasang ke instance Compute Engine yang tidak dapat di-boot.ZONE: zona tempat instance Compute Engine berada.
Pasang kembali disk sebagai boot disk ke instance Compute Engine asli menggunakan perintah
gcloud compute instances attach-disk:gcloud compute instances attach-disk UNBOOTABLE_INSTANCE_NAME \ --disk=BOOT_DISK_NAME \ --boot \ --zone=ZONE
Ganti kode berikut:
UNBOOTABLE_INSTANCE_NAME: nama instance Compute Engine yang tidak dapat di-boot.BOOT_DISK_NAME: nama boot disk yang terpasang ke instance Compute Engine yang tidak dapat di-boot.ZONE: zona tempat instance Compute Engine berada.
Mulai instance Compute Engine yang diperbaiki:
gcloud compute instances start UNBOOTABLE_INSTANCE_NAME \ --zone=ZONE
Ganti kode berikut:
UNBOOTABLE_INSTANCE_NAME: nama instance Compute Engine yang tidak dapat di-boot.ZONE: zona tempat instance Compute Engine berada.
Apa langkah selanjutnya?
- Pelajari image mesin lebih lanjut
- Membuat instance dari image mesin