![使用 Windows 故障转移群集或 Proxmox 构建低成本、高可用性群集](https://linux22.com/image/788336/%E4%BD%BF%E7%94%A8%20Windows%20%E6%95%85%E9%9A%9C%E8%BD%AC%E7%A7%BB%E7%BE%A4%E9%9B%86%E6%88%96%20Proxmox%20%E6%9E%84%E5%BB%BA%E4%BD%8E%E6%88%90%E6%9C%AC%E3%80%81%E9%AB%98%E5%8F%AF%E7%94%A8%E6%80%A7%E7%BE%A4%E9%9B%86.png)
我需要为虚拟机(AD DC、FS、WSUS、打印服务器、一个 Oracle 数据库、一些 Linux(对业务不重要))构建一个高可用性集群(关键功能,SLA 几乎 24/7)。性能不是那么重要,但当然一切都需要运转良好。
我拥有的东西:
- 目前只有一个物理站点(数据中心)
- Windows Server 2019 Standard 许可证
- 安装 Proxmox 和购买 Proxmox 支持的能力
- 两台具有支持合同的不同联想服务器(一台有 16 个核心,另一台有 20 个核心,一台有 9 个 279GB 驱动器,另一台有 3 个 279GB 驱动器(均可使用 RAID5)
- 两个 1 GB 堆叠交换机
- Synology 配备 2 个电源和 4 x GB 以太网卡
我可以买的东西:
- 专业存储阵列
- 适用于联想服务器的 HBA 卡
最初的想法是为不需要快速读/写存储带宽(2 个节点和一个存储设备 1 个故障点)的虚拟服务器构建一个通过 iSCSI 连接到 Synology(或新的存储阵列)的 Windows 高可用性集群。
我读过一些关于存储副本的文章。我可以为不需要性能的虚拟机构建一个具有 2 个节点和一个存储阵列的集群,并在需要更高性能的虚拟机的磁盘节点上的卷上使用存储副本机制(在相同的节点上)吗?
编辑(更多信息):
我可以在 Windows 故障转移群集上拥有一个(两个中的一个)DC 服务器的 VM 吗?具有 DC(所有 AD 主角色)的第二个 VM 将位于不属于群集的其他服务器上。
我有 2 个带有 DC 的 VM 用于 AD,但我需要其他服务/服务器的故障转移解决方案。
Windows 故障转移中有一个名为 Cluster awernes updates 的选项。它没有像我猜测的那样工作(因为名称不言自明)?
恢复时间目标和恢复点目标不是那么严格。如果对不太重要的服务有 1 小时的间隔,对关键任务服务有 15 分钟的间隔,业务将正常运行。
答案1
您绝对可以使用 SR(存储副本)来构建“穷人的” Windows Server 故障转移群集(WSFC)。请参阅下面的示例,其中人们使用 SR 对 SMB3 文件服务进行群集化。
这就是引导这一过程的方法。当然,尽可能地引导。
https://www.virtualizationhowto.com/2019/11/windows-server-2019-storage-replica-failover-process/
问题是 SR 旨在用作 DR(灾难恢复)解决方案,而不是 HA(高可用性)解决方案。SR 不太灵活,需要一些照顾,很少使用,并且需要数据中心版(Windows Server Standard 中包含的 1TB 版本除外)。不推荐。这是微软的说法。
https://learn.microsoft.com/en-us/windows-server/storage/storage-replica/storage-replica-overview
底线...如果您已经为数据中心付费,您可以尝试 S2D(存储空间直通),但它只适合勇敢的人,因为它仍然不可靠,或者您可以使用免费的虚拟 SAN(vSAN),不仅可以与标准版一起使用,还可以与免费的 Hyper-V 服务器一起使用。
答案2
域控制器使用自己的复制机制,不需要任何共享存储。
借助 DFS-R 解决方案,文件服务器可以实现高可用性。它并不完美,但有相当多的局限性(没有真正的透明故障转移、读取惩罚,也没有裂脑保护)。
https://learn.microsoft.com/en-us/windows-server/storage/dfs-replication/dfsr-overview
Oracle 有自己的数据库 (DB) 复制,类似于 MS SQL Server Always On 可用性组 (AG)。
简而言之:重新思考你正在做的事情,可能是你对整个事情想得太多、设计得太多。
答案3
您应该避免在生产中使用 Synology。它只有一个控制器,因此在固件更新、重启或出现任何问题时,整个集群都会瘫痪。典型的 SPOF。
答案4
如果您想使用 Proxmox 实现高可用性,那么您需要一个具有三个节点(或 (n*2 +1))的集群,但附加节点可以非常基础 - 只是作为观察者来仲裁裂脑决策。请注意,当集群节点离线时,Proxmox HA 提供了一种启动丢失的虚拟机的方法。对于 MS-AD,您不需要这样做 - 只需确保现有节点分布在单独的硬件上即可。
请确保您有足够的资源(存储、CPU、内存)来运行关键虚拟机和幸存物理节点上的任何剩余虚拟机;Proxmox 中(目前)没有机制来关闭非关键虚拟机以释放关键虚拟机的容量。
您的 Synology 盒子是 SPOF,因此不适合用作 HA VM 的主存储。它是保存备份的好地方,但您确实想使用 PBS 进行备份,并且不喜欢存储访问延迟 - 如果您的 Synology 支持 docker,ISTR 有 PBS 提供的 docker 映像。
对于基于 ceph 的存储来说,这个设置有点小,但是你不想在虚拟机管理程序上使用内置的 ZFS 复制或 gluterfs 来确保磁盘映像同步,这是有原因的吗?
虽然一般来说,在应用程序堆栈顶部处理复制和 HA 之类的事情会更顺畅,但这确实意味着每个组件都有不同的实现 - 尝试将 MS-Storage-Replica 用于 Oracle 数据库可能不是一个愉快的体验。我绝对建议使用 Proxmox / ZFS 复制作为默认设置,然后在不适合的地方添加例外。