Cette page explique comment configurer et effectuer la réplication asynchrone des volumes de stockage par blocs isolés Google Distributed Cloud (GDC).
La réplication asynchrone est utilisée pour répliquer les données d'une zone GDC vers une autre. Ces données répliquées peuvent être utilisées en cas de basculement si les données de la zone source ne sont pas disponibles. Notez qu'une fois le basculement créé, le volume d'origine ne peut pas être configuré pour être répliqué sur le même volume de destination. À la place, vous devez créer une relation de réplication.
Avant de commencer
Pour utiliser la réplication de blocs asynchrone, votre opérateur d'infrastructure (OI) doit d'abord configurer l'infrastructure de stockage entre les deux zones dans lesquelles la réplication est requise. Plus précisément, ils doivent d'abord appairer les clusters de stockage concernés de chaque zone. Il doit ensuite associer la machine virtuelle de stockage à l'organisation dans laquelle le stockage par blocs est provisionné.
Ensuite, assurez-vous de disposer du rôle volume-replication-admin-global
pour administrer la ressource VolumeReplicationRelationship. Si l'API globale n'est pas disponible, le rôle app-volume-replication-admin
peut être utilisé pour modifier directement la ressource VolumeReplicationRelationshipReplica zonale.
Configurer la réplication
La ressource personnalisée (CR) VolumeReplicationRelationship gère l'API de réplication de blocs asynchrone. Cette RS existe dans l'API de gestion globale. Pour activer la réplication d'un périphérique de bloc donné, vous devez créer un CR VolumeReplicationRelationship sur l'API de gestion globale :
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
Cet exemple suppose qu'un projet nommé my-project
est créé dans une organisation nommée my-org
et qu'un PVC nommé my-block-pvc
a déjà été provisionné. clusterRef
correspond au nom du cluster sur lequel existe le PVC.
Les champs source
et destination
de la spécification indiquent respectivement l'emplacement d'origine et de destination des données répliquées. Dans cet exemple, les données sont répliquées de xx-xxxx-zone1
vers xx-xxxx-zone2
.
Vérifiez l'état de la relation de réplication en récupérant le CR VolumeReplicationRelationship à partir de l'API globale. Consultez l'exemple suivant. Notez que la sortie a été tronquée pour simplifier :
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
Créer un basculement
Si la zone source n'est pas disponible pour une raison quelconque, un CR VolumeFailover peut être créé dans le plan de gestion de la zone de destination de l'organisation. Pour une organisation V2, il s'agit du serveur de l'API Management. Pour une organisation v1, il s'agit du cluster d'administrateur de l'organisation. Par exemple, si une relation VolumeReplicationRelationship a été créée et spécifie xx-xxxx-zone2
comme zone de destination et que le PVC existe dans l'organisation my-org
, le CR VolumeFailover est créé dans le plan de gestion my-org
dans xx-xxxx-zone2
. Cela rompt la relation de réplication entre les deux zones et permet à une charge de travail de monter le PVC dans la zone de destination :
apiVersion: storage.gdc.goog/v1
kind: VolumeFailover
metadata:
name: my-pvc-failover
namespace: my-project
spec:
volumeReplicationRelationshipRef: my-pvc-repl
Une fois le basculement réussi, l'état du CR est mis à jour :
apiVersion: storage.gdc.goog/v1
kind: VolumeFailover
metadata:
name: my-pvc-failover
namespace: my-project
spec:
volumeReplicationRelationshipRef: my-pvc-repl
status:
state: Completed
Une fois le basculement créé, la my-pvc-repl
VolumeReplicationRelationship passe à l'état Broken Off
. Le PVC dans xx-xxxx-zone2
peut désormais être monté.
À ce stade, VolumeReplicationRelationship ressemblera à l'exemple suivant. Encore une fois, cette sortie a été tronquée pour plus de simplicité :
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
Vous pouvez maintenant supprimer la VolumeReplicationRelationship, car il s'agit de la seule action restante pouvant être effectuée sur ce CR.
Redimensionner des volumes
Si le volume source est redimensionné à un moment donné, le volume correspondant dans la zone de destination, qui est créé pour l'utilisateur lorsqu'une relation VolumeReplicatioRelationship est créée, doit également être redimensionné pour correspondre.