Skip to main content
简体中文版经机器翻译而成,仅供参考。如与英语版出现任何冲突,应以英语版为准。

识别并重试失败的复制操作

解决*跨网格复制永久失败*警报后,您应该确定是否有任何对象或删除标记无法复制到另一个网格。然后,您可以重新摄取这些对象或使用网格管理 API 重试复制。

*跨网格复制永久失败*警报表示由于需要用户干预才能解决的原因,租户对象无法在两个网格上的存储桶之间复制。此警报通常是由源存储桶或目标存储桶的更改引起的。有关详细信息,请参阅"解决网格联合错误"

确定是否有任何对象复制失败

要确定是否有任何对象或删除标记尚未复制到另一个网格,您可以搜索审计日志"CGRR(跨网格复制请求)"消息。当StorageGRID无法将对象、多部分对象或删除标记复制到目标存储桶时,此消息将添加到日志中。

您可以使用"审计解释工具"将结果转换成更易于阅读的格式。

开始之前
  • 您拥有 Root 访问权限。

  • 你有 `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 消息并使用 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

    该命令的结果将类似于此示例,其中包含六个 CGRR 消息的条目。在示例中,所有跨网格复制请求都返回了一般错误,因为无法复制对象。前三个错误是针对“复制对象”操作的,后三个错误是针对“复制删除标记”操作的。

    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

    operation

    正在尝试的复制操作类型:

    • 复制对象

    • 复制删除标记

    • 复制多部分对象

    存储分段

    存储桶名称

    目的

    对象名称

    version

    对象的版本 ID

    错误

    错误类型。如果跨网格复制失败,则错误为“常规错误”。

重试失败的复制

生成未复制到目标存储桶的对象和删除标记列表并解决底层问题后,您可以通过以下两种方式之一重试复制:

  • 将每个对象重新放入源存储桶。

  • 按照说明使用网格管理私有 API。

步骤
  1. 从网格管理器的顶部,选择帮助图标并选择*API 文档*。

  2. 选择*转到私有 API 文档*。

    备注 标记为“私有”的StorageGRID API 端点如有更改,恕不另行通知。 StorageGRID私有端点也会忽略请求的 API 版本。
  3. cross-grid-replication-advanced 部分中,选择以下端点:

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

  4. 选择*试用一下*。

  5. body 文本框中,将 versionID 的示例条目替换为 audit.log 中与失败的跨网格复制请求相对应的版本 ID。

    确保保留字符串周围的双引号。

  6. 选择*执行*。

  7. 确认服务器响应代码为*204*,表示对象或删除标记已被标记为待跨网格复制到另一个网格。

    备注 待处理意味着跨网格复制请求已添加到内部队列等待处理。

监视复制重试

您应该监视复制重试操作以确保它们完成。

提示 将对象或删除标记复制到另一个网格可能需要几个小时或更长时间。

您可以通过以下两种方式之一监视重试操作:

  • 使用 S3"头部对象"或者"获取对象"要求。响应包括StorageGRID特定的 `x-ntap-sg-cgr-replication-status`响应标头,它将具有以下值之一:

    Grid 复制状态

    • 已完成:复制成功。

    • 待定:对象尚未被复制。

    • 失败:复制失败,并发生永久性故障。用户必须解决该错误。

    目标

    REPLICA:对象已从源网格复制。

  • 按照说明使用网格管理私有 API。

步骤
  1. 在私有 API 文档的 cross-grid-replication-advanced 部分中,选择以下端点:

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

  2. 选择*试用一下*。

  3. 在参数部分中,输入您在 `cross-grid-replication-retry-failed`要求。

  4. 选择*执行*。

  5. 确认服务器响应代码为*200*。

  6. 查看复制状态,其状态将是以下之一:

    • 待定:对象尚未被复制。

    • 已完成:复制成功。

    • 失败:复制失败,并发生永久性故障。用户必须解决该错误。