共用方式為


建立 VM 的機器和站台對應規則

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

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

備註

  • 在 Azure 本機上建立和管理虛擬機器的建議方式,是使用 Azure Arc 控制平面。 不過,由於本文所述的功能尚未由 Azure Arc 提供,因此您可以使用 Windows Admin Center 或 PowerShell,如本文所述。 以這種方式建立的 VM 不會由 Azure Arc 啟用,從而導致其在 Azure Arc 控制平面中的管理性有限,並且享有較少的 Azure 混合式權益,包括無需額外費用即可使用 Azure Update Manager。

  • 如需詳細資訊,請參閱 比較 Azure 本機 VM 上 VM 的管理功能 ,以及 Azure 本機 VM 的支持作業

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

親和性和反親和性規則的使用方式與 Azure 使用 可用性區域 的方式類似。 在 Azure 中,您可以設定可用性區域,讓 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:

新集羣相近性規則

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

-Name 是規則的名稱

-RuleType 值為 SameFaultDomain | SameNode | DifferentFaultDomain | DifferentNode

範例:

New-ClusterAffinityRule -Name Rule1 -RuleType SameFaultDomain

設定叢集關聯規則

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可讓您的 VM 與 VHDX 所在的叢集共用磁碟區保持一起,其中:

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

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

範例:

Add-ClusterSharedVolumeToAffinityRule -ClusterSharedVolumes CSV1 -Name Rule1

移除叢集相依性規則

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

範例:

Remove-ClusterAffinityRule -Name Rule1

移除-叢集群組從聯盟規則

會將 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。

移動群集群組 (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

您有兩個 VM,每個都在相同的 Azure 本機多站台系統上執行 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)上。 這樣做會防止 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。