Mereplikasi volume secara asinkron

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.