Dengan mengonfigurasi persistent disk menjadi stateful, Anda dapat memanfaatkan autohealing instance VM dan update otomatis sekaligus mempertahankan status disk.
Anda dapat mengonfigurasi disk yang ditentukan di template instance agar menjadi stateful untuk semua instance dalam sebuahgrup instance terkelola (MIG) dengan menambahkan nama perangkat disk tersebut ke kebijakan stateful.
Anda juga dapat mengonfigurasi persistent disk stateful satu per satu untuk instance di MIG dengan menetapkan konfigurasi per instance; disk ini tidak perlu didefinisikan di template instance.
Sebelum memulai
- Tinjau kapan harus menggunakan MIG stateful dan cara kerja MIG stateful.
-
Siapkan autentikasi, jika Anda belum melakukannya.
Autentikasi adalah proses verifikasi identitas Anda untuk akses ke layanan dan API Google Cloud.
Untuk menjalankan kode atau contoh dari lingkungan pengembangan lokal, Anda dapat melakukan autentikasi ke Compute Engine sebagai berikut.
Pilih tab untuk melihat bagaimana Anda berencana menggunakan contoh di halaman ini:
Konsol
Saat menggunakan Konsol Google Cloud untuk mengakses API dan layanan Google Cloud, Anda tidak perlu menyiapkan autentikasi.
gcloud
-
Instal Google Cloud CLI, lalu initialize dengan menjalankan perintah berikut:
gcloud init
- Menetapkan region dan zona default.
Terraform
Untuk menggunakan contoh Terraform di halaman ini dari lingkungan pengembangan lokal, instal dan lakukan inisialisasi gcloud CLI, lalu siapkan Kredensial Default Aplikasi dengan kredensial pengguna Anda.
- Menginstal Google Cloud CLI.
-
Untuk initialize gcloud CLI, jalankan perintah berikut:
gcloud init
-
Buat kredensial autentikasi lokal untuk Akun Google Anda:
gcloud auth application-default login
Untuk informasi selengkapnya, lihat Siapkan autentikasi untuk lingkungan pengembangan lokal.
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 initialize dengan menjalankan perintah berikut:
gcloud init
-
Batasan
MIG dengan disk stateful memiliki batasan berikut:
MIG dengan konfigurasi stateful— MIG stateful—memiliki batasan berikut:
- Anda tidak dapat menggunakan penskalaan otomatis jika MIG Anda memiliki konfigurasi stateful.
- Jika ingin menggunakan update berkelanjutan otomatis, Anda harus menetapkan metode penggantian ke
RECREATE
. - Untuk MIG regional stateful, Anda harus menonaktifkan redistribusi proaktif (menetapkan jenis distribusi ulang ke
NONE
) untuk mencegah penghapusan instance stateful dengan redistribusi lintas zona otomatis. Jika menggunakan konfigurasi semua instance untuk mengganti properti template instance, Anda tidak dapat menentukan properti tersebut dalam konfigurasi per instance mana pun dan pada saat yang sama dalam konfigurasi semua instance grup.
MIG regional stateful tidak secara otomatis meng-orkestrasi failover lintas-zona. Saat menggunakan MIG regional, Anda dapat membuat aplikasi stateful Anda tahan terhadap kegagalan zona dengan men-deploy replika redundan ke beberapa zona dan mengandalkan fungsi replikasi data aplikasi Anda.
Kapan harus menggunakan persistent disk stateful
Gunakan persistent disk stateful untuk memanfaatkan autohealing dan update otomatis VM sambil tetap mempertahankan data di disk. Untuk mengetahui informasi selengkapnya, lihat kasus penggunaan untuk MIG stateful.
Saat Anda mengonfigurasi disk stateful, disk ini dipertahankan melalui autohealing, update, dan pembuatan ulang instance VM. Namun, itu juga berarti bahwa disk stateful tidak dapat dibuat ulang dari image asli atau diperbarui ke image baru.
Praktik terbaiknya, sebaiknya Anda menjaga agar boot disk tetap stateless.
Menjaga agar boot disk tetap stateless memiliki manfaat berikut:
- Anda dapat memperbaiki boot disk yang rusak dengan membuat ulang boot disk dari image aslinya. Autohealing melakukan perbaikan tersebut secara otomatis.
- Anda dapat mengupdate boot disk ke image terbaru dengan versi baru dan patch keamanan.
Untuk mengetahui informasi selengkapnya, lihat cara autohealing dan update menangani status yang dipertahankan.
Mengonfigurasi persistent disk stateful untuk semua VM di MIG
Konfigurasikan disk apa pun yang didefinisikan dalam template instance menjadi stateful dengan menambahkan nama perangkat disk tersebut ke kebijakan stateful MIG. MIG memperlakukan disk dengan nama perangkat tersebut sebagai stateful untuk semua instance VM yang ada dan yang akan datang.
Mengonfigurasi disk stateful pada pembuatan MIG
Konsol
Di Konsol Google Cloud, buka halaman Instance groups.
Pilih project Anda lalu klik Continue.
Klik Create grup instance.
Pilih New managed instance group (stateful).
Tentukan Name untuk grup instance.
Pilih sebuah Instance template. Jika tidak ada template yang tersedia, buat template instance.
Di bagian Number of instances, tentukan jumlah instance untuk grup instance.
Bagian Stateful configuration menampilkan disk yang ditentukan dalam template instance. Klik disk untuk mengedit konfigurasi stateful-nya.
- Di bagian Stateful, pilih Ya.
Dari menu drop-down On permanent instance deletion, pilih tindakan yang akan dilakukan pada disk stateful saat instance VM dihapus. Opsi yang tersedia adalah:
- Lepaskan disk: (Default.) Jangan pernah menghapus disk; melepaskan disk saat VM dihapus.
- Hapus disk: Menghapus disk stateful saat VM-nya dihapus secara permanen dari grup instance, misalnya, saat instance terkelola dihapus secara manual atau saat ukuran grup diperkecil.
Setelah Anda menyelesaikan konfigurasi stateful, klik Done.
Klik Create.
gcloud
Untuk menentukan disk mana dari template instance yang harus stateful dalam pembuatan
MIG, gunakan flag --stateful-disk
dengan
perintah gcloud compute instance-groups managed create
:
gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \ --template INSTANCE_TEMPLATE \ --size SIZE \ --stateful-disk device-name=DEVICE_NAME[,auto-delete=DELETE_RULE]
Ganti kode berikut:
INSTANCE_GROUP_NAME
: Nama grup instance terkelola yang akan dibuat.INSTANCE_TEMPLATE
: Nama template instance yang akan digunakan saat membuat instance.SIZE
: Jumlah VM awal yang Anda perlukan dalam grup ini.DEVICE_NAME
: Nama perangkat disk yang ditentukan dalam template instance.DELETE_RULE
: Nilai yang menentukan apa yang harus terjadi pada disk stateful saat VM dihapus. Opsi yang tersedia adalah:never
: (Default.) Jangan pernah menghapus disk; sebagai gantinya, lepaskan disk ketika VM-nya dihapus.on-permanent-instance-deletion
: Menghapus disk saat instance VM-nya dihapus secara permanen dari grup instance, misalnya, saat instance terkelola dihapus secara manual atau saat grup ukuran menjadi lebih kecil.
Terlepas dari nilai aturan hapus, disk stateful selalu dipertahankan pada operasi autohealing, update, dan pembuatan ulang VM.
Contoh
Anda ingin men-deploy database dengan 12 shard, masing-masing dengan boot disk stateless yang berisi biner sistem operasi dan database, dan masing-masing dengan disk data stateful. Ikuti langkah-langkah berikut:
Buat template instance dengan boot disk stateless berdasarkan image
img-example-db-v01
, yang memiliki OS dan database bawaan, serta dengan disk data stateful:gcloud compute instance-templates create example-database-template-v01 \ --image img-example-db-v01 \ --create-disk device-name=data-disk,mode=rw,image=empty10GBext4
Flag
--create-disk
memerintahkan MIG untuk:- Memuat disk baru sebesar 10 GB untuk setiap instance VM dari image ext4 kosong yang disiapkan sebelumnya.
- Instal disk ke VM-nya dalam mode baca/tulis menggunakan nama perangkat
data-disk
.
Buat MIG dari template instance dan tentukan disk data sebagai stateful:
gcloud compute instance-groups managed create example-database-group \ --template example-database-template-v01 \ --base-instance-name shard \ --size 12 \ --stateful-disk device-name=data-disk,auto-delete=on-permanent-instance-deletion
Nama perangkat
data-disk
diambil dari template instance. Disk data dikonfigurasi untuk dihapus bersama dengan instance VM saat VM dihapus secara permanen (baik karena penghapusan instance secara manual atau karena mengecilkan ukuran grup secara manual). Disk data dipertahankan saat autohealing, update, dan pembuatan ulang VM.Pastikan disk data dikonfigurasi dalam kebijakan stateful:
gcloud compute instance-groups managed describe example-database-group baseInstanceName: shard ... name: example-database-group ... statefulPolicy: preservedState: disks: data-disk: autoDelete: ON_PERMANENT_INSTANCE_DELETION ...
Anda dapat melihat bahwa kebijakan stateful mendeklarasikan disk dengan nama perangkat
data-disk
sebagai stateful, dengan aturan untuk menghapus disk tersebut pada penghapusan VM permanen.
Terraform
Jika Anda belum membuat template instance, yang menentukan jenis mesin, boot disk image, jaringan, dan properti VM lainnya yang Anda inginkan untuk setiap VM di MIG Anda, buat template instance.
Contoh berikut membuat MIG zona dengan disk stateful. Untuk menentukan
disk mana dari template instance yang harus stateful saat pembuatan
MIG, sertakan blok stateful_disk
. Untuk mengetahui informasi selengkapnya tentang
resource yang digunakan dalam contoh,
lihat resource google_compute_instance_group_manager
.
Untuk membuat MIG regional, gunakan
resource google_compute_region_instance_group_manager
.
Untuk mempelajari cara menerapkan atau menghapus konfigurasi Terraform, lihat Perintah dasar Terraform.
REST
Untuk menentukan disk mana dari template instance yang harus stateful dalam pembuatan
MIG, sertakan disk tersebut dalam statefulPolicy
di isi permintaaninstanceGroupManagers.insert
metode .
POST https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/instanceGroupManagers { "name": "NAME", "versions": [ { "instanceTemplate": "global/instanceTemplates/TEMPLATE" } ], "targetSize": SIZE, "statefulPolicy": { "preservedState": { "disks": { "DEVICE_NAME": {"autoDelete": "DELETE_RULE" }, "DEVICE_NAME": {"autoDelete": "DELETE_RULE" } } } } }
Ganti kode berikut:
PROJECT
: Project ID untuk permintaan.ZONE
: Zona tempat MIG berada (berlaku untuk MIG zona).- Untuk MIG regional, ganti
zones/ZONE
denganregions/REGION
dan tentukan region MIG.
- Untuk MIG regional, ganti
NAME
: Nama MIG yang akan dibuat.TEMPLATE
: Nama template instance yang akan digunakan saat membuat instance.SIZE
: Jumlah awal instance yang Anda perlukan dalam grup ini.DEVICE_NAME
: Nama perangkat disk yang ditentukan dalam template instance.DELETE_RULE
: Nilai yang menentukan apa yang harus terjadi pada disk stateful saat instance VM dihapus. Opsi yang tersedia adalah:never
: (Default.) Jangan pernah menghapus disk; melepaskan disk ketika VM dihapus.on_permanent_instance_deletion
: Menghapus disk stateful saat VM-nya dihapus secara permanen dari grup instance, misalnya, saat instance terkelola dihapus secara manual atau saat ukuran grup dikurangi.
Contoh
Anda ingin men-deploy database dengan 12 shard, masing-masing dengan boot disk stateless yang berisi biner sistem operasi dan database, dan masing-masing dengan disk data stateful. Ikuti langkah-langkah berikut:
Membuat template instance dengan boot disk stateless berdasarkan image
img-example-db-v01
, dengan OS dan database yang sudah diinstal sebelumnya, dan dengan disk data stateful, menggunakaninstanceTemplates.insert
metode:POST https://compute.googleapis.com/compute/v1/projects/example-project/global/instanceTemplates { "name": "example-database-template-v01", "properties": { "machineType":"e2-standard-2", "disks": [ { "boot": true, "deviceName": "boot-disk", "initializeParams": { "sourceImage": "projects/example-project/global/images/mg-example-db-v01" } }, { "deviceName": "data-disk", "mode": "READ_WRITE", "initializeParams": { "sourceImage": "projects/example-project/global/images/empty10GBext4" } } ], "networkInterfaces": [ { "network": "global/networks/default" } ] } }
Disk data dalam template instance memiliki nama perangkat
data-disk
dan dikonfigurasi untuk dibuat dari image ext4 kosong yang disiapkan sebelumnya, serta untuk dipasang dalam mode baca/tulis.Buat MIG dari template instance dan tentukan disk data sebagai stateful dengan menggunakan metode
instanceGroupManagers.insert
:POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-east1-c/instanceGroupManagers { "name": "example-database-group", "baseInstanceName": "shard", "versions": [ { "instanceTemplate": "global/instanceTemplates/example-database-template-v01" } ], "targetSize": 12, "statefulPolicy": { "preservedState": { "disks": { "data-disk": {"autoDelete": "ON_PERMANENT_INSTANCE_DELETION" } } } } }
MIG membuat 12 instance, masing-masing dengan disk dengan properti berikut:
- Nama perangkat,
data-disk
, diambil dari template instance. - Aturan hapus untuk menghapus disk data saat VM dihapus (baik karena penghapusan instance secara manual atau karena memperkecil ukuran grup secara manual).
- Entri dalam status yang dipertahankan dari kebijakan
(
preservedStateFromPolicy
) dari setiap instance terkelola sehingga disk data dipertahankan saat autohealing, update, dan pembuatan ulang instance.
- Nama perangkat,
Gunakan metode
instanceGroupManagers.get
untuk memverifikasi bahwa disk data dikonfigurasi dalam kebijakan stateful pada resourceinstanceGroupManagers
baru:GET https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-east1-c/instanceGroupManagers/example-database-group
{ "name": "example-database-group", "baseInstanceName": "shard", ... "statefulPolicy": { "preservedState": { "disks": { "data-disk": {"autoDelete": "ON_PERMANENT_INSTANCE_DELETION" } } } } ... }
Anda dapat melihat bahwa kebijakan stateful mendeklarasikan disk dengan nama perangkat
data-disk
sebagai stateful dengan aturan untuk menghapus disk tersebut pada penghapusan instance permanen.
Menetapkan dan memperbarui konfigurasi stateful untuk disk di MIG yang ada
Jika menjalankan aplikasi stateful pada MIG stateless (MIG tanpa konfigurasi stateful), Anda dapat mengonfigurasi disk yang ada yang ditetapkan dalam template instance agar stateful untuk semua instance di MIG ini. Hal ini memungkinkan Anda mempertahankan disk pada pembuatan ulang instance, autohealing, dan operasi update, serta secara opsional pada operasi penghapusan.
Anda dapat melakukan operasi berikut:
- Tambahkan disk yang didefinisikan dalam template instance ke kebijakan stateful dari MIG yang ada untuk mendeklarasikannya sebagai stateful. Tindakan ini akan menandai disk dengan nama perangkat tertentu sebagai stateful untuk semua instance yang ada dan akan dibuat di MIG.
- Perbarui kebijakan stateful untuk mengubah konfigurasi stateful untuk disk.
MIG menerapkan konfigurasi yang telah diperbarui dalam kebijakan stateful secara otomatis dan asinkron ke semua instance. Perubahan konfigurasi disk dalam kebijakan stateful tidak akan mengganggu VM yang sedang berjalan. Untuk mengetahui informasi selengkapnya, lihat menerapkan pembaruan kebijakan stateful.
Untuk MIG regional, Anda harus menonaktifkan redistribusi instance lintas zona proaktif sebelum dapat mengonfigurasi disk stateful. Untuk informasi selengkapnya, lihat cara grup regional menangani status yang dipertahankan.
Konsol
Di Konsol Google Cloud, buka halaman Instance groups.
Klik nama grup instance tempat Anda ingin menetapkan konfigurasi stateful untuk disk.
Klik Edit untuk mengubah grup instance terkelola.
Di bagian Stateful configuration, luaskan disk yang ingin Anda buat stateful.
- Di bagian Stateful, pilih Ya.
Dari menu drop-down On permanent instance deletion, pilih tindakan yang akan dilakukan pada disk stateful saat instance VM dihapus.
- Lepaskan disk: (Default.) Jangan pernah menghapus disk; melepaskan disk saat VM dihapus.
Hapus disk: Menghapus disk stateful saat VM-nya dihapus secara permanen dari grup instance, misalnya, saat instance terkelola dihapus secara manual atau saat ukuran grup diperkecil.
Setelah Anda memperbarui konfigurasi stateful, klik Done.
Klik Save untuk menyelesaikan update.
gcloud
Untuk menentukan disk mana dari template instance yang harus berstatus stateful atau untuk
memperbarui konfigurasi disk stateful untuk MIG yang ada, gunakan satu atau
beberapa flag --stateful-disk
dengan
gcloud compute instance-groups managed update
:
gcloud compute instance-groups managed update NAME \ --stateful-disk device-name=DEVICE_NAME[,auto-delete=DELETE_RULE]
Ganti kode berikut:
NAME
: Nama grup instance terkelola yang akan diupdate.DEVICE_NAME
: Nama perangkat disk yang ditentukan dalam template instance.DELETE_RULE
: Nilai yang menentukan apa yang harus terjadi pada disk stateful saat instance VM dihapus. Opsi yang tersedia adalah:never
: (Default.) Jangan pernah menghapus disk, lepaskan disk saat instance-nya dihapus.on-permanent-instance-deletion
: Menghapus disk stateful saat instance-nya secara permanen dihapus dari grup instance, misalnya, saat instance terkelola dihapus secara manual atau saat ukuran grup diperkecil.
Jika nama perangkat yang ditentukan sudah dikonfigurasi dalam kebijakan stateful, perintah akan memperbarui konfigurasi.
Contoh
Anda menjalankan database dengan beberapa shard pada MIG bernama example-database-
group
. Setiap VM dalam MIG menyimpan shard pada disk tambahan dengan
nama perangkat data-disk
, yang ditentukan oleh template instance. MIG
tidak memiliki konfigurasi stateful, dan Anda ingin mempertahankan disk data pada
pembuatan ulang instance, autohealing, dan update. Anda juga sebaiknya melindungi
disk data dari penghapusan saat VM dihapus.
Update MIG untuk menentukan disk data sebagai stateful menggunakan perintah berikut:
gcloud compute instance-groups managed update example-database-group \ --stateful-disk device-name=data-disk,auto-delete=never
Sebagai hasilnya, MIG menerapkan pembaruan konfigurasi kebijakan stateful secara otomatis dan asinkron ke disk data untuk semua instance. Disk data kini dipertahankan di autohealing, update, dan pembuatan ulang instance, dan disk data dilepas saat penghapusan instance karena aturan
auto-delete
ditetapkan kenever
.Pastikan disk data dikonfigurasi dalam kebijakan stateful dengan menjalankan perintah
gcloud compute instance-groups managed describe example-database-group
.
REST
Untuk menentukan disk mana dari template instance yang harus berstatus stateful atau untuk memperbarui konfigurasi disk stateful untuk MIG yang ada, konfigurasikan disk dalam kebijakan stateful MIG menggunakan metode instanceGroupManagers.patch
:
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/instanceGroupManagers/NAME { "statefulPolicy": { "preservedState": { "disks": { "DEVICE_NAME": {"autoDelete": "DELETE_RULE" }, "DEVICE_NAME": {"autoDelete": "DELETE_RULE" } } } } }
Ganti kode berikut:
PROJECT
: Project ID untuk permintaan.ZONE
: Zona tempat MIG berada (berlaku untuk MIG zona).- Untuk MIG regional, ganti
zones/ZONE
denganregions/REGION
dan tentukan region MIG.
- Untuk MIG regional, ganti
NAME
: Nama MIG yang akan diupdate.DEVICE_NAME
: Nama perangkat disk, yang ditentukan dalam template instance, yang ingin Anda perbarui konfigurasi statefulnya.DELETE_RULE
: Nilai yang menentukan apa yang harus terjadi pada disk stateful saat instance VM dihapus. Opsi yang tersedia adalah:never
: (Default.) Jangan pernah menghapus disk, lepaskan disk saat instance-nya dihapus.on-permanent-instance-deletion
: Menghapus disk stateful saat instancenya dihapus secara permanen dari grup instance, misalnya, saat instance dihapus secara manual atau saat ukuran grup diperkecil.
Jika nama perangkat yang ditentukan sudah dikonfigurasi dalam kebijakan stateful,
metode patch
akan memperbarui konfigurasinya.
Contoh
Anda menjalankan database dengan beberapa shard pada MIG bernama example-database-
group
. Setiap VM dalam MIG menyimpan shard pada disk tambahan dengan
nama perangkat data-disk
, yang ditentukan oleh template instance. MIG
tidak memiliki konfigurasi stateful, dan Anda ingin mempertahankan disk data pada
pembuatan ulang instance, autohealing, dan update. Anda juga sebaiknya melindungi
disk data dari penghapusan saat VM dihapus.
Lakukan patch pada MIG untuk menentukan disk data sebagai stateful:
PATCH https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-east1-c/instanceGroupManagers/example-database-group { "statefulPolicy": { "preservedState": { "disks": { "data-disk": {"autoDelete": "NEVER" } } } } }
MIG menerapkan konfigurasi stateful ini secara otomatis dan asinkron ke disk data untuk semua instance. Disk data akan dipertahankan dalam autohealing, update, dan pembuatan ulang instance. Disk data akan dilepas saat instance dihapus karena aturan
autoDelete
disetel keNEVER
.Pastikan disk data dikonfigurasi dalam kebijakan stateful dengan melihat resource
instanceGroupManagers
, yang ditampilkan oleh metodeinstanceGroupManagers.get
.
Mendeklarasikan persistent disk stateful sebelumnya sebagai stateless
Anda mungkin perlu mengonfigurasi disk stateful agar diperlakukan sebagai stateless. Misalnya:
- Jika Anda melakukan arsitektur ulang aplikasi untuk memindahkan status dari disk.
- Jika Anda tidak sengaja mengonfigurasi disk menjadi stateful dan ingin mengembalikannya.
Untuk mendeklarasikan semua disk dengan nama perangkat tertentu sebagai stateless, hapus konfigurasi disk dari kebijakan stateful.
MIG menerapkan perubahan pada kebijakan stateful secara otomatis dan asinkron ke semua instance. Update pada konfigurasi disk dalam kebijakan stateful tidak akan mengganggu instance VM yang sedang berjalan.
Untuk mengetahui informasi selengkapnya, lihat Menerapkan pembaruan kebijakan stateful.
Konsol
Di Konsol Google Cloud, buka halaman Instance groups.
Klik nama grup instance tempat Anda ingin menghapus konfigurasi stateful untuk disk.
Klik Edit untuk mengubah grup instance terkelola.
Di bagian Stateful configuration, luaskan disk stateful yang ingin Anda buat menjadi stateless.
- Ubah opsi Stateful menjadi No.
- Klik Done.
Setelah melakukan perubahan, klik Save.
gcloud
Untuk menentukan disk mana dari kebijakan stateful MIG untuk menjadikannya stateless, gunakan
flag --remove-stateful-disks
dengan
perintah gcloud compute instance-groups managed update
:
gcloud compute instance-groups managed update NAME \ --remove-stateful-disks DEVICE_NAME[,DEVICE_NAME,...]
Ganti kode berikut:
NAME
: Nama MIG yang akan diupdate.DEVICE_NAME
: Nama perangkat disk yang akan dihapus dari kebijakan stateful dan diperlakukan sebagai stateless. Anda dapat memberikan satu atau beberapa nama perangkat dalam daftar.
Contoh
Anda menjalankan aplikasi lama dengan beberapa node pada MIG bernama example-legacy-group
. Setiap VM di MIG menyimpan data aplikasi
di boot disk dengan nama perangkat boot-disk
, yang Anda konfigurasi sebagai
stateful dalam kebijakan stateful MIG. Anda telah memindahkan data aplikasi ke
disk tambahan dan sekarang ingin membuat boot disk menjadi stateless agar
mudah mengupdate ke image baru.
Untuk menghapus konfigurasi stateful dari boot disk, perbarui grup instance terkelola:
gcloud compute instance-groups managed update example-legacy-group \ --remove-stateful-disks boot-disk
MIG menghapus konfigurasi stateful untuk nama perangkat boot-disk
secara otomatis dan asinkron untuk boot disk semua instance dalam grup. Boot disk tetap terpasang ke instance, tetapi tidak lagi stateful. Saat Anda membuat ulang atau mengupdate instance, atau saat instance
dipulihkan secara otomatis, MIG akan membuat ulang boot disk dari image yang ditentukan dalam
template instance.
REST
Untuk menentukan disk mana dari kebijakan stateful MIG untuk diubah menjadi stateless,
hapus setiap konfigurasi disk dari kebijakan stateful MIG menggunakan
metode instanceGroupManagers.patch
:
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/instanceGroupManagers/NAME { "statefulPolicy": { "preservedState": { "disks": { "DEVICE_NAME": null, ... } } } }
Ganti kode berikut:
PROJECT
: Project ID untuk permintaan.ZONE
: Zona tempat MIG berada (berlaku untuk MIG zona).- Untuk MIG regional, ganti
zones/ZONE
denganregions/REGION
dan tentukan region MIG.
- Untuk MIG regional, ganti
NAME
: Nama MIG yang akan diupdate.DEVICE_NAME
: Nama perangkat disk yang ingin Anda hapus dari kebijakan stateful. Memberikan nilainull
akan menghapus konfigurasi stateful untuk disk tersebut. Anda dapat memberikan satu atau beberapa nama perangkat untuk dihapus.
Contoh
Anda menjalankan aplikasi lama dengan beberapa node pada MIG bernama example-legacy-group
. Setiap VM di MIG menyimpan data aplikasi
di boot disk dengan nama perangkat boot-disk
, yang Anda konfigurasi
sebagai stateful dalam kebijakan stateful MIG. Anda telah memindahkan data aplikasi
ke disk tambahan dan sekarang ingin menjadikan boot disk stateless
agar mudah diupdate ke image baru.
Untuk menghapus konfigurasi stateful boot disk, lakukan patch pada grup instance terkelola:
PATCH https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-east1-c/instanceGroupManagers/example-legacy-group { "statefulPolicy": { "preservedState": { "disks": { "boot-disk": null } } } }
MIG menghapus konfigurasi stateful untuk nama perangkat boot-disk
secara otomatis dan asinkron untuk boot disk semua instance dalam grup. Boot disk tetap terpasang ke instance, tetapi tidak lagi stateful. Saat Anda membuat ulang atau mengupdate instance, atau saat instance
dipulihkan secara otomatis, MIG akan membuat ulang boot disk dari image yang ditentukan dalam
template instance.
Menghapus persistent disk stateful dari MIG
Anda mungkin harus menghapus disk stateful sepenuhnya dari instance di MIG, misalnya, jika Anda mendesain ulang aplikasi dan memindahkan status dari disk tersebut.
MIG tidak mengizinkan penghapusan disk stateful, jadi Anda harus melakukan langkah-langkah berikut:
- Hapus konfigurasi stateful disk dari kebijakan stateful. Hal ini membuat disk dengan nama perangkat yang diberikan menjadi stateless.
- Lepaskan disk dari VM jika Anda masih ingin menyimpannya.
- Meluncurkan template instance baru yang tidak lagi menentukan disk dengan nama perangkat tertentu.
Mengonfigurasi persistent disk stateful secara individual untuk VM di MIG
Konfigurasi persistent disk stateful untuk VM tertentu dalam MIG dengan menambahkan nama perangkat disk ke konfigurasi per instance VM tersebut. Update VM untuk menerapkan konfigurasi per instance dan membuatnya efektif.
Mengonfigurasi persistent disk stateful satu per satu untuk VM tertentu di MIG berguna jika Anda perlu:
- Memigrasikan workload yang ada (bawa disk yang sudah ada) dari VM mandiri ke MIG stateful untuk mendapatkan manfaat dari autohealing dan update yang mudah.
- Memulihkan cadangan disk, yang dikonfigurasi satu per satu untuk VM.
- Memasang disk stateful tambahan ke VM tertentu secara sementara untuk pengujian, proses debug, atau penyalinan data.
Menambahkan disk stateful yang ada ke VM baru di MIG
Anda dapat menambahkan disk stateful yang ada ke instance baru yang Anda buat secara manual di MIG. Hal ini berguna untuk memigrasikan aplikasi stateful dari VM mandiri yang ada ke MIG stateful, misalnya:
- Buat template instance dengan konfigurasi umum untuk semua instance VM.
- Lepaskan disk data dari instance mandiri dan hapus instance ini. Anda juga dapat melepaskan boot disk jika berisi status yang harus dipertahankan.
- Buat MIG kosong menggunakan template instance yang dibuat sebelumnya.
Buat instance di MIG dengan nama yang sesuai dan disk terkait dari langkah sebelumnya. MIG akan merespons permintaan Anda dengan tindakan berikut:
- Membuat VM dari template instance menggunakan nama instance yang diberikan.
- MIG regional membuat VM di zona yang sama dengan tempat disk berada. Jika disk bersifat regional, MIG regional akan membuat VM di salah satu zona replika disk.
- Membuat konfigurasi per instance dengan konfigurasi stateful yang disediakan untuk disk.
- Memasang disk ke instance baru.
- Membuat VM dari template instance menggunakan nama instance yang diberikan.
Tambahkan disk stateful yang ada saat membuat instance tertentu secara manual di MIG menggunakan gcloud CLI atau REST. MIG menerapkan konfigurasi secara langsung pada pembuatan VM.
gcloud
Untuk membuat VM dengan nama kustom dan memasang satu atau beberapa disk stateful yang ada ke VM tersebut, gunakangcloud compute instance-groups managed create-instance
dengan satu atau beberapa--stateful-disk
tanda.
gcloud compute instance-groups managed create-instance NAME \ --instance VM_NAME \ [--zone ZONE | --region REGION] \ --stateful-disk device-name=DEVICE_NAME,source=DISK[,mode=MODE][,auto-delete=DELETE_RULE]
Ganti kode berikut:
NAME
: Nama MIG tempat Anda perlu membuat instance.VM_NAME
: Nama instance baru yang akan dibuat.ZONE
: Zona tempat MIG berada (berlaku untuk MIG zonal).REGION
: Wilayah tempat MIG berada (berlaku untuk MIG regional).DEVICE_NAME
: Nama perangkat yang akan digunakan saat memasang disk.DISK
: URI persistent disk yang ada untuk dipasang di bawahDEVICE_NAME
yang ditentukan dalam formatprojects/project-id/zones/zone/disks/disk-name
untuk disk zona danprojects/project-id/regions/region/disks/disk-name
untuk disk regional.MODE
: Menentukan mode disk. Opsi yang didukung adalah:ro
: Hanya baca.rw
: (Default.) Baca/tulis.
DELETE_RULE
: Nilai yang menentukan apa yang harus terjadi pada disk stateful saat instance VM dihapus. Opsi yang tersedia adalah:never
: (Default.) Jangan pernah menghapus disk; sebagai gantinya, lepaskan disk saat instance-nya dihapus.on-permanent-instance-deletion
: Menghapus disk stateful saat instancenya dihapus secara permanen dari grup instance, misalnya, saat instance dihapus secara manual atau saat ukuran grup diperkecil.
Terlepas dari nilai aturan hapus, disk stateful selalu dipertahankan saat operasi pembuatan ulang, update, dan autohealing instance.
Contoh
Anda ingin memiliki autohealing untuk server database yang saat ini berjalan pada VM mandiri bernama db-instance
dan yang saat ini menyimpan data di disk bernama db-data-disk-1
.
Buat MIG stateful dengan autohealing, buat VM serupa
di dalam MIG, dan pasang disk data db-data-disk-1
yang ada ke
instance baru sebagai disk stateful:
- Hentikan VM,
db-instance
, selama masa pemeliharaan. - Buat template instance
bernama
db-template
menggunakan konfigurasidb-instance
. - Lepaskan
db-data-disk-1
daridb-instance
dan hapusdb-instance
. - Buat MIG kosong,
example-database-mig
, daridb-template
, dan konfigurasi autohealing. Buat instance terkelola dengan nama
db-instance
asli dan tambahkandb-data-disk-1
sebagai disk stateful:gcloud compute instance-groups managed create-instance example-database-mig \ --instance db-instance \ --zone us-east1-c \ --stateful-disk device-name=data-disk,source=projects/example-project/zones/us-east1-c/disks/db-data-disk-1,auto-delete=never
Perintah ini membuat instance,
db-instance
, di MIG, membuat konfigurasi per instance yang sesuai dengan disk statefuldb-data-disk-1
, dan memasang disk ke VM baru, menggunakandata-disk
sebagai nama perangkat.
REST
Untuk membuat satu atau beberapa instance di MIG, menetapkan nama VM kustom, dan
memasang satu atau beberapa disk stateful yang ada ke instance ini, gunakan
metode
instanceGroupManagers.createInstances
.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/NAME/createInstances { "instances": [ { "name": "VM_NAME", "preservedState" : { "disks": { "DEVICE_NAME" : { "source": "DISK", "mode": "MODE", "autoDelete": "DELETE_RULE" }, ... } } }, ... ] }
Ganti kode berikut:
PROJECT_ID
: ID project untuk permintaan.ZONE
: Zona tempat MIG berada (berlaku untuk MIG zona).- Untuk MIG regional, ganti
zones/ZONE
denganregions/REGION
dan tentukan region MIG.
- Untuk MIG regional, ganti
NAME
: Nama MIG untuk membuat instance.VM_NAME
: Nama instance yang akan dibuat.DEVICE_NAME
: Nama perangkat yang akan digunakan saat memasang disk.DISK
: URI persistent disk yang ada untuk dipasang di bawahDEVICE_NAME
yang ditentukan dalam formatprojects/project-id/zones/zone/disks/disk-name
untuk disk zonal atauprojects/project-id/regions/region/disks/disk-name
untuk disk regional.MODE
: Menentukan mode disk. Opsi yang didukung adalah:READ_ONLY
: Hanya baca.READ_WRITE
: (Default.) Baca/tulis.
DELETE_RULE
: Nilai yang menentukan apa yang harus terjadi pada disk stateful saat VM dihapus. Opsi yang tersedia adalah sebagai berikut:never
: (Default.) Jangan pernah menghapus disk; sebagai gantinya, lepaskan disk ketika VM-nya dihapus.on-permanent-instance-deletion
: Menghapus disk stateful saat instance-nya dihapus secara permanen dari grup instance, misalnya, saat instance dihapus secara manual atau saat ukuran grup berkurang.
Terlepas dari nilai aturan hapus, disk stateful selalu dipertahankan saat operasi pembuatan ulang, update, dan autohealing instance.
Contoh
Anda ingin memiliki autohealing untuk server database yang saat ini berjalan pada VM mandiri bernama db-instance
dan yang saat ini menyimpan data di disk bernama db-data-disk-1
.
Buat MIG stateful dengan autohealing, buat instance serupa
di dalam MIG, dan pasang disk data db-data-disk-1
yang ada ke
VM baru sebagai disk stateful:
- Hentikan VM,
db-instance
, selama masa pemeliharaan. - Buat template instance
bernama
db-template
menggunakan konfigurasidb-instance
. - Lepaskan
db-data-disk-1
daridb-instance
, dan hapusdb-instance
. - Buat MIG kosong,
example-database-mig
, daridb-template
, dan konfigurasi autohealing. Buat instance dengan nama asli
db-instance
, dan lampirkandb-data-disk-1
sebagai disk stateful:POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-east1-c/instanceGroupManagers/example-database-mig/createInstances { "instances": [ { "name": "db-instance", "preservedState" : { "disks": { "data-disk" : { "source": "projects/example-project/zones/us-east1-c/disks/db-data-disk-1", "mode": "READ_WRITE", "autoDelete": "never" } } } } ] }
Metode ini membuat sebuah instance,
db-instance
di MIG, membuat konfigurasi per instance yang sesuai dengan disk statefuldb-data-disk-1
, dan memasang disk ke instance baru, dengan menggunakandata-disk
sebagai nama perangkat.
Menambahkan, mendeklarasikan, dan mengganti disk stateful satu per satu untuk VM di MIG
Konfigurasikan disk stateful satu per satu untuk instance terkelola dengan menambahkan atau memperbarui konfigurasi disk stateful dalam konfigurasi per instance yang terkait. Kemudian, update instance untuk menerapkan konfigurasi per instance ke VM.
Mengonfigurasi disk stateful satu per satu berguna untuk tugas berikut:
- Menambahkan disk stateful dari luar MIG ke VM di MIG tersebut.
- Mendeklarasikan disk stateless sebelumnya sebagai stateful untuk VM di MIG.
- Mengganti disk stateful dengan disk berbeda untuk VM di MIG.
Menambahkan disk stateful dari luar MIG ke VM di MIG tersebut. Anda dapat memasang disk apa pun dari luar MIG ke instance terkelola dengan menambahkan konfigurasi stateful untuk disk ke konfigurasi per instance yang terkait. Setelah Anda menerapkan konfigurasi, MIG akan otomatis memasang disk ke instance dan memperlakukannya sebagai stateful.
Mendeklarasikan persistent disk stateless sebelumnya sebagai stateful. Anda dapat mendeklarasikan disk stateless sebelumnya, yang saat ini terpasang ke VM, sebagai stateful dengan menambahkan konfigurasi stateful untuk disk ini, termasuk nama perangkat dan URI, ke konfigurasi per instance yang terkait. Setelah Anda menerapkan konfigurasi, MIG mulai mempertahankan disk sebagai stateful.
Mengganti disk stateful dengan disk berbeda. Mengganti satu disk stateful dengan disk stateful lain dapat berguna, misalnya, jika Anda memerlukan akses ke cadangan yang dipulihkan. Anda dapat menukar satu disk stateful dengan yang lain dengan memperbarui URI disk sambil mempertahankan nama perangkat yang sama dalam konfigurasi per instance. Setelah Anda menerapkan konfigurasi per instance yang diupdate, MIG akan melepaskan disk lama dan memasang disk baru menggunakan nama perangkat yang sama. Saat menerapkan update, pilih apakah akan membuat instance tetap berjalan, memulai ulang, atau membuatnya ulang. Mengganti boot disk memerlukan minimal mulai ulang VM.
gcloud
Untuk mengonfigurasi disk stateful satu per satu untuk VM di MIG, tambahkan atau perbarui konfigurasi disk stateful dalam konfigurasi per-instance terkait. Kemudian, update instance untuk menerapkan konfigurasi.
Jika konfigurasi per instance belum ada untuk instance, gunakan perintah gcloud compute instance-groups managed instance-configs create
dengan satu atau beberapa flag --stateful-disk
:
gcloud compute instance-groups managed instance-configs create NAME \ --instance VM_NAME \ --stateful-disk device-name=DEVICE_NAME[,source=DISK][,mode=MODE][,auto-delete=DELETE_RULE] \ [--no-update-instance | --update-instance] \ [--instance-update-minimal-action MINIMAL_ACTION]
Jika konfigurasi per instance sudah ada untuk instance, gunakan perintah gcloud compute instance-groups managed instance-configs update
dengan satu atau beberapa flag --stateful-disk
.
Flag --update-instance
(default) menerapkan perubahan secara langsung pada instance. Jika Anda menggunakan
--no-update-instance
, perubahan tetap tidak diterapkan dan
diterapkan
saat Anda membuat ulang atau mengupdate instance berikutnya.
gcloud compute instance-groups managed instance-configs update NAME \ --instance VM_NAME \ --stateful-disk device-name=DEVICE_NAME[,source=DISK][,mode=MODE][,auto-delete=DELETE_RULE] \ [--no-update-instance | --update-instance] \ [--instance-update-minimal-action MINIMAL_ACTION]
Ganti kode berikut:
NAME
: Nama grup instance terkelola.VM_NAME
: Nama instance VM yang akan mengonfigurasi disk stateful.DEVICE_NAME
: Nama perangkat yang digunakan untuk memasang disk.DISK
: URI persistent disk yang ada untuk dipasang di bawahDEVICE_NAME
yang ditentukan, dalam formatprojects/project-id/zones/zone/disks/disk-name
untuk disk zonal danprojects/project-id/regions/region/disks/disk-name
untuk disk regional.Subflag
source=DISK
bersifat opsional jika perangkat sudah ditentukan dalam konfigurasi per instance. Jika tidak, subflag akan menjadi wajib.Jika dihilangkan, URI disk yang saat ini dikonfigurasi tetap tidak berubah.
MODE
: Menentukan mode disk. Anda hanya dapat menentukanmode
jika Anda juga menentukansource
. Opsi yang didukung adalah:ro
: Hanya baca.rw
: (Default.) Baca/tulis.
Jika dihilangkan, nilai default akan ditetapkan untuk konfigurasi disk stateful baru; nilainya tetap tidak berubah dalam konfigurasi yang ada.
DELETE_RULE
: Nilai yang menentukan apa yang harus terjadi pada disk stateful saat VM dihapus. Opsi yang tersedia adalah sebagai berikut:never
: (Default.) Jangan pernah menghapus disk; sebagai gantinya, lepaskan disk saat instance-nya dihapus.on-permanent-instance-deletion
: Menghapus disk stateful saat instance-nya dihapus secara permanen dari grup instance, misalnya, saat instance dihapus secara manual atau saat ukuran grup diturunkan.
Jika dihilangkan, nilai default akan ditetapkan untuk konfigurasi disk stateful baru; nilainya tetap tidak berubah dalam konfigurasi yang ada.
Terlepas dari nilai aturan hapus, disk stateful selalu dipertahankan saat operasi pembuatan ulang, update, dan autohealing instance.
MINIMAL_ACTION
: Menjalankan setidaknya tindakan yang ditentukan saat menerapkan update konfigurasi per instance ke instance. Harus digunakan bersama dengan flag--update-instance
. Nilainya harus salah satu dari:none
: Tidak ada tindakan.refresh
: Menerapkan update yang dapat diterapkan tanpa menghentikan VM.restart
: Menghentikan VM, lalu memulainya lagi.replace
: Membuat ulang VM.
Jika dihilangkan, tindakan yang paling tidak mengganggu yang diperlukan oleh update akan digunakan.
Contoh
Data pada disk stateful yang saat ini terpasang, data-disk-1
, rusak, dan Anda ingin memulihkannya dari cadangan terbaru. Anda telah membuat
disk, data-disk-2
, dari snapshot untuk mengganti disk yang rusak di
instance, db-instance-1
, yang dikelola oleh MIG stateful,
example-database-mig
. Disk asli data-disk-1
dilampirkan di bawah
nama perangkat data-disk
dengan aturan hapus otomatis untuk tidak pernah menghapus
disk.
Untuk mengganti data-disk-1
dengan data-disk-2
, jalankan perintah berikut:
gcloud compute instance-groups managed instance-configs update example-database-mig \ --instance db-instance-1 \ --stateful-disk device-name=data-disk,source=projects/example-project/zones/us-east1-c/disks/data-disk-2 \ --update-instance \ --instance-update-minimal-action restart
Perintah tersebut melakukan hal berikut:
- Mengupdate konfigurasi per instance untuk
db-instance-1
:- Mengupdate sumber disk dengan nama perangkat
data-disk
daridata-disk-1
(konfigurasi terakhir) menjadidata-disk-2
(konfigurasi baru). - Mempertahankan aturan hapus otomatis agar tidak pernah menghapus disk karena
parameter
auto-delete
dihilangkan dalam flag--stateful-disk
dan, secara default, aturan hapus adalahnever
.
- Mengupdate sumber disk dengan nama perangkat
- Menerapkan update konfigurasi per instance ke VM
db-instance-1
segera karena flag--update-instance
disertakan. MIG melepaskandata-disk-1
dan melampirkandata-disk-2
dengan nama perangkat yang sama,data-disk
. - Karena tindakan minimal disetel ke
restart
, MIG akan memulai ulang instancedb-instance-1
untuk mengupdate VM, yang membantu aplikasi database untuk mulai menggunakan disk baru.
Terraform
Guna mengonfigurasi disk stateful satu per satu untuk VM dalam MIG, tambahkan konfigurasi disk stateful dalam konfigurasi per instance terkait. Kemudian, update instance untuk menerapkan konfigurasi.
Untuk menambahkan konfigurasi per instance untuk VM, gunakan
resource google_compute_per_instance_config
dan sertakan blok preserved_state
seperti yang ditunjukkan dalam contoh berikut.
Untuk mempelajari cara menerapkan atau menghapus konfigurasi Terraform, lihat Perintah dasar Terraform.
REST
Untuk mengonfigurasi disk stateful satu per satu untuk VM di MIG, tambahkan atau perbarui konfigurasi disk stateful dalam konfigurasi per instance yang terkait. Lalu, update instance untuk menerapkan konfigurasi.
Jika konfigurasi per instance belum ada untuk VM yang ditentukan, gunakan metode instanceGroupManagers.updatePerInstanceConfigs
atau metode regionInstanceGroupManagers.updatePerInstanceConfigs
dengan konfigurasi stateful untuk satu atau beberapa disk:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/NAME/updatePerInstanceConfigs { "perInstanceConfigs": [ { "name": "VM_NAME", "preservedState" : { "disks": { "DEVICE_NAME" : { "source": "DISK", "mode": "MODE", "autoDelete": "DELETE_RULE" }, ... } }, "fingerprint: "FINGERPRINT" }, ... ] }
Jika konfigurasi per instance sudah ada untuk VM yang ditentukan, gunakanmetode instanceGroupManagers.patchPerInstanceConfigs
atau
metode regionInstanceGroupManagers.patchPerInstanceConfigs
dengan konfigurasi stateful untuk satu atau beberapa disk:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/NAME/patchPerInstanceConfigs { "perInstanceConfigs": [ { "name": "VM_NAME", "preservedState" : { "disks": { "DEVICE_NAME" : { "source": "DISK", "mode": "MODE", "autoDelete": "DELETE_RULE" }, ... } }, "fingerprint: "FINGERPRINT" }, ... ] }
Ganti kode berikut:
PROJECT_ID
: Project ID untuk permintaan.ZONE
: Zona tempat MIG berada (berlaku untuk MIG zona).- Untuk MIG regional, ganti
zones/ZONE
denganregions/REGION
dan tentukan region MIG.
- Untuk MIG regional, ganti
NAME
: Nama MIG.VM_NAME
: Nama VM, yang akan mengonfigurasi disk stateful.DEVICE_NAME
: Nama perangkat yang digunakan untuk memasang disk.DISK
: URI persistent disk yang ada untuk dipasang di bawahDEVICE_NAME
yang ditentukan, dalam formatprojects/project-id/zones/zone/disks/disk-name
untuk disk zonal danprojects/project-id/regions/region/disks/disk-name
untuk disk regional.Kolom
"source": "DISK"
bersifat opsional jika perangkat sudah ditentukan dalam konfigurasi per instance. Jika tidak, subflag akan menjadi wajib.Jika kolom
source
dihilangkan, URI disk yang saat ini dikonfigurasi tidak akan berubah.MODE
: (Opsional.) Menentukan mode disk.mode
hanya dapat ditentukan jikasource
diberikan. Opsi yang didukung adalah:READ_ONLY
: Hanya baca.READ_WRITE
: (Default.) Baca/tulis.
Jika dihilangkan, nilai default akan ditetapkan untuk konfigurasi disk stateful baru; nilainya tetap tidak berubah dalam konfigurasi yang ada.
DELETE_RULE
: (Opsional.) Nilai yang menentukan apa yang harus terjadi pada disk stateful saat VM dihapus. Opsi yang tersedia adalah sebagai berikut:- tidak pernah: (Default.) Jangan pernah menghapus disk; sebagai gantinya, lepaskan disk saat instance-nya dihapus.
on-permanent-instance-deletion
: Menghapus disk stateful saat instance-nya dihapus secara permanen dari grup instance, misalnya, saat instance dihapus secara manual atau saat ukuran grup diperkecil.
Jika kolom
autoDelete
dihilangkan, nilai default akan ditetapkan untuk konfigurasi disk stateful baru; nilainya tetap tidak berubah dalam konfigurasi yang ada.Terlepas dari nilai aturan hapus, disk stateful selalu dipertahankan saat operasi pembuatan ulang, update, dan autohealing instance.
FINGERPRINT
: (Opsional). Sidik jari untuk konfigurasi yang diberikan jika sudah ada. Digunakan untuk penguncian optimistis. Untuk melihat sidik jari terbaru, buat permintaanget()
untuk mengambil resource.
Metode updatePerInstanceConfigs
dan patchPerInstanceConfigs
memperbarui konfigurasi per instance yang ditentukan, tetapi tidak menerapkan pembaruan konfigurasi ke VM terkelola yang terkait. Perubahan diterapkan ke instance
saat MIG diminta untuk membuat ulang atau mengupdate instance. Anda juga dapat meng-update instance secara selektif untuk menerapkan perubahan.
Contoh
Data pada disk stateful yang saat ini terpasang, data-disk-1
, rusak, dan Anda ingin memulihkannya dari cadangan terbaru. Anda telah membuat
disk, data-disk-2
, dari snapshot untuk mengganti disk yang rusak di
instance, db-instance-1
, yang dikelola oleh MIG stateful,
example-database-mig
. Disk asli data-disk-1
dilampirkan di bawah
nama perangkat data-disk
dengan aturan hapus otomatis untuk tidak pernah menghapus
disk.
Guna mengupdate konfigurasi per instance untuk db-instance-1
dengan disk baru,
panggil metode patchPerInstanceConfigs
:
POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-east1-c/instanceGroupManagers/example-database-mig/patchPerInstanceConfigs { "perInstanceConfigs": [ { "name": "db-instance-1", "preservedState" : { "disks": { "data-disk" : { "source": "projects/example-project/zones/us-east1-c/disks/data-disk-2" } } } } ] }
Metode ini men-patch konfigurasi per instance untuk db-instance-1
:
- Mengupdate
source
untuk disk dengan nama perangkatdata-disk
daridata-disk-1
(konfigurasi terakhir) menjadidata-disk-2
(konfigurasi baru). - Mempertahankan parameter
mode
danautoDelete
tidak berubah karena parameter dihilangkan dalam permintaan.
Update konfigurasi belum diterapkan ke VM db-instance-1
. MIG
menerapkan update konfigurasi saat Anda membuat ulang atau mengupdate instance.
Untuk menerapkan update konfigurasi per instance ke VM db-instance-1
, panggil
metode instanceGroupManagers.applyUpdatesToInstances
untuk instance tersebut:
POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-east1-c/instanceGroupManagers/example-database-mig/applyUpdatesToInstances { "instances": ["/zones/us-east1-c/instances/db-instance-1"], "minimalAction": "RESTART" }
Metode ini memperbarui status instance terkelola yang dipertahankan, melepaskan
data-disk-1
dan menambahkan data-disk-2
dengan nama perangkat
data-disk
yang sama. Karena minimalAction
disetel ke RESTART
, metode ini
akan memulai ulang VM db-instance-1
, yang memungkinkan aplikasi database
mulai menggunakan disk baru.
Melepaskan disk stateful atau mendeklarasikannya stateless untuk VM individu
Anda mungkin perlu melepaskan disk stateful atau mengonfigurasinya agar diperlakukan sebagai stateless untuk setiap VM. Contoh:
- Jika Anda melakukan arsitektur ulang aplikasi untuk memindahkan status dari disk.
- Jika Anda mengonfigurasi disk menjadi stateful secara tidak sengaja dan ingin mengembalikannya.
Lepaskan disk stateful atau buat disk stateless untuk setiap VM dengan menghapus konfigurasi stateful disk dari konfigurasi per instance yang terkait atau hapus seluruh konfigurasi per instance. Saat Anda menerapkan perubahan:
- Jika disk tidak ditentukan di template instance, MIG akan melepaskan disk.
- MIG tidak menghapus disk saat Anda menghapus konfigurasinya dari konfigurasi per instance, terlepas dari aturan hapus otomatis dalam konfigurasi.
- Jika disk ditentukan oleh template instance, MIG akan memperlakukan disk sebagai stateless, yang berarti MIG akan membuat ulang disk dari sumbernya di template instance pada saat pembuatan ulang, update, atau peristiwa autohealing berikutnya.
Menghapus konfigurasi disk dari konfigurasi per instance tidak akan memulai ulang instance VM yang berjalan, kecuali jika Anda secara eksplisit memilih untuk melakukannya.
Untuk mengetahui informasi selengkapnya, lihat Menerapkan update konfigurasi per instance.
gcloud
Untuk melepaskan disk stateful atau mendeklarasikannya stateless satu per satu untuk VM dalam MIG, hapus konfigurasi disk stateful dari konfigurasi per instance yang terkait atau hapus keseluruhan konfigurasi per instance jika tidak berisi status lain. Update instance untuk menerapkan konfigurasi.
Untuk menghapus konfigurasi disk stateful dari konfigurasi per-instance
yang terkait, gunakan
perintah gcloud compute instance-groups managed instance-configs update
dengan flag --remove-stateful-disks
. Flag --update-instance
(default) menerapkan perubahan secara langsung pada instance. Jika Anda menggunakan
--no-update-instance
, perubahan tetap tidak diterapkan dan
diterapkan
saat Anda membuat ulang atau mengupdate instance berikutnya.
gcloud compute instance-groups managed instance-configs update NAME \ --instance VM_NAME \ --remove-stateful-disks DEVICE_NAME[,DEVICE_NAME,...] \ [--no-update-instance | --update-instance] \ [--instance-update-minimal-action MINIMAL_ACTION]
Ganti kode berikut:
NAME
: Nama MIG.VM_NAME
: Nama VM yang akan menghapus konfigurasi stateful.DEVICE_NAME
: Nama perangkat yang digunakan untuk memasang disk.MINIMAL_ACTION
: Menjalankan setidaknya tindakan yang ditentukan saat mengupdate VM dengan konfigurasi per instance-nya. Hanya dapat digunakan bersama dengan--update-instance
. Nilainya harus berupa salah satu berikut ini:none
: Tidak ada tindakan.refresh
: Menerapkan update yang dapat diterapkan tanpa menghentikan VM.restart
: Menghentikan VM, lalu memulainya lagi.replace
: Membuat ulang VM.
Jika dihilangkan, tindakan yang paling tidak mengganggu yang diperlukan oleh update akan digunakan.
Contoh
Anda menjalankan aplikasi lama pada MIG bernama example-legacy-group
. Setiap VM di MIG menyimpan data aplikasi
di boot disk dengan nama perangkat, boot-disk
. Dengan menggunakan konfigurasi per instance,
Anda mengonfigurasi setiap boot disk menjadi stateful. Sekarang Anda telah memindahkan data
aplikasi ke disk tambahan, dan Anda ingin membuat boot disk stateless untuk
setiap VM guna memfasilitasi update ke gambar baru.
Untuk setiap instance, misalnya untuk node-1
, jalankan perintah:
gcloud compute instance-groups managed instance-configs update example-legacy-group \ --instance node-1 \ --remove-stateful-disks boot-disk \ --update-instance
Perintah tersebut melakukan hal berikut:
- Menghapus konfigurasi untuk disk dengan nama perangkat
boot-disk
dari konfigurasi per instance untuknode-1
. - Menerapkan update konfigurasi per instance ke VM
node-1
segera karena flag--update-instance
disertakan. MIG menghapus boot disk daripreservedStateFromConfig
instance terkelola dan memperlakukan boot disk sebagai stateless, yang berarti MIG akan membuat ulang disk dari boot image-nya di template instance pada peristiwa pembuatan ulang, pembaruan, atau autohealing instance berikutnya.
REST
Untuk melepaskan disk stateful atau mendeklarasikannya stateless satu per satu untuk VM di MIG, hapus konfigurasi disk stateful dari konfigurasi per instance yang terkait atau hapus keseluruhan konfigurasi per instance jika tidak berisi status lain. Kemudian, update instance untuk menerapkan konfigurasi.
Untuk menghapus konfigurasi disk stateful dari konfigurasi per instance
yang terkait, gunakan
metode instanceGroupManagers.patchPerInstanceConfigs
atau
regionInstanceGroupManagers.patchPerInstanceConfigs
:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/NAME/patchPerInstanceConfigs { "perInstanceConfigs": [ { "name": "VM_NAME", "preservedState" : { "disks": { "DEVICE_NAME" : null }, ... }, "fingerprint: "FINGERPRINT" ... } ] }
Ganti kode berikut:
PROJECT_ID
: Project ID untuk permintaan.ZONE
: Zona tempat MIG berada (berlaku untuk MIG zona).- Untuk MIG regional, ganti
zones/ZONE
denganregions/REGION
dan tentukan region MIG.
- Untuk MIG regional, ganti
NAME
: Nama MIG.VM_NAME
: Nama VM yang akan menjadi tempat untuk menghapus konfigurasi stateful.DEVICE_NAME
: Nama perangkat yang digunakan untuk memasang disk.FINGERPRINT
: Sidik jari untuk konfigurasi yang diberikan jika sudah ada. Digunakan untuk penguncian optimistis. Untuk melihat sidik jari terbaru, buat permintaanget()
untuk mengambil resource.
Metode patchPerInstanceConfigs
mem-patch konfigurasi per instance
yang ditentukan, tetapi tidak menerapkan perubahan pada VM terkait. Perubahan
tersebut diterapkan ke VM saat Anda membuat ulang atau mengupdate instance.
Anda dapat menerapkan perubahan secara manual atau menggunakan update berkelanjutan otomatis.
Contoh
Anda menjalankan aplikasi lama pada MIG yang bernama example-legacy-group
. Setiap
VM di MIG menyimpan data aplikasi di boot disk dengan nama
perangkat boot-disk
. Anda mengonfigurasi boot disk sebagai stateful dalam konfigurasi
per instance MIG saat memigrasikan VM mandiri ke MIG.
Anda telah memindahkan data aplikasi ke disk tambahan dan sekarang ingin menjadikan boot disk stateless untuk setiap VM guna memudahkan update ke image baru.
Panggil metode
patchPerInstanceConfigs
untuk instance, misalnya, untuknode-1
dengan nilainull
untuk boot disk:POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-east1-c/instanceGroupManagers/example-legacy-group/patchPerInstanceConfigs { "perInstanceConfigs": [ { "name": "node-1", "preservedState" : { "disks": { "boot-disk" : null } } } ] }
Metode ini menghapus konfigurasi untuk disk dengan nama perangkat
boot- disk
dari konfigurasi per instance untuknode-1
. Update konfigurasi belum diterapkan ke instance VMnode-1
. Update konfigurasi akan diterapkan pada pembuatan ulang atau update instance berikutnya.Untuk menerapkan update konfigurasi per instance ke instance VM
node-1
, panggil metodeinstanceGroupManagers.applyUpdatesToInstances
untuk instance tersebut:POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-east1-c/instanceGroupManagers/example-legacy-group/applyUpdatesToInstances { "instances": ["/zones/us-east1-c/instances/node-1"] }
MIG menghapus boot disk dari
preservedStateFromConfig
untuk instancenode-1
dan memperlakukan disk sebagai stateless. Artinya, MIG membuat ulang disk dari image bootingnya di template instance pada peristiwa pembuatan ulang, update, atau autohealing instance berikutnya.
Masukan
Kami ingin mempelajari kasus penggunaan, tantangan, dan masukan Anda tentang MIG stateful. Berikan masukan Anda kepada tim kami di mig-discuss@google.com.
Langkah selanjutnya
- Mengonfigurasi metadata stateful untuk VM di MIG.
- Pelajari cara menerapkan, melihat, dan menghapus konfigurasi stateful.
- Dapatkan info tentang MIG tertentu dan instance terkelolanya, termasuk status dan properti VM.
- Pelajari MIG dan cara menggunakan instance terkelola lebih lanjut.