将对象数据还原到设备的存储卷
在恢复设备存储节点的存储卷之后、您可以还原在存储节点发生故障时丢失的已复制或已删除编码的对象数据。
我应该使用哪种操作步骤 ?
请尽可能使用网格管理器中的*卷还原*页面还原对象数据。
-
如果卷列在*维护*>*卷还原*>*要还原的节点*中、请使用还原对象数据 "网格管理器中的卷还原页面"。
-
如果卷未列在*维护*>*卷还原*>*要还原的节点*中、请按照以下步骤使用
repair-data
用于还原对象数据的脚本。如果已恢复的存储节点包含的卷数少于要替换的节点数、则必须使用
repair-data
脚本。
使用 repair-data
用于还原对象数据的脚本
-
您必须确认已恢复的存储节点的连接状态为 * 已连接 * 在网格管理器的 * 节点 * > * 概述 * 选项卡上。
可以从其他存储节点,归档节点或云存储池还原对象数据,前提是已配置网格的 ILM 规则,以便可以使用对象副本。
请注意以下事项:
-
如果 ILM 规则配置为仅存储一个复制副本,而该副本位于出现故障的存储卷上,则您将无法恢复对象。
-
如果某个对象的唯一剩余副本位于云存储池中,则 StorageGRID 必须将多个请求问题描述 到云存储池端点以还原对象数据。在执行此操作步骤 之前,请联系技术支持以帮助估算恢复时间范围和相关成本。
-
如果对象的唯一剩余副本位于归档节点上,则会从归档节点检索对象数据。从归档节点将对象数据还原到存储节点比从其他存储节点还原副本所需时间更长,因为从外部归档存储系统检索数据会产生延迟。
关于 repair-data
脚本
要还原对象数据、请运行 repair-data
脚本。此脚本将开始还原对象数据的过程,并与 ILM 扫描配合使用以确保满足 ILM 规则。
选择下面的*复制数据*或*纠删编码(EC)数据*,了解的不同选项 repair-data
脚本、具体取决于您要还原的是复制的数据还是经过重复数据验证的数据。如果需要还原这两种类型的数据,则必须同时运行这两组命令。
有关的详细信息、请参见 repair-data 脚本、输入 repair-data --help 从主管理节点的命令行。
|
根据您是需要修复整个节点还是仅需要修复节点上的特定卷,可以使用两个命令还原复制的数据:
repair-data start-replicated-node-repair
repair-data start-replicated-volume-repair
您可以使用以下命令跟踪已复制数据的修复:
repair-data show-replicated-repair-status
根据您是需要修复整个节点还是仅修复节点上的特定卷,可以使用两个命令来还原经过擦除编码的数据:
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用户身份登录后、提示符将从变为
$
to#
。
-
-
使用
/etc/hosts
file、用于查找已还原存储卷的存储节点的主机名。要查看网格中所有节点的列表、请输入以下内容:cat /etc/hosts
。
如果所有卷都发生故障,请修复数据
如果所有存储卷都发生故障,请修复整个节点。根据您是使用复制的数据,还是使用纠删编码( Erasure-coded , EC )数据,或者同时使用这两者,按照有关 * 复制的数据 * , * 纠删编码( Erasure-Coded , EC )数据 * 或这两者的说明进行操作。
如果只有部分卷发生故障,请转至 [如果只有部分卷出现故障,请修复数据]。
您无法运行 repair-data 同时对多个节点执行的操作。要恢复多个节点,请联系技术支持。
|
如果您的网格包含复制的数据、请使用 repair-data start-replicated-node-repair
命令 --nodes
选项、其中 --nodes
是主机名(系统名称)、用于修复整个存储节点。
此命令将修复名为 SG-DC-SN3 的存储节点上复制的数据:
repair-data start-replicated-node-repair --nodes SG-DC-SN3
还原对象数据时,如果StorageGRID 系统找不到复制的对象数据,将触发*Objects Lost*警报。可能会在整个系统的存储节点上触发警报。您应确定丢失的发生原因 以及是否可以恢复。请参见 "调查丢失的对象"。 |
如果您的网格包含经过线性编码的数据、请使用 repair-data start-ec-node-repair
命令 --nodes
选项、其中 --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个卷。您可以指定一个卷、一系列卷或多个不在一个序列中的卷。
所有卷必须位于同一个存储节点上。如果需要还原多个存储节点的卷,请联系技术支持。
如果网格包含复制的数据、请使用 start-replicated-volume-repair
命令 --nodes
用于标识节点的选项(其中 --nodes
是节点的主机名)。然后添加 --volumes
或 --volume-range
选项、如以下示例所示。
单个卷:此命令可将复制的数据还原到卷 0002
在名为SG-DC-SN3的存储节点上:
repair-data start-replicated-volume-repair --nodes SG-DC-SN3 --volumes 0002
卷范围:此命令会将复制的数据还原到范围内的所有卷 0003
to 0009
在名为SG-DC-SN3的存储节点上:
repair-data start-replicated-volume-repair --nodes SG-DC-SN3 --volume-range 0003,0009
多个卷不在一个序列中:此命令会将复制的数据还原到卷 0001
, 0005
,和 0008
在名为SG-DC-SN3的存储节点上:
repair-data start-replicated-volume-repair --nodes SG-DC-SN3 --volumes 0001,0005,0008
还原对象数据时,如果StorageGRID 系统找不到复制的对象数据,将触发*Objects Lost*警报。可能会在整个系统的存储节点上触发警报。记下警报问题描述 和建议的操作、以确定丢失的发生原因 以及是否可以恢复。 |
如果您的网格包含经过线性编码的数据、请使用 start-ec-volume-repair
命令 --nodes
用于标识节点的选项(其中 --nodes
是节点的主机名)。然后添加 --volumes
或 --volume-range
选项、如以下示例所示。
单个卷:此命令可将经过还原的数据还原到卷 0007
在名为SG-DC-SN3的存储节点上:
repair-data start-ec-volume-repair --nodes SG-DC-SN3 --volumes 0007
卷范围:此命令会将经过还原的数据还原到该范围内的所有卷 0004
to 0006
在名为SG-DC-SN3的存储节点上:
repair-data start-ec-volume-repair --nodes SG-DC-SN3 --volume-range 0004,0006
多个卷不在一个序列中:此命令可将经过还原的数据还原到卷 000A
, 000C
,和 000E
在名为SG-DC-SN3的存储节点上:
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 )数据 * 还是同时使用这两者来监控修复作业的状态。
您还可以监控正在进行的卷还原作业的状态、并查看中已完成的还原作业的历史记录"网格管理器"。
-
要获取复制的修复的估计完成百分比、请添加
show-replicated-repair-status
选项。repair-data show-replicated-repair-status
-
要确定修复是否已完成,请执行以下操作:
-
选择 * 节点 * > * 正在修复的存储节点 _* > * ILM * 。
-
查看 " 评估 " 部分中的属性。修复完成后, * 正在等待 - 全部 * 属性指示 0 个对象。
-
-
要更详细地监控修复,请执行以下操作:
-
选择 * 支持 * > * 工具 * > * 网格拓扑 * 。
-
选择 grid > * 正在修复的存储节点 _* > * LDR* > * 数据存储 * 。
-
结合使用以下属性,尽可能确定复制的修复是否已完成。
可能存在Cassand拉 不一致、无法跟踪失败的修复。 -
* 尝试修复( XRPA ) * :使用此属性跟踪复制修复的进度。每当存储节点尝试修复高风险对象时,此属性都会增加。如果此属性的增加时间不超过当前扫描期间(由 * 扫描期间 - 估计 * 属性提供),则表示 ILM 扫描未在任何节点上发现任何需要修复的高风险对象。
高风险对象是指可能完全丢失的对象。这不包括不满足其ILM配置的对象。 -
* 扫描期间 - 估计值( XSCM ) * :使用此属性可估计何时对先前载入的对象应用策略更改。如果 * 已尝试修复 * 属性的增加时间未超过当前扫描期间,则复制的修复很可能已完成。请注意,扫描期限可能会更改。* 扫描期限 - 估计( 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