Создание правил сходства серверов и сайтов для виртуальных машин
Область применения: Azure Stack HCI версий 23H2 и 22H2
Используя Windows Admin Center или Windows PowerShell, вы можете легко создавать правила сопоставления и защиты от сходства для виртуальных машин в кластере.
Примечание
Рекомендуемый способ создания виртуальных машин и управления ими в Azure Stack HCI 23H2 — использование уровня управления Azure Arc. Используйте описанный ниже механизм для управления виртуальными машинами, только если вам нужны функциональные возможности, недоступные на виртуальных машинах Azure Arc.
Сходство — это правило, устанавливающее связь между двумя или более группами ресурсов или ролями, такими как виртуальные машины, чтобы сохранить их на одном сервере, кластере или сайте. Антисходство является противоположным в том, что он используется для хранения указанных виртуальных машин или групп ресурсов друг от друга, таких как два контроллера домена, размещенные на отдельных серверах или на отдельных сайтах для аварийного восстановления.
Правила сходства и защиты от сходства используются аналогично тому, как Azure использует Зоны доступности. В Azure можно настроить Зоны доступности таким образом, чтобы виртуальные машины сохранялись в отдельных зонах и вдали друг от друга или в одной зоне друг с другом.
Используя правила сопоставления и защиты от сходства, любая кластеризованная виртуальная машина либо останется в одном узле кластера, либо не сможет находиться вместе на одном узле кластера. Таким образом, единственный способ переместить виртуальную машину из узла — сделать это вручную. Вы также можете хранить виртуальные машины вместе с собственным хранилищем, таким как общий том кластера (CSV), на котором находится виртуальный жесткий диск.
Сочетая правила сходства и защиты от сходства, вы также можете настроить растянутый кластер на двух сайтах и сохранить виртуальные машины на том сайте, в который они должны находиться.
Использование Windows Admin Center
С помощью Windows Admin Center можно создавать базовые и анти-правила сходства.
- В Windows Admin Center домашней странице в разделе Все подключения выберите сервер или кластер, для которого нужно создать правило виртуальной машины.
- В разделе Сервис выберите Параметры.
- В разделе Параметры выберите Правила сходства, а затем в разделе Правила сходства выберите Создать правило.
- В разделе Имя правила введите имя правила.
- В разделе Тип правила выберите Варианты вместе (один и тот же сервер) или Отдельно (разные серверы), чтобы разместить виртуальные машины на одном сервере или на разных серверах.
- В разделе Область применения выберите виртуальные машины, к которым применяется это правило. Нажмите кнопку Добавить , чтобы добавить дополнительные виртуальные машины в правило.
- По завершении выберите Создать правило.
- Чтобы удалить правило, просто выберите его и выберите Удалить правило.
Использование Windows PowerShell
С помощью Windows PowerShell можно создавать более сложные правила, чем с помощью Windows Admin Center. Как правило, правила настраивают с удаленного компьютера, а не на сервере узла в кластере. Этот удаленный компьютер называется компьютером управления.
При выполнении Windows PowerShell команд с компьютера управления добавьте -Name
параметр или -Cluster
с именем кластера, которым вы управляете. Если применимо, необходимо также указать полное доменное имя (FQDN) при использовании -ComputerName
параметра для узла сервера.
Новые командлеты PowerShell
Чтобы создать правила сопоставления для кластеров, используйте следующие новые командлеты PowerShell:
New-ClusterAffinityRule
Командлет New-ClusterAffinityRule
используется для создания новых правил. С помощью этой команды необходимо указать имя правила и его тип, где:
-Name
— имя правила.
-RuleType
значения: SameFaultDomain
| SameNode
| DifferentFaultDomain
| DifferentNode
Пример
New-ClusterAffinityRule -Name Rule1 -RuleType SameFaultDomain
Set-ClusterAffinityRule
Командлет Set-ClusterAffinityRule
используется для включения или отключения правила, где:
-Name
— это имя правила для включения или отключения.
-Enabled
|
Disabled
включает или отключает правило
Пример
Set-ClusterAffinityRule -Name Rule1 -Enabled
Get-ClusterAffinityRule
Командлет Get-ClusterAffinityRule
используется для отображения указанного правила и его типа. Если -Name
параметр не указан, будут перечислены все правила.
Пример
Get-ClusterAffinityRule -Name Rule1
Add-ClusterGroupToAffinityRule
Командлет Add-ClusterGroupToAffinityRule
используется для добавления роли или группы виртуальной машины в определенное правило сходства, где:
-Groups
— это имя группы или роли для добавления в правило.
-Name
— имя правила для добавления.
Пример
Add-ClusterGroupToAffinityRule -Groups Group1 -Name Rule1
Add-ClusterSharedVolumeToAffinityRule
позволяет Add-ClusterSharedVolumeToAffinityRule
виртуальным машинам оставаться вместе с общим томом кластера, в котором находится VHDX, где:
-ClusterSharedVolumes
— это диски CSV, которые вы хотите добавить в правило.
-Name
— это имя правила для добавления.
Пример
Add-ClusterSharedVolumeToAffinityRule -ClusterSharedVolumes CSV1 -Name Rule1
Remove-ClusterAffinityRule
Удаляет Remove-ClusterAffinityRule
указанное правило, где -Name
— это имя правила.
Пример
Remove-ClusterAffinityRule -Name Rule1
Remove-ClusterGroupFromAffinityRule
Удаляет Remove-ClusterGroupFromAffinityRule
группу виртуальных машин или роль из определенного правила, но не отключает или не удаляет правило, где:
-Name
— имя правила.
-Groups
— это группы или роли, которые вы хотите удалить из правила;
Пример
Remove-ClusterGroupFromAffinityRule -Name Rule1 -Groups Group1
Remove-ClusterSharedVolumeFromAffinityRule
Командлет Remove-ClusterSharedVolumeFromAffinityRule
используется для удаления общих томов кластера из определенного правила, но не отключает или не удаляет правило, где:
-ClusterSharedVolumes
— это диски CSV, которые требуется удалить из правила.
-Name
— имя правила для добавления.
Пример
Remove-ClusterSharedVolumeFromAffinityRule -ClusterSharedVolumes CSV1 -Name Rule1
Существующие командлеты PowerShell
С появлением новых командлетов мы также добавили дополнительные новые коммутаторы в несколько существующих командлетов.
Move-ClusterGroup
Новый -IgnoreAffinityRule
параметр игнорирует правило и перемещает группу кластеризованных ресурсов на другой узел кластера. Дополнительные сведения об этом командлете см. в разделе Move-ClusterGroup.
Пример
Move-ClusterGroup -IgnoreAffinityRule -Cluster Cluster1
Примечание
Если правило перемещения является допустимым (поддерживается), все затронутые группы и роли также будут перемещены. Если перемещение виртуальной машины сознательно нарушает правило, но оно необходимо разово временно, используйте -IgnoreAffinityRule
переключатель, чтобы разрешить перемещение. В этом случае отобразится предупреждение о нарушении для виртуальной машины. Затем вы можете включить правило обратно при необходимости.
Start-ClusterGroup
Новый -IgnoreAffinityRule
параметр игнорирует правило и переводит кластеризованную группу ресурсов в режим "в сети" в ее текущем расположении. Дополнительные сведения об этом командлете см. в разделе Start-ClusterGroup.
Пример
Start-ClusterGroup -IgnoreAffinityRule -Cluster Cluster1
Примеры правил сходства
Правила сходства — это "вместе" правила, которые хранят ресурсы на одном сервере, кластере или сайте. Ниже приведено несколько распространенных сценариев настройки правил сходства.
Сценарий 1
Предположим, у вас есть виртуальная машина SQL Server и виртуальная машина веб-сервера. Эти две виртуальные машины должны всегда оставаться на одном сайте, но не обязательно находиться на одном узле кластера на сайте. При использовании 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
, используйте командлет для просмотра выходных данных:
Get-ClusterAffinityRule -Name WebData -Cluster Cluster1
Name RuleType Groups Enabled
---- --------- ------ -------
WebData SameFaultDomain {SQL1, WEB1} 1
Сценарий 2
Давайте используем тот же сценарий выше, за исключением того, что виртуальные машины должны находиться на одном узле кластера. С помощью 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
, используйте командлет для просмотра выходных данных:
Get-ClusterAffinityRule -Name WebData1 -Cluster Cluster1
Name RuleType Groups Enabled
---- -------- ------ -------
DC SameNode {SQL1, WEB1} 1
Примеры правил защиты от сходства
Правила защиты от сходства — это "отдельные" правила, которые разделяют ресурсы и размещают их на разных серверах, кластерах или сайтах.
Сценарий 1
У вас есть две виртуальные машины, работающие SQL Server в одном многосайтовом кластере Azure Stack HCI. Каждая виртуальная машина использует большой объем памяти, ЦП и ресурсов хранилища. Если они в конечном итоге на одном узле, это может привести к проблемам с производительностью одного или обоих, так как они конкурируют за память, ЦП и циклы хранения. Используя правило защиты от сходства с DifferentNode
в качестве типа правила, эти виртуальные машины всегда будут оставаться на разных узлах кластера.
Примеры команд для этого:
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
, используйте командлет для просмотра выходных данных:
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
Чтобы просмотреть это правило и его настройку Get-ClusterAffinityRule
, используйте командлет для просмотра выходных данных:
Get-ClusterAffinityRule -Name DC -Cluster Cluster1
Name RuleType Groups Enabled
---- -------- ------- -------
DC DifferentFaultDomain {DC1, DC2} 1
Примеры объединенных правил
Сочетая правила сходства и защиты от сходства, можно легко настроить различные сочетания виртуальных машин в кластере с несколькими сайтами. В этом сценарии каждый сайт имеет три виртуальные машины: SQL Server (SQL), web Server (WEB) и контроллер домена (DC). Для каждой комбинации можно использовать правила сходства с SameFaultDomain
, чтобы сохранить их все на одном сайте. Вы также можете задать контроллеры домена для каждого сайта с помощью правил защиты от сходства и DifferentFaultDomain
сохранить виртуальные машины контроллера домена на отдельных сайтах, как показано ниже.
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
Чтобы просмотреть правила и их настройку Get-ClusterAffinityRule
, используйте командлет без -Name
параметра , чтобы просмотреть все созданные правила и их выходные данные.
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
Правила сходства хранилища
Вы также можете сохранить виртуальную машину и ее VHDX в общем томе кластера (CSV) на одном узле кластера. Это не позволит выполнять перенаправление CSV, что может замедлить запуск или остановку виртуальной машины. Учитывая ранее объединенный сценарий сходства и защиты от сходства, можно сохранить виртуальную машину SQL и общий том кластера на одном узле кластера. Для этого используйте следующие команды:
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 и просмотрите выходные данные.
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
Дальнейшие действия
Узнайте, как управлять виртуальными машинами. См. статью Управление виртуальными машинами в Azure Stack HCI с помощью Windows Admin Center.