Criar regras de afinidade de servidor e site para VMs
Aplica-se a: Azure Stack HCI, versões 23H2 e 22H2
Usando Windows Admin Center ou Windows PowerShell, você pode facilmente criar regras de afinidade e anti-afinidade para suas VMs (máquinas virtuais) em um cluster.
Observação
A maneira recomendada de criar e gerenciar VMs no Azure Stack HCI 23H2 é usando o plano de controle do Azure Arc. Use o mecanismo descrito abaixo para gerenciar suas VMs somente se você 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 (máquinas virtuais), para mantê-los juntos no mesmo servidor, cluster ou site. A antia afinidade é o oposto, pois ela é usada para manter as VMs ou grupos de recursos especificados separados entre si, como dois controladores de domínio colocados em servidores separados ou em sites separados para recuperação de desastre.
As regras de afinidade e antia afinidade são usadas de forma semelhante à maneira como o Azure usa 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 entre si.
Usando regras de afinidade e antia afinidade, qualquer VM clusterizado permaneceria no mesmo nó de cluster ou seria impedida de ficar em conjunto no mesmo nó de cluster. Dessa forma, a única maneira de mover uma VM para fora de um nó seria fazer isso manualmente. Você também pode manter as VMs unidas com seu próprio armazenamento, como o CSV (Volume Compartilhado clusterizado) no qual seu VHDX reside.
Combinando regras de afinidade e antia afinidade, você também pode configurar um cluster estendido em dois sites e manter suas VMs no site em que elas precisam estar.
Como usar o Windows Admin Center
Você pode criar regras básicas de afinidade e antia afinidade usando Windows Admin Center.
- Em Windows Admin Center página inicial, em Todas as conexões, selecione o servidor ou cluster para o qual você deseja criar a regra de VM.
- Em Ferramentas, selecione Configurações.
- Em Configurações, selecione Regras de afinidade e, em seguida, selecione Criar regra em Regras de afinidade.
- Em Nome da regra, insira um nome para sua regra.
- Em Tipo de regra, selecione Juntos (mesmo servidor) ou Separados (servidores diferentes) para colocar suas VMs no mesmo servidor ou em servidores diferentes.
- Em Aplica-se a, selecione as VMs às quais essa regra se aplica. Use o botão Adicionar para adicionar mais VMs à regra.
- Quando terminar, selecione Criar regra.
- Para excluir uma regra, basta selecioná-la e selecionar Excluir regra.
Usando o Windows PowerShell
Você pode criar regras mais complexas usando Windows PowerShell do que usando Windows Admin Center. Normalmente, você configura suas regras de um computador remoto, em vez de em um servidor host em um cluster. Esse computador remoto é chamado de computador de gerenciamento.
Ao executar Windows PowerShell comandos de um computador de gerenciamento, inclua o -Name
parâmetro ou -Cluster
com o nome do cluster que você está gerenciando. Se aplicável, você também precisa especificar o FQDN (nome de domínio totalmente qualificado) ao usar o -ComputerName
parâmetro para um nó de servidor
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 esse comando, você especificaria o nome da regra e o tipo de regra que ela é, em que:
-Name
é o nome da regra
-RuleType
os 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, em que:
-Name
é o nome da regra para habilitar ou desabilitar
-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 qual tipo ela é. Se -Name
não for especificado, ele listará todas as regras.
Exemplo:
Get-ClusterAffinityRule -Name Rule1
Add-ClusterGroupToAffinityRule
O Add-ClusterGroupToAffinityRule
cmdlet é usado para adicionar uma função de VM ou um nome de grupo a uma regra de afinidade específica, em que:
-Groups
é o nome do grupo ou função a ser adicionado à regra
-Name
é o nome da regra a ser adicionada a
Exemplo:
Add-ClusterGroupToAffinityRule -Groups Group1 -Name Rule1
Add-ClusterSharedVolumeToAffinityRule
O Add-ClusterSharedVolumeToAffinityRule
permite que suas VMs fiquem juntas com o Volume Compartilhado de Cluster em que o VHDX reside, em que:
-ClusterSharedVolumes
é o(s) disco(s) CSV que você deseja adicionar à regra
-Name
é o nome da regra a ser adicionada a
Exemplo:
Add-ClusterSharedVolumeToAffinityRule -ClusterSharedVolumes CSV1 -Name Rule1
Remove-ClusterAffinityRule
O Remove-ClusterAffinityRule
exclui a regra especificada, em que -Name
é o nome da regra.
Exemplo:
Remove-ClusterAffinityRule -Name Rule1
Remove-ClusterGroupFromAffinityRule
O Remove-ClusterGroupFromAffinityRule
remove um grupo de VMs ou uma função de uma regra específica, mas não desabilitar ou excluir a regra, em que:
-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 clusterizados de uma regra específica, mas não desabilitar ou excluir a regra, em que:
-ClusterSharedVolumes
é o(s) disco(s) CSV que você deseja remover da regra
-Name
é o nome da regra a ser adicionada a
Exemplo:
Remove-ClusterSharedVolumeFromAffinityRule -ClusterSharedVolumes CSV1 -Name Rule1
Cmdlets existentes do PowerShell
Com o advento dos novos cmdlets, também adicionamos novas opções extras a alguns cmdlets existentes.
Move-ClusterGroup
A nova -IgnoreAffinityRule
opção ignora a regra e move o grupo de recursos clusterizado para outro nó de cluster. Para obter mais informações sobre esse cmdlet, consulte Move-ClusterGroup.
Exemplo:
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. Se uma movimentação de VM violar conscientemente uma regra, mas ela for necessária temporariamente, use a opção -IgnoreAffinityRule
para permitir que a movimentação 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 clusterizado online em seu local atual. Para obter mais informações sobre esse cmdlet, consulte Start-ClusterGroup.
Exemplo:
Start-ClusterGroup -IgnoreAffinityRule -Cluster Cluster1
Exemplos de regra de afinidade
As regras de afinidade são regras "juntas" que mantêm recursos no mesmo servidor, cluster ou site. Aqui estão alguns cenários comuns para configurar regras de afinidade.
Cenário 1
Suponha que você tenha uma VM SQL Server e uma VM do Servidor Web. Essas duas VMs precisam permanecer sempre no mesmo site, mas não precisam necessariamente estar no mesmo nó de cluster no site. Usando SameFaultDomain
, isso é possível, conforme mostrado abaixo:
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 acima, exceto especificar que as VMs devem residir no mesmo nó de cluster. Usando SameNode
, você pode definir isso da seguinte maneira:
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 regra antia afinidade
As regras antia afinidade são regras "separadas" que separam recursos e os colocam em servidores, clusters ou sites diferentes.
Cenário 1
Você tem duas VMs executando SQL Server no mesmo cluster de vários sites do Azure Stack HCI. Cada VM utiliza muita memória, CPU e recursos de armazenamento. Se os dois acabarem no mesmo nó, isso poderá causar problemas de desempenho com um ou ambos, pois eles competem por ciclos de memória, CPU e armazenamento. Usando uma regra anti-afinidade com DifferentNode
como o tipo de regra, essas VMs sempre permanecerão em nós de cluster diferentes.
Os comandos de exemplo para isso 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
Cenário 2
Digamos que você tenha um cluster estendido do Azure Stack HCI com dois sites (domínios de falha). Você tem dois controladores de domínio que deseja manter em sites separados. Usando uma regra anti-afinidade com DifferentFaultDomain
como um tipo de regra, esses controladores de domínio sempre permanecerão em sites diferentes. Os comandos de exemplo para isso seriam:
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:
Get-ClusterAffinityRule -Name DC -Cluster Cluster1
Name RuleType Groups Enabled
---- -------- ------- -------
DC DifferentFaultDomain {DC1, DC2} 1
Exemplos de regras combinadas
Combinando regras de afinidade e antia afinidade, você pode facilmente configurar várias combinações de VM em um cluster de vários sites. Nesse cenário, cada site tem três VMs: SQL Server (SQL), Web Server (WEB) e CONTROLADOR de domínio (DC). Para cada uma das combinações, você pode usar regras de afinidade com SameFaultDomain
para mantê-las todas no mesmo site. Você também pode definir os controladores de domínio para cada site com regras anti-afinidade e DifferentFaultDomain
manter as VMs do controlador de domínio em sites separados, conforme mostrado abaixo:
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 estão configuradas, use o Get-ClusterAffinityRule
cmdlet sem a opção -Name
e você pode ver todas as regras criadas e a saída delas.
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 armazenamento
Você também pode manter uma VM e seu VHDX em um CSV (Volume Compartilhado clusterizado) no mesmo nó de cluster. Isso impediria que o redirecionamento CSV ocorresse, o que pode retardar a inicialização ou a interrupção de uma VM. Levando em conta o cenário combinado de afinidade e antia afinidade anteriormente, você pode manter a VM do SQL e o Volume Compartilhado de Cluster no mesmo nó de cluster. 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 -Name e exiba 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óximas etapas
Saiba como gerenciar suas VMs. Consulte Gerenciar VMs no Azure Stack HCI usando Windows Admin Center.
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de