将网格节点恢复到主机
要将发生故障的网格节点恢复到新的 Linux 主机,请执行以下步骤来恢复节点配置文件。
-
恢复并验证节点通过恢复节点配置文件。对于新安装,您需要为要安装在主机上的每个网格节点创建一个节点配置文件。将网格节点恢复到替换主机时,您可以恢复或替换任何故障网格节点的节点配置文件。
-
根据需要,恢复任何无法启动的节点 。
如果保留了来自先前主机的任何块存储卷,则可能必须执行额外的恢复过程。本节中的命令可帮助您确定需要哪些附加步骤。
恢复并验证网格节点
您必须恢复任何故障网格节点的网格配置文件,然后验证网格配置文件并解决任何错误。
您可以导入主机上应该存在的任何网格节点,只要其 `/var/local`由于前一个主机发生故障,卷没有丢失。例如, `/var/local`如果您使用共享存储作为StorageGRID系统数据卷,则卷可能仍然存在,如 Linux 操作系统的StorageGRID安装说明中所述。导入节点会将其节点配置文件恢复到主机。
如果无法导入缺失的节点,则必须重新创建其网格配置文件。
然后,您必须验证网格配置文件,并解决在继续重新启动StorageGRID之前可能出现的任何网络或存储问题。重新创建节点的配置文件时,必须对替换节点使用与正在恢复的节点相同的名称。
有关位置的更多信息,请参阅安装说明 `/var/local`节点的卷。
-
在恢复的主机的命令行中,列出所有当前配置的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
如果主机上应配置的部分或全部网格节点未列出,则需要恢复缺失的网格节点。
-
要导入具有 `/var/local`体积:
-
对要导入的每个节点运行以下命令:
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.
-
如果您看到有关该节点由另一台主机拥有的错误,请使用 `--force`标志以完成导入:
sudo storagegrid --force node import node-var-local-volume-path
使用 `--force`标志将需要额外的恢复步骤才能重新加入电网,如"下一步:如果需要,执行其他恢复步骤"。
-
-
对于没有 `/var/local`卷,重新创建节点的配置文件以将其恢复到主机。有关说明,请参阅:
-
重新创建节点的配置文件时,必须对替换节点使用与正在恢复的节点相同的名称。对于 Linux 部署,请确保配置文件名包含节点名称。您应该尽可能使用相同的网络接口、块设备映射和 IP 地址。这种做法最大限度地减少了恢复期间需要复制到节点的数据量,从而可以使恢复速度显著加快(在某些情况下,只需几分钟而不是几周)。
如果您使用任何新的块设备( StorageGRID节点以前未使用的设备)作为以 开头的任何配置变量的值 `BLOCK_DEVICE_`重新创建节点的配置文件时,请遵循修复缺少块设备错误。 -
在恢复的主机上运行以下命令以列出所有StorageGRID节点。
sudo storagegrid node list
-
验证在 storagegrid 节点列表输出中显示名称的每个网格节点的节点配置文件:
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.conf`映射 node-name 使用的块设备 `PURPOSE`到 Linux 文件系统中给定的路径名,但该位置没有有效的块设备特殊文件或到块设备特殊文件的软链接。
确认您已完成"部署新的 Linux 主机"。对所有块设备使用与原始主机上相同的持久设备名称。
如果您无法恢复或重新创建丢失的块设备特殊文件,您可以分配一个适当大小和存储类别的新块设备,并编辑节点配置文件以更改 `BLOCK_DEVICE_PURPOSE`指向新的块设备特殊文件。
使用 Linux 操作系统的表格确定适当的大小和存储类别:
在继续进行块设备替换之前,请查看配置主机存储的建议:
|
如果您必须为任何以以下开头的配置文件变量提供新的块存储设备 `BLOCK_DEVICE_`由于原始块设备随故障主机丢失,请确保在尝试进一步恢复程序之前新的块设备未格式化。如果您使用共享存储并创建了新卷,则新的块设备将未被格式化。如果您不确定,请针对任何新的块存储设备特殊文件运行以下命令。 |
|
仅对新的块存储设备运行以下命令。如果您认为块存储仍然包含正在恢复的节点的有效数据,请不要运行此命令,因为设备上的任何数据都将丢失。
|
启动StorageGRID主机服务
要启动StorageGRID节点,并确保它们在主机重启后重新启动,您必须启用并启动StorageGRID主机服务。
-
在每台主机上运行以下命令:
sudo systemctl enable storagegrid sudo systemctl start storagegrid
-
运行以下命令以确保部署正在进行:
sudo storagegrid node status node-name
-
如果任何节点返回“未运行”或“已停止”状态,请运行以下命令:
sudo storagegrid node start node-name
-
如果您之前已启用并启动了StorageGRID主机服务(或者您不确定该服务是否已启用并启动),请运行以下命令:
sudo systemctl reload-or-restart storagegrid
恢复无法正常启动的节点
如果StorageGRID节点无法正常重新加入网格并且未显示为可恢复,则它可能已损坏。您可以强制节点进入恢复模式。
-
确认节点的网络配置正确。
由于网络接口映射不正确或网格网络 IP 地址或网关不正确,节点可能无法重新加入网格。
-
如果网络配置正确,则发出 `force-recovery`命令:
sudo storagegrid node force-recovery node-name
-
对节点执行额外的恢复步骤。看"下一步:如果需要,执行其他恢复步骤" 。