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

将 StorageGRID 节点还原到主机

要将失败的网格节点还原到新的 Linux 主机,请执行以下步骤以还原节点配置文件。

  1. 还原和验证节点 通过恢复节点配置文件。对于新安装,您可以为要安装在主机上的每个网格节点创建一个节点配置文件。将网格节点还原到替换主机时,可以还原或替换任何故障网格节点的节点配置文件。

  2. 启动 StorageGRID 主机服务

  3. 根据需要,恢复任何未能启动的节点

如果从以前的主机保留了任何块存储卷,则可能需要执行其他恢复过程。本节中的命令可帮助您确定需要哪些其他过程。

还原和验证网格节点

必须还原任何失败网格节点的网格配置文件,然后验证网格配置文件并解决所有错误。

关于此任务

您可以导入主机上应该存在的任何网格节点,只要其 `/var/local`卷没有因上一台主机的故障而丢失。例如,如果您对 StorageGRID 系统数据卷使用了共享存储,则 `/var/local`卷可能仍然存在,如适用于您的 Linux 操作系统的 StorageGRID 安装说明中所述。导入节点会将其节点配置文件还原到主机。

如果无法导入缺少的节点,则必须重新创建其网格配置文件。

您必须验证网格配置文件,并解决可能发生的任何网络或存储问题,然后再重新启动 StorageGRID。重新创建节点的配置文件时,必须使用与正在恢复的节点相同的替换节点名称。

有关节点 /var/local 卷位置的更多信息,请参见 "Linux 安装说明"

步骤
  1. 在恢复主机的命令行中,列出当前配置的所有 StorageGRID 节点:sudo storagegrid node list

    如果未配置网格节点,则不会有输出。如果配置了某些网格节点,则应按以下格式输出:

    Name               Metadata-Volume
    ================================================================
    dc1-adm1           /dev/mapper/sgws-adm1-var-local
    dc1-gw1            /dev/mapper/sgws-gw1-var-local
    dc1-sn1            /dev/mapper/sgws-sn1-var-local
    dc1-arc1           /dev/mapper/sgws-arc1-var-local

    如果未列出应在主机上配置的部分或全部网格节点,则需要还原缺少的网格节点。

  2. 要导入具有 `/var/local`卷的网格节点:

    1. 为要导入的每个节点运行以下命令:sudo storagegrid node import node-var-local-volume-path

      仅当目标节点在上次运行的主机上正常关闭时,此 `storagegrid node import`命令才会成功。如果情况并非如此,您将看到类似以下内容的错误:

      This node (node-name) appears to be owned by another host (UUID host-uuid).

    Use the --force flag if you are sure import is safe.

    1. 如果看到有关节点由其他主机所有的错误,请再次运行带有 `--force`标志的命令以完成导入:sudo storagegrid --force node import node-var-local-volume-path

      备注 任何使用 `--force`标志导入的节点都需要额外的恢复步骤才能重新加入网格,如"下一步:根据需要执行其他恢复步骤"中所述。
  3. 对于没有 `/var/local`卷的网格节点,请重新创建节点的配置文件以将其恢复到主机。有关说明,请参见"创建节点配置文件"

    备注 重新创建节点的配置文件时,必须为替换节点使用与所恢复节点相同的名称。对于 Linux 部署,请确保配置文件名包含节点名称。应尽可能使用相同的网络接口、块设备映射和 IP 地址。这种做法可最大限度地减少恢复期间需要复制到节点的数据量,从而显著加快恢复速度(在某些情况下,只需几分钟而非数周)。
    备注 如果在重新创建节点配置文件时,将任何新的块设备(StorageGRID 节点以前未使用的设备)用作以 `BLOCK_DEVICE_`开头的任何配置变量的值,请遵循修复缺少的块设备错误中的准则。
  4. 在恢复的主机上运行以下命令,以列出所有 StorageGRID 节点。

    sudo storagegrid node list

  5. 验证名称在 storagegrid node list 输出中显示的每个网格节点的节点配置文件:

    sudo storagegrid node validate node-name

    在启动 StorageGRID 主机服务之前,必须解决任何错误或警告。以下各节将详细介绍在恢复过程中可能具有特殊意义的错误。

修复缺少的网络接口错误

如果主机网络配置有误或名称拼写有误,则 StorageGRID 检查 `/etc/storagegrid/nodes/node-name.conf`文件中指定的映射时会出现错误。

您可能会看到与此模式匹配的错误或警告:

Checking configuration file /etc/storagegrid/nodes/<node-name>.conf for node <node-name>...
ERROR: <node-name>: GRID_NETWORK_TARGET = <host-interface-name>
       <node-name>: Interface <host-interface-name>' does not exist

可能会报告网格网络、管理网络或客户端网络的错误。此错误表示 `/etc/storagegrid/nodes/node-name.conf`文件将指定的 StorageGRID 网络映射到名为 `host-interface-name`的主机接口,但当前主机上没有具有该名称的接口。

如果您收到此错误,请确认您已完成 "部署新 Linux 主机" 中的步骤。对所有主机接口使用与原始主机上相同的名称。

如果无法命名主机接口以匹配节点配置文件,则可以编辑节点配置文件,并更改 GRID_NETWORK_TARGET、ADMIN_NETWORK_TARGET 或 CLIENT_NETWORK_TARGET 的值以匹配现有主机接口。

确保主机接口提供对相应物理网络端口或 VLAN 的访问,并且该接口不直接引用绑定或桥接设备。您必须在主机上的绑定设备上配置 VLAN(或其他虚拟接口),或使用网桥和虚拟以太网(veth)对。

修复缺少的块设备错误

系统检查每个恢复的节点是否映射到有效的块设备特殊文件或到块设备特殊文件的有效软链接。如果 StorageGRID 在 `/etc/storagegrid/nodes/node-name.conf`文件中发现无效映射,则会显示缺少块设备错误。

如果观察到与此模式匹配的错误:

Checking configuration file /etc/storagegrid/nodes/<node-name>.conf for node <node-name>...
ERROR: <node-name>: BLOCK_DEVICE_PURPOSE = <path-name>
       <node-name>: <path-name> does not exist

这意味着 /etc/storagegrid/nodes/node-name.confnode-name 用于 PURPOSE 的块设备映射到 Linux 文件系统中给定的路径名,但在该位置没有有效的块设备特殊文件或指向块设备特殊文件的软链接。

确认您已完成 "部署新 Linux 主机" 中的步骤。对所有块设备使用与原始主机上使用的相同的永久设备名称。

如果无法恢复或重新创建丢失的块设备专用文件,则可以分配适当大小和存储类别的新块设备,并编辑节点配置文件以更改 `BLOCK_DEVICE_PURPOSE`的值,以指向新的块设备专用文件。

使用适用于您的 Linux 操作系统的表格确定适当的大小和存储类别。请参阅"存储和性能要求"

在继续更换块设备之前,请查看 "配置主机存储" 的建议。

备注 如果您必须为以 `BLOCK_DEVICE_`开头的任何配置文件变量提供新的块存储设备,因为原始块设备随故障主机一起丢失,请确保在尝试进一步恢复过程之前,新的块设备未经格式化。如果您使用共享存储并创建了新卷,则新块设备将未经格式化。如果不确定,请对任何新的块存储设备特殊文件运行以下命令。
注意

仅对新的块存储设备运行以下命令。如果您认为块存储仍包含正在恢复的节点的有效数据,请不要运行此命令,因为设备上的任何数据都将丢失。

sudo dd if=/dev/zero of=/dev/mapper/my-block-device-name bs=1G count=1

启动 StorageGRID 主机服务

要启动 StorageGRID 节点,并确保它们在主机重新启动后重新启动,您必须启用并启动 StorageGRID 主机服务。

步骤
  1. 在每台主机上运行以下命令:

    sudo systemctl enable storagegrid
    sudo systemctl start storagegrid
  2. 运行以下命令以确保部署正在进行:

    sudo storagegrid node status node-name
  3. 如果任何节点返回"未运行"或"已停止"状态,请运行以下命令:

    sudo storagegrid node start node-name
  4. 如果您之前已启用并启动了 StorageGRID 主机服务(或者如果您不确定该服务是否已启用并启动),请同时运行以下命令:

    sudo systemctl reload-or-restart storagegrid

恢复无法正常启动的节点

如果 StorageGRID 节点未正常重新加入网格并且未显示为可恢复,则可能已损坏。您可以强制节点进入恢复模式。

步骤
  1. 确认节点的网络配置正确。

    由于网络接口映射不正确或网格网络 IP 地址或网关不正确,节点可能无法重新加入网格。

  2. 如果网络配置正确,则发出以下 `force-recovery`命令:

    sudo storagegrid node force-recovery node-name

  3. 对该节点执行其他恢复步骤。请参阅"下一步:根据需要执行其他恢复步骤"