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
-
Instal Google Cloud CLI, lalu initialize dengan menjalankan perintah berikut:
gcloud init
- 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 |
|
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 |
|
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 |
|
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 |
|
|
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 |
|
|
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) |
|
Bidang kontrol aplikasi dapat memicu failover berdasarkan batas health check. |
Kegagalan VM (Sedang) |
|
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
Buka halaman VM instances.
Pilih project Anda.
Klik nama VM yang ingin diubah.
Di halaman detail, klik Edit.
Di bagian Additional disk, klik Attach Additional disk.
Pilih volume Persistent Disk regional dari menu drop-down.
Untuk memasang disk secara paksa, pilih kotak centang Force-attach disk.
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 regionDISK_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 AndaVM_NAME
: nama instance VM tempat Anda menambahkan volume Persistent Disk baruREGION
: region tempat volume Persistent Disk regional baru Anda beradaDISK_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
-
compute.disks.createSnapshot
-
-
Untuk membuat Persistent Disk regional baru dari snapshot standar:
compute.disks.create
-
Untuk memigrasikan VM ke disk baru:
-
compute.instances.attachDisk
-
compute.disks.use permission
-
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:
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 metodesnapshots.insert
. Kecualikan parametersourceDisk
dan sebagai gantinya, sertakan parametersourceDiskForRecoveryCheckpoint
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 parameterstorageLocations
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.
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.
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 metrikreplica_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 metrikwrite_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
- Pelajari cara memantau status replika volume Persistent Disk regional.
- Pelajari cara menentukan status replikasi Persistent Disk regional.
- Pelajari cara membuat snapshot volume Persistent Disk regional.
- Pelajari cara membangun layanan ketersediaan tinggi menggunakan Persistent Disk regional.
- Pelajari cara membangun aplikasi web yang skalabel dan tangguh di Google Cloud.
- Tinjau panduan perencanaan pemulihan dari bencana.