O mecanismo de posicionamento do VMware Cloud Director determina em quais recursos, incluindo pools de recursos, datastores e redes ou pools de redes, posicionar as máquinas virtuais (VMs) em um vApp. Com base nos requisitos de cada VM, o mecanismo toma a decisão de posicionamento de forma independente para cada VM em um vApp.

O mecanismo de posicionamento é executado nos seguintes cenários.
Observação: O VMware Cloud Director coloca as VMs em um vApp de forma independente, com base nos requisitos de cada VM.
  • Quando você cria uma VM, o mecanismo de posicionamento determina em qual pool de recursos, datastore e pool de redes posicioná-la.
  • Quando você inicia uma VM, se a VM não ligar, o VMware Cloud Director poderá mover seletivamente a VM para outro pool de recursos, datastore ou pool de rede.
  • Quando você edita uma VM alterando suas configurações de datastore, recurso ou rede, o VMware Cloud Director pode mover essa VM para um datastore e um pool de recursos diferentes que suportam as novas configurações da VM. O VMware Cloud Director move uma VM somente quando os recursos atuais não podem oferecer suporte aos novos requisitos.
  • Quando você migra VMs para pools de recursos diferentes.
  • Quando um centro de dados virtual (VDC) de organização detecta VMs criadas em qualquer pool de recursos do vCenter Server que oferece suporte ao VDC e o sistema cria um vApp simplificado para conter cada VM detectada.
O mecanismo de posicionamento usa os seguintes critérios para selecionar pools de recursos candidatos para uma VM.
  • Capacidade da CPU
  • Capacidade da memória
  • Número de CPUs virtuais
  • Versão de hardware compatível com o host e permitida pelo VDC do provedor
  • Regras de afinidade

O mecanismo de posicionamento filtra pools de recursos desativados da lista de candidatos. Sempre que possível, o VMware Cloud Director coloca VMs no mesmo cluster de host que outras VMs no VDC de organização.

O mecanismo de posicionamento usa os seguintes critérios para selecionar datastores candidatos para VMs.
  • Capacidade de armazenamento
  • Políticas de armazenamento
  • Requisitos de afinidade entre VMs
  • Se o IOPS estiver ativado, a capacidade de IOPS e o IOPS de discos de VM

Na maioria dos casos, o mecanismo de posicionamento filtra datastores de limite vermelho e desativado da lista de candidatos. O mecanismo não filtra esses datastores quando você importa uma VM do vCenter Server.

O mecanismo de posicionamento usa o nome da rede para selecionar pools de redes candidatos para um vApp e suas VMs.

Depois que o mecanismo de posicionamento seleciona um conjunto de recursos candidatos, ele classifica os recursos e escolhe o melhor local para cada VM com base na configuração de CPU, RAM virtual e armazenamento de cada VM.

Ao classificar os recursos, o mecanismo de posicionamento examina o uso de recursos futuros atual e estimado. O uso futuro estimado é calculado com base nas VMs desligadas atualmente em um determinado pool de recursos e no seu uso esperado depois de serem ligadas. Para CPU e memória, o mecanismo de posicionamento considera a capacidade atual não reservada, o uso máximo e a capacidade não reservada futura estimada. Para armazenamento, o mecanismo considera a capacidade provisionada agregada fornecida pelo cluster ao qual cada pool de recursos pertence. Em seguida, o mecanismo de posicionamento considera as métricas ponderadas da conveniência atual e futura de cada pool de recursos.

Quando uma movimentação é necessária, o mecanismo de posicionamento favorece os pools de recursos com a capacidade mais não reservada para CPU, memória e armazenamento. Ele também dá menos preferência a clusters amarelos, para que estes apenas sejam selecionados se nenhum cluster íntegro que satisfaça os critérios de posicionamento estiver disponível. Ao importar uma VM do vCenter Server, se o posicionamento da VM for útil, para minimizar o movimento, o mecanismo ignorará os limites.

Ao ligar uma VM, o VMware Cloud Director tenta ligá-la em sua localização atual. Se o vCenter Server relatar um erro com a capacidade de memória e a CPU do host, o VMware Cloud Director tentará o pool de recursos duas vezes antes de tentar mover a VM para os outros pools de recursos compatíveis no VDC de organização. Ao executar novamente o mecanismo de posicionamento para tentar encontrar um pool de recursos compatível, o VMware Cloud Director exclui pools de recursos com tentativas e com falha. Se nenhum pool de recursos adequado estiver conectado ao datastore em que os VMDKs estão localizados, mover uma VM para outro pool de recursos poderá causar a migração dos VMDKs da VM para um datastore diferente. Se o posicionamento da VM falhar em todas as localizações que atendam aos requisitos da VM, o VMware Cloud Director retornará uma mensagem de erro informando que o posicionamento não é viável. Se houver uma afinidade com o datastore atual e o datastore estiver indisponível, o mecanismo de posicionamento retornará um erro de que o posicionamento não é viável. Este é um estado normal do sistema quando opera com capacidade quase total, e a solução proposta não atende a todos os requisitos no momento. Para corrigir o erro, você pode adicionar ou liberar recursos e iniciar uma nova tentativa. Quando não há nenhum datastore específico necessário, o mecanismo de posicionamento seleciona um datastore no cluster de hosts ou no pool de recursos candidato que atenda aos outros requisitos, como política de armazenamento, capacidade de armazenamento e capacidade de IOPS.

Durante situações de implantação simultânea quando um pool de recursos está próximo da capacidade, a validação desse pool de recursos pode ser bem-sucedida, mesmo que o pool de recursos não tenha os recursos para oferecer suporte à VM. Nesses casos, a VM não pode ser ligada. Se uma VM não ligar nessa situação e houver mais de um pool de recursos que ofereça suporte à VDC, para solicitar que o VMware Cloud Director migre essa VM para um pool de recursos diferente, inicie a operação de ligar novamente.

Quando o cluster ao qual um pool de recursos pertence está se aproximando da capacidade máxima, talvez não seja possível ligar uma VM dentro desse pool de recursos se não houver um host individual com a capacidade de ligá-la. Isso acontece como resultado da fragmentação da capacidade no nível do cluster. Nesses casos, um administrador do sistema deve migrar algumas VMs para fora do cluster para que o cluster mantenha capacidade disponível suficiente.

Algoritmo do mecanismo de posicionamento de VM

O algoritmo de posicionamento seleciona um cluster de host na lista de clusters de hosts que têm perfis de armazenamento necessários disponíveis e satisfaça qualquer regra existente de VM-VM, afinidade de host de VM ou antiafinidade. O VMware Cloud Director calcula a solução de posicionamento por meio de várias pontuações. Para alterar o comportamento do mecanismo, você pode usar a ferramenta de gerenciamento de célula para modificar os parâmetros configuráveis que começam com o símbolo de sublinhado (_).
  1. Para cada cluster de host, o mecanismo de posicionamento da carga de trabalho calcula capacityScore, futureCapacityScore e reservationScore. O mecanismo de posicionamento calcula cada pontuação separadamente para CPU, memória e armazenamento.
    capacityScore: (not available in some cases ) 
    
    CPU = (cpuUnreservedCapacityMHz - (cupBurstMHz * _cpuBurstRatio)) / cpuRequirementMHz 
    Memory = (memoryUnreservedCapacityMB - (memBurstMB * _memoryBurstRatio)) / memRequirementMB 
    Storage = storageFreeCapacityMB / stgRequirementMB 
    
    futureCapacityScore (not available in some cases) 
    
    CPU = (cpuUnreservedCapacityMHz - (cpuUndeployedReservationMHz * _futureDeployRatio)) / cpuRequirementMHz 
    Memory = (memoryUnreservedCapacityMB - (memUndeployedReservationMB * _futureDeployRatio)) / memRequirementMB 
    Storage = storageFreeCapacityMB / stgRequirementMB 
    
    reservationScore: (used for capacityScore and futureCapacityScore when those scores are unavailable) 
    
    CPU = cpuUnreservedCapacityMHz / cpuRequirementMHz 
    Memory = memoryUnreservedCapacityMB / memRequirementMB 
    Storage = storageFreeCapacityMB / stgRequirementMB 
  2. Para cada cluster de hosts, o mecanismo de posicionamento calcula uma weightedCapacityScore para CPU, memória e armazenamento.
    weightedCapacityScore = capacityScore * _currentScoreWeight + futureCapacityScore * (1 - _currentScoreWeight)

    Cada weightedCapacityScore é uma proporção entre 0 e 1 com valores mais altos que representam mais recursos disponíveis. Os valores de weightedCapacityScore podem ser comparados em diferentes tipos de recursos, por exemplo, CPU, memória e armazenamento, pois representam uma medida de disponibilidade sem unidade. Uma weightedCapacityScore maior significa mais disponibilidade do recurso correspondente no cluster de hosts.

  3. O mecanismo de posicionamento verifica se existem recursos suficientes para CPU, memória e armazenamento.
    totalAvailable * _[memory|cpu|storage]headRoom < free / UnreservedCapacity
  4. O mecanismo de posicionamento classifica a lista de clusters de hosts na weightedCapacityScore para que o cluster de hosts menos restrito seja o primeiro e o cluster de hosts mais restrito seja o último.
  5. O mecanismo de posicionamento processa cada cluster de host na lista.
    • Se o cluster de hosts tiver que ser evitado, por exemplo, devido à regra de antiafinidade, o mecanismo o adicionará à avoidHubList.
    • Se o cluster de hosts não tiver recursos adicionais suficientes, o mecanismo o adicionará à noHeadRoomHubList.
    • Se o cluster de hosts for preferencial, por exemplo, devido a uma regra de afinidade forte ou ao cluster de hosts atual, o mecanismo o adicionará à preferredHubList.
    • Todos os outros clusters de hosts vão para acceptableHubList.

    Em cada lista, o cluster de hosts mais preferido é o primeiro e o cluster de hosts menos preferido é o último.

  6. O mecanismo integra as quatro listas.

    preferredHubList + acceptableHubList + noHeadRoomHubList + avoidHubList

    O mecanismo ordena a lista resultante do cluster de host mais preferível ao cluster de host menos preferível.

  7. O mecanismo de posicionamento seleciona o cluster de host superior da lista como o hub de destino.

Parâmetros ajustáveis

Para influenciar vários limites de algoritmos de seleção, existem vários parâmetros que você pode personalizar. No entanto, somente os administradores de provedores de serviços com conhecimento avançado sobre as operações do VMware Cloud Director devem tentar alterar esses parâmetros a partir de seus valores padrão, pois podem produzir resultados inesperados e indesejáveis. Primeiro, teste todas as alterações de parâmetro em um ambiente que não seja de produção.

Você pode personalizar os seguintes parâmetros usando a Ferramenta de Gerenciamento de Células.

Parâmetro Descrição
vcloud.placement.ranking.currentScoreWeight A importância relativa do componente atual da pontuação do cluster do host. O valor deve estar em [0.1]. Quando o valor for 0, o mecanismo classificará o cluster de hosts apenas com base na pontuação futura. Quando o valor for 1, o mecanismo classifica o cluster do host apenas com base na pontuação atual. O padrão é 0,5.

vcloud.placement.ranking.memoryBurstRatio

vcloud.placement.ranking.cpuBurstRatio

A porcentagem de alocação além da reserva de uma VM que o classificador usa para estimar a carga do cluster. O valor é de 0 a 1. 0 significa que uma VM usa apenas sua reserva. 1 significa que a VM está totalmente ocupada. O padrão é 0,67.
vcloud.placement.ranking.futureDeployRatio A porcentagem de VMs neste cluster de hosts que devem ser implantadas e consumir memória e CPU. O valor é de 0 a 1. O padrão é 0,5.

vcloud.placement.ranking.memoryHeadRoom

vcloud.placement.ranking.cpuHeadRoom

vcloud.placement.ranking.storageHeadRoom

Esses parâmetros dão o controle para deixar recursos adicionais para crescimento em um cluster de hosts. O mecanismo define o espaço livre como uma proporção de recursos não reservados. Por exemplo, se o vcloud.placement.ranking.memoryHeadRoom for 0,2, depois que um cluster de hosts tiver menos de 20% de recursos disponíveis, o mecanismo o considerará como um cluster com espaço livre de memória insuficiente e o classificará como inferior aos outros clusters de hosts. O valor deve ser de 0 a 1. O padrão é 0,2.

Exemplo:
./cell-management-tool manage-config -n vcloud.placement.ranking.memoryHeadRoom -v 0.3