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 사용하여 기본 선호도 및 선호도 방지 규칙을 만들 수 있습니다.
- Windows Admin Center 홈의 모든 연결에서 VM 규칙을 만들 서버 또는 클러스터를 선택합니다.
- 도구에서 설정을 선택합니다.
- 설정에서 선호도 규칙을 선택한 다음 선호도 규칙에서 규칙 만들기를 선택합니다.
- 규칙 이름에서 규칙의 이름을 입력합니다.
- 규칙 유형에서 함께(동일한 서버) 또는 떨어져(다른 서버) 를 선택하여 동일한 서버 또는 다른 서버에 VM을 배치합니다.
- 적용 대상에서 이 규칙이 적용되는 VM을 선택합니다. 추가 단추를 사용하여 규칙에 VM을 더 추가합니다.
- 완료되면 규칙 만들기를 선택합니다.
- 규칙을 삭제하려면 규칙을 선택하고 규칙 삭제를 선택하기만 하면 됩니다.
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 관리를 참조하세요.