Halaman ini menunjukkan cara menyiapkan dan melakukan replikasi asinkron volume penyimpanan blok yang terisolasi dari internet Google Distributed Cloud (GDC).
Replikasi asinkron digunakan untuk mereplikasi data dari satu zona GDC ke zona lainnya. Data yang direplikasi ini dapat digunakan dalam skenario failover jika data di zona sumber tidak tersedia. Perhatikan bahwa setelah failover dibuat, volume asli tidak dapat disiapkan untuk mereplikasi ke volume tujuan yang sama. Sebagai gantinya, hubungan replikasi baru harus dibuat.
Sebelum memulai
Untuk menggunakan replikasi blok asinkron, Operator Infrastruktur (IO) Anda harus terlebih dahulu menyiapkan infrastruktur penyimpanan antara dua zona tempat replikasi diperlukan. Secara khusus, mereka harus terlebih dahulu melihat cluster penyimpanan yang relevan dari setiap zona. Selanjutnya, mereka perlu melakukan peering pada virtual machine penyimpanan yang terkait dengan organisasi tempat penyimpanan blok disediakan.
Setelah itu, pastikan Anda memiliki peran volume-replication-admin-global
untuk mengelola resource VolumeReplicationRelationship. Jika API global tidak tersedia, peran app-volume-replication-admin
dapat digunakan untuk mengubah resource VolumeReplicationRelationshipReplica zonal secara langsung.
Menyiapkan replikasi
VolumeReplicationRelationship Custom Resource (CR) melayani API replikasi blok asinkron. CR ini ada di API pengelolaan global. Untuk mengaktifkan replikasi untuk perangkat blok tertentu, CR VolumeReplicationRelationship perlu dibuat di global management API:
apiVersion: storage.global.gdc.goog/v1
kind: VolumeReplicationRelationship
metadata:
name: my-pvc-repl
namespace: my-project
spec:
source:
pvc:
clusterRef: my-pvc-cluster
pvcRef: my-block-pvc
zoneRef: xx-xxxx-zone1
destination:
pvc:
clusterRef: my-pvc-cluster
zoneRef: xx-xxxx-zone2
Contoh ini mengasumsikan bahwa project bernama my-project
dibuat di organisasi bernama my-org
dan PVC bernama my-block-pvc
telah disediakan. clusterRef
adalah nama cluster tempat PVC berada.
Kolom source
dan destination
spesifikasi menunjukkan tempat data direplikasi dari dan ke. Dalam contoh ini, data direplikasi dari xx-xxxx-zone1
ke xx-xxxx-zone2
.
Periksa status hubungan replikasi dengan mengambil CR VolumeReplicationRelationship dari API global. Lihat contoh berikut. Perhatikan bahwa output telah dipotong untuk menyederhanakan:
apiVersion: storage.global.gdc.goog/v1
kind: VolumeReplicationRelationship
metadata:
name: my-pvc-repl
namespace: my-project
spec:
destination:
pvc:
clusterRef: my-pvc-cluster
zoneRef: xx-xxxx-zone2
source:
pvc:
clusterRef: my-pvc-cluster
pvcRef: my-block-pvc
zoneRef: xx-xxxx-zone1
status:
zones:
- name: xx-xxxx-zone1
replicaStatus:
message: SnapMirror relationship has been established. Please check the destination
zone for relationship state
replicationID: a096621e-f062-11ef-ad24-00a0b89f23fb
state: Established
- name: xx-xxxx-zone2
replicaStatus:
exportedSnapshotName: snapmirror.c34f8845-e8c0-11ef-ad24-00a0b89f23fb_2150007868.2025-02-21_150000
message: SnapMirror relationship has been successfully established
replicationID: a096621e-f062-11ef-ad24-00a0b89f23fb
state: Idle
Buat failover
Jika zona sumber tidak tersedia karena alasan apa pun, CR VolumeFailover dapat dibuat di bidang pengelolaan organisasi pada zona tujuan. Untuk organisasi v2, ini akan menjadi server API pengelolaan. Untuk organisasi v1, ini adalah cluster admin organisasi. Misalnya, jika VolumeReplicationRelationship dibuat yang menentukan xx-xxxx-zone2
sebagai zona tujuan dan PVC ada di organisasi my-org
, maka CR VolumeFailover dibuat di bidang pengelolaan my-org
di xx-xxxx-zone2
. Hal ini akan menghentikan hubungan replikasi antara kedua zona, dan memungkinkan PVC di zona tujuan dipasang oleh workload:
apiVersion: storage.gdc.goog/v1
kind: VolumeFailover
metadata:
name: my-pvc-failover
namespace: my-project
spec:
volumeReplicationRelationshipRef: my-pvc-repl
Setelah itu, failover yang berhasil akan tercermin dalam status CR:
apiVersion: storage.gdc.goog/v1
kind: VolumeFailover
metadata:
name: my-pvc-failover
namespace: my-project
spec:
volumeReplicationRelationshipRef: my-pvc-repl
status:
state: Completed
Setelah failover dibuat, my-pvc-repl
VolumeReplicationRelationship akan bertransisi ke status Broken Off
. PVC di xx-xxxx-zone2
kini dapat di-mount.
Pada tahap ini, VolumeReplicationRelationship akan terlihat mirip dengan contoh berikut. Sekali lagi, output ini telah dipotong agar lebih sederhana:
apiVersion: storage.global.gdc.goog/v1
kind: VolumeReplicationRelationship
metadata:
name: my-pvc-repl
namespace: my-project
spec:
destination:
pvc:
clusterRef: my-pvc-cluster
zoneRef: xx-xxxx-zone2
source:
pvc:
clusterRef: my-pvc-cluster
pvcRef: my-block-pvc
zoneRef: xx-xxxx-zone1
status:
zones:
- name: xx-xxxx-zone1
replicaStatus:
message: SnapMirror relationship has been broken off
replicationID: a096621e-f062-11ef-ad24-00a0b89f23fb
state: Broken Off
- name: xx-xxxx-zone2
replicaStatus:
exportedSnapshotName: snapmirror.c34f8845-e8c0-11ef-ad24-00a0b89f23fb_2150007868.2025-02-21_150000
message: SnapMirror relationship has been broken off
replicationID: a096621e-f062-11ef-ad24-00a0b89f23fb
state: Broken Off
Sekarang, VolumeReplicationRelationship dapat dihapus dengan aman karena ini adalah satu-satunya tindakan yang tersisa yang dapat dilakukan pada CR ini.
Mengubah ukuran volume
Jika volume sumber diubah ukurannya kapan saja, volume yang sesuai di zona tujuan, yang dibuat atas nama pengguna saat VolumeReplicationRelationship dibuat, juga harus diubah ukurannya agar sesuai.