Partilhar via


Criar regras de afinidade de máquina e site para VMs

Aplica-se a: Azure Local, versões 23H2 e 22H2

Usando o Windows Admin Center ou o Windows PowerShell, você pode criar facilmente regras de afinidade e antiafinidade para máquinas virtuais (VMs) em sua instância local do Azure.

Nota

A maneira recomendada de criar e gerenciar VMs no Azure Local, versão 23H2 é usando o plano de controle Azure Arc. Use o mecanismo descrito abaixo para gerenciar suas VMs somente se precisar de funcionalidades que não estão disponíveis nas VMs do Azure Arc.

Afinidade é uma regra que estabelece uma relação entre dois ou mais grupos de recursos ou funções, como VMs, para mantê-los juntos na mesma máquina, sistema ou site. A antiafinidade é o oposto, pois é usada para manter as VMs ou grupos de recursos especificados separados uns dos outros, como dois controladores de domínio colocados em máquinas separadas ou em locais separados para recuperação de desastres.

As regras de afinidade e antiafinidade são usadas de forma semelhante à maneira como o Azure usa as Zonas de Disponibilidade. No Azure, você pode configurar Zonas de Disponibilidade para manter as VMs em zonas separadas e longe umas das outras ou na mesma zona umas com as outras.

Usando regras de afinidade e antiafinidade, qualquer VM clusterizada permaneceria na mesma máquina ou seria impedida de estar junta na mesma máquina. Dessa forma, a única maneira de mover uma VM para fora de uma máquina seria fazê-lo manualmente. Você também pode manter VMs junto com seu próprio armazenamento, como o Volume Compartilhado de Cluster (CSV) no qual seu VHDX reside.

Usando o Windows Admin Center

Você pode criar regras básicas de afinidade e antiafinidade usando o Windows Admin Center.

Ecrã de máquinas virtuais

  1. Na página inicial do Windows Admin Center, em Todas as conexões, selecione a máquina ou o sistema para o qual deseja criar a regra de VM.
  2. Em Ferramentas, selecione Configurações.
  3. Em Configurações, selecione Regras de afinidade e, em seguida, selecione Criar regra em Regras de afinidade.
  4. Em Nome da regra, insira um nome para a regra.
  5. Em Tipo de regra, selecione Juntos (mesma máquina) ou Separados (máquinas diferentes) para colocar suas VMs na mesma máquina ou em máquinas diferentes.
  6. Em Aplica-se a, selecione as VMs às quais esta regra se aplica. Use o botão Adicionar para adicionar mais VMs à regra.
  7. Quando terminar, selecione Criar regra.
  8. Para excluir uma regra, selecione-a e selecione Excluir regra.

Utilizar o Windows PowerShell

Você pode criar regras mais complexas usando o Windows PowerShell do que usando o Windows Admin Center. Normalmente, você configura suas regras a partir de um computador remoto, em vez de em uma máquina host em um sistema. Este computador remoto é chamado de computador de gerenciamento.

Ao executar comandos do Windows PowerShell a partir de um computador de gerenciamento, inclua o -Name parâmetro ou -Cluster com o nome do sistema que você está gerenciando. Se aplicável, você também precisa especificar o nome de domínio totalmente qualificado (FQDN) ao usar o -ComputerName parâmetro para uma máquina.

Novos cmdlets do PowerShell

Para criar regras de afinidade para clusters, use os seguintes novos cmdlets do PowerShell:

New-ClusterAffinityRule

O New-ClusterAffinityRule cmdlet é usado para criar novas regras. Com este comando, você especificaria o nome da regra e o tipo de regra que ela é, onde:

-Name é o nome da regra

-RuleType valores são SameFaultDomain | SameNode | DifferentFaultDomain | DifferentNode

Exemplo:

New-ClusterAffinityRule -Name Rule1 -RuleType SameFaultDomain

Set-ClusterAffinityRule

O Set-ClusterAffinityRule cmdlet é usado para habilitar ou desabilitar uma regra, onde:

-Name é o nome da regra para ativar ou desativar

-Enabled | Disabled Habilita ou desabilita a regra

Exemplo:

Set-ClusterAffinityRule -Name Rule1 -Enabled

Get-ClusterAffinityRule

O Get-ClusterAffinityRule cmdlet é usado para exibir a regra especificada e de que tipo ela é. Se -Name não for especificado, ele lista todas as regras.

Exemplo:

Get-ClusterAffinityRule -Name Rule1

Add-ClusterGroupToAffinityRule

O Add-ClusterGroupToAffinityRule cmdlet é usado para adicionar uma função VM ou nome de grupo a uma regra de afinidade específica, onde:

-Groups é o nome do grupo ou função a ser adicionado à regra.

-Name é o nome da regra a ser adicionada.

Exemplo:

Add-ClusterGroupToAffinityRule -Groups Group1 -Name Rule1

Add-ClusterSharedVolumeToAffinityRule

O Add-ClusterSharedVolumeToAffinityRule permite que suas VMs permaneçam junto com o Volume Compartilhado do Cluster no qual o VHDX reside, onde:

-ClusterSharedVolumes é o disco CSV que você deseja adicionar à regra

-Name é o nome da regra a ser adicionada

Exemplo:

Add-ClusterSharedVolumeToAffinityRule -ClusterSharedVolumes CSV1 -Name Rule1

Remove-ClusterAffinityRule

O Remove-ClusterAffinityRule exclui a regra especificada, onde -Name é o nome da regra.

Exemplo:

Remove-ClusterAffinityRule -Name Rule1

Remove-ClusterGroupFromAffinityRule

O Remove-ClusterGroupFromAffinityRule remove um grupo ou função de VM de uma regra específica, mas não desabilita ou exclui a regra, onde:

-Name é o nome da regra

-Groups são os grupos ou funções que você deseja remover da regra

Exemplo:

Remove-ClusterGroupFromAffinityRule -Name Rule1 -Groups Group1

Remove-ClusterSharedVolumeFromAffinityRule

O Remove-ClusterSharedVolumeFromAffinityRule cmdlet é usado para remover os Volumes Compartilhados do Cluster de uma regra específica, mas não desabilita nem exclui a regra, onde:

-ClusterSharedVolumes é o disco CSV que você deseja remover da regra.

-Name é o nome da regra a ser adicionada.

Exemplo:

Remove-ClusterSharedVolumeFromAffinityRule -ClusterSharedVolumes CSV1 -Name Rule1

Cmdlets existentes do PowerShell

Com o advento dos novos cmdlets, também adicionamos novas opções adicionais a alguns cmdlets existentes.

Move-ClusterGroup

A nova -IgnoreAffinityRule opção ignora a regra e move o grupo de recursos de cluster para outra máquina. Para obter mais informações sobre esse cmdlet, consulte Move-ClusterGroup.

Exemplo:

Move-ClusterGroup -IgnoreAffinityRule -Cluster Cluster1

Nota

Se uma regra de movimentação for válida (suportada), todos os grupos e funções afetados também serão movidos. Se uma movimentação de VM violar conscientemente uma regra, mas ela for necessária de forma temporária única, use o -IgnoreAffinityRule switch para permitir que a mudança ocorra. Nesse caso, um aviso de violação para a VM será exibido. Em seguida, você pode habilitar a regra de volta conforme necessário.

Start-ClusterGroup

A nova -IgnoreAffinityRule opção ignora a regra e coloca o grupo de recursos de cluster online em seu local atual. Para obter mais informações sobre esse cmdlet, consulte Start-ClusterGroup.

Exemplo:

Start-ClusterGroup -IgnoreAffinityRule -Cluster Cluster1

Exemplos de regras de afinidade

As regras de afinidade são regras "juntas" que mantêm os recursos na mesma máquina, sistema ou site. Aqui estão alguns cenários comuns para configurar regras de afinidade.

Cenário 1

Suponha que você tenha uma VM do SQL Server e uma VM do Servidor Web. Essas duas VMs precisam permanecer sempre no mesmo site, mas não precisam necessariamente estar na mesma máquina. Usando SameFaultDomain, isso é possível, como mostrado:

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:

Get-ClusterAffinityRule -Name WebData -Cluster Cluster1

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

Cenário 2

Vamos usar o mesmo cenário, exceto especificar que as VMs devem residir na mesma máquina. Usando SameNodeo , defina-o da seguinte forma:

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:

Get-ClusterAffinityRule -Name WebData1 -Cluster Cluster1

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

Exemplos de regras de antiafinidade

As regras de antiafinidade são regras "à parte" que separam recursos e os colocam em máquinas, sistemas ou sites diferentes.

Cenário 1

Você tem duas VMs cada executando o SQL Server no mesmo sistema multissite local do Azure. Cada VM utiliza muita memória, CPU e recursos de armazenamento. Se os dois acabarem na mesma máquina, isso pode causar problemas de desempenho com um ou ambos, pois eles competem por memória, CPU e ciclos de armazenamento. Usando uma regra de antiafinidade com DifferentNode como tipo de regra, essas VMs sempre permanecerão em máquinas diferentes.

Os comandos de exemplo seriam:

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:

Get-ClusterAffinityRule -Name SQL -Cluster Cluster1

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

Regras de afinidade de armazenamento

Você também pode manter uma VM e seu VHDX em um Volume Compartilhado de Cluster (CSV) na mesma máquina. Isso impediria que o redirecionamento CSV ocorresse, o que pode retardar o início ou a parada de uma VM. Levando em consideração o cenário combinado de afinidade e antiafinidade anteriormente, você pode manter a VM SQL e o Volume Compartilhado do Cluster na mesma máquina. Para fazer isso, use os seguintes comandos:

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 estão configuradas, use o Get-ClusterAffinityRule cmdlet sem a opção e exiba -Name a saída.

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óximos passos

Saiba como gerenciar suas VMs. Consulte Gerenciar VMs no Azure Local usando o Windows Admin Center.