我正在计划一个 proxmox HA 配置,其中有两台 Dell R710 机器(每台双 6 核处理器)和企业级驱动器 RAID 阵列。我将在第三台机器上使用 DRBD 和仲裁磁盘。我会将每台服务器上的两个 1GB 网卡专用于 DRBD 通信。我们将在这对服务器上运行大约 12 到 14 个虚拟机。proxmox 手册建议创建两个 DRBD 资源 - 一个用于通常在 ServerA 上运行的虚拟机,另一个用于通常在 ServerB 上运行的虚拟机。这是因为此配置运行时处于 Primary/Primary 状态。如果两台服务器的虚拟机都在与相同的 DRBD 资源通信,并且出现脑裂情况,则可能存在必须解决的数据损坏问题。
虽然我知道创建新的虚拟机需要更多的努力,但是任何人都可以预见为每个虚拟机运行单独的 DRBD 资源的任何潜在问题吗?有没有人有以这种方式运行设置的经验并且运行良好?在我看来,这样可以更灵活地来回移动机器。
我没有使用 Poxmox 的经验,但在 CentOS 上配置了正常的起搏器/corosync 集群,所以希望我的观察在这里仍然有用和适用。
我对 Primary/Primary DRBD 设置非常怀疑。即使使用主要/次要配置,如果出现问题,也可能会出现脑裂。我想知道 DRBD 在没有很好调整的集群中是多么容易陷入裂脑状态。
对于主要/主要案例,应特别注意围栏设施,以减少数据丢失的可能性。两节点 DRBD 集群的精彩介绍在这里。
主要/主要设置主要用于实时迁移。如果您不使用实时迁移 Primary/Secondary 就足够了,而且更可取。
关于您的问题,专用的 DRBD 资源也是有效的解决方案。您可能会将存储堆栈从 DRBD/LVM 移动到 LVM/DRBD。
因此,即使在主要/次要设置中也需要杂乱无章的 LVM. UPD:这里不需要集群 LVM,也不需要 dlm 来提供它。我看到的主要缺点是:准备 VM 存储需要大量的手动操作。
还有一点要提前考虑——备份策略。对于许多 DRBD 资源,它可能会更复杂一些。
我使用 LVM/DRBD 堆栈和 VM 专用 DRBD 资源开始了我的第一个集群设置,但后来切换到更常见的 DRBD/LVM,因为在这种情况下新的 VM 配置要简单得多。