共用方式為


建立 VM 的電腦和月臺親和性規則

適用於:Azure Local 2311.2 和更新版本

使用 Windows Admin Center 或 Windows PowerShell,您可以輕鬆地在 Azure 本機實例中建立虛擬機 (VM) 的親和性和反親和性規則。

注意

在 Azure 本機上建立和管理虛擬機器的建議方式,是使用 Azure Arc 控制平面。 只有在您需要 Azure Arc VM 中未提供的功能時,才能使用以下所述的機制來管理 VM。

親和性是一項規則,可建立兩個或多個資源群組或角色之間的關聯性,例如 VM,以將它們放在相同的機器、系統或站臺上。 反親和性相反,因為它用來讓指定的 VM 或資源群組彼此分開,例如放在不同機器上的兩個域控制器,或位於不同的月台進行災害復原。

親和性和反親和性規則的使用方式與 Azure 使用 可用性區域 的方式類似。 在 Azure 中,您可以設定 可用性區域,讓 VM 保持位於不同的區域,彼此之間或彼此位於相同的區域中。

使用同質和反同構型規則時,任何叢集 VM 都會留在同一部電腦上,或無法在同一部電腦上同在一起。 如此一來,將 VM 移出電腦的唯一方式就是手動執行。 您也可以將 VM 與其自己的記憶體一起保留,例如其 VHDX 所在的叢集共用磁碟區(CSV)。

使用 Windows Admin Center

您可以使用 Windows Admin Center 建立基本親和性和反親和性規則。

虛擬機畫面

  1. 在 Windows Admin Center 首頁的 [所有連線] 下,選取您要為其建立 VM 規則的電腦或系統。
  2. 在 [工具] 底下,選取 [設定]。
  3. 在 [設定] 底下,選取 [親和性規則],然後選取 [親和性規則] 底下的 [建立規則]。
  4. 在 [規則名稱] 底下,輸入規則的名稱。
  5. 在 [規則類型] 底下,選取 [ 一起][相同計算機][不同計算機] 以將 VM 放在同一部機器或不同的計算機上。
  6. 在 [套用至] 下,選取此規則適用的 VM。 使用 [ 新增 ] 按鈕,將更多 VM 新增至規則。
  7. 完成後,選取 [ 建立規則]。
  8. 若要刪除規則,請選取規則,然後選取 [ 刪除規則]。

使用 Windows PowerShell

您可以使用 Windows PowerShell 建立比使用 Windows Admin Center 更複雜的規則。 一般而言,您會從遠端電腦設定規則,而不是在系統中的主計算機上設定規則。 此遠端電腦稱為管理電腦。

從管理電腦執行 Windows PowerShell 命令時,請將 -Name-Cluster 參數包含您管理的系統名稱。 如果適用,當您針對計算機使用 -ComputerName 參數時,也需要指定完整功能變數名稱 (FQDN)。

新的 PowerShell Cmdlet

若要建立叢集的親和性規則,請使用下列新的PowerShell Cmdlet:

New-ClusterAffinityRule

Cmdlet New-ClusterAffinityRule 可用來建立新的規則。 使用此指令,您可以指定規則的名稱及其規則類型,其中:

-Name 是規則的名稱

-RuleType 值為 SameFaultDomain | SameNode | DifferentFaultDomain | DifferentNode

範例:

New-ClusterAffinityRule -Name Rule1 -RuleType SameFaultDomain

Set-ClusterAffinityRule

Cmdlet Set-ClusterAffinityRule 可用來啟用或停用規則,其中:

-Name 是要啟用或停用的規則名稱

-Enabled | Disabled 啟用或停用規則

範例:

Set-ClusterAffinityRule -Name Rule1 -Enabled

Get-ClusterAffinityRule

Get-ClusterAffinityRule Cmdlet 可用來顯示指定的規則及其類型。 如果未 -Name 指定,則會列出所有規則。

範例:

Get-ClusterAffinityRule -Name Rule1

Add-ClusterGroupToAffinityRule

Cmdlet Add-ClusterGroupToAffinityRule 是用來將 VM 角色或組名新增至特定同質規則,其中:

-Groups 是要新增至規則的群組或角色名稱。

-Name 是要加入的規則名稱。

範例:

Add-ClusterGroupToAffinityRule -Groups Group1 -Name Rule1

Add-ClusterSharedVolumeToAffinityRule

Add-ClusterSharedVolumeToAffinityRule可讓您的 VM 與 VHDX 所在的叢集共用磁碟區保持一起,其中:

-ClusterSharedVolumes 是您想要新增至規則的 CSV 磁碟

-Name 是要新增至的規則名稱

範例:

Add-ClusterSharedVolumeToAffinityRule -ClusterSharedVolumes CSV1 -Name Rule1

Remove-ClusterAffinityRule

Remove-ClusterAffinityRule 刪除指定的規則,其中 -Name 是規則的名稱。

範例:

Remove-ClusterAffinityRule -Name Rule1

Remove-ClusterGroupFromAffinityRule

Remove-ClusterGroupFromAffinityRule 從特定規則移除 VM 群組或角色,但不會停用或刪除規則,其中:

-Name 是規則的名稱

-Groups 是您想要從規則中移除的群組或角色

範例:

Remove-ClusterGroupFromAffinityRule -Name Rule1 -Groups Group1

Remove-ClusterSharedVolumeFromAffinityRule

Cmdlet Remove-ClusterSharedVolumeFromAffinityRule 用來從特定規則中移除叢集共用磁碟區,但不會停用或刪除規則,其中:

-ClusterSharedVolumes 是您想要從規則中移除的 CSV 磁碟。

-Name 是要加入的規則名稱。

範例:

Remove-ClusterSharedVolumeFromAffinityRule -ClusterSharedVolumes CSV1 -Name Rule1

現有的PowerShell Cmdlet

隨著新 Cmdlet 的出現,我們也將額外的新參數新增至一些現有的 Cmdlet。

Move-ClusterGroup

新的 -IgnoreAffinityRule 參數會忽略規則,並將叢集資源群組移至另一部計算機。 如需此 Cmdlet 的詳細資訊,請參閱 Move-ClusterGroup

範例:

Move-ClusterGroup -IgnoreAffinityRule -Cluster Cluster1

注意

如果移動規則有效(支援),所有受影響的群組和角色也會移動。 如果 VM 放在行動會故意違反規則,但需要一次性暫時性的規則,請使用 -IgnoreAffinityRule 參數來允許行動發生。 在此情況下,將會顯示 VM 的違規警告。 然後,您可以視需要啟用規則返回。

Start-ClusterGroup

新的 -IgnoreAffinityRule 參數會忽略規則,並讓叢集資源群組在其目前位置上線。 如需此 Cmdlet 的詳細資訊,請參閱 Start-ClusterGroup

範例:

Start-ClusterGroup -IgnoreAffinityRule -Cluster Cluster1

親和性規則範例

同質規則是「一起」規則,可讓資源保留在相同計算機、系統或站臺上。 以下是設定親和性規則的一些常見案例。

案例 1

假設您有 SQL Server VM 和 Web Server VM。 這兩部 VM 必須一律保留在相同的月臺,但不一定需要位於相同的電腦上。 您可以使用 SameFaultDomain,如下所示:

New-ClusterAffinityRule -Name WebData -Ruletype SameFaultDomain -Cluster Cluster1

Add-ClusterGroupToAffinityRule -Groups SQL1,WEB1 –Name WebData -Cluster Cluster1

Set-ClusterAffinityRule -Name WebData -Enabled 1 -Cluster Cluster1

若要查看此規則及其設定方式,請使用 Get-ClusterAffinityRule Cmdlet 來查看輸出:

Get-ClusterAffinityRule -Name WebData -Cluster Cluster1

Name        RuleType          Groups        Enabled
----        ---------         ------        -------
WebData     SameFaultDomain   {SQL1, WEB1}     1

案例 2

除了指定 VM 必須位於同一部電腦上之外,讓我們使用相同的案例。 使用 SameNode,將它設定如下:

New-ClusterAffinityRule -Name WebData1 -Ruletype SameNode -Cluster Cluster1

Add-ClusterGroupToAffinityRule -Groups SQL1,WEB1 –Name WebData1 -Cluster Cluster1

Set-ClusterAffinityRule -Name WebData1 -Enabled 1 -Cluster Cluster1

若要查看規則及其設定方式,請使用 Get-ClusterAffinityRule Cmdlet 來檢視輸出:

Get-ClusterAffinityRule -Name WebData1 -Cluster Cluster1

Name    RuleType    Groups        Enabled
----    --------    ------        -------
DC      SameNode    {SQL1, WEB1}     1

反親和性規則範例

反親和性規則是「分開」規則,可分隔資源,並將其放在不同的機器、系統或站臺上。

案例 1

您在相同的 Azure 本機多站台系統上,每個 VM 各有兩部執行 SQL Server。 每個 VM 都會使用大量的記憶體、CPU 和記憶體資源。 如果兩者最終位於同一部計算機上,這可能會導致一或兩者競爭記憶體、CPU 和記憶體週期的效能問題。 使用這些反親和性規則做 DifferentNode 為規則類型,這些 VM 一律會留在不同的電腦上。

範例命令會是:

New-ClusterAffinityRule -Name SQL -Ruletype DifferentNode -Cluster Cluster1

Add-ClusterGroupToAffinityRule -Groups SQL1,SQL2 –Name SQL -Cluster Cluster1

Set-ClusterAffinityRule -Name SQL -Enabled 1 -Cluster Cluster1

若要查看規則及其設定方式,請使用 Get-ClusterAffinityRule Cmdlet 來檢視輸出:

Get-ClusterAffinityRule -Name SQL -Cluster Cluster1

Name    RuleType        Groups        Enabled
----    -----------     -------       -------
SQL     DifferentNode   {SQL1, SQL2}     1

記憶體親和性規則

您也可以在相同電腦上的叢集共用磁碟區上保留 VM 及其 VHDX。 這樣做會防止 CSV 重新導向發生,這可能會讓 VM 的啟動或停止變慢。 考慮到先前的合併同構型和反親和性案例,您可以將 SQL VM 和叢集共用磁碟區保留在相同的電腦上。 若要這樣做,請使用下列命令:

New-ClusterAffinityRule -Name SQL1CSV1 -Ruletype SameNode -Cluster Cluster1

New-ClusterAffinityRule -Name SQL2CSV2 -Ruletype SameNode -Cluster Cluster1

Add-ClusterGroupToAffinityRule -Groups SQL1 –Name SQL1CSV1 -Cluster Cluster1

Add-ClusterGroupToAffinityRule -Groups SQL2 –Name SQL2CSV2 -Cluster Cluster1

Add-ClusterSharedVolumeToAffinityRule -ClusterSharedVolumes CSV1 -Name SQL1CSV1 -Cluster Cluster1

Add-ClusterSharedVolumeToAffinityRule -ClusterSharedVolumes CSV2 -Name SQL2CSV2 -Cluster Cluster1

Set-ClusterAffinityRule -Name SQL1CSV1 -Enabled 1 -Cluster Cluster1

Set-ClusterAffinityRule -Name SQL2CSV2 -Enabled 1 -Cluster Cluster1

若要查看這些規則及其設定方式,請使用 Get-ClusterAffinityRule 不含 參數的 -Name Cmdlet 並檢視輸出。

Get-ClusterAffinityRule -Cluster Cluster1

Name        RuleType               Groups            Enabled
----        --------               ------            -------
Site1Trio   SameFaultDomain        {SQL1, WEB1, DC1}    1
Site2Trio   SameFaultDomain        {SQL2, WEB2, DC2}    1
TrioApart   DifferentFaultDomain   {DC1, DC2}           1
SQL1CSV1    SameNode               {SQL1, <CSV1-GUID>}  1
SQL2CSV2    SameNode               {SQL2, <CSV2-GUID>}  1

下一步

瞭解如何管理 VM。 請參閱 使用 Windows Admin Center 管理 Azure 本機上的 VM。