节点容器迁移要求
通过节点迁移功能,您可以手动将节点从一台主机移动到另一台主机。通常,两台主机位于同一物理数据中心。
通过节点迁移,您可以在不中断网格操作的情况下执行物理主机维护。您只需逐个将所有 StorageGRID 节点移动到另一台主机,然后再使物理主机脱机。迁移节点只需要每个节点短暂停机,不应影响网格服务的运行或可用性。
如果要使用 StorageGRID 节点迁移功能,则部署必须满足其他要求:
-
在一个物理数据中心的主机之间使用一致的网络接口名称
-
StorageGRID 元数据和对象存储库卷的共享存储,可由单个物理数据中心中的所有主机访问。例如,您可以使用 NetApp E 系列存储阵列。
如果您使用的是虚拟主机,并且底层虚拟机管理程序层支持 VM 迁移,则可能需要使用此功能,而不是 StorageGRID 的节点迁移功能。在这种情况下,您可以忽略这些附加要求。
在执行迁移或虚拟机管理程序维护之前,请正常关闭节点。请参见有关关闭网格节点的恢复和维护说明。
不支持 VMware 实时迁移
OpenStack 实时迁移和 VMware 实时 vMotion 发生原因 虚拟机时钟跳转时间,不支持任何类型的网格节点。尽管时钟时间不正确,但极少会导致数据丢失或配置更新。
支持冷迁移。在冷迁移中,您需要先关闭 StorageGRID 节点,然后再在主机之间迁移它们。有关关闭网格节点的信息、请参见恢复和维护说明中的操作步骤。
网络接口名称一致
为了将节点从一台主机移动到另一台主机, StorageGRID 主机服务需要一定程度地确信该节点在其当前位置的外部网络连接可以在新位置进行复制。它可以通过在主机中使用一致的网络接口名称来获得这种信心。
例如,假设主机 1 上运行的 StorageGRID 节点 A 已配置以下接口映射:
箭头的左侧对应于从 StorageGRID 容器中查看的传统接口(即网格接口,管理接口和客户端网络接口)。箭头的右侧对应于提供这些网络的实际主机接口,它们是同一物理接口绑定下的三个 VLAN 接口。
现在,假设您要将节点 A 迁移到 Host2 。如果 Host2 还具有名为 bond0.1001 , bond0.1002 和 bond0.1003 的接口,则系统将允许移动,前提是同名接口在 Host2 上提供的连接与在 Host1 上提供的连接相同。如果 Host2 的接口名称不相同,则不允许移动。
可以通过多种方法在多个主机之间实现一致的网络接口命名;有关某些示例、请参见"`配置主机网络`"。
共享存储
为了实现快速,低开销的节点迁移, StorageGRID 节点迁移功能不会物理移动节点数据。而是将节点迁移作为一对导出和导入操作来执行,如下所示:
-
在 "`node export` " 操作期间,会从主机 A 上运行的节点容器中提取少量永久性状态数据,并将其缓存在该节点的系统数据卷上。然后,将对 HostA 上的节点容器进行实例化。
-
在 "`node import` " 操作期间,系统将实例化 HostB 上使用与 HostA 相同的网络接口和块存储映射的节点容器。然后,缓存的永久性状态数据将插入到新实例中。
在这种操作模式下,节点的所有系统数据和对象存储卷都必须可从主机 A 和主机 B 访问,才能允许迁移并正常运行。此外,它们必须已使用名称映射到节点,这些名称可以保证引用主机 A 和主机 B 上的相同 LUN 。
以下示例显示了一个解决方案 、用于StorageGRID 存储节点的块设备映射、其中主机正在使用DM多路径、而别名字段已在中使用 /etc/multipath.conf
可在所有主机上提供一致且友好的块设备名称。