Identifier et réessayer les opérations de réplication StorageGRID ayant échoué
Après avoir résolu l'alerte « Échec permanent de la réplication inter-grilles », vous devez déterminer si des objets ou des marqueurs de suppression n'ont pas pu être répliqués vers l'autre grille. Vous pouvez ensuite réingérer ces objets ou utiliser l'API de gestion Grid Management pour réessayer la réplication.
L'alerte Échec permanent de la réplication inter-grilles indique que les objets locataires ne peuvent pas être répliqués entre les compartiments de deux grilles pour une raison nécessitant l'intervention de l'utilisateur. Cette alerte est généralement causée par une modification du compartiment source ou du compartiment de destination. Pour plus de détails, consultez "Dépanner les erreurs de fédération de grille".
Déterminez si des objets ont échoué à être répliqués
Pour déterminer si des objets ou des marqueurs de suppression n'ont pas été répliqués sur l'autre grille, vous pouvez rechercher dans le journal des audits les messages "CGRR (Demande de réplication inter-grilles)". Ce message est ajouté au journal lorsque StorageGRID ne parvient pas à répliquer un objet, un objet multipart ou un marqueur de suppression vers le compartiment de destination.
Vous pouvez utiliser le "outil audit-explain" pour traduire les résultats dans un format plus facile à lire.
-
Vous disposez des droits d'accès root.
-
Vous avez le
Passwords.txtfichier. -
Vous connaissez l'adresse IP du nœud d'administration principal.
-
Connectez-vous au nœud d'administration principal :
-
Saisissez la commande suivante :
ssh admin@primary_Admin_Node_IP -
Saisissez le mot de passe indiqué dans le fichier
Passwords.txt. -
Saisissez la commande suivante pour passer en mode superutilisateur :
su - -
Saisissez le mot de passe indiqué dans le fichier
Passwords.txt.Lorsque vous êtes connecté en tant que root, l'invite passe de
$à#.
-
-
Recherchez les messages CGRR dans le journal des audits audit.log et utilisez l'outil audit-explain pour formater les résultats.
Par exemple, cette commande recherche tous les messages CGRR des 30 dernières minutes et utilise l'outil audit-explain.
# awk -vdate=$(date -d "30 minutes ago" '+%Y-%m-%dT%H:%M:%S') '$1$2 >= date { print }' audit.log | grep CGRR | audit-explainLes résultats de la commande ressembleront à cet exemple, qui contient les entrées de six messages CGRR. Dans l'exemple, toutes les requêtes de réplication inter-grilles ont renvoyé une erreur générale, car l'objet n'a pas pu être répliqué. Les trois premières erreurs concernent des opérations de « replicate object », et les trois dernières erreurs concernent des opérations de « replicate delete marker ».
CGRR Cross-Grid Replication Request tenant:50736445269627437748 connection:447896B6-6F9C-4FB2-95EA-AEBF93A774E9 operation:"replicate object" bucket:bucket123 object:"audit-0" version:QjRBNDIzODAtNjQ3My0xMUVELTg2QjEtODJBMjAwQkI3NEM4 error:general error CGRR Cross-Grid Replication Request tenant:50736445269627437748 connection:447896B6-6F9C-4FB2-95EA-AEBF93A774E9 operation:"replicate object" bucket:bucket123 object:"audit-3" version:QjRDOTRCOUMtNjQ3My0xMUVELTkzM0YtOTg1MTAwQkI3NEM4 error:general error CGRR Cross-Grid Replication Request tenant:50736445269627437748 connection:447896B6-6F9C-4FB2-95EA-AEBF93A774E9 operation:"replicate delete marker" bucket:bucket123 object:"audit-1" version:NUQ0OEYxMDAtNjQ3NC0xMUVELTg2NjMtOTY5NzAwQkI3NEM4 error:general error CGRR Cross-Grid Replication Request tenant:50736445269627437748 connection:447896B6-6F9C-4FB2-95EA-AEBF93A774E9 operation:"replicate delete marker" bucket:bucket123 object:"audit-5" version:NUQ1ODUwQkUtNjQ3NC0xMUVELTg1NTItRDkwNzAwQkI3NEM4 error:general error
Chaque entrée contient les informations suivantes :
Champ Description Demande de réplication inter-grilles CGRR
Le nom de la demande
locataire
L'identifiant du compte du locataire
connexion
L'identifiant de la connexion de la fédération de grille
opération
Le type d'opération de réplication qui était en cours de tentative :
-
répliquer l'objet
-
répliquer le marqueur de suppression
-
répliquer un objet multipart
bucket
Le nom du compartiment
objet
Le nom de l'objet
version
L'identifiant de version de l'objet
erreur
Type d'erreur. En cas d'échec de la réplication inter-grilles, l'erreur est « Erreur générale ».
-
Réessayer les réplications ayant échoué
Après avoir généré une liste des objets et des marqueurs de suppression qui n'ont pas été répliqués dans le compartiment de destination et résolu les problèmes sous-jacents, vous pouvez réessayer la réplication de deux manières :
-
Réingérez chaque objet dans le compartiment source.
-
Utilisez l'API privée de gestion de la grille, comme décrit.
-
En haut du Grid Manager, sélectionnez l'icône d'aide et sélectionnez API documentation.
-
Sélectionnez Accéder à la documentation de l’API privée.
Les points de terminaison de l'API StorageGRID marqués « Privé » sont susceptibles d'être modifiés sans préavis. Les points de terminaison privés de StorageGRID ignorent également la version de l'API de la requête. -
Dans la section cross-grid-replication-advanced, sélectionnez l’endpoint suivant :
POST /private/cross-grid-replication-retry-failed -
Sélectionnez Try it out.
-
Dans la zone de texte corps, remplacez l'exemple d'entrée pour versionID par un ID de version du journal des audits qui correspond à une requête de réplication inter-grille ayant échoué.
Veillez à conserver les guillemets doubles autour de la chaîne de caractères.
-
Sélectionnez Exécuter.
-
Vérifiez que le code de réponse du serveur est 204, ce qui indique que l'objet ou le marqueur de suppression a été marqué comme en attente de réplication inter-grille vers l'autre grille.
« En attente » signifie que la demande de réplication inter-grille a été ajoutée à la file d'attente interne pour traitement.
Surveillez les tentatives de réplication
Vous devez surveiller les opérations de nouvelle tentative de réplication pour vous assurer qu'elles aboutissent.
|
|
La réplication d'un objet ou d'un marqueur de suppression vers l'autre grille peut prendre plusieurs heures ou plus. |
Vous pouvez surveiller les opérations de nouvelle tentative de deux manières :
-
Utilisez une requête S3 "HeadObject" ou "GetObject". La réponse inclut l’en-tête de réponse spécifique à StorageGRID
x-ntap-sg-cgr-replication-status, qui aura l’une des valeurs suivantes :Grid État de la réplication Source
-
TERMINÉ : La réplication a réussi.
-
EN ATTENTE : L’objet n’a pas encore été répliqué.
-
ÉCHEC : La réplication a échoué de manière permanente. Un utilisateur doit résoudre l’erreur.
Destination
REPLICA : L’objet a été répliqué à partir de la grille source.
-
-
Utilisez l'API privée de gestion de la grille, comme décrit.
-
Dans la section cross-grid-replication-advanced de la documentation de l'API privée, sélectionnez le point de terminaison suivant :
GET /private/cross-grid-replication-object-status/{id} -
Sélectionnez Try it out.
-
Dans la section Paramètres, saisissez l’identifiant de version que vous avez utilisé dans la
cross-grid-replication-retry-faileddemande. -
Sélectionnez Exécuter.
-
Vérifiez que le code de réponse du serveur est 200.
-
Vérifiez l'état de la réplication, qui sera l'un des suivants :
-
EN ATTENTE : L’objet n’a pas encore été répliqué.
-
TERMINÉ : La réplication a réussi.
-
ÉCHEC : La réplication a échoué de manière permanente. Un utilisateur doit résoudre l’erreur.
-