Mengelola kegagalan untuk Persistent Disk regional


Persistent Disk Regional adalah opsi penyimpanan yang menyediakan replikasi data secara sinkron antara dua zona dalam satu region. Anda dapat menggunakan Persistent Disk regional sebagai elemen penyusun saat mengimplementasikan layanan ketersediaan tinggi (HA) di Compute Engine.

Dokumen ini menjelaskan berbagai skenario yang dapat mengganggu kerja volume Persistent Disk regional dan cara mengelola skenario ini.

Sebelum memulai

  • Tinjau dasar-dasar replikasi dan failover zona Persistent Disk regional. Untuk mengetahui informasi selengkapnya, lihat Tentang Persistent Disk regional.
  • 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:

    gcloud

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

      gcloud init
    2. Menetapkan region dan zona default.

    REST

    Untuk menggunakan contoh REST API di halaman ini dalam lingkungan pengembangan lokal, gunakan kredensial yang Anda berikan ke gcloud CLI.

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

      gcloud init

Skenario kegagalan

Dengan persistent disk regional, saat perangkat direplikasi sepenuhnya, data otomatis direplikasi ke dua zona dalam suatu region. Operasi tulis diakui kembali ke instance virtual machine (VM) jika dipertahankan secara permanen di kedua replika.

Jika replikasi ke satu zona gagal atau sangat lambat untuk sementara waktu, status replikasi disk akan berubah menjadi terdegradasi. Dalam mode ini, operasi tulis dikonfirmasi setelah dipertahankan secara permanen dalam satu replika.

Jika dan saat Compute Engine mendeteksi bahwa replikasi dapat dilanjutkan, data yang sebelumnya ditulis sejak perangkat memasuki status terdegradasi akan disinkronkan ke kedua zona dan disk akan kembali ke status yang direplikasi sepenuhnya. Transisi ini sepenuhnya otomatis.

RPO dan RTO tidak ditentukan saat perangkat dalam kondisi terdegradasi. Untuk meminimalkan hilangnya data dan/atau ketersediaan jika terjadi kegagalan disk yang beroperasi dalam kondisi menurun, sebaiknya cadangkan persistent disk regional secara rutin menggunakan snapshot standar. Anda dapat memulihkan disk dengan memulihkan snapshot.

Kegagalan zona

Volume Persistent Disk regional direplikasi secara sinkron ke replika disk di zona utama dan sekunder. Kegagalan zona terjadi saat replika zona nonaktif dan menjadi tidak tersedia. Kegagalan zona dapat terjadi di salah satu zona karena salah satu alasan berikut:

  • Terjadi pemadaman layanan di zona tertentu.
  • Replika mengalami kelambatan yang berlebihan dalam operasi tulis.

Tabel berikut memberikan berbagai skenario kegagalan zona yang mungkin Anda temui untuk Persistent Disk regional dan tindakan yang direkomendasikan untuk setiap skenario. Dalam setiap skenario ini, dianggap bahwa replika zona utama Anda siap dan disinkronkan selama status awal.

Status awal disk Kegagalan dalam Status baru disk Konsekuensi kegagalan Tindakan yang perlu dilakukan

Replika utama: Disinkronkan

Replika sekunder: Disinkronkan

Status disk: Direplikasi sepenuhnya

Disk terpasang di: zona utama

Zona utama

Replika utama: Tidak sinkron atau tidak tersedia

Replika sekunder: Disinkronkan

Status disk: Terdegradasi

Disk terpasang di: zona utama

  • Replika di zona sekunder tetap responsif dan memiliki data disk terbaru.
  • Replika di zona utama tidak responsif dan tidak dijamin memiliki semua data disk.
Failover disk dengan memasang paksa ke VM di zona sekunder yang responsif.

Replika utama: Disinkronkan

Replika sekunder: Disinkronkan

Status disk: Direplikasi sepenuhnya

Disk terpasang di: zona utama

Zona sekunder

Replika utama: Disinkronkan

Replika sekunder: Tidak sinkron atau tidak tersedia

Status disk: Terdegradasi

Disk terpasang di: zona utama

  • Replika di zona utama tetap responsif dan memiliki data disk terbaru.
  • Replika di zona sekunder tidak responsif dan tidak dijamin memiliki semua data disk.
Tidak diperlukan tindakan. Compute Engine menyatukan kembali replika yang tidak responsif di zona sekunder setelah tersedia kembali.

Replika utama: Disinkronkan

Replika sekunder: Tidak sinkron dan tidak tersedia

Status disk: Terdegradasi

Disk terpasang di: zona utama

Zona utama

Replika utama: Disinkronkan tetapi tidak tersedia

Replika sekunder: Tidak sinkron

Status disk: Tidak tersedia

Disk terpasang di: zona utama

  • Kedua replika zona tidak tersedia dan tidak dapat menyalurkan traffic. Disk menjadi tidak tersedia.
  • Jika pemadaman layanan di zona atau kegagalan replika bersifat sementara, tidak ada data yang hilang.
  • Jika pemadaman layanan di zona atau kegagalan replika bersifat permanen, semua data yang ditulis ke replika yang responsif saat disk mengalami degradasi akan hilang secara permanen.
Google merekomendasikan agar Anda menggunakan snapshot standar yang ada dan membuat disk baru untuk memulihkan data. Sebagai praktik terbaik, cadangkan volume Persistent Disk regional secara rutin menggunakan snapshot standar.

Replika utama: Disinkronkan

Replika sekunder: Menyimpan data, tetapi tersedia

Status disk: Sedang menunggu

Disk terpasang di: zona utama

Zona utama

Replika utama: Tidak tersedia

Replika sekunder: Menyimpan data, tetapi tersedia

Status disk: Tidak tersedia

Disk terpasang di: zona utama

  • Kedua replika zona tidak dapat menyalurkan traffic. Disk menjadi tidak tersedia.
  • Jika pemadaman layanan di zona atau kegagalan replika bersifat sementara, disk Anda akan melanjutkan operasi setelah replika utama tersedia lagi.
  • Jika pemadaman layanan zona atau kegagalan replika bersifat permanen, disk Anda tidak akan dapat digunakan.

Replika utama: Disinkronkan

Replika sekunder: Tidak sinkron tetapi tersedia

Status disk: Terdegradasi

Disk terpasang di: zona utama

Zona utama

Replika utama: Tidak tersedia

Replika sekunder: Tidak sinkron tetapi tersedia

Status disk: Tidak tersedia

Disk terpasang di: zona utama

  • Kedua replika zona tidak dapat menyalurkan traffic. Disk menjadi tidak tersedia.
  • Jika pemadaman layanan di zona atau kegagalan replika bersifat sementara, disk Anda akan melanjutkan operasi setelah replika utama tersedia kembali.
  • Jika pemadaman layanan di zona atau kegagalan replika bersifat permanen, disk Anda tidak akan dapat digunakan.

Kegagalan aplikasi dan VM

Jika terjadi pemadaman layanan yang disebabkan oleh kesalahan konfigurasi VM, upgrade OS yang gagal, atau kegagalan aplikasi lainnya, Anda dapat melakukan force-attach volume Persistent Disk regional ke instance VM di zona yang sama.

Kategori kegagalan dan (probabilitas) Jenis kegagalan Tindakan
Kegagalan aplikasi (Tinggi)
  • Aplikasi tidak responsif
  • Kegagalan akibat tindakan administratif aplikasi (misalnya, upgrade)
  • Error manusia (misalnya, kesalahan konfigurasi parameter seperti sertifikat SSL atau ACL)
Bidang kontrol aplikasi dapat memicu failover berdasarkan batas health check.
Kegagalan VM (Sedang)
  • Kegagalan infrastruktur atau hardware
  • VM tidak responsif karena pertentangan CPU, gangguan jaringan menengah
VM biasanya melakukan pemulihan otomatis. Bidang kontrol aplikasi dapat memicu failover berdasarkan batas health check.
Kerusakan aplikasi (Rendah-Sedang) Kerusakan data aplikasi
(misalnya, karena bug aplikasi atau upgrade OS yang gagal)
Pemulihan aplikasi:

Melakukan failover volume Persistent Disk regional Anda menggunakan force-attach

Jika zona utama gagal, Anda dapat mengganti volume Persistent Disk regional ke VM di zona lain dengan menggunakan operasi penambahan paksa. Jika terjadi kegagalan di zona utama, Anda mungkin tidak dapat melepaskan disk dari VM karena VM tidak dapat dijangkau untuk melakukan operasi pelepasan. Operasi penambahan paksa memungkinkan Anda menambahkan volume Persistent Disk regional ke VM meskipun volume tersebut terpasang ke VM lain. Setelah Anda menyelesaikan operasi force-attach, Compute Engine akan mencegah VM asli menulis ke volume Persistent Disk regional. Menggunakan operasi penambahan paksa akan memungkinkan Anda mendapatkan kembali akses ke data Anda dengan aman dan memulihkan layanan Anda. Anda juga memiliki opsi untuk menonaktifkan instance VM secara manual setelah melakukan operasi penambahan paksa.

Untuk memasang paksa disk yang ada ke VM, lakukan langkah-langkah berikut:

Konsol

  1. Buka halaman VM instances.

    Buka instance VM

  2. Pilih project Anda.

  3. Klik nama VM yang ingin diubah.

  4. Di halaman detail, klik Edit.

  5. Di bagian Additional disk, klik Attach Additional disk.

  6. Pilih volume Persistent Disk regional dari menu drop-down.

  7. Untuk memasang disk secara paksa, pilih kotak centang Force-attach disk.

  8. Klik Done, lalu klik Save.

Anda dapat melakukan langkah yang sama untuk melakukan force-attach pada disk ke VM asli setelah kegagalan diatasi.

gcloud

Di gcloud CLI, gunakan perintah instances attach-disk untuk memasang disk replika ke instance VM. Sertakan flag --disk-scope dan tetapkan ke regional.

gcloud compute instances attach-disk VM_NAME \
    --disk DISK_NAME --disk-scope regional \
    --force-attach

Ganti kode berikut:

  • VM_NAME: nama instance VM baru di region
  • DISK_NAME: nama disk

Setelah melakukan force-attach pada disk, pasang sistem file di disk, jika perlu. Instance VM dapat menggunakan disk yang dipasang secara paksa untuk melanjutkan operasi baca dan tulis.

REST

Buat permintaan POST ke metode compute.instances.attachDisk, dan sertakan URL ke volume Persistent Disk yang baru saja Anda buat. Untuk memasang disk ke instance VM baru, parameter kueri forceAttach=true diperlukan, meskipun instance VM utama masih memiliki disk.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/attachDisk?forceAttach=true

{
 "source": "projects/PROJECT_ID/regions/REGION/disks/DISK_NAME"
}

Ganti kode berikut:

  • PROJECT_ID: Project ID Anda.
  • ZONE: lokasi instance VM Anda
  • VM_NAME: nama instance VM tempat Anda menambahkan volume Persistent Disk baru
  • REGION: region tempat volume Persistent Disk regional baru Anda berada
  • DISK_NAME: nama disk baru

Setelah memasang disk replika, pasang sistem file pada disk jika perlu. Instance VM dapat menggunakan disk replika untuk melanjutkan operasi baca dan tulis.

Gunakan checkpoint pemulihan replika untuk memulihkan volume Persistent Disk regional yang mengalami penurunan

Checkpoint pemulihan replika merepresentasikan titik terakhir konsisten error dari volume Persistent Disk regional yang direplikasi sepenuhnya. Dengan Compute Engine, Anda dapat membuat snapshot standar dari checkpoint pemulihan replika untuk disk yang rusak.

Dalam skenario yang jarang terjadi, saat disk Anda mengalami penurunan performa, replika zona yang disinkronkan dengan data disk terbaru juga dapat gagal sebelum replika yang tidak sinkron juga dapat mengejar ketertinggalan tersebut. Anda tidak akan dapat memasang paksa disk ke VM di kedua zona tersebut. Volume Persistent Disk regional Anda menjadi tidak tersedia dan Anda harus memigrasikan data ke disk baru. Dalam skenario seperti ini, jika Anda tidak memiliki snapshot standar yang tersedia untuk disk, Anda mungkin masih dapat memulihkan data disk dari replika yang tidak lengkap menggunakan snapshot standar yang dibuat dari checkpoint pemulihan replika. Lihat Prosedur memigrasikan dan memulihkan data disk untuk langkah-langkah mendetail.

Peran yang diperlukan

Untuk mendapatkan izin yang Anda perlukan untuk memigrasikan data Persistent Disk regional menggunakan checkpoint pemulihan replika, minta administrator Anda untuk memberi Anda peran IAM berikut:

  • Untuk memigrasikan data Persistent Disk regional menggunakan checkpoint pemulihan replika: Admin Instance Compute (v1) (roles/compute.instanceAdmin.v1) di project

Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses.

Peran yang telah ditetapkan ini berisi izin yang diperlukan untuk memigrasikan data Persistent Disk regional menggunakan checkpoint pemulihan replika. Untuk melihat izin yang benar-benar diperlukan, perluas bagian Izin yang diperlukan:

Izin yang diperlukan

Izin berikut diperlukan untuk memigrasikan data Persistent Disk regional menggunakan checkpoint pemulihan replika:

  • Untuk membuat snapshot standar dari checkpoint pemulihan replika:
    • compute.snapshots.create pada project
    • compute.disks.createSnapshot pada disk
  • Untuk membuat Persistent Disk regional baru dari snapshot standar: compute.disks.create di project tempat Anda ingin membuat disk baru
  • Untuk memigrasikan VM ke disk baru:
    • compute.instances.attachDisk di instance VM
    • compute.disks.use permission pada disk yang baru dibuat

Anda mung juga bisa mendapatkan izin ini dengan peran khusus atau peran bawaanlainnya.

Prosedur memigrasikan dan memulihkan data disk

Untuk memulihkan dan memigrasikan data volume Persistent Disk regional menggunakan checkpoint pemulihan replika, lakukan langkah-langkah berikut:

  1. Buat snapshot standar volume Persistent Disk regional yang terpengaruh dari checkpoint pemulihan replika. Anda dapat membuat snapshot standar untuk disk dari checkpoint pemulihan replika hanya dengan menggunakan Google Cloud CLI atau REST.

    gcloud

    Untuk membuat snapshot menggunakan checkpoint pemulihan replika, gunakan perintah gcloud compute snapshots create . Sertakan tanda --source-disk-for-recovery-checkpoint untuk menentukan bahwa Anda ingin membuat snapshot menggunakan checkpoint pemulihan replika. Kecualikan parameter --source-disk dan --source-disk-region.

    gcloud compute snapshots create SNAPSHOT_NAME \
        --source-disk-for-recovery-checkpoint=SOURCE_DISK \
        --source-disk-for-recovery-checkpoint-region=SOURCE_REGION \
        --storage-location=STORAGE_LOCATION \
        --snapshot-type=SNAPSHOT_TYPE
    

    Ganti kode berikut:

    • DESTINATION_PROJECT_ID: ID project tempat Anda ingin membuat snapshot.
    • SNAPSHOT_NAME: Nama untuk snapshot.
    • SOURCE_DISK: Nama atau jalur lengkap disk sumber yang ingin Anda gunakan untuk membuat snapshot. Untuk menentukan jalur lengkap disk sumber, gunakan sintaksis berikut:
        projects/SOURCE_PROJECT_ID/regions/SOURCE_REGION/disks/SOURCE_DISK_NAME
        

      Jika menentukan jalur lengkap ke disk sumber, Anda dapat mengecualikan flag --source-disk-for-recovery-checkpoint-region. Jika Anda hanya menentukan nama disk, menyertakan flag ini.

      Untuk membuat snapshot dari checkpoint pemulihan disk sumber di project yang berbeda, Anda harus menentukan jalur lengkap ke disk sumber.

    • SOURCE_PROJECT_ID: Project ID disk sumber yang checkpoint-nya ingin Anda gunakan untuk membuat snapshot.
    • SOURCE_REGION: Region disk sumber yang checkpoint-nya ingin Anda gunakan untuk membuat snapshot.
    • SOURCE_DISK_NAME: Nama disk sumber yang checkpoint-nya ingin Anda gunakan untuk membuat snapshot.
    • STORAGE_LOCATION: Opsional: Cloud Storagemulti-region atau Cloud Storageregion tempat Anda ingin menyimpan snapshot. Anda hanya dapat menentukan satu lokasi penyimpanan.
      Gunakan tanda --storage-location hanya jika Anda ingin mengganti lokasi penyimpanan default yang telah ditentukan atau disesuaikan yang dikonfigurasi di setelan snapshot Anda.
    • SNAPSHOT_TYPE: Jenis snapshot, baik STANDARD atau ARCHIVE. Jika jenis snapshot tidak ditentukan, snapshot STANDARD akan dibuat.

    Anda dapat menggunakan checkpoint pemulihan replika untuk membuat snapshot hanya pada disk yang terdegradasi. Jika Anda mencoba membuat snapshot dari checkpoint pemulihan replika saat perangkat direplikasi sepenuhnya, Anda akan melihat pesan error berikut:

    The device is fully replicated and should not create snapshots out of a recovery checkpoint. Please
    create regular snapshots instead.
    

    REST

    Untuk membuat snapshot menggunakan checkpoint pemulihan replika, buat permintaan POST ke metode snapshots.insert. Kecualikan parameter sourceDisk dan sebagai gantinya, sertakan parameter sourceDiskForRecoveryCheckpoint untuk menentukan bahwa Anda ingin membuat snapshot menggunakan checkpoint tersebut.

    POST https://compute.googleapis.com/compute/v1/projects/DESTINATION_PROJECT_ID/global/snapshots
    
    {
      "name": "SNAPSHOT_NAME",
      "sourceDiskForRecoveryCheckpoint": "projects/SOURCE_PROJECT_ID/regions/SOURCE_REGION/disks/SOURCE_DISK_NAME",
      "storageLocations": "STORAGE_LOCATION",
      "snapshotType": "SNAPSHOT_TYPE"
    }
    

    Ganti kode berikut:

    • DESTINATION_PROJECT_ID: ID project tempat Anda ingin membuat snapshot.
    • SNAPSHOT_NAME: Nama untuk snapshot.
    • SOURCE_DISK: Nama atau jalur lengkap disk sumber yang ingin Anda gunakan untuk membuat snapshot. Untuk menentukan jalur lengkap disk sumber, gunakan sintaksis berikut:
        projects/SOURCE_PROJECT_ID/regions/SOURCE_REGION/disks/SOURCE_DISK_NAME
        

      Jika menentukan jalur lengkap ke disk sumber, Anda dapat mengecualikan flag --source-disk-for-recovery-checkpoint-region. Jika Anda hanya menentukan nama disk, menyertakan flag ini.

      Untuk membuat snapshot dari checkpoint pemulihan disk sumber di project yang berbeda, Anda harus menentukan jalur lengkap ke disk sumber.

    • SOURCE_PROJECT_ID: Project ID disk sumber yang checkpoint-nya ingin Anda gunakan untuk membuat snapshot.
    • SOURCE_REGION: Region disk sumber yang checkpoint-nya ingin Anda gunakan untuk membuat snapshot.
    • SOURCE_DISK_NAME: Nama disk sumber yang checkpoint-nya ingin Anda gunakan untuk membuat snapshot.
    • STORAGE_LOCATION: Opsional: Cloud Storagemulti-region atau Cloud Storageregion tempat Anda ingin menyimpan snapshot. Anda hanya dapat menentukan satu lokasi penyimpanan.
      Gunakan parameter storageLocations hanya jika Anda ingin mengganti lokasi penyimpanan default yang telah ditentukan atau disesuaikan yang dikonfigurasi di setelan snapshot Anda.
    • SNAPSHOT_TYPE: Jenis snapshot, baik STANDARD atau ARCHIVE. Jika jenis snapshot tidak ditentukan, snapshot STANDARD akan dibuat.

    Anda dapat menggunakan checkpoint pemulihan replika untuk membuat snapshot hanya pada disk yang terdegradasi. Jika Anda mencoba membuat snapshot dari checkpoint pemulihan replika saat perangkat direplikasi sepenuhnya, Anda akan melihat pesan error berikut:

    The device is fully replicated and should not create snapshots out of a recovery checkpoint. Please
    create regular snapshots instead.
    

  2. Buat volume Persistent Disk regional baru menggunakan snapshot ini. Saat membuat disk baru, Anda memulihkan semua data dari checkpoint pemulihan replika terbaru dengan memindahkan data ke disk baru. Untuk mengetahui langkah-langkah mendetail, lihat Membuat VM baru dengan boot disk Persistent Disk regional.

  3. Migrasikan semua beban kerja VM ke disk yang baru dibuat dan validasi bahwa beban kerja VM ini berjalan dengan benar. Untuk mengetahui informasi selengkapnya, lihat Memindahkan VM lintas zona atau region.

Setelah memulihkan serta memigrasikan data disk dan VM ke volume Persistent Disk regional yang baru dibuat, Anda dapat melanjutkan operasi.

Menentukan RPO yang disediakan oleh checkpoint pemulihan replika

Bagian ini menjelaskan cara menentukan RPO yang disediakan oleh checkpoint pemulihan replika terbaru untuk volume Persistent Disk regional.

Replika zona disinkronkan sepenuhnya

Compute Engine memperbarui checkpoint pemulihan replika untuk volume Persistent Disk regional Anda kira-kira setiap 10 menit. Akibatnya, saat replika zona Anda disinkronkan sepenuhnya, RPO akan berlangsung sekitar 10 menit.

Replika zona tidak sinkron

Anda tidak dapat melihat persisnya pembuatan dan pembaruan stempel waktu dari checkpoint pemulihan replika. Namun, Anda dapat memperkirakan perkiraan RPO yang disediakan oleh checkpoint terbaru menggunakan data berikut:

  • Stempel waktu terbaru dari status disk yang direplikasi sepenuhnya: Anda bisa mendapatkan informasi ini menggunakan data Cloud Monitoring Persistent Disk regional untuk metrik replica_state. Periksa data metrik replica_state untuk melihat replika yang tidak sinkron guna mengetahui kapan replika tidak sinkron. Saat Compute Engine memuat ulang checkpoint disk setiap 10 menit, refresh checkpoint terbaru mungkin memakan waktu sekitar 10 menit sebelum stempel waktu ini.
  • Stempel waktu operasi tulis terbaru: Anda bisa mendapatkan informasi ini menggunakan data Persistent Disk Cloud Monitoring untuk metrik write_ops_count. Periksa data metrik write_ops_count untuk menentukan operasi tulis terbaru untuk disk.

Setelah menentukan stempel waktu ini, gunakan formula berikut untuk menghitung perkiraan RPO yang diberikan oleh checkpoint pemulihan replika disk Anda. Jika nilai yang dihitung kurang dari nol, maka RPO secara efektif adalah nol.

Approximate RPO provided by the latest checkpoint = (Most recent write operation timestamp - (Most recent timestamp of the fully replicated disk state - 10 minutes))

Langkah selanjutnya