DRS: Regras de Afinidade e Anti-Afinidade

Distributed Resource Scheduler (DRS)

DRS é uma funcionalidade, solução de gestão de recursos do vSphere que permite realocação e optimização automática de recursos de computação (CPU, Memória), e desta forma garantir melhor desempenho de VMs. Em poucas palavras ou abordagem mais simples DRS distribui carga de trabalho das VM sobre hosts ESXi do Cluster em momentos de contenção.

DRS:

Fornece balanceamento de carga do cluster migrando workload/carga de trabalho de hosts muito carregados para hosts menos utilizados no cluster.

A partir de vSphere 6.5 o DRS considera utilização de rede dos hosts e requisitos de rede das VMs (Network Aware DRS).

Garante que as VMs recebam os recursos necessários para funcionar de forma eficiente.

Determina o melhor host para a VM baseando-se na demanda de recursos.

Migra (vMotion) VMs, evacua o host de forma automática na janela de manutenção.

DRS combinado com Distributed Power Management (DPM) permite reduzir consumo de energia, colocando host no modo standby em caso de sob utilização de recursos.

DRS (Predictivo) integrado com vRealize Operations Manager, prevê futura demanda de recursos e equilibra “migra” VMs de maneira proactiva antes que os picos ou contenções ocorram.

DRS combinado com Proactive HA antecipa possíveis falhas nos hosts e preveni downtime tempo indisponibilidade em caso do hosts estar no estado degradado devido a falha de memoria, fonte de alimentação, rede.

Para habilitar o DRS e começar a disfrutar dessa funcionalidade na sua infraestrutura virtual é necessário:

  1. VMware vSphere Enterprise Plus License
  2. vCenter Server
  3. Cluster ESXi
  4. Armazenamento partilhado (SAN ou vSAN) acessível por todos hosts do cluster
  5. Compatibilidade entre os processadores (Recomendado habilitar EVC para garantir que migração de VMs não falhe por incompatibilidade de CPUs)
  6. Ter configurado o vMotion

Agora que já tivemos uma breve introdução sobre DRS vamos ao tópico do artigo “regra de afinidade e anti afinidade”. Neste artigo irei descrever regras de afinidade e casos de uso.

Regras de afinidade e anti afinidade (DRS Rules) encontram-se divididas em:

VM-VM Affinity Rules (Keep Virtual Machines Together)

VM-VM serve para especificar VMs que devem ser mantidas ou colocadas no mesmo host.

vSphere DRS garante que as vms especificadas na regra estejam localizadas ou a serem executadas no mesmo host.

Esta regra é útil para cenários em que temos VMs que comunicam fortemente entre si, exemplo, o conjunto Front-End, App Server e Database ou micro serviços. Manter uma pilha de VMs como estas que comunicam entre si no mesmo host, reduz a carga no link físico de rede, isso porque o host mantém o tráfego de rede entre as VMs internamente no host “permanece dentro do vSwitch” reduzindo latência melhorando o desempenho.

Ex: Regra de afinidade entre VMs

VM-VM Anti Affinity (Separate Virtual Machines)

Usado para separar VMs, isto é, duas ou mais VMs especificas não podem estar localizadas/hospedadas no mesmo host. Regra anti – afinidade é útil para VMs com serviços redundantes, cenários em que é necessário manter alta disponibilidade, podemos configurar esta regra para garantir que a falha de 1 host não impacta redundância de serviços.

Por exemplo, Microsoft Exchange DAG, Domain Controllers, separar VMs destes serviços em diferentes hosts é uma forma garantir disponibilidade/resiliência de serviço. Também pode ser usada para separar VMs ou app com com alta carga de I/O e evitar bottleneck no host.

Ex: Criando uma regara anti-afinidade

VM-Host Affinity

Essa regra especifica se uma VM que faz parte de um VM Group DRS/Grupo de VM DRS, pode ou não ser alocada a um conjunto de hosts definidos no Host Group DRS/Grupo de Hosts DRS. No vSphere podemos criar grupo DRS de hosts ou VMs que servem para definirmos sobre os mesmos regras DRS VM-host affinity ou VM-host anti affinity.

Especifica afinidade ou anti afinidade entre grupo VM DRS e grupo Host DRS. 

Uma regra VM-Host é constituída por:

VM Group: É Constituido por uma ou mais VMs onde vai ser aplicada a regra.

Host Group: Constituído por 1 ou mais hosts que irão ser afectados pela regra.

Type: Define o tipo de regra, preferêncial/opcional (should) ou obrigatória (must) e se a regra é baseada em afinidade (run on) ou anti afinidade (not run on) host.

VM-Host:

Regra preferêncial (Should (not) run on hosts)

É uma regra opcional para DRS, isto é, pode ser violada/ignorada a caso necessário para permitir o devido funcionamento do DRS, DPM, HA.

Exemplo: Em caso de falha de um host no cluster, HA reinicia as VM em um host operacional, se o cluster não satisfazer as condições de computação necessárias o DRS ignora a regra preferencial definida, e permite a VM ser alocada num host que viola a regra (1 host que viola regra seria não estar definido no grupo DRS).

Colocar o host em modo manutenção também pode fazer DRS violar ou ignorar a regra.

Ex:

Regra obrigatória (Must (not) run on hosts)

Como o nome já sugere, é uma regra que deve ser satisfeita sempre, DRS, HA, DPM não podem violar. Exemplo: Se for executada um operação para de a tentativa de colocar o host em modo manutenção e a redistribuição de VMs viola a regra, DRS rejeita essa operação para cumprir com a regra, a operação falha. Outro cenário é, em caso de falha de host HA não efectua reinicia VM se isso implica violar a regra.

Ex: Criando uma regra obrigatória

Já mencionado anteriormente uma regra obrigatória não pode ser violada, vamos testar a seguir.

Ao tentarmos efectuar vMotion da VM “app-01” para 1 host que viola a regra aplicada sobre a vm, deparamos com o seguinte erro:

O erro reporta incompatibilidade com o target host, migração para o host infringe VM-Host affinity rule.

Casos de uso para regras de afinidade VM-Host:

  • Criar domínio de falha (Fault domain) rack ou chassis.
  • Em clusters mistos, manter VM em host que corresponde ou satisfaz a arquitectura NUMA.
  • Garantir que VM não viola restrição de licença app.

Para finalizar, regras DRS também são aplicáveis para storage, através da funcionalidade storage DRS anti-affinity rules, usado para controlar colocação de discos virtuais (vmdks) no datastore.

Referências

https://docs.vmware.com/en/VMware-vSphere/6.5/com.vmware.vsphere.resmgmt.doc/GUID-FF28F29C-8B67-4EFF-A2EF-63B3537E6934.html

https://docs.vmware.com/en/VMware-vSphere/6.7/com.vmware.vsphere.resmgmt.doc/GUID-FC84ECD9-C7DA-4D27-B5EC-0C8E396A6800.html

Deixe uma Resposta

Preencha os seus detalhes abaixo ou clique num ícone para iniciar sessão:

Logótipo da WordPress.com

Está a comentar usando a sua conta WordPress.com Terminar Sessão /  Alterar )

Google photo

Está a comentar usando a sua conta Google Terminar Sessão /  Alterar )

Imagem do Twitter

Está a comentar usando a sua conta Twitter Terminar Sessão /  Alterar )

Facebook photo

Está a comentar usando a sua conta Facebook Terminar Sessão /  Alterar )

Connecting to %s