识别并重试失败的复制操作
解决*跨网格复制永久失败*警报后,您应该确定是否有任何对象或删除标记无法复制到另一个网格。然后,您可以重新摄取这些对象或使用网格管理 API 重试复制。
*跨网格复制永久失败*警报表示由于需要用户干预才能解决的原因,租户对象无法在两个网格上的存储桶之间复制。此警报通常是由源存储桶或目标存储桶的更改引起的。有关详细信息,请参阅"解决网格联合错误" 。
确定是否有任何对象复制失败
要确定是否有任何对象或删除标记尚未复制到另一个网格,您可以搜索审计日志"CGRR(跨网格复制请求)"消息。当StorageGRID无法将对象、多部分对象或删除标记复制到目标存储桶时,此消息将添加到日志中。
您可以使用"审计解释工具"将结果转换成更易于阅读的格式。
-
您拥有 Root 访问权限。
-
你有 `Passwords.txt`文件。
-
您知道主管理节点的 IP 地址。
-
登录到主管理节点:
-
输入以下命令:
ssh admin@primary_Admin_Node_IP
-
输入 `Passwords.txt`文件。
-
输入以下命令切换到root:
su -
-
输入 `Passwords.txt`文件。
当您以 root 身份登录时,提示符将从
$`到 `#
。
-
-
在 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。
-
从网格管理器的顶部,选择帮助图标并选择*API 文档*。
-
选择*转到私有 API 文档*。
标记为“私有”的StorageGRID API 端点如有更改,恕不另行通知。 StorageGRID私有端点也会忽略请求的 API 版本。 -
在 cross-grid-replication-advanced 部分中,选择以下端点:
POST /private/cross-grid-replication-retry-failed
-
选择*试用一下*。
-
在 body 文本框中,将 versionID 的示例条目替换为 audit.log 中与失败的跨网格复制请求相对应的版本 ID。
确保保留字符串周围的双引号。
-
选择*执行*。
-
确认服务器响应代码为*204*,表示对象或删除标记已被标记为待跨网格复制到另一个网格。
待处理意味着跨网格复制请求已添加到内部队列等待处理。
监视复制重试
您应该监视复制重试操作以确保它们完成。
|
将对象或删除标记复制到另一个网格可能需要几个小时或更长时间。 |
您可以通过以下两种方式之一监视重试操作:
-
在私有 API 文档的 cross-grid-replication-advanced 部分中,选择以下端点:
GET /private/cross-grid-replication-object-status/{id}
-
选择*试用一下*。
-
在参数部分中,输入您在 `cross-grid-replication-retry-failed`要求。
-
选择*执行*。
-
确认服务器响应代码为*200*。
-
查看复制状态,其状态将是以下之一:
-
待定:对象尚未被复制。
-
已完成:复制成功。
-
失败:复制失败,并发生永久性故障。用户必须解决该错误。
-