Создание правил сопоставления серверов и сайтов для виртуальных машинCreate server and site affinity rules for VMs

Применимо к Azure Stack ХЦИ, версия 20H2Applies to Azure Stack HCI, version 20H2

С помощью центра администрирования Windows или Windows PowerShell можно легко создавать правила сходства и защиты для виртуальных машин в кластере.Using either Windows Admin Center or Windows PowerShell, you can easily create affinity and anti-affinity rules for your virtual machines (VMs) in a cluster.

Сходство — это правило, которое устанавливает связь между двумя или несколькими группами ресурсов или ролями, например виртуальными машинами, для их совместного сохранения на одном сервере, кластере или сайте.Affinity is a rule that establishes a relationship between two or more resource groups or roles, such as virtual machines (VMs), to keep them together on the same server, cluster, or site. Защита от сходства отличается тем, что она используется для сохранения указанных виртуальных машин или групп ресурсов друг от друга, например двух контроллеров домена, размещенных на отдельных серверах или на отдельных сайтах для аварийного восстановления.Anti-affinity is the opposite in that it is used to keep the specified VMs or resource groups apart from each other, such as two domain controllers placed on separate servers or in separate sites for disaster recovery.

Правила сходства и борьбы с сходством используются аналогично тому, как Azure использует Зоны доступности.Affinity and anti-affinity rules are used similarly to the way Azure uses Availability Zones. В Azure можно настроить Зоны доступности для сохранения виртуальных машин в разных зонах, а также между ними или в одной и той же зоне.In Azure, you can configure Availability Zones to keep VMs in separate zones and away from each other or in the same zone with each other.

Используя правила сходства и защиты, любая кластеризованная виртуальная машина будет находиться в том же узле кластера или быть предотвращенной в одном узле кластера.Using affinity and anti-affinity rules, any clustered VM would either stay in the same cluster node or be prevented from being together in the same cluster node. Таким образом, единственный способ переместить виртуальную машину из узла — это сделать это вручную.In this way, the only way to move a VM out of a node would be to do it manually. Вы также можете хранить виртуальные машины вместе с собственным хранилищем, например общий том кластера (CSV), в котором находится VHDX-файл.You can also keep VMs together with its own storage, such as the Cluster Shared Volume (CSV) that its VHDX resides on.

Сочетая правила сходства и защиты, можно также настроить Растянутый кластер на двух сайтах и хранить виртуальные машины на сайте, где они должны находиться.Combining affinity and anti-affinity rules, you can also configure a stretched cluster across two sites and keep your VMs in the site they need to be in.

Использование Windows Admin CenterUsing Windows Admin Center

Основные правила сходства и защиты можно создать с помощью центра администрирования Windows.You can create basic affinity and anti-affinity rules using Windows Admin Center.

Экран "Виртуальные машины"

  1. В домашней папке центра администрирования Windows в разделе все подключениявыберите сервер или кластер, для которого нужно создать правило виртуальной машины.In Windows Admin Center home, under All connections, select the server or cluster you want to create the VM rule for.
  2. В разделе Сервисвыберите Параметры.Under Tools, select Settings.
  3. В разделе Параметрывыберите правила сходства, а затем выберите создать правило в разделе правила сопоставления.Under Settings, select Affinity rules, then select Create rule under Affinity rules.
  4. В разделе имя правилавведите имя правила.Under Rule name, enter a name for your rule.
  5. В разделе Тип правила выберите один или несколько серверов ( разные серверы) , чтобы разместить виртуальные машины на одном сервере или на разных серверах.Under Rule type, select either Together (same server) or Apart (different servers) to place your VMs on the same server or on different servers.
  6. В разделе применяется квыберите виртуальные машины, к которым будет применяться это правило.Under Applies to, select the VMs that this rule will apply to. Используйте кнопку Добавить , чтобы добавить дополнительные виртуальные машины в правило.Use the Add button to add more VMs to the rule.
  7. По завершении нажмите кнопку создать правило.When finished, click Create rule.
  8. Чтобы удалить правило, просто выберите его и щелкните Удалить правило.To delete a rule, simply select it and click Delete rule.

Использование Windows PowerShellUsing Windows PowerShell

С помощью Windows PowerShell можно создавать более сложные правила, чем при использовании центра администрирования Windows.You can create more complex rules using Windows PowerShell than using Windows Admin Center. Как правило, правила настраиваются с удаленного компьютера, а не на сервере узла в кластере.Typically, you set up your rules from a remote computer, rather than on a host server in a cluster. Этот удаленный компьютер называется компьютером управления.This remote computer is called the management computer.

При выполнении команд Windows PowerShell с компьютера управления включите -Name -Cluster параметр или с именем управляемого кластера.When running Windows PowerShell commands from a management computer, include the -Name or -Cluster parameter with the name of the cluster you are managing. Если применимо, необходимо также указать полное доменное имя (FQDN) при использовании -ComputerName параметра для узла сервера.If applicable, you will also need to specify the fully qualified domain name (FQDN) when using the -ComputerName parameter for a server node

Новые командлеты PowerShellNew PowerShell cmdlets

Чтобы создать правила сходства для кластеров, используйте следующие новые командлеты PowerShell:To create affinity rules for clusters, use the following new PowerShell cmdlets:

New-ClusterAffinityRuleNew-ClusterAffinityRule

New-ClusterAffinityRule Командлет используется для создания новых правил.The New-ClusterAffinityRule cmdlet is used to create new rules. С помощью этой команды можно указать имя правила, а также тип правила, где:With this command you would specify the name of the rule as well as the type of rule it is, where:

-Name имя правила.-Name is the name of the rule

-RuleType значения SameFaultDomain | SameNode | DifferentFaultDomain | DifferentNode-RuleType values are SameFaultDomain | SameNode | DifferentFaultDomain | DifferentNode

ПримерExample:

New-ClusterAffinityRule -Name -RuleType SameFaultDomain -Cluster Cluster1

Set-ClusterAffinityRuleSet-ClusterAffinityRule

Set-ClusterAffinityRule Командлет используется для включения или отключения правила, где:The Set-ClusterAffinityRule cmdlet is used to enable or disable a rule, where:

-Name имя правила для включения или отключения-Name is the name of the rule to enable or disable

-Enabled | Disabled включает или отключает правило.-Enabled | Disabled enables or disables the rule

ПримерExample:

Set-ClusterAffinityRule -Name -Enabled -Cluster Cluster1

Get-ClusterAffinityRuleGet-ClusterAffinityRule

Get-ClusterAffinityRule Командлет используется для вывода указанного правила и его типа.The Get-ClusterAffinityRule cmdlet is used to display the specified rule and what type it is. Если -Name не указан, будет отображаться список всех правил.If -Name is not specified, it will list all rules.

ПримерExample:

Get-ClusterAffinityRule -Name -Cluster Cluster1

Add-ClusterGroupToAffinityRuleAdd-ClusterGroupToAffinityRule

Add-ClusterGroupToAffinityRule Командлет используется для добавления роли или имени группы виртуальной машины к определенному правилу сходства, где:The Add-ClusterGroupToAffinityRule cmdlet is used to add a VM role or group name to a specific affinity rule, where:

-Groups имя группы или роли, добавляемой в правило-Groups is the name of the group or role to add to the rule

-Name имя правила, к которому добавляется-Name is the name of the rule to add to

ПримерExample:

Add-ClusterGroupToAffinityRule -Groups -Name -Cluster Cluster1

Add-ClusterSharedVolumeToAffinityRuleAdd-ClusterSharedVolumeToAffinityRule

Add-ClusterSharedVolumeToAffinityRule Позволяет виртуальным машинам оставаться вместе с общий том кластера, в которой находятся VHDX-файлы, где:The Add-ClusterSharedVolumeToAffinityRule allows your VMs to stay together with the Cluster Shared Volume the VHDX resides on, where:

-ClusterSharedVolumes диски CSV, которые требуется добавить в правило-ClusterSharedVolumes is the CSV disk(s) you wish to add to the rule

-Name имя правила для добавления-Name is the name of rule to add to

ПримерExample:

Add-ClusterSharedVolumeToAffinityRule  -ClusterSharedVolumes -Name -Cluster Cluster1

Remove-ClusterAffinityRuleRemove-ClusterAffinityRule

Remove-ClusterAffinityRule Удаляет указанное правило, где -Name — имя правила.The Remove-ClusterAffinityRule deletes the specified rule, where -Name is the name of the rule.

ПримерExample:

Remove-ClusterAffinityRule -Name -Cluster Cluster1

Remove-ClusterGroupFromAffinityRuleRemove-ClusterGroupFromAffinityRule

Remove-ClusterGroupFromAffinityRule Удаляет группу или роль виртуальной машины из определенного правила, но не отключает и не удаляет правило, где:The Remove-ClusterGroupFromAffinityRule removes a VM group or role from a specific rule but does not disable or delete the rule, where:

-Name имя правила.-Name is the name of the rule

-Groups являются ли группы или роли, которые требуется удалить из правила-Groups are the groups or roles you wish to remove from the rule

ПримерExample:

Remove-ClusterGroupFromAffinityRule -Name -Groups -Cluster Cluster1

Remove-ClusterSharedVolumeFromAffinityRuleRemove-ClusterSharedVolumeFromAffinityRule

Remove-ClusterSharedVolumeFromAffinityRule Командлет используется для удаления общих томов кластера из определенного правила, но не отключает или не удаляет правило, где:The Remove-ClusterSharedVolumeFromAffinityRule cmdlet is used to remove the Cluster Shared Volumes from a specific rule but does not disable or delete the rule, where:

-ClusterSharedVolumes диски CSV, которые требуется удалить из правила-ClusterSharedVolumes is the CSV disk(s) you want to remove from the rule

-Name имя правила, к которому добавляется-Name is the name of the rule to add to

ПримерExample:

Remove-ClusterSharedVolumeFromAffinityRule -ClusterSharedVolumes -Name -Cluster Cluster1

Существующие командлеты PowerShellExisting PowerShell cmdlets

С появлением новых командлетов мы также добавили дополнительные новые параметры для нескольких существующих командлетов.With the advent of the new cmdlets, we also added additional new switches to a few existing cmdlets.

Move-ClusterGroupMove-ClusterGroup

Новый -IgnoreAffinityRule параметр игнорирует правило и перемещает группу кластерных ресурсов на другой узел кластера.The new -IgnoreAffinityRule switch ignores the rule and moves the clustered resource group to another cluster node. Дополнительные сведения об этом командлете см. в разделе Move-ClusterGroup.For more information on this cmdlet, see Move-ClusterGroup.

ПримерExample:

Move-ClusterGroup -IgnoreAffinityRule -Cluster Cluster1

Примечание

Если правило перемещения допустимо (поддерживается), будут также перемещены все затронутые группы и роли.If a move rule is valid (supported), all groups and roles that are affected will also move. Если при перемещении виртуальной машины вы узнаете, что правило еще не нарушает правила, оно требуется для однократного временного выполнения, используйте -IgnoreAffinityRule параметр, чтобы разрешить перемещение.If a VM move will knowingly violate a rule yet it is needed on a one-time temporary basis, use the -IgnoreAffinityRule switch to allow the move to occur. В этом случае отобразится предупреждение о нарушении для виртуальной машины.In this case, a violation warning for the VM will be displayed. Затем можно включить правило обратно при необходимости.You can then enable the rule back as necessary.

Start-ClusterGroupStart-ClusterGroup

Новый -IgnoreAffinityRule параметр игнорирует правило и переводит группу кластерных ресурсов в режим «в сети» в текущем расположении.The new -IgnoreAffinityRule switch ignores the rule and brings the clustered resource group online in its current location. Дополнительные сведения об этом командлете см. в разделе Start-ClusterGroup.For more information on this cmdlet, see Start-ClusterGroup.

ПримерExample:

Start-ClusterGroup -IgnoreAffinityRule -Cluster Cluster1

Примеры правил сходстваAffinity rule examples

Правила сходства — это "Объединенные" правила, которые сохраняют ресурсы на одном сервере, в кластере или на сайте.Affinity rules are "together" rules that keep resources on the same server, cluster, or site. Ниже приведены некоторые распространенные сценарии настройки правил сходства.Here are a few common scenarios for setting up affinity rules.

Сценарий 1Scenario 1

Предположим, что у вас есть SQL Server виртуальная машина и виртуальная машина веб-сервера.Suppose you have a SQL Server VM and a Web Server VM. Эти две виртуальные машины должны всегда оставаться на одном сайте, но не обязательно должны находиться на одном узле кластера на сайте.These two VMs need to always remain in the same site but do not necessarily need to be on the same cluster node in the site. SameFaultDomainЭто можно сделать с помощью, как показано ниже:Using SameFaultDomain, this is possible, as shown below:

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 командлет для просмотра выходных данных:To see this rule and how it is configured, use the Get-ClusterAffinityRule cmdlet to see the output:

Get-ClusterAffinityRule -Name WebData -Cluster Cluster1

Name        RuleType          Groups        Enabled
----        ---------         ------        -------
WebData     SameFaultDomain   {SQL1, WEB1}     1

Сценарий 2Scenario 2

Используйте тот же сценарий выше, кроме указания, что виртуальные машины должны размещаться на одном узле кластера, но не обязательно на одном сайте.Let's use the same scenario above except specify that the VMs must reside on the same cluster node but not necessarily in the same site. С помощью SameNode можно задать следующее:Using SameNode, you can set this as follows:

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 командлет для просмотра выходных данных:To see the rule and how it is configured, use the Get-ClusterAffinityRule cmdlet to see the output:

Get-ClusterAffinityRule -Name WebData1 -Cluster Cluster1

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

Примеры правил защиты от сходстваAnti-affinity rule examples

Правила защиты от сходства — это «несколько» правил, которые разделяют ресурсы и размещают их на разных серверах, кластерах или сайтах.Anti-affinity rules are "apart" rules that separate resources and place them on different servers, clusters, or sites.

Сценарий 1Scenario 1

У вас есть две виртуальные машины, на которых выполняется SQL Server в одном кластере Azure Stack ХЦИ с несколькими сайтами.You have two VMs each running SQL Server on the same Azure Stack HCI multi-site cluster. Каждая виртуальная машина использует большой объем памяти, ЦП и ресурсов хранения.Each VM utilizes a lot of memory, CPU, and storage resources. Если они находятся на одном и том же узле, это может вызвать проблемы с производительностью одного или обоих пользователей, так как они конкурируют за циклы памяти, ЦП и хранилища.If the two end up on the same node, this can cause performance issues with one or both as they compete for memory, CPU, and storage cycles. Используя правило защиты от сходства с DifferentNode типом правила, эти виртуальные машины всегда будут находиться на разных узлах кластера.Using an anti-affinity rule with DifferentNode as the rule type, these VMs will always stay on different cluster nodes.

Ниже приведен пример команд для этого:The example commands for this would be:

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 командлет для просмотра выходных данных:To see the rule and how it is configured, use the Get-ClusterAffinityRule cmdlet to see the output:

Get-ClusterAffinityRule -Name SQL -Cluster Cluster1

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

Сценарий 2Scenario 2

Предположим, что у вас есть Azure Stack Растянутый кластер с двумя сайтами (домены сбоя).Let's say you have an Azure Stack HCI stretched cluster with two sites (fault domains). У вас есть два контроллера домена, которые вы хотите разместить на разных сайтах.You have two domain controllers you wish to keep in separate sites. Используя правило защиты от сходства с DifferentFaultDomain типом правила, эти контроллеры домена всегда будут находиться на разных сайтах.Using an anti-affinity rule with DifferentFaultDomain as a rule type, these domain controllers will always stay in different sites. Ниже приведен пример команд для этого:The example commands for this would be:

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 командлет для просмотра выходных данных:To see this rule and how it is configured, use the Get-ClusterAffinityRule cmdlet to see the output:

Get-ClusterAffinityRule -Name DC -Cluster Cluster1

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

Примеры комбинированных правилCombined rule examples

Сочетая правила сходства и защиты, можно легко настроить различные комбинации виртуальных машин в кластере с несколькими сайтами.Combining affinity and anti-affinity rules, you can easily configure various VM combinations across a multi-site cluster. В этом сценарии каждый сайт имеет три виртуальные машины: SQL Server (SQL), веб-сервер (веб) и контроллер домена (DC).In this scenario, each site has three VMs: SQL Server (SQL), Web Server (WEB), and domain controller (DC). Для каждой комбинации можно использовать правила сходства с, SameFaultDomain чтобы все они оставались на одном и том же сайте.For each of the combinations, you can use affinity rules with SameFaultDomain to keep them all in the same site. Можно также задать контроллеры домена для каждого сайта с правилами защиты от сходства и DifferentFaultDomain разместить виртуальные машины контроллера домена на разных сайтах, как показано ниже.You can also set the domain controllers for each site with anti-affinity rules and DifferentFaultDomain to keep the domain controller VMs in separate sites as shown below:

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 параметра, и вы увидите все созданные правила и их выходные данные.To see the rules and how they are configured, use the Get-ClusterAffinityRule cmdlet without the -Name switch and you can see all rules created and their output.

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

Правила сходства хранилищаStorage affinity rules

Виртуальную машину и ее VHDX-файлы можно также разместить на общий том кластера (CSV) на том же узле кластера.You can also keep a VM and its VHDX on a Cluster Shared Volume (CSV) on the same cluster node. Это позволит избежать перенаправления CSV, что может замедлить запуск или остановку виртуальной машины.This would keep CSV redirection from occurring, which can slow down the starting or stopping of a VM. Принимая во внимание комбинированный сценарий сходства и борьбы с сходством ранее, вы можете разместить виртуальную машину SQL и общий том кластера на одном узле кластера.Taking into account the combined affinity and anti-affinity scenario previously, you can keep the SQL VM and the Cluster Shared Volume on the same cluster node. Для этого используйте следующие команды:To do that, use the following commands:

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 и просмотрите выходные данные.To see these rules and how they are configured, use the Get-ClusterAffinityRule cmdlet without the -Name switch and view the output.

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

Дальнейшие действияNext steps

Узнайте, как управлять виртуальными машинами.Learn how to manage your VMs. См. статью Управление виртуальными машинами на Azure Stack хЦи с помощью центра администрирования Windows.See Manage VMs on Azure Stack HCI using Windows Admin Center.