Mengonfigurasi persistent disk stateful di MIG


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

    1. Instal Google Cloud CLI, lalu initialize dengan menjalankan perintah berikut:

      gcloud init
    2. 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.

    1. Menginstal Google Cloud CLI.
    2. Untuk initialize gcloud CLI, jalankan perintah berikut:

      gcloud init
    3. 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 statefulMIG 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

  1. Di Konsol Google Cloud, buka halaman Instance groups.

    Buka Instance groups

  2. Pilih project Anda lalu klik Continue.

  3. Klik Create grup instance.

  4. Pilih New managed instance group (stateful).

  5. Tentukan Name untuk grup instance.

  6. Pilih sebuah Instance template. Jika tidak ada template yang tersedia, buat template instance.

  7. Di bagian Number of instances, tentukan jumlah instance untuk grup instance.

  8. Bagian Stateful configuration menampilkan disk yang ditentukan dalam template instance. Klik disk untuk mengedit konfigurasi stateful-nya.

    1. Di bagian Stateful, pilih Ya.
    2. 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.
    3. Setelah Anda menyelesaikan konfigurasi stateful, klik Done.

  9. 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:

  1. 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:

    1. Memuat disk baru sebesar 10 GB untuk setiap instance VM dari image ext4 kosong yang disiapkan sebelumnya.
    2. Instal disk ke VM-nya dalam mode baca/tulis menggunakan nama perangkat data-disk.
  2. 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.

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

resource "google_compute_instance_group_manager" "default" {
  name               = "example-database-group"
  base_instance_name = "shard"
  target_size        = 12
  zone               = "us-central1-f"
  version {
    instance_template = google_compute_instance_template.default.id
    name              = "primary"
  }
  stateful_disk {
    device_name = "data-disk"
    delete_rule = "ON_PERMANENT_INSTANCE_DELETION"
  }
}

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 dengan regions/REGION dan tentukan region MIG.
  • 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:

  1. Membuat template instance dengan boot disk stateless berdasarkan imageimg-example-db-v01, dengan OS dan database yang sudah diinstal sebelumnya, dan dengan disk data stateful, menggunakan instanceTemplates.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.

  2. 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.
  3. Gunakan metode instanceGroupManagers.get untuk memverifikasi bahwa disk data dikonfigurasi dalam kebijakan stateful pada resource instanceGroupManagers 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

  1. Di Konsol Google Cloud, buka halaman Instance groups.

    Buka Instance groups

  2. Klik nama grup instance tempat Anda ingin menetapkan konfigurasi stateful untuk disk.

  3. Klik Edit untuk mengubah grup instance terkelola.

  4. Di bagian Stateful configuration, luaskan disk yang ingin Anda buat stateful.

    1. Di bagian Stateful, pilih Ya.
    2. 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.

    3. Setelah Anda memperbarui konfigurasi stateful, klik Done.

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

  1. 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 ke never.

  2. 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 dengan regions/REGION dan tentukan region MIG.
  • 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.

  1. 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 ke NEVER.

  2. Pastikan disk data dikonfigurasi dalam kebijakan stateful dengan melihat resource instanceGroupManagers, yang ditampilkan oleh metode instanceGroupManagers.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

  1. Di Konsol Google Cloud, buka halaman Instance groups.

    Buka Instance groups

  2. Klik nama grup instance tempat Anda ingin menghapus konfigurasi stateful untuk disk.

  3. Klik Edit untuk mengubah grup instance terkelola.

  4. Di bagian Stateful configuration, luaskan disk stateful yang ingin Anda buat menjadi stateless.

    1. Ubah opsi Stateful menjadi No.
    2. Klik Done.
  5. 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 dengan regions/REGION dan tentukan region MIG.
  • NAME: Nama MIG yang akan diupdate.
  • DEVICE_NAME: Nama perangkat disk yang ingin Anda hapus dari kebijakan stateful. Memberikan nilai null 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:

  1. Hapus konfigurasi stateful disk dari kebijakan stateful. Hal ini membuat disk dengan nama perangkat yang diberikan menjadi stateless.
  2. Lepaskan disk dari VM jika Anda masih ingin menyimpannya.
  3. 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:

  1. Buat template instance dengan konfigurasi umum untuk semua instance VM.
  2. Lepaskan disk data dari instance mandiri dan hapus instance ini. Anda juga dapat melepaskan boot disk jika berisi status yang harus dipertahankan.
  3. Buat MIG kosong menggunakan template instance yang dibuat sebelumnya.
  4. Buat instance di MIG dengan nama yang sesuai dan disk terkait dari langkah sebelumnya. MIG akan merespons permintaan Anda dengan tindakan berikut:

    1. 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.
    2. Membuat konfigurasi per instance dengan konfigurasi stateful yang disediakan untuk disk.
    3. Memasang disk ke instance baru.

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 bawah DEVICE_NAME yang ditentukan dalam format projects/project-id/zones/zone/disks/disk-name untuk disk zona dan projects/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:

  1. Hentikan VM, db-instance, selama masa pemeliharaan.
  2. Buat template instance bernama db-template menggunakan konfigurasi db-instance.
  3. Lepaskan db-data-disk-1 dari db-instance dan hapus db-instance.
  4. Buat MIG kosong, example-database-mig, dari db-template, dan konfigurasi autohealing.
  5. Buat instance terkelola dengan nama db-instance asli dan tambahkan db-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 stateful db-data-disk-1, dan memasang disk ke VM baru, menggunakan data-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 dengan regions/REGION dan tentukan region MIG.
  • 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 bawah DEVICE_NAME yang ditentukan dalam format projects/project-id/zones/zone/disks/disk-name untuk disk zonal atau projects/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:

  1. Hentikan VM, db-instance, selama masa pemeliharaan.
  2. Buat template instance bernama db-template menggunakan konfigurasi db-instance.
  3. Lepaskan db-data-disk-1 dari db-instance, dan hapus db-instance.
  4. Buat MIG kosong, example-database-mig, dari db-template, dan konfigurasi autohealing.
  5. Buat instance dengan nama asli db-instance, dan lampirkan db-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 stateful db-data-disk-1, dan memasang disk ke instance baru, dengan menggunakan data-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 bawah DEVICE_NAME yang ditentukan, dalam format projects/project-id/zones/zone/disks/disk-name untuk disk zonal dan projects/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 menentukan mode jika Anda juga menentukan source. 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:

  1. Mengupdate konfigurasi per instance untuk db-instance-1:
    1. Mengupdate sumber disk dengan nama perangkat data-disk dari data-disk-1 (konfigurasi terakhir) menjadi data-disk-2 (konfigurasi baru).
    2. Mempertahankan aturan hapus otomatis agar tidak pernah menghapus disk karena parameter auto-delete dihilangkan dalam flag --stateful-disk dan, secara default, aturan hapus adalah never.
  2. Menerapkan update konfigurasi per instance ke VM db-instance-1 segera karena flag --update-instance disertakan. MIG melepaskan data-disk-1 dan melampirkan data-disk-2 dengan nama perangkat yang sama, data-disk.
  3. Karena tindakan minimal disetel ke restart, MIG akan memulai ulang instance db-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.

resource "google_compute_per_instance_config" "default" {
  instance_group_manager = google_compute_instance_group_manager.default.name
  zone                   = google_compute_instance_group_manager.default.zone
  name                   = "db-instance"
  preserved_state {
    disk {
      device_name = "data-disk"
      source      = google_compute_disk.default.id
      delete_rule = "NEVER"
    }
  }
}

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 dengan regions/REGION dan tentukan region MIG.
  • 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 bawah DEVICE_NAME yang ditentukan, dalam format projects/project-id/zones/zone/disks/disk-name untuk disk zonal dan projects/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 jika source 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 permintaan get() 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:

  1. Mengupdate source untuk disk dengan nama perangkat data-disk dari data-disk-1 (konfigurasi terakhir) menjadi data-disk-2 (konfigurasi baru).
  2. Mempertahankan parameter mode dan autoDelete 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:

  1. Menghapus konfigurasi untuk disk dengan nama perangkat boot-disk dari konfigurasi per instance untuk node-1.
  2. Menerapkan update konfigurasi per instance ke VM node-1 segera karena flag --update-instance disertakan. MIG menghapus boot disk dari preservedStateFromConfig 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 dengan regions/REGION dan tentukan region MIG.
  • 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 permintaan get() 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.

  1. Panggil metode patchPerInstanceConfigs untuk instance, misalnya, untuk node-1 dengan nilai null 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 untuk node-1. Update konfigurasi belum diterapkan ke instance VM node-1. Update konfigurasi akan diterapkan pada pembuatan ulang atau update instance berikutnya.

  2. Untuk menerapkan update konfigurasi per instance ke instance VM node-1, panggil metode instanceGroupManagers.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 instance node-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