Criar regras de afinidade de servidor e site para VMsCreate server and site affinity rules for VMs

Aplica-se a Azure Stack HCI, versão 20H2Applies to Azure Stack HCI, version 20H2

Usando o centro de administração do Windows ou o Windows PowerShell, você pode criar facilmente regras de afinidade e antiafinidade para suas VMs (máquinas virtuais) em um cluster.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 é uma regra que estabelece uma relação entre dois ou mais grupos de recursos ou funções, como VMs (máquinas virtuais), para mantê-los juntos no mesmo servidor, cluster ou site.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. A antiafinidade é o oposto em que ela é usada para manter as VMs ou os grupos de recursos especificados entre si, como dois controladores de domínio colocados em servidores separados ou em sites separados para recuperação de desastres.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.

As regras de afinidade e antiafinidade são usadas de forma semelhante ao modo como o Azure usa Zonas de Disponibilidade.Affinity and anti-affinity rules are used similarly to the way Azure uses Availability Zones. No Azure, você pode configurar Zonas de Disponibilidade para manter as VMs em zonas separadas e distantes umas das outras ou na mesma zona entre si.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.

Usando as regras de afinidade e antiafinidade, qualquer VM clusterizada permaneceria no mesmo nó de cluster ou será impedida de estar juntas no mesmo nó de cluster.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. Dessa forma, a única maneira de mover uma VM para fora de um nó seria fazer isso manualmente.In this way, the only way to move a VM out of a node would be to do it manually. Você também pode manter VMs juntas com seu próprio armazenamento, como o Volume Compartilhado Clusterizado (CSV) em que seu VHDX reside.You can also keep VMs together with its own storage, such as the Cluster Shared Volume (CSV) that its VHDX resides on.

Combinando as regras de afinidade e antiafinidade, você também pode configurar um cluster ampliado em dois sites e manter suas VMs no site em que eles precisam estar.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.

Usando o centro de administração do WindowsUsing Windows Admin Center

Você pode criar regras básicas de afinidade e antiafinidade usando o centro de administração do Windows.You can create basic affinity and anti-affinity rules using Windows Admin Center.

Tela de máquinas virtuais

  1. Na página inicial do centro de administração do Windows, em todas as conexões, selecione o servidor ou cluster para o qual você deseja criar a regra de VM.In Windows Admin Center home, under All connections, select the server or cluster you want to create the VM rule for.
  2. Em ferramentas, selecione configurações.Under Tools, select Settings.
  3. Em configurações, selecione regras de afinidadee, em seguida, selecione criar regra em regras de afinidade.Under Settings, select Affinity rules, then select Create rule under Affinity rules.
  4. Em nome da regra, insira um nome para a regra.Under Rule name, enter a name for your rule.
  5. Em tipo de regra, selecione juntos (mesmo servidor) ou separado (servidores diferentes) para posicionar suas VMs no mesmo servidor ou em servidores diferentes.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. Em aplica-sea, selecione as VMs às quais essa regra será aplicada.Under Applies to, select the VMs that this rule will apply to. Use o botão Adicionar para adicionar mais VMs à regra.Use the Add button to add more VMs to the rule.
  7. Quando terminar, clique em criar regra.When finished, click Create rule.
  8. Para excluir uma regra, basta selecioná-la e clicar em excluir regra.To delete a rule, simply select it and click Delete rule.

Usando o Windows PowerShellUsing Windows PowerShell

Você pode criar regras mais complexas usando o Windows PowerShell do que usar o centro de administração do Windows.You can create more complex rules using Windows PowerShell than using Windows Admin Center. Normalmente, você configura suas regras a partir de um computador remoto, em vez de em um servidor host em um cluster.Typically, you set up your rules from a remote computer, rather than on a host server in a cluster. Esse computador remoto é chamado de computador de gerenciamento.This remote computer is called the management computer.

Ao executar comandos do Windows PowerShell em um computador de gerenciamento, inclua o -Name -Cluster parâmetro ou com o nome do cluster que você está gerenciando.When running Windows PowerShell commands from a management computer, include the -Name or -Cluster parameter with the name of the cluster you are managing. Se aplicável, também será necessário especificar o FQDN (nome de domínio totalmente qualificado) ao usar o -ComputerName parâmetro para um nó de servidorIf applicable, you will also need to specify the fully qualified domain name (FQDN) when using the -ComputerName parameter for a server node

Novos cmdlets do PowerShellNew PowerShell cmdlets

Para criar regras de afinidade para clusters, use os seguintes novos cmdlets do PowerShell:To create affinity rules for clusters, use the following new PowerShell cmdlets:

New-ClusterAffinityRuleNew-ClusterAffinityRule

O New-ClusterAffinityRule cmdlet é usado para criar novas regras.The New-ClusterAffinityRule cmdlet is used to create new rules. Com esse comando, você especificaria o nome da regra, bem como o tipo de regra, em que:With this command you would specify the name of the rule as well as the type of rule it is, where:

-Name é o nome da regra-Name is the name of the rule

-RuleType os valores são SameFaultDomain | SameNode | DifferentFaultDomain | DifferentNode-RuleType values are SameFaultDomain | SameNode | DifferentFaultDomain | DifferentNode

Exemplo:Example:

New-ClusterAffinityRule -Name -RuleType SameFaultDomain -Cluster Cluster1

Set-ClusterAffinityRuleSet-ClusterAffinityRule

O Set-ClusterAffinityRule cmdlet é usado para habilitar ou desabilitar uma regra, em que:The Set-ClusterAffinityRule cmdlet is used to enable or disable a rule, where:

-Name é o nome da regra a ser habilitada ou desabilitada-Name is the name of the rule to enable or disable

-Enabled | Disabled Habilita ou desabilita a regra-Enabled | Disabled enables or disables the rule

Exemplo:Example:

Set-ClusterAffinityRule -Name -Enabled -Cluster Cluster1

Get-ClusterAffinityRuleGet-ClusterAffinityRule

O Get-ClusterAffinityRule cmdlet é usado para exibir a regra especificada e o tipo que ela é.The Get-ClusterAffinityRule cmdlet is used to display the specified rule and what type it is. Se -Name não for especificado, ele listará todas as regras.If -Name is not specified, it will list all rules.

Exemplo:Example:

Get-ClusterAffinityRule -Name -Cluster Cluster1

Add-ClusterGroupToAffinityRuleAdd-ClusterGroupToAffinityRule

O Add-ClusterGroupToAffinityRule cmdlet é usado para adicionar uma função VM ou um nome de grupo a uma regra de afinidade específica, em que:The Add-ClusterGroupToAffinityRule cmdlet is used to add a VM role or group name to a specific affinity rule, where:

-Groups é o nome do grupo ou da função a ser adicionada à regra-Groups is the name of the group or role to add to the rule

-Name é o nome da regra a ser adicionada-Name is the name of the rule to add to

Exemplo:Example:

Add-ClusterGroupToAffinityRule -Groups -Name -Cluster Cluster1

Add-ClusterSharedVolumeToAffinityRuleAdd-ClusterSharedVolumeToAffinityRule

O Add-ClusterSharedVolumeToAffinityRule permite que suas VMs permaneçam junto com o volume compartilhado clusterizado o VHDX reside, em que:The Add-ClusterSharedVolumeToAffinityRule allows your VMs to stay together with the Cluster Shared Volume the VHDX resides on, where:

-ClusterSharedVolumes são os discos CSV que você deseja adicionar à regra-ClusterSharedVolumes is the CSV disk(s) you wish to add to the rule

-Name é o nome da regra a ser adicionada-Name is the name of rule to add to

Exemplo:Example:

Add-ClusterSharedVolumeToAffinityRule  -ClusterSharedVolumes -Name -Cluster Cluster1

Remove-ClusterAffinityRuleRemove-ClusterAffinityRule

O Remove-ClusterAffinityRule exclui a regra especificada, em que -Name é o nome da regra.The Remove-ClusterAffinityRule deletes the specified rule, where -Name is the name of the rule.

Exemplo:Example:

Remove-ClusterAffinityRule -Name -Cluster Cluster1

Remove-ClusterGroupFromAffinityRuleRemove-ClusterGroupFromAffinityRule

O Remove-ClusterGroupFromAffinityRule Remove uma função ou grupo de VMs de uma regra específica, mas não desabilita ou exclui a regra, em que:The Remove-ClusterGroupFromAffinityRule removes a VM group or role from a specific rule but does not disable or delete the rule, where:

-Name é o nome da regra-Name is the name of the rule

-Groups os grupos ou funções que você deseja remover da regra-Groups are the groups or roles you wish to remove from the rule

Exemplo:Example:

Remove-ClusterGroupFromAffinityRule -Name -Groups -Cluster Cluster1

Remove-ClusterSharedVolumeFromAffinityRuleRemove-ClusterSharedVolumeFromAffinityRule

O Remove-ClusterSharedVolumeFromAffinityRule cmdlet é usado para remover os volumes compartilhados do cluster de uma regra específica, mas não desabilita ou exclui a regra, em que: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 os discos CSV que você deseja remover da regra devem ser removidos-ClusterSharedVolumes is the CSV disk(s) you want to remove from the rule

-Name é o nome da regra a ser adicionada-Name is the name of the rule to add to

Exemplo:Example:

Remove-ClusterSharedVolumeFromAffinityRule -ClusterSharedVolumes -Name -Cluster Cluster1

Cmdlets do PowerShell existentesExisting PowerShell cmdlets

Com o advento dos novos cmdlets, também adicionamos novas opções adicionais a alguns cmdlets existentes.With the advent of the new cmdlets, we also added additional new switches to a few existing cmdlets.

Move-ClusterGroupMove-ClusterGroup

O novo -IgnoreAffinityRule comutador ignora a regra e move o grupo de recursos clusterizado para outro nó de cluster.The new -IgnoreAffinityRule switch ignores the rule and moves the clustered resource group to another cluster node. Para obter mais informações sobre esse cmdlet, consulte move-cluster.For more information on this cmdlet, see Move-ClusterGroup.

Exemplo:Example:

Move-ClusterGroup -IgnoreAffinityRule -Cluster Cluster1

Observação

Se uma regra de movimentação for válida (com suporte), todos os grupos e funções afetados também serão movidos.If a move rule is valid (supported), all groups and roles that are affected will also move. Se uma movimentação de VM sabemente violar uma regra, ainda que seja necessária em uma única vez temporária, use a -IgnoreAffinityRule opção para permitir que a mudança ocorra.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. Nesse caso, um aviso de violação para a VM será exibido.In this case, a violation warning for the VM will be displayed. Em seguida, você pode habilitar a regra de volta conforme necessário.You can then enable the rule back as necessary.

Start-ClusterGroupStart-ClusterGroup

O novo -IgnoreAffinityRule comutador ignora a regra e coloca o grupo de recursos clusterizado online em seu local atual.The new -IgnoreAffinityRule switch ignores the rule and brings the clustered resource group online in its current location. Para obter mais informações sobre esse cmdlet, consulte Start-cluster.For more information on this cmdlet, see Start-ClusterGroup.

Exemplo:Example:

Start-ClusterGroup -IgnoreAffinityRule -Cluster Cluster1

Exemplos de regras de afinidadeAffinity rule examples

As regras de afinidade são regras "juntas" que mantêm os recursos no mesmo servidor, cluster ou site.Affinity rules are "together" rules that keep resources on the same server, cluster, or site. Aqui estão alguns cenários comuns para configurar as regras de afinidade.Here are a few common scenarios for setting up affinity rules.

Cenário 1Scenario 1

Suponha que você tenha uma VM SQL Server e uma VM de servidor Web.Suppose you have a SQL Server VM and a Web Server VM. Essas duas VMs precisam sempre permanecer no mesmo site, mas não precisam necessariamente estar no mesmo nó de cluster do site.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. Usando SameFaultDomain o, isso é possível, conforme mostrado abaixo: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

Para ver essa regra e como ela está configurada, use o Get-ClusterAffinityRule cmdlet para ver a saída: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

Cenário 2Scenario 2

Vamos usar o mesmo cenário acima, exceto especificar que as VMs devem residir no mesmo nó de cluster, mas não necessariamente no mesmo site.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. Usando SameNode o, você pode definir isso da seguinte maneira: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

Para ver a regra e como ela está configurada, use o Get-ClusterAffinityRule cmdlet para ver a saída: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

Exemplos de regras de afinidadeAnti-affinity rule examples

As regras de afinidade são "separadas" que separam recursos e as colocam em diferentes servidores, clusters ou sites.Anti-affinity rules are "apart" rules that separate resources and place them on different servers, clusters, or sites.

Cenário 1Scenario 1

Você tem duas VMs cada uma executando SQL Server no mesmo cluster de vários sites do HCI Azure Stack.You have two VMs each running SQL Server on the same Azure Stack HCI multi-site cluster. Cada VM utiliza muitos recursos de memória, CPU e armazenamento.Each VM utilizes a lot of memory, CPU, and storage resources. Se os dois terminarem no mesmo nó, isso poderá causar problemas de desempenho com um ou ambos, pois eles competem por memória, CPU e ciclos de armazenamento.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. Usando uma regra de afinidade com DifferentNode o como o tipo de regra, essas VMs sempre permanecerão em nós de cluster diferentes.Using an anti-affinity rule with DifferentNode as the rule type, these VMs will always stay on different cluster nodes.

Os comandos de exemplo para isso seriam: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

Para ver a regra e como ela está configurada, use o Get-ClusterAffinityRule cmdlet para ver a saída: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

Cenário 2Scenario 2

Digamos que você tenha um cluster Azure Stack HCI ampliado com dois sites (domínios de falha).Let's say you have an Azure Stack HCI stretched cluster with two sites (fault domains). Você tem dois controladores de domínio que deseja manter em sites separados.You have two domain controllers you wish to keep in separate sites. Usando uma regra de afinidade com o DifferentFaultDomain como um tipo de regra, esses controladores de domínio sempre permanecerão em sites diferentes.Using an anti-affinity rule with DifferentFaultDomain as a rule type, these domain controllers will always stay in different sites. Os comandos de exemplo para isso seriam: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

Para ver essa regra e como ela está configurada, use o Get-ClusterAffinityRule cmdlet para ver a saída: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

Exemplos de regras combinadasCombined rule examples

Combinando as regras de afinidade e antiafinidade, você pode configurar facilmente várias combinações de VM em um cluster multissite.Combining affinity and anti-affinity rules, you can easily configure various VM combinations across a multi-site cluster. Nesse cenário, cada site tem três VMs: SQL Server (SQL), servidor Web (WEB) e controlador de domínio (DC).In this scenario, each site has three VMs: SQL Server (SQL), Web Server (WEB), and domain controller (DC). Para cada uma das combinações, você pode usar regras de afinidade com SameFaultDomain o para mantê-las todas no mesmo site.For each of the combinations, you can use affinity rules with SameFaultDomain to keep them all in the same site. Você também pode definir os controladores de domínio para cada site com regras de afinidade e DifferentFaultDomain para manter as VMs do controlador de domínio em sites separados, conforme mostrado abaixo: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

Para ver as regras e como elas são configuradas, use o Get-ClusterAffinityRule cmdlet sem a -Name opção e você poderá ver todas as regras criadas e sua saída.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

Regras de afinidade de armazenamentoStorage affinity rules

Você também pode manter uma VM e seu VHDX em um Volume Compartilhado Clusterizado (CSV) no mesmo nó de cluster.You can also keep a VM and its VHDX on a Cluster Shared Volume (CSV) on the same cluster node. Isso evitaria que o redirecionamento de CSV ocorresse, o que pode retardar o início ou a interrupção de uma VM.This would keep CSV redirection from occurring, which can slow down the starting or stopping of a VM. Levando em conta o cenário combinado de afinidade e antiafinidade anteriormente, você pode manter a VM do SQL e o Volume Compartilhado Clusterizado no mesmo nó de cluster.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. Para fazer isso, use os seguintes comandos: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

Para ver essas regras e como elas são configuradas, use o Get-ClusterAffinityRule cmdlet sem a opção-Name e exiba a saída.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

Próximas etapasNext steps

Saiba como gerenciar suas VMs.Learn how to manage your VMs. Consulte gerenciar VMs em Azure Stack HCI usando o centro de administração do Windows.See Manage VMs on Azure Stack HCI using Windows Admin Center.