Mengelola kegagalan untuk disk yang direplikasi secara sinkron


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

Dokumen ini menjelaskan berbagai skenario yang dapat mengganggu cara kerja disk yang direplikasi secara sinkron dan cara mengelola skenario ini.

Sebelum memulai

  • Tinjau dasar-dasar tentang disk yang direplikasi secara sinkron dan failover. Untuk mengetahui informasi selengkapnya, lihat Tentang replikasi disk sinkron.
  • Jika Anda belum melakukannya, siapkan autentikasi. Autentikasi adalah proses verifikasi identitas Anda untuk mengakses layanan dan API Google Cloud. Untuk menjalankan kode atau contoh dari lingkungan pengembangan lokal, Anda dapat mengautentikasi ke Compute Engine dengan memilih salah satu opsi berikut:

    Select the tab for how you plan to use the samples on this page:

    gcloud

    1. Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init
    2. Set a default region and zone.
    3. REST

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

        Install the Google Cloud CLI, then initialize it by running the following command:

        gcloud init

      Untuk informasi selengkapnya, lihat Melakukan autentikasi untuk menggunakan REST dalam dokumentasi autentikasi Google Cloud.

Peran yang diperlukan

Untuk mendapatkan izin yang diperlukan guna memigrasikan data disk yang direplikasi secara sinkron menggunakan checkpoint pemulihan replika, minta administrator untuk memberi Anda peran IAM berikut:

  • Untuk memigrasikan data disk yang direplikasi secara sinkron menggunakan titik pemeriksaan pemulihan replika: Compute Instance Admin (v1) (roles/compute.instanceAdmin.v1) di project
  • Untuk melihat metrik disk yang direplikasi (salah satu dari berikut):

Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.

Peran yang telah ditetapkan ini berisi izin yang diperlukan untuk memigrasikan data disk yang direplikasi secara sinkron menggunakan checkpoint pemulihan replika. Untuk melihat izin yang benar-benar diperlukan, luaskan bagian Izin yang diperlukan:

Izin yang diperlukan

Izin berikut diperlukan untuk memigrasikan data disk yang direplikasi secara sinkron menggunakan checkpoint pemulihan replika:

  • Untuk membuat snapshot standar dari titik pemeriksaan pemulihan replika:
    • compute.snapshots.create dalam project
    • compute.disks.createSnapshot pada disk
  • Untuk membuat disk baru yang direplikasi secara sinkron 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 mungkin juga bisa mendapatkan izin ini dengan peran khusus atau peran bawaan lainnya.

Skenario kegagalan

Dengan disk yang direplikasi secara sinkron, saat perangkat direplikasi sepenuhnya, data secara otomatis direplikasi ke dua zona dalam satu region. Penulisan akan dikonfirmasi kembali ke instance komputasi jika dipertahankan secara permanen di kedua replika.

Jika replikasi ke satu zona gagal atau sangat lambat untuk sementara waktu, status replikasi disk akan beralih ke degradasi. Dalam mode ini, penulisan dikonfirmasi setelah dipertahankan secara permanen dalam satu replika.

Jika dan saat Compute Engine mendeteksi bahwa replikasi dapat dilanjutkan, data yang ditulis ke satu replika setelah replika lainnya memasuki status menurun akan disinkronkan ke kedua zona dan disk akan kembali ke status direplikasi sepenuhnya. Transisi ini sepenuhnya otomatis.

RPO dan RTO tidak ditentukan saat perangkat dalam status yang menurun. Untuk meminimalkan hilangnya data dan ketersediaan jika terjadi kegagalan disk yang beroperasi dalam status yang menurun, sebaiknya cadangkan disk yang direplikasi secara sinkron secara rutin menggunakan snapshot standar. Anda dapat memulihkan disk dengan memulihkan snapshot.

Kegagalan zona

Disk yang direplikasi, atau disk regional, direplikasi secara sinkron ke replika disk di zona utama dan sekunder. Kegagalan zona terjadi saat replika zona tidak tersedia. Kegagalan zonal dapat terjadi di zona utama atau sekunder karena salah satu alasan berikut:

  • Ada pemadaman zonal.
  • Replika mengalami kelambatan yang berlebihan dalam operasi tulis.

Tabel berikut memberikan berbagai skenario kegagalan zona yang mungkin Anda hadapi untuk disk yang direplikasi secara sinkron dan tindakan yang direkomendasikan untuk setiap skenario. Dalam setiap skenario ini, diasumsikan bahwa replika zona primer Anda responsif dan disinkronkan selama status awal.

Status awal disk Kegagalan di Status disk baru Konsekuensi kegagalan Tindakan yang perlu diambil

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: Degraded

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.
Lakukan failover disk dengan memasangnya secara 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: Degraded

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 akan menyinkronkan kembali replika yang tidak responsif di zona sekunder setelah tersedia lagi.

Replika utama: Disinkronkan

Replika sekunder: Tidak sinkron dan tidak tersedia

Status disk: Degraded

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 tidak tersedia.
  • Jika pemadaman zona atau kegagalan replika bersifat sementara, tidak ada data yang hilang.
  • Jika pemadaman zona atau kegagalan replika bersifat permanen, data apa pun 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 disk yang direplikasi secara rutin menggunakan snapshot standar.

Replika utama: Disinkronkan

Replika sekunder: Sedang mengejar ketinggalan, tetapi tersedia

Status disk: Menunggu proses selesai

Disk terpasang di: zona utama

Zona utama

Replika utama: Tidak tersedia

Replika sekunder: Sedang mengejar ketinggalan, 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 zona atau kegagalan replika bersifat sementara, disk Anda akan melanjutkan operasi setelah replika utama tersedia lagi.
  • Jika pemadaman zona atau kegagalan replika bersifat permanen, disk Anda tidak dapat digunakan.

Replika utama: Disinkronkan

Replika sekunder: Tidak sinkron, tetapi tersedia

Status disk: Degraded

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 tidak tersedia.
  • Jika pemadaman layanan zona atau kegagalan replika bersifat sementara, disk Anda akan melanjutkan operasi setelah replika utama tersedia kembali.
  • Jika pemadaman zona atau kegagalan replika bersifat permanen, disk Anda tidak 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 pada disk replika ke instance komputasi di zona yang sama dengan replika yang responsif.

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

Melakukan failover disk yang direplikasi menggunakan force-attach

Jika zona utama gagal, Anda dapat melakukan failover Persistent Disk Regional atau volume Hyperdisk Balanced High Availability (Pratinjau) ke instance compute di zona lain menggunakan operasi penambahan paksa.

Jika terjadi kegagalan di zona utama, Anda mungkin tidak dapat melepaskan disk dari instance karena instance tidak dapat dijangkau untuk melakukan operasi pelepasan. Pemasangan paksa memungkinkan Anda memasang volumePersistent Disk Regional atau Hyperdisk Balanced High Availability ke instance komputasi meskipun volume tersebut terpasang ke instance lain.

Setelah Anda menyelesaikan operasi force-attach, Compute Engine akan mencegah instance asli menulis ke disk yang direplikasi. Dengan menggunakan operasi force-attach, Anda dapat memperoleh kembali akses ke data dan memulihkan layanan dengan aman. Anda juga memiliki opsi untuk mematikan instance VM secara manual setelah melakukan operasi paksa-lampirkan.

Untuk memasang paksa disk yang ada ke instance komputasi, pilih salah satu tugas berikut:

Konsol

  1. Buka halaman VM instances.

    Buka instance VM

  2. Pilih project Anda.

  3. Klik nama instance yang ingin diubah.

  4. Di halaman detail, klik Edit.

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

  6. Pilih disk regional yang direplikasi dari menu drop-down.

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

  8. Klik Selesai, lalu klik Simpan.

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

gcloud

Di gcloud CLI, gunakan perintah instances attach-disk untuk memasang disk replika ke instance Compute. 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 komputasi baru di region
  • DISK_NAME: nama disk yang direplikasi

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

REST

Buat permintaan POST ke metode compute.instances.attachDisk, dan sertakan URL ke disk yang direplikasi yang baru saja Anda buat. Untuk memasang disk ke instance komputasi baru, parameter kueri forceAttach=true diperlukan jika instance komputasi utama masih memiliki disk yang terpasang.

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 komputasi Anda
  • VM_NAME: nama instance komputasi tempat Anda menambahkan disk yang direplikasi
  • REGION: region tempat disk replika Anda berada
  • DISK_NAME: nama disk yang direplikasi

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

Melakukan failover disk booting ke instance sekunder

Anda hanya dapat memiliki satu disk booting yang terpasang ke instance komputasi. Jika gagal mengakses disk booting yang direplikasi, gunakan salah satu metode berikut, bergantung pada apakah instance komputasi sekunder sudah ada:

Menggunakan checkpoint pemulihan replika untuk memulihkan disk yang direplikasi

Titik pemeriksaan pemulihan replika mewakili titik waktu konsisten error terbaru dari volumePersistent Disk Regional atau Hyperdisk Balanced High Availability (Pratinjau) yang direplikasi sepenuhnya. Compute Engine memungkinkan Anda membuat snapshot standar dari titik pemeriksaan pemulihan replika untuk disk regional yang mengalami degradasi.

Dalam skenario yang jarang terjadi, saat disk Anda mengalami degradasi, replika zona yang disinkronkan dengan data disk terbaru juga dapat gagal sebelum replika yang tidak sinkron dapat mengejar. Anda tidak akan dapat memaksa pemasangan disk ke instance komputasi di salah satu zona. Disk yang direplikasi tidak akan tersedia lagi dan Anda harus memigrasikan data ke disk baru. Dalam skenario tersebut, jika 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 titik pemeriksaan pemulihan replika. Lihat Prosedur untuk memigrasikan dan memulihkan data disk untuk mengetahui langkah-langkah mendetail.

Prosedur untuk memigrasikan dan memulihkan data disk

Untuk memulihkan dan memigrasikan data disk yang direplikasi menggunakan titik pemeriksaan pemulihan replika, lakukan langkah-langkah berikut:

  1. Buat snapshot standar dari volumePersistent Disk Regional atau Hyperdisk Balanced High Availability (Pratinjau) yang terpengaruh dari checkpoint pemulihan replikanya.

    Anda dapat membuat snapshot standar untuk disk dari checkpoint pemulihan replikanya hanya menggunakan gcloud CLI atau REST.

    gcloud

    Untuk membuat snapshot menggunakan checkpoint pemulihan replika, gunakan perintah gcloud compute snapshots create . Sertakan flag --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, Anda harus menyertakan flag ini.

      Untuk membuat snapshot dari titik pemeriksaan 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: Multi-region Cloud Storage atau region Cloud Storage tempat Anda ingin menyimpan snapshot. Anda hanya dapat menentukan satu lokasi penyimpanan.
      Gunakan flag --storage-location hanya jika Anda ingin mengganti lokasi penyimpanan default bawaan 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 di disk yang mengalami degradasi. 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 sertakan parameter sourceDiskForRecoveryCheckpoint untuk menentukan bahwa Anda ingin membuat snapshot menggunakan checkpoint.

    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, Anda harus menyertakan flag ini.

      Untuk membuat snapshot dari titik pemeriksaan 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: Multi-region Cloud Storage atau region Cloud Storage 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 sebelumnya 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 di disk yang mengalami degradasi. 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 Persistent Disk Regional atau disk Hyperdisk Balanced High Availability baru menggunakan snapshot ini. Saat membuat disk baru, Anda akan memulihkan semua data dari titik pemeriksaan pemulihan replika terbaru dengan memulihkan data ke disk baru dari snapshot. Untuk mengetahui langkah-langkah mendetail, lihat Membuat VM baru dengan disk booting yang direplikasi.

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

Setelah memulihkan dan memigrasikan data disk dan VM ke Persistent Disk Regional atau disk Hyperdisk Balanced High Availability 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 dari volume Persistent Disk Regional atau Hyperdisk Balanced High Availability (Pratinjau).

Replika zona disinkronkan sepenuhnya

Compute Engine memperbarui titik pemeriksaan pemulihan replika dari Persistent Disk Regional atau volumeHyperdisk Balanced High Availability Anda kira-kira setiap 10 menit. Akibatnya, saat replika zona Anda disinkronkan sepenuhnya, RPO-nya adalah sekitar 10 menit.

Replika zona tidak sinkron

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

  • Stempel waktu terbaru dari status disk yang direplikasi sepenuhnya: Anda bisa mendapatkan informasi ini dengan menggunakan data Cloud Monitoring untuk metrik replica_state disk yang direplikasi. Periksa data metrik replica_state untuk replika yang tidak sinkron guna menentukan kapan replika tidak lagi sinkron. Karena Compute Engine memuat ulang titik pemeriksaan disk setiap 10 menit, pemuatan ulang titik pemeriksaan terbaru mungkin terjadi sekitar 10 menit sebelum stempel waktu ini.
  • Stempel waktu operasi tulis terbaru: Anda bisa mendapatkan informasi ini dengan menggunakan data Cloud Monitoring untuk metrik write_ops_count dari disk yang direplikasi. Periksa data metrik write_ops_count untuk menentukan operasi tulis terbaru untuk disk.

Setelah Anda 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, RPO secara efektif 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