Skip to main content
日本語は機械翻訳による参考訳です。内容に矛盾や不一致があった場合には、英語の内容が優先されます。

失敗したレプリケーション処理を特定して再試行します

共同作成者

Cross-grid replication permanent failure *アラートを解決したら、他のグリッドへのレプリケートに失敗したオブジェクトまたは削除マーカーがないかどうかを確認する必要があります。その後、これらのオブジェクトを再取り込みするか、グリッド管理APIを使用してレプリケーションを再試行できます。

Cross-grid replication permanent failure *アラートは、ユーザの介入が必要な理由で2つのグリッド上のバケット間でテナントオブジェクトをレプリケートできないことを示しています。このアラートの主な原因は、ソースまたはデスティネーションのバケットが変更されたことです。詳細については、を参照してください "グリッドフェデレーションエラーをトラブルシューティングする"

レプリケートに失敗したオブジェクトがないかどうかを確認します

オブジェクトまたは削除マーカーが他のグリッドにレプリケートされていないかどうかを確認するには、監査ログでを検索します "CGRR(クロスグリッドレプリケーション要求)" メッセージ。このメッセージは、StorageGRID がオブジェクト、マルチパートオブジェクト、または削除マーカーをデスティネーションバケットにレプリケートできなかった場合にログに追加されます。

を使用できます "audit-explainツール" 結果を読みやすい形式に変換します。

作業を開始する前に
  • Root Access 権限が割り当てられている。

  • を使用することができます Passwords.txt ファイル。

  • プライマリ管理ノードのIPアドレスを確認しておきます。

手順
  1. プライマリ管理ノードにログインします。

    1. 次のコマンドを入力します。 ssh admin@primary_Admin_Node_IP

    2. に記載されているパスワードを入力します Passwords.txt ファイル。

    3. 次のコマンドを入力してrootに切り替えます。 su -

    4. に記載されているパスワードを入力します Passwords.txt ファイル。

      rootとしてログインすると、プロンプトがから変わります $ 終了: #

  2. audit.logでCGRRメッセージを検索し、audit-explainツールを使用して結果をフォーマットします。

    たとえば、このコマンドは過去30分間のすべてのCGRRメッセージをgrepし、audit-explainツールを使用します。

    # awk -vdate=$(date -d "30 minutes ago" '+%Y-%m-%dT%H:%M:%S') '$1$2 >= date { print }' audit.log | grep CGRR | audit-explain

このコマンドの結果は次の例のようになります。この例には、6つのCGRRメッセージのエントリがあります。この例では、オブジェクトをレプリケートできなかったため、すべてのグリッド間レプリケーション要求で一般的なエラーが返されています。最初の3つのエラーは「オブジェクトのレプリケート」処理に関するもので、最後の3つのエラーは「マーカーのレプリケート」処理に関するものです。

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

各エントリには、次の情報が含まれています。

フィールド 説明

CGRRクロスグリッドレプリケーション要求

要求の名前

テナント

テナントのアカウントID

接続

グリッドフェデレーション接続のID

操作

試行されたレプリケーション操作のタイプ。

  • オブジェクトをレプリケートします

  • 削除マーカーを複製します

  • マルチパートオブジェクトをレプリケートします

バケット

バケット名

オブジェクト

オブジェクト名

バージョン

オブジェクトのバージョンID

エラー

エラーのタイプ。グリッド間レプリケーションに失敗した場合は、「General error」というエラーが表示されます。

失敗したレプリケーションを再試行します

デスティネーションバケットにレプリケートされなかったオブジェクトのリストを生成して削除マーカーを削除し、根本的な問題を解決したら、次のいずれかの方法でレプリケーションを再試行できます。

  • 各オブジェクトをソースバケットに再度取り込みます。

  • の説明に従って、グリッド管理プライベートAPIを使用します。

手順
  1. Grid Managerの上部でヘルプアイコンを選択し、*[API documentation]*を選択します。

  2. [Go to private API documentation]*を選択します。

    メモ 「プライベート」とマークされているStorageGRID APIエンドポイントは、予告なく変更される場合があります。StorageGRID プライベートエンドポイントは、要求の API バージョンも無視します。
  3. [cross-grid-replication-advanced]*セクションで、次のエンドポイントを選択します。

    POST /private/cross-grid-replication-retry-failed

  4. [* 試してみてください * ] を選択します。

  5. body テキストボックスで、 versionId *のサンプルエントリを、失敗したグリッド間レプリケーション要求に対応するaudit.logのバージョンIDに置き換えます。

    文字列は必ず二重引用符で囲んでください。

  6. [* Execute] を選択します。

  7. サーバ応答コードが「* 204 *」であることを確認します。これは、オブジェクトまたは削除マーカーが他のグリッドへのクロスグリッドレプリケーションのために保留中としてマークされていることを示します。

    メモ Pendingは、クロスグリッドレプリケーション要求が処理のために内部キューに追加されたことを示します。

レプリケーションの再試行を監視します

レプリケーションの再試行処理を監視して、処理が完了していることを確認する必要があります。

ヒント オブジェクトまたは削除マーカーが他のグリッドにレプリケートされるまでに数時間以上かかることがあります。

再試行処理は、次の2つの方法で監視できます。

  • S3を使用する "HEAD Object の実行" または "オブジェクトの取得" リクエスト。応答にはStorageGRID固有の情報が含まれます x-ntap-sg-cgr-replication-status 応答ヘッダー。次のいずれかの値が設定されます。

    グリッド( Grid ) レプリケーションのステータス

    ソース

    • 成功:レプリケーションは成功しました。

    • * pending*:オブジェクトはまだレプリケートされていません。

    • failure:レプリケーションが永続的なエラーで失敗しました。ユーザーはエラーを解決する必要があります。

    宛先

    replica:オブジェクトはソースグリッドからレプリケートされました。

  • の説明に従って、グリッド管理プライベートAPIを使用します。

手順
  1. プライベートAPIドキュメントの* cross-grid-replication-advanced *セクションで、次のエンドポイントを選択します。

    GET /private/cross-grid-replication-object-status/{id}

  2. [* 試してみてください * ] を選択します。

  3. [Parameter]セクションに、で使用したバージョンIDを入力します cross-grid-replication-retry-failed リクエスト。

  4. [* Execute] を選択します。

  5. サーバ応答コードが*200*であることを確認します。

  6. レプリケーションステータスを確認します。次のいずれかになります。

    • * pending*:オブジェクトはまだレプリケートされていません。

    • 完了:レプリケーションは成功しました。

    • failed:レプリケーションは永続的なエラーで失敗しました。ユーザーはエラーを解決する必要があります。