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

将对象数据还原到存储卷(系统驱动器故障)

贡献者

在恢复非设备存储节点的存储卷之后、您可以还原在存储节点发生故障时丢失的复制或经过删除编码的对象数据。

我应该使用哪种操作步骤 ?

请尽可能使用网格管理器中的*卷还原*页面还原对象数据。

  • 如果卷列在*Maintenance >* Volume Restore*>* Node to restore *中,请使用还原对象数据。"网格管理器中的卷还原页面"

  • 如果卷未列在*维护*>*卷还原*>*要还原的节点*中、请按照以下步骤使用脚本还原对象数据。 repair-data

    如果已恢复的存储节点包含的卷数少于要替换的节点数、则必须使用 `repair-data`脚本。

备注 修复数据脚本已弃用、将在未来版本中删除。如果可能,请使用"网格管理器中的卷还原操作步骤"

使用 `repair-data`脚本还原对象数据

开始之前
  • 您已在网格管理器的*N节点*>*Overview*选项卡上确认已恢复的存储节点的连接状态为*conny*。图标警报绿色复选标记

关于此任务

可以从其他存储节点或云存储池还原对象数据、前提是已配置网格的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

纠删编码(EC)数据

根据您是需要修复整个节点还是仅修复节点上的特定卷,可以使用两个命令来还原经过擦除编码的数据:

repair-data start-ec-node-repair

repair-data start-ec-volume-repair

您可以使用以下命令跟踪纠删编码数据的修复情况:

repair-data show-ec-repair-status

备注 在某些存储节点脱机时,可以开始修复经过擦除编码的数据。但是、如果无法计算出所有经过数据检索的数据、则无法完成修复。修复将在所有节点均可用后完成。
备注 EC 修复作业会临时预留大量存储。可能会触发存储警报,但会在修复完成后解决。如果没有足够的存储空间用于预留, EC 修复作业将失败。无论作业失败还是成功, EC 修复作业完成后都会释放存储预留。

查找存储节点的主机名

  1. 登录到主管理节点:

    1. 输入以下命令: ssh admin@primary_Admin_Node_IP

    2. 输入文件中列出的密码 Passwords.txt

    3. 输入以下命令切换到root: su -

    4. 输入文件中列出的密码 Passwords.txt

      当您以root用户身份登录时,提示符将从更 $`改为 `#

  2. 使用 /etc/hosts`文件查找已还原存储卷的存储节点的主机名。要查看网格中所有节点的列表,请输入以下内容: `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*警报。可能会在整个系统的存储节点上触发警报。您应确定丢失的发生原因 以及是否可以恢复。请参阅。 "调查丢失的对象"
纠删编码(EC)数据

如果您的网格包含经过erasure编码的数据、请使用 `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`是第十六个卷。您可以指定一个卷、一系列卷或多个不在一个序列中的卷。

所有卷必须位于同一个存储节点上。如果需要还原多个存储节点的卷,请联系技术支持。

复制的数据

如果网格包含复制的数据、请使用 `start-replicated-volume-repair`命令和 `--nodes`选项来标识节点(其中 `--nodes`是节点的主机名)。然后添加 `--volumes`或 `--volume-range`选项、如以下示例所示。

Single volume:此命令会将复制的数据还原到名为SG-DC-SN3的存储节点上的卷 0002

repair-data start-replicated-volume-repair --nodes SG-DC-SN3 --volumes 0002

卷范围:此命令会将复制的数据还原到 0009`名为SG-DC-SN3的存储节点上范围内的所有卷 `0003

repair-data start-replicated-volume-repair --nodes SG-DC-SN3 --volume-range 0003,0009

多个卷不在一个序列中:此命令可将复制的数据还原到名为SG-DC-SN3的存储节点上的卷 00010005`和 `0008

repair-data start-replicated-volume-repair --nodes SG-DC-SN3 --volumes 0001,0005,0008

备注 还原对象数据时,如果StorageGRID 系统找不到复制的对象数据,将触发*Objects Lost*警报。可能会在整个系统的存储节点上触发警报。记下警报问题描述 和建议的操作、以确定丢失的发生原因 以及是否可以恢复。
纠删编码(EC)数据

如果网格包含经过验证的数据、请使用 `start-ec-volume-repair`命令和 `--nodes`选项来标识节点(其中是节点的主机名)。 `--nodes`然后添加 `--volumes`或 `--volume-range`选项、如以下示例所示。

Single volume:此命令会将经过审核的数据还原到名为SG-DC-SN3的存储节点上的卷 0007

repair-data start-ec-volume-repair --nodes SG-DC-SN3 --volumes 0007

卷范围:此命令可将经过erasure编码的数据还原到 0006`名为SG-DC-SN3的存储节点上范围内的所有卷 `0004

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 )数据 * 还是同时使用这两者来监控修复作业的状态。

您还可以在中监控正在进行的卷还原作业的状态并查看已完成还原作业的历史记录"网格管理器"

复制的数据
  • 要获取复制的修复的估计完成百分比、请将选项添加到re修复 show-replicated-repair-status 数据命令中。

    repair-data show-replicated-repair-status

  • 要确定修复是否已完成,请执行以下操作:

    1. 选择 * 节点 * > * 正在修复的存储节点 _* > * ILM * 。

    2. 查看 " 评估 " 部分中的属性。修复完成后, * 正在等待 - 全部 * 属性指示 0 个对象。

  • 要更详细地监控修复,请执行以下操作:

    1. 选择 * 支持 * > * 工具 * > * 网格拓扑 * 。

    2. 选择 grid > * 正在修复的存储节点 _* > * LDR* > * 数据存储 * 。

    3. 结合使用以下属性,尽可能确定复制的修复是否已完成。

      备注 可能存在Cassand拉 不一致、无法跟踪失败的修复。
      • * 尝试修复( XRPA ) * :使用此属性跟踪复制修复的进度。每当存储节点尝试修复高风险对象时,此属性都会增加。如果此属性的增加时间不超过当前扫描期间(由 * 扫描期间 - 估计 * 属性提供),则表示 ILM 扫描未在任何节点上发现任何需要修复的高风险对象。

        备注 高风险对象是指可能完全丢失的对象。这不包括不满足其ILM配置的对象。
      • * 扫描期间 - 估计值( XSCM ) * :使用此属性可估计何时对先前载入的对象应用策略更改。如果 * 已尝试修复 * 属性的增加时间未超过当前扫描期间,则复制的修复很可能已完成。请注意,扫描期限可能会更改。* 扫描期限 - 估计( XSCM ) * 属性适用场景 整个网格,是所有节点扫描期限的最大值。您可以查询网格的 * 扫描时间段 - 估计 * 属性历史记录以确定适当的时间范围。

纠删编码(EC)数据

要监控纠删编码数据的修复情况,并重试任何可能失败的请求:

  1. 确定经过纠删编码的数据修复的状态:

    • 选择 * 支持 * > * 工具 * > * 指标 * 以查看当前作业的估计完成时间和完成百分比。然后,在 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

  2. 如果输出显示修复操作失败、请使用 `--repair-id`选项重试修复。

    此命令使用修复ID 6949309319275667690重试失败的节点修复:

    repair-data start-ec-node-repair --repair-id 6949309319275667690

    此命令使用修复ID 6949309319275667690重试失败的卷修复:

    repair-data start-ec-volume-repair --repair-id 6949309319275667690