在 4 节点 Windows Server 群集中运行一个进程

在 4 节点 Windows Server 群集中运行一个进程

有没有办法在 Windows Server 上的 4 节点设置中运行单个进程?

如果运行该进程的节点关闭,是否自动在剩余的 3 个节点之一上启动该进程?目前,这必须在没有 Docker 的情况下完成,必须在 VM 级别完成。

4 个节点将运行 Windows 服务,其中将有一个服务。除了这个服务之外,其他服务将同时在所有 4 个节点上运行,我希望每次只在一个节点上运行这个服务。

答案1

通用服务可以通过故障转移群集实现高可用性 (HA)。以下文章介绍了配置过程:https://techcommunity.microsoft.com/t5/failover-clustering/creating-and-configuring-a-generic-service-resource/ba-p/371443

另一种选择是,您可以将服务配置为在 VM 内部运行,并配置 Hyper-V 故障转移群集。这样管理起来会更容易,而且您的服务将在隔离的(单独的环境中)运行。这两种选择都需要共享存储。它可以是文件共享、SAN 或 vSAN。例如,您可以使用 S2D 或 StarWind VSAN 作为共享存储。

https://learn.microsoft.com/en-us/azure-stack/hci/concepts/storage-spaces-direct-overview

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

答案2

为了让我的理解正确,您不是在谈论尝试在四台独立的服务器上运行单个进程?(我们确实时常会遇到这个问题,对于某些工作负载来说,这可以做到,但并不总是正确的答案)——您问的是,是否可以在一台服务器上运行一台虚拟机,但当该服务器发生故障时,虚拟机将在剩余三台服务器之一上重新启动——对吗?如果是这样,那么 VMware 的 HA(高可用性)就是这么做的。显然,您需要有一个 VMware 设置,其中包含四个获得许可的 ESXi 副本、一个获得许可的 vCenter 和某种形式的共享存储(或 vSAN)——但它是有效的,我们有很多这种设置,它肯定有效。

我不确定微软是否有类似产品,当然他们可以用一些产品来实现这一点,MS SQL 可以,文件服务 (SMB) 可以,我认为 Exchange,也许还有 Sharepoint,也可以 - 但在所有这些情况下,都是为利用集群而编写的应用程序 - 它不仅仅是一个可以神奇地利用集群的普通软件。我也不知道微软的 HyperV 虚拟机管理程序是否具有相同的“HA”功能,很抱歉,VMware 拥有许多他们为自己的产品保留的专利功能,这意味着许多其他虚拟机管理程序错过了这些功能,或者不得不以非常不同、通常更差的方式来实现它们。

也许您可以向我们提供更详细的信息,以便我们可以提供更多帮助,希望这会有所帮助。

相关内容