Поделиться через


Создание правил сходства серверов и сайтов для виртуальных машин

Область применения: 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 можно создавать базовые и анти-правила сходства.

Экран

  1. В Windows Admin Center домашней странице в разделе Все подключения выберите сервер или кластер, для которого нужно создать правило виртуальной машины.
  2. В разделе Сервис выберите Параметры.
  3. В разделе Параметры выберите Правила сходства, а затем в разделе Правила сходства выберите Создать правило.
  4. В разделе Имя правила введите имя правила.
  5. В разделе Тип правила выберите Варианты вместе (один и тот же сервер) или Отдельно (разные серверы), чтобы разместить виртуальные машины на одном сервере или на разных серверах.
  6. В разделе Область применения выберите виртуальные машины, к которым применяется это правило. Нажмите кнопку Добавить , чтобы добавить дополнительные виртуальные машины в правило.
  7. По завершении выберите Создать правило.
  8. Чтобы удалить правило, просто выберите его и выберите Удалить правило.

Использование 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.