根据需要将对象数据还原到存储卷
如果需要使用 sn-recovery-postinstall.sh
脚本重新格式化一个或多个故障存储卷,则必须将对象数据从其他存储节点和归档节点还原到重新格式化的存储卷。除非重新格式化了一个或多个存储卷,否则不需要执行这些步骤。
-
您必须确认已恢复的存储节点的连接状态为 * 已连接 *
在网格管理器的 * 节点 * > * 概述 * 选项卡上。
可以从其他存储节点,归档节点或云存储池还原对象数据,前提是已配置网格的 ILM 规则,以便可以使用对象副本。
请注意以下事项:
-
如果 ILM 规则配置为仅存储一个复制副本,而该副本位于出现故障的存储卷上,则您将无法恢复对象。
-
如果某个对象的唯一剩余副本位于云存储池中,则 StorageGRID 必须将多个请求问题描述 到云存储池端点以还原对象数据。在执行此操作步骤 之前,请联系技术支持以帮助估算恢复时间范围和相关成本。
-
如果对象的唯一剩余副本位于归档节点上,则会从归档节点检索对象数据。从归档节点将对象数据还原到存储节点比从其他存储节点还原副本所需时间更长,因为从外部归档存储系统检索数据会产生延迟。
关于 repair-data
脚本
要还原对象数据,请运行 repair-data
脚本。此脚本将开始还原对象数据的过程,并与 ILM 扫描配合使用以确保满足 ILM 规则。
选择下面的 * 复制数据 * 或 * 擦除编码( Erasure-Coded , EC )数据 * ,根据您要还原的是复制的数据还是擦除编码的数据,了解 repair-data
脚本的不同选项。如果需要还原这两种类型的数据,则必须同时运行这两组命令。
|
有关 repair-data 脚本的详细信息,请在主管理节点的命令行中输入 repair-data -help 。
|
根据您是需要修复整个节点还是仅需要修复节点上的特定卷,可以使用两个命令还原复制的数据:
repair-data start-replicated -node-repair
repair-data start-replicated -volume-repair
您可以使用以下命令跟踪已复制数据的修复:
repair-data show-repliced-repair-status
|
在 StorageGRID 11.6 中,可以使用 show -replicate-repair-status 选项进行技术预览。此功能正在开发中,返回的值可能不正确或延迟。要确定修复是否已完成,请使用 * 等待–全部 * , * 尝试修复( XRPA ) * 和 * 扫描期限 - 估计( XSCM ) * ,如中所述 监控修复情况。
|
根据您是需要修复整个节点还是仅修复节点上的特定卷,可以使用两个命令来还原经过擦除编码的数据:
repair-data start-EC-node-repair
repair-data start-EC-volume-repair
在某些存储节点脱机时,可以开始修复经过擦除编码的数据。修复将在所有节点均可用后完成。
您可以使用以下命令跟踪纠删编码数据的修复情况:
repair-data show-EC-repair-status
|
EC 修复作业会临时预留大量存储。可能会触发存储警报,但会在修复完成后解决。如果没有足够的存储空间用于预留, EC 修复作业将失败。无论作业失败还是成功, EC 修复作业完成后都会释放存储预留。 |
查找存储节点的主机名
-
登录到主管理节点:
-
输入以下命令:
ssh admin@ primary_Admin_Node_IP_
-
输入
passwords.txt
文件中列出的密码。 -
输入以下命令切换到 root :
su -
-
输入
passwords.txt
文件中列出的密码。以 root 用户身份登录时,提示符将从 ` $` 更改为 ` #` 。
-
-
使用 ` /etc/hosts` 文件查找已还原存储卷的存储节点的主机名。要查看网格中所有节点的列表,请输入以下内容:
cat /etc/hosts
。
如果所有卷都发生故障,请修复数据
如果所有存储卷都发生故障,请修复整个节点。根据您是使用复制的数据,还是使用纠删编码( Erasure-coded , EC )数据,或者同时使用这两者,按照有关 * 复制的数据 * , * 纠删编码( Erasure-Coded , EC )数据 * 或这两者的说明进行操作。
如果只有部分卷发生故障,请转至 [如果只有部分卷出现故障,请修复数据]。
|
您不能同时对多个节点运行 repair-data 操作。要恢复多个节点,请联系技术支持。
|
如果网格包含复制的数据,请使用 repair-data start-replicated -node-repair
命令和 ` -nodes` 选项修复整个存储节点。
此命令将修复名为 SG-DC-SN3 的存储节点上复制的数据:
repair-data start-replicated -node-repair -nodes sg-DC-SN3
|
还原对象数据后,如果 StorageGRID 系统找不到复制的对象数据,则会触发 * 对象丢失 * 警报。可能会在整个系统的存储节点上触发警报。您应确定丢失的发生原因 以及是否可以恢复。请参见 监控和故障排除。 |
如果网格包含擦除编码的数据,请使用 repair-data start-EC-node-repair
命令和 ` -nodes` 选项修复整个存储节点。
此命令将修复名为 SG-DC-SN3 的存储节点上的擦除编码数据:
repair-data start-EC-node-repair -nodes sg-DC-SN3
此操作将返回唯一的 repair ID
,用于标识此 repair_data
操作。使用此 repair ID
跟踪 repair_data
操作的进度和结果。恢复过程完成后,不会返回任何其他反馈。
|
在某些存储节点脱机时,可以开始修复经过擦除编码的数据。修复将在所有节点均可用后完成。 |
如果只有部分卷出现故障,请修复数据
如果只有部分卷出现故障,请修复受影响的卷。根据您是使用复制的数据,还是使用纠删编码( Erasure-coded , EC )数据,或者同时使用这两者,按照有关 * 复制的数据 * , * 纠删编码( Erasure-Coded , EC )数据 * 或这两者的说明进行操作。
如果所有卷都发生故障,请转至 [如果所有卷都发生故障,请修复数据]。
以十六进制格式输入卷 ID 。例如, 0000
是第一个卷, 000f
是第 16 个卷。您可以指定一个卷,一个卷范围或多个不属于一个序列的卷。
所有卷必须位于同一个存储节点上。如果需要还原多个存储节点的卷,请联系技术支持。
如果网格包含复制的数据,请使用 sSTART-replicated -volume-repair
命令和 ` -nodes` 选项来标识节点。然后添加 ` -volumes` 或 ` -volume-range` 选项,如以下示例所示。
-
单个卷 * :此命令会将复制的数据还原到名为 SG-DC-SN3 的存储节点上的卷
0002
:
repair-data start-replicated -volume-repair -nodes sg-DC-SN3 -volumes 0002
-
卷范围 * :此命令会将复制的数据还原到名为 SG-DC-SN3 的存储节点上介于
0003
到0009
范围内的所有卷:
repair-data start-replicated-volume-repair --nodes SG-DC-SN3 --volume-range 0003,0009
-
不在序列中的多个卷 * :此命令会将复制的数据还原到名为 SG-DC-SN3 的存储节点上的卷
0001
,0005
和0008
:
repair-data start-replicated -volume-repair -nodes sg-DC-SN3 -volumes 0001 , 0005 , 0008
|
还原对象数据后,如果 StorageGRID 系统找不到复制的对象数据,则会触发 * 对象丢失 * 警报。可能会在整个系统的存储节点上触发警报。您应确定丢失的发生原因 以及是否可以恢复。请参见有关 StorageGRID 监控和故障排除的说明。 |
如果网格包含擦除编码的数据,请使用 sSTART-EC-volume-repair
命令和 ` -nodes` 选项来标识节点。然后添加 ` -volumes` 或 ` -volume-range` 选项,如以下示例所示。
-
单个卷 * :此命令会将经过擦除编码的数据还原到名为 SG-DC-SN3 的存储节点上的卷
0007
:
repair-data start-EC-volume-repair -nodes sg-DC-SN3 -volumes 0007
-
卷范围 * :此命令会将经过擦除编码的数据还原到名为 SG-DC-SN3 的存储节点上介于
0004
到0006
范围内的所有卷:
repair-data start-ec-volume-repair --nodes SG-DC-SN3 --volume-range 0004,0006
-
不在序列中的多个卷 * :此命令会将经过纠删编码的数据还原到名为 SG-DC-SN3 的存储节点上的卷
000a
,000c
和000E
:
repair-data start-EC-volume-repair -nodes sg-DC-SN3 -volumes 000a , 000c , 000E
repair-data
操作将返回唯一的 repair ID
,用于标识此 repair_data
操作。使用此 repair ID
跟踪 repair_data
操作的进度和结果。恢复过程完成后,不会返回任何其他反馈。
|
在某些存储节点脱机时,可以开始修复经过擦除编码的数据。修复将在所有节点均可用后完成。 |
监控修复情况
根据您是使用 * 复制数据 * , * 纠删编码( EC )数据 * 还是同时使用这两者来监控修复作业的状态。
-
要确定修复是否已完成,请执行以下操作:
-
选择 * 节点 * > * 正在修复的存储节点 _* > * ILM * 。
-
查看 " 评估 " 部分中的属性。修复完成后, * 正在等待 - 全部 * 属性指示 0 个对象。
-
-
要更详细地监控修复,请执行以下操作:
-
选择 * 支持 * > * 工具 * > * 网格拓扑 * 。
-
选择 grid > * 正在修复的存储节点 _* > * LDR* > * 数据存储 * 。
-
结合使用以下属性,尽可能确定复制的修复是否已完成。
可能存在 Cassandra 不一致,并且无法跟踪失败的修复。 -
* 尝试修复( XRPA ) * :使用此属性跟踪复制修复的进度。每当存储节点尝试修复高风险对象时,此属性都会增加。如果此属性的增加时间不超过当前扫描期间(由 * 扫描期间 - 估计 * 属性提供),则表示 ILM 扫描未在任何节点上发现任何需要修复的高风险对象。
高风险对象是指可能完全丢失的对象。这不包括不满足其 ILM 配置的对象。 -
* 扫描期间 - 估计值( XSCM ) * :使用此属性可估计何时对先前载入的对象应用策略更改。如果 * 已尝试修复 * 属性的增加时间未超过当前扫描期间,则复制的修复很可能已完成。请注意,扫描期限可能会更改。* 扫描期限 - 估计( XSCM ) * 属性适用场景 整个网格,是所有节点扫描期限的最大值。您可以查询网格的 * 扫描时间段 - 估计 * 属性历史记录以确定适当的时间范围。
-
-
-
或者,要获得复制修复的估计完成百分比,请在 repair-data 命令中添加
sHow-replicate-repair-status
选项。repair-data show-repliced-repair-status
在 StorageGRID 11.6 中,可以使用 show -replicate-repair-status
选项进行技术预览。此功能正在开发中,返回的值可能不正确或延迟。要确定修复是否已完成,请使用 * 等待–全部 * , * 尝试修复( XRPA ) * 和 * 扫描期限 - 估计( XSCM ) * ,如中所述 监控修复情况。
要监控纠删编码数据的修复情况,并重试任何可能失败的请求:
-
确定经过纠删编码的数据修复的状态:
-
选择 * 支持 * > * 工具 * > * 指标 * 以查看当前作业的估计完成时间和完成百分比。然后,在 Grafana 部分中选择 * EC Overview* 。查看 * 网格 EC 作业预计完成时间 * 和 * 网格 EC 作业已完成百分比 * 信息板。
-
使用此命令可查看特定
repair-data
操作的状态:repair-data show-EC-repair-status -repair-id repair ID
-
使用此命令可列出所有修复:
repair-data show-EC-repair-status
输出列出了所有先前和当前正在运行的修复的信息,包括
repair ID
。 -
-
如果输出显示修复操作失败,请使用 ` -repair-id` 选项重试修复。
此命令使用修复 ID 6949309319275667690 重试失败的节点修复:
repair-data start-EC-node-repair -repair-id 6949309319275667690
此命令使用修复 ID 6949309319275667690 重试失败的卷修复:
repair-data start-EC-volume-repair -repair-id 6949309319275667690