VM용 서버 및 사이트 선호도 규칙 만들기

적용 대상: Azure Stack HCI, 버전 23H2 및 22H2

Windows Admin Center 또는 Windows PowerShell 사용하여 클러스터에서 VM(가상 머신)에 대한 선호도 및 선호도 방지 규칙을 쉽게 만들 수 있습니다.

참고

Azure Stack HCI 23H2에서 VM을 만들고 관리하는 권장 방법은 Azure Arc 컨트롤 플레인을 사용하는 것입니다. Azure Arc VM에서 사용할 수 없는 기능이 필요한 경우에만 아래에 설명된 메커니즘을 사용하여 VM을 관리합니다.

선호도는 VM(가상 머신)과 같은 두 개 이상의 리소스 그룹 또는 역할 간에 관계를 설정하여 동일한 서버, 클러스터 또는 사이트에 함께 유지하는 규칙입니다. 선호도 방지는 재해 복구를 위해 별도의 서버 또는 별도의 사이트에 배치된 두 도메인 컨트롤러와 같이 지정된 VM 또는 리소스 그룹을 서로 분리하는 데 사용된다는 측면에서 반대입니다.

선호도 및 선호도 방지 규칙은 Azure에서 가용성 영역 사용하는 방식과 유사하게 사용됩니다. Azure에서 VM을 별도의 영역에 두고 서로 떨어져 있거나 서로 동일한 영역에 유지하도록 가용성 영역 구성할 수 있습니다.

선호도 및 선호도 방지 규칙을 사용하면 클러스터된 모든 VM이 동일한 클러스터 노드에 유지되거나 동일한 클러스터 노드에서 함께 사용할 수 없습니다. 이러한 방식으로 노드에서 VM을 이동하는 유일한 방법은 수동으로 수행하는 것입니다. VHDX가 상주하는 CSV(클러스터 공유 볼륨)와 같은 자체 스토리지와 함께 VM을 유지할 수도 있습니다.

선호도 규칙과 선호도 방지 규칙을 결합하여 두 사이트에 걸쳐 확장된 클러스터를 구성하고 VM이 있어야 하는 사이트에 유지할 수도 있습니다.

Windows Admin Center 사용

Windows Admin Center 사용하여 기본 선호도 및 선호도 방지 규칙을 만들 수 있습니다.

가상 머신 화면

  1. Windows Admin Center 홈의 모든 연결에서 VM 규칙을 만들 서버 또는 클러스터를 선택합니다.
  2. 도구에서 설정을 선택합니다.
  3. 설정에서 선호도 규칙을 선택한 다음 선호도 규칙에서 규칙 만들기 선택합니다.
  4. 규칙 이름에서 규칙의 이름을 입력합니다.
  5. 규칙 유형에서 함께(동일한 서버) 또는 떨어져(다른 서버) 를 선택하여 동일한 서버 또는 다른 서버에 VM을 배치합니다.
  6. 적용 대상에서 이 규칙이 적용되는 VM을 선택합니다. 추가 단추를 사용하여 규칙에 VM을 더 추가합니다.
  7. 완료되면 규칙 만들기를 선택합니다.
  8. 규칙을 삭제하려면 규칙을 선택하고 규칙 삭제를 선택하기만 하면 됩니다.

Windows PowerShell 사용

Windows Admin Center 사용하는 것보다 Windows PowerShell 사용하여 더 복잡한 규칙을 만들 수 있습니다. 일반적으로 클러스터의 호스트 서버가 아닌 원격 컴퓨터에서 규칙을 설정합니다. 이 원격 컴퓨터를 관리 컴퓨터라고 합니다.

관리 컴퓨터에서 Windows PowerShell 명령을 실행할 때 관리 중인 클러스터의 이름으로 또는 -Cluster 매개 변수를 포함합니다-Name. 해당하는 경우 서버 노드에 매개 변수를 사용할 -ComputerName 때 FQDN(정규화된 도메인 이름)도 지정해야 합니다.

새로운 PowerShell cmdlet

클러스터에 대한 선호도 규칙을 만들려면 다음 새 PowerShell cmdlet을 사용합니다.

New-ClusterAffinityRule

New-ClusterAffinityRule cmdlet은 새 규칙을 만드는 데 사용됩니다. 이 명령을 사용하면 규칙의 이름과 규칙의 형식을 지정합니다. 여기서는 다음을 수행합니다.

-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

Add-ClusterGroupToAffinityRule cmdlet은 특정 선호도 규칙에 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

Remove-ClusterSharedVolumeFromAffinityRule cmdlet은 특정 규칙에서 클러스터 공유 볼륨을 제거하는 데 사용되지만 규칙을 사용하지 않도록 설정하거나 삭제하지는 않습니다. 여기서는 다음을 수행합니다.

-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과 웹 서버 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

이 규칙 및 구성 방법을 보려면 cmdlet을 Get-ClusterAffinityRule 사용하여 출력을 확인합니다.

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

규칙 및 구성 방법을 보려면 cmdlet을 Get-ClusterAffinityRule 사용하여 출력을 확인합니다.

Get-ClusterAffinityRule -Name WebData1 -Cluster Cluster1

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

선호도 방지 규칙 예제

선호도 방지 규칙은 리소스를 분리하고 다른 서버, 클러스터 또는 사이트에 배치하는 "분리" 규칙입니다.

시나리오 1

각각 동일한 Azure Stack HCI 다중 사이트 클러스터에서 SQL Server 실행되는 두 개의 VM이 있습니다. 각 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

규칙 및 구성 방법을 보려면 cmdlet을 Get-ClusterAffinityRule 사용하여 출력을 확인합니다.

Get-ClusterAffinityRule -Name SQL -Cluster Cluster1

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

시나리오 2

두 사이트(장애 도메인)가 있는 Azure Stack HCI 확장 클러스터가 있다고 가정해 보겠습니다. 별도의 사이트에 유지하려는 두 개의 도메인 컨트롤러가 있습니다. 와 함께 선호도 방지 규칙을 DifferentFaultDomain 규칙 유형으로 사용하면 이러한 도메인 컨트롤러는 항상 다른 사이트에 유지됩니다. 이에 대한 예제 명령은 다음과 같습니다.

New-ClusterAffinityRule -Name DC -Ruletype DifferentFaultDomain -Cluster Cluster1

Add-ClusterGroupToAffinityRule -Groups DC1,DC2 –Name DC -Cluster Cluster1

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

이 규칙 및 구성 방법을 보려면 cmdlet을 Get-ClusterAffinityRule 사용하여 출력을 확인합니다.

Get-ClusterAffinityRule -Name DC -Cluster Cluster1

Name    RuleType                Groups        Enabled
----    --------                -------       -------
DC      DifferentFaultDomain    {DC1, DC2}       1

결합된 규칙 예제

선호도 및 선호도 방지 규칙을 결합하여 다중 사이트 클러스터에서 다양한 VM 조합을 쉽게 구성할 수 있습니다. 이 시나리오에서 각 사이트에는 SQL Server(SQL), 웹 서버(WEB) 및 DC(도메인 컨트롤러)의 세 가지 VM이 있습니다. 각 조합에 대해 와 함께 선호도 규칙을 SameFaultDomain 사용하여 모두 동일한 사이트에 유지할 수 있습니다. 선호도 방지 규칙을 사용하여 각 사이트의 도메인 컨트롤러를 설정하고 아래와 DifferentFaultDomain 같이 도메인 컨트롤러 VM을 별도의 사이트에 유지할 수도 있습니다.

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

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

New-ClusterAffinityRule -Name TrioApart -Ruletype DifferentFaultDomain -Cluster Cluster1

Add-ClusterGroupToAffinityRule -Groups SQL1,WEB1,DC1 –Name Site1Trio -Cluster Cluster1

Add-ClusterGroupToAffinityRule -Groups SQL2,WEB2,DC2 –Name Site2Trio -Cluster Cluster1

Add-ClusterGroupToAffinityRule -Groups DC1,DC2 –Name TrioApart -Cluster Cluster1

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

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

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

규칙 및 구성 방법을 보려면 스위치 없이 cmdlet을 -Name 사용하고 Get-ClusterAffinityRule 생성된 모든 규칙과 해당 출력을 볼 수 있습니다.

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

스토리지 선호도 규칙

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

이러한 규칙 및 구성 방법을 보려면 -Name 스위치 없이 cmdlet을 사용하고 Get-ClusterAffinityRule 출력을 확인합니다.

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 Stack HCI에서 VM 관리를 참조하세요.