我正在尝试使用群集 Hyper-V 设置来设置反亲和性,但我正在努力让任何虚拟机保持分开。看来,反亲和根本就没有兑现。
设置:
- 3 x Hyper-V 服务器(服务器 1、服务器 2、服务器 3)
- 3 个虚拟机(web_test_1、web_test_2、web_test3)
尝试 1: 我在 server1 上运行了以下脚本:
$WEBAntiAffinity = New-Object System.Collections.Specialized.StringCollection
$WEBAntiAffinity.Add("WEB Servers")
(Get-ClusterGroup –Name WEB_TEST_1).AntiAffinityClassNames = $WEBAntiAffinity
(Get-ClusterGroup –Name WEB_TEST_2).AntiAffinityClassNames = $WEBAntiAffinity
(Get-ClusterGroup –Name WEB_TEST_3).AntiAffinityClassNames = $WEBAntiAffinity
Get-ClusterGroup |Select-Object -Property name,AntiAffinityClassNames
在我运行上述程序并在 server1 上创建之前,所有三个 VM 都已关闭。
开机时,它们都开机并停留在 server1 上。
尝试 2: 我在其他服务器(server2 和 server3)上运行了上面相同的脚本。
我关闭了 VM 并再次打开它们,它们再次都保留在 server1 上。
尝试3: 在所有服务器上运行脚本后,我一个接一个地重新启动服务器。在重新启动期间,虚拟机在节点之间正常移动,但是当所有虚拟机重新启动时,我停止了所有虚拟机,将它们移动到 server1,然后再次启动它们。
我的假设是 2 会在通电之前移动,但这并没有发生,它们都在 server1 上启动。
有人知道我在这里做错了什么吗?我错过了一些先决条件吗?我在网上找到的例子并不多。