Identificare e riprovare le operazioni di replica di StorageGRID non riuscite
Dopo aver risolto l'avviso Errore permanente di replica tra griglie, dovresti verificare se alcuni oggetti o marcatori di eliminazione non sono stati replicati nell'altra griglia. Puoi quindi reinserire questi oggetti o usare la Grid Management API per riprovare la replica.
L'avviso Errore permanente di replica tra griglie indica che gli oggetti tenant non possono essere replicati tra i bucket su due griglie per un motivo che richiede l'intervento dell'utente per essere risolto. Questo avviso è in genere causato da una modifica al bucket di origine o di destinazione. Per ulteriori dettagli, vedi "Risolvi i problemi relativi agli errori di federazione della griglia".
Verifica se qualche oggetto non è stato replicato
Per determinare se alcuni oggetti o indicatori di eliminazione non sono stati replicati all'altra griglia, puoi cercare i messaggi "CGRR (Richiesta di replica tra griglie)" nel registro di controllo. Questo messaggio viene aggiunto al registro quando StorageGRID non riesce a replicare un oggetto, un oggetto multipart o un indicatore di eliminazione nel bucket di destinazione.
Puoi usare lo "strumento audit-explain" per tradurre i risultati in un formato più facile da leggere.
-
Hai il permesso di accesso root.
-
Hai il file
Passwords.txt. -
Conosci l'indirizzo IP del nodo Admin primario.
-
Accedi al nodo amministratore principale:
-
Inserisci il seguente comando:
ssh admin@primary_Admin_Node_IP -
Inserisci la password indicata nel file
Passwords.txt. -
Inserisci il seguente comando per passare all'utente root:
su - -
Inserisci la password indicata nel file
Passwords.txt.Quando sei connesso come root, il prompt cambia da
$a#.
-
-
Cerca i messaggi CGRR nel file audit.log e usa lo strumento audit-explain per formattare i risultati.
Ad esempio, questo comando cerca tutti i messaggi CGRR degli ultimi 30 minuti e utilizza lo strumento audit-explain.
# awk -vdate=$(date -d "30 minutes ago" '+%Y-%m-%dT%H:%M:%S') '$1$2 >= date { print }' audit.log | grep CGRR | audit-explainI risultati del comando saranno simili a questo esempio, che contiene voci per sei messaggi CGRR. Nell'esempio, tutte le richieste di replica tra griglie hanno restituito un errore generico perché l'oggetto non poteva essere replicato. I primi tre errori si riferiscono a operazioni di "replica oggetto", mentre gli ultimi tre errori si riferiscono a operazioni di "replica eliminazione marcatore".
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
Ogni voce contiene le seguenti informazioni:
Campo Descrizione Richiesta di replica cross-grid CGRR
Il nome della richiesta
tenant
ID account del tenant
connessione
L'ID della connessione alla federazione di griglia
operazione
Il tipo di operazione di replica che si stava tentando di eseguire:
-
replica oggetto
-
replica del marcatore di eliminazione
-
replicare oggetto multipart
bucket
Il nome del bucket
oggetto
Il nome dell'oggetto
versione
L'ID della versione dell'oggetto
errore
Il tipo di errore. Se la replica cross-grid non è riuscita, l'errore è "General error".
-
Riprova le repliche non riuscite
Dopo aver generato un elenco di oggetti e marcatori di eliminazione che non sono stati replicati nel bucket di destinazione e aver risolto i problemi sottostanti, puoi riprovare la replica in uno dei due modi seguenti:
-
Reingestisci ciascun oggetto nel bucket di origine.
-
Usa l'API privata di Grid Management, come descritto.
-
Dalla parte superiore di Grid Manager, seleziona l'icona di aiuto e seleziona API documentation.
-
Seleziona Vai alla documentazione API privata.
Gli endpoint API di StorageGRID contrassegnati come "Private" sono soggetti a modifiche senza preavviso. Inoltre, gli endpoint privati di StorageGRID ignorano la versione dell'API della richiesta. -
Nella sezione cross-grid-replication-advanced, seleziona il seguente endpoint:
POST /private/cross-grid-replication-retry-failed -
Seleziona Prova.
-
Nella casella di testo body, sostituisci la voce di esempio per versionID con un ID di versione dal file audit.log che corrisponde a una richiesta di replica cross-grid non riuscita.
Assicurati di mantenere le virgolette doppie attorno alla stringa.
-
Seleziona Esegui.
-
Conferma che il codice di risposta del server sia 204, a indicare che l'oggetto o il marcatore di eliminazione è stato contrassegnato come in attesa di replica cross-grid verso l'altra grid.
"In sospeso" significa che la richiesta di replica tra griglie è stata aggiunta alla coda interna per l'elaborazione.
Monitora i tentativi di replica
Dovresti monitorare le operazioni di ripetizione della replica per assicurarti che vengano completate.
|
|
Potrebbero essere necessarie diverse ore o anche di più prima che un oggetto o un delete marker vengano replicati nell'altra grid. |
Puoi monitorare le operazioni di ripetizione in due modi:
-
Usa una richiesta S3 "HeadObject" o "GetObject". La risposta include l'intestazione di risposta specifica di StorageGRID
x-ntap-sg-cgr-replication-status, che avrà uno dei seguenti valori:Griglia Stato della replica Fonte
-
COMPLETATO: La replica è riuscita.
-
IN SOSPESO: L'oggetto non è ancora stato replicato.
-
ERRORE: La replica non è riuscita a causa di un errore permanente. Devi risolvere l'errore.
Destinazione
REPLICA: L'oggetto è stato replicato dalla griglia di origine.
-
-
Usa l'API privata di Grid Management, come descritto.
-
Nella sezione cross-grid-replication-advanced della documentazione dell'API privata, seleziona il seguente endpoint:
GET /private/cross-grid-replication-object-status/{id} -
Seleziona Prova.
-
Nella sezione Parameter, inserisci l'ID versione che hai utilizzato nella richiesta
cross-grid-replication-retry-failed. -
Seleziona Esegui.
-
Conferma che il codice di risposta del server sia 200.
-
Esamina lo stato della replica, che sarà uno dei seguenti:
-
IN SOSPESO: L'oggetto non è ancora stato replicato.
-
COMPLETATO: La replica è riuscita.
-
FALLITO: la replica è fallita con un errore permanente. Un utente deve risolvere l'errore.
-