节点容器迁移要求
通过节点迁移功能,您可以手动将节点从一台主机移动到另一台主机。通常,两台主机位于同一物理数据中心。
通过节点迁移,您可以在不中断网格操作的情况下执行物理主机维护。在使物理主机脱机之前、可以将所有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
可在所有主机上提供一致且友好的块设备名称。