KVM 服务器集群的共享存储?

KVM 服务器集群的共享存储?

我有 Dell EMC SCv3020 存储阵列,我想为所有 3 台物理服务器创建共享存储,以使用相同的存储(LVM?)在集群中创建 KVM VM,这样如果 1 台服务器死机,我们可以将 VM 移至另一台。我们有 HA 故障转移解决方案,但我们不确定如何进行此共享存储设置。

我们是否应该在虚拟机上设置简单的 NFS 并共享?如果是,哪个文件系统将位于 NFS 上,我们是否应该在其上创建 LVM?文件系统是否需要集群感知,这样就不会出现数据损坏,因为所有服务器都访问相同的存储?

我们还在这个基础架构上安装了 VMware,使用戴尔存储阵列和生产虚拟机,因此是否可以使用 VMFS Vmware 数据存储来创建虚拟机,我们将在所有 3 台新物理服务器上设置此共享存储,以便在同一个共享存储上部署 KVM 虚拟机所有服务器?

答案1

我有 Dell EMC SCv3020 存储阵列,我想为所有 3 台物理服务器创建共享存储,以使用相同的存储(LVM?)在集群中创建 KVM VM,这样如果 1 台服务器死机,我们可以将 VM 移至另一台。我们有 HA 故障转移解决方案,但我们不确定如何进行此共享存储设置。

您拥有的是典型的所谓双控制器 SAN,根据您的连接性(光纤通道与 iSCSI),您只需从 SAN 磁盘池创建一个新的虚拟 LUN,并将此虚拟 LUN 公开给您的存储消费者。如果您使用 VMware,它将使用 VMFS(一种集群感知文件系统)对其进行格式化,并将此新数据存储用于虚拟机。

这是您应该遵循的一些很好的指南:

https://www.delltechnologies.com/asset/en-us/products/storage/industry-market/h16391-dellemc-unity-storage-vmware-vsphere.pdf

如果您只使用一些没有虚拟机管理程序的服务器,则必须使用一些群集感知文件系统,否则您将使用一些非仲裁写入来破坏虚拟 LUN 上的元数据。请参阅:

https://forums.starwindsoftware.com/viewtopic.php?f=5&t=1392

我们应该在虚拟机上设置简单的 NFS 并共享吗?

您可以将 NFS 用于 VMware 数据存储(因此可以使用 KVM 但不能使用 Hyper-V),但您在这里需要一定程度的 HA,因为您不希望 VM 数据存储成为单点故障(SPOF)。

如果是,哪个文件系统将位于 NFS 上,我们应该在其上创建 LVM 吗?文件系统是否需要集群感知,这样就不会出现数据损坏,因为所有服务器都访问相同的存储?

参见上文。如果您使用 VMware,则虚拟 LUN 之上将是 VMFS,并且将有 VM 数据存储,您可以从生产 VM 内部公开任何文件系统。

我们还在这个基础架构上安装了 VMware,使用戴尔存储阵列和生产虚拟机,因此是否可以使用 VMFS Vmware 数据存储来创建虚拟机,我们将在所有 3 台新物理服务器上设置此共享存储,以便在同一个共享存储上部署 KVM 虚拟机所有服务器?

这实际上是一条可行的路。

答案2

Dell 存储阵列可以通过 iSCSI 或 FC 连接到您的主机。这就是您可以开始的地方。如前所述,您需要集群感知文件系统才能在三个主机上同时使用此存储。cLVM 是最好的选择之一。但是,必须提到的是,拥有单个 SAN 会为您的基础架构创建单点故障。实施冗余的软件定义存储可以解决这个问题。几个例子:

https://www.starwindsoftware.com/starwind-virtual-san

KVM+DRBD 在两个主动-被动服务器之间进行复制,并手动切换

答案3

描述并不全面;这个答案应该起到介绍 HA 集群存储的作用,这也是问题的本质。


传统上,这个问题是使用专用 SAN 解决的,它位于虚拟化集群外部。SAN 在内部是可靠的。它有两个协调的控制器,所有存储介质都是双端口 (SAS),它们的端口一个连接到第一个存储控制器,另一个连接到第二个控制器。磁盘组装成 RAID 阵列。为了访问这些控制器,每个主机都有两个 SAN NIC,一个连接到一个控制器或 SAN 交换机,另一个连接到另一个,如果使用交换机,每个交换机都与每个控制器有链接,因此总共每个主机有 2 或 4 条到每个 RAID 阵列的不同路径。结果,我们得到了一个没有单点故障的存储系统。可以使用多种协议访问此 SAN,包括 SAS、光纤通道、FCoE、iSCSI;一些存储还通过 pNFS 提供作为 NAS 的访问。

所有主流虚拟化集群解决方案都支持此类 SAN。一般来说,SAN 卷被每个主机视为块设备,节点之间存在一些具有某些保证的仲裁。然后,这些块设备用于托管集群感知文件系统以存储 VM 虚拟磁盘。例如,在 Linux 中可以使用 cLVM(LVM 的集群感知版本);在 Hyper-V 集群中,NTFS 被设置为集群感知。


业界现在趋向于融合网络,即 SAN 和 LAN 使用相同的 NIC,并通过引入虚拟子接口(例如 VLAN)进行区分。这也产生了进一步融合服务的吸引力,并将所有高可用性 SAN 任务分散到与运行虚拟机相同的主机上,从而有效地创建虚拟网络 SAN。这被认为是一种超融合解决方案(“软件定义存储”)。我知道有适用于 VMWare 的 vSAN 解决方案,但我没有尝试过。Linux vSAN 解决方案包括 CEPH 和 DRBD;两者都需要至少三个主机(用于仲裁)才能真正冗余,并且还需要足够的网络容量(它们需要冗余的 10G 网络)。可能只有三台功能强大的服务器,每台服务器有两个 10G 接口,这就是拥有冗余 HA 虚拟化集群所需的全部内容;Proxmox VE(基于 Linux KVM 的虚拟化集群,内置 CEPH 支持)在其 YouTube 频道上有视频,解释了如何实现此设置。但是,由于各种原因,没有人建议在生产中运行这样的设置,即使选择采用超融合存储,通常也建议专用一些主机来托管 vSAN,并使用其他主机来运行虚拟机。

相关内容