使用 Windows 故障转移群集或 Proxmox 构建低成本、高可用性群集

使用 Windows 故障转移群集或 Proxmox 构建低成本、高可用性群集

我需要为虚拟机(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.starwindsoftware.com/blog/part-1-storage-replica-with-failover-cluster-and-file-server-role-windows-server-technical-preview

这就是引导这一过程的方法。当然,尽可能地引导。

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 服务器一起使用。

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

答案2

域控制器使用自己的复制机制,不需要任何共享存储。

https://learn.microsoft.com/en-us/windows-server/identity/ad-ds/get-started/replication/active-directory-replication-concepts

https://www.manageengine.com/products/active-directory-audit/kb/how-to/how-to-check-if-domain-controllers-are-in-sync-with-each-other.html

借助 DFS-R 解决方案,文件服务器可以实现高可用性。它并不完美,但有相当多的局限性(没有真正的透明故障转移、读取惩罚,也没有裂脑保护)。

https://learn.microsoft.com/en-us/windows-server/storage/dfs-replication/dfsr-overview

Oracle 有自己的数据库 (DB) 复制,类似于 MS SQL Server Always On 可用性组 (AG)。

https://www.arcion.io/learn/oracle-replication#:~:text=Oracle%20replication%20allows%20users%20to,reporting%2C%20testing%2C%20and%20backups

简而言之:重新思考你正在做的事情,可能是你对整个事情想得太多、设计得太多。

答案3

您应该避免在生产中使用 Synology。它只有一个控制器,因此在固件更新、重启或出现任何问题时,整个集群都会瘫痪。典型的 SPOF。

https://en.m.wikipedia.org/wiki/Single_point_of_failure

答案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 复制作为默认设置,然后在不适合的地方添加例外。

相关内容