El motor de colocación de VMware Cloud Director determina en qué recursos, incluidos los grupos de recursos, los almacenes de datos y las redes o grupos de redes, se colocarán las máquinas virtuales (MV) en una vApp. En función de los requisitos de cada máquina virtual, el motor toma la decisión de colocación de forma independiente para cada máquina virtual en una vApp.

El motor de colocación se ejecuta en los siguientes escenarios.
Nota: VMware Cloud Director coloca las máquinas virtuales dentro de una vApp de forma independiente en función de los requisitos de cada máquina virtual.
  • Cuando se crea una máquina virtual, el motor de colocación determina en qué grupo de recursos, almacén de datos y grupo de redes se colocará.
  • Cuando se inicia una máquina virtual y esta no se enciende, VMware Cloud Director puede mover de forma selectiva la máquina virtual a otro grupo de recursos, almacén de datos o grupo de redes.
  • Cuando se edita una máquina virtual para cambiar su almacén de datos, recurso o configuración de red, VMware Cloud Director puede mover la máquina virtual a un almacén de datos y a un grupo de recursos diferentes que admitan la nueva configuración de la máquina virtual. VMware Cloud Director mueve una máquina virtual solo cuando los recursos actuales no pueden admitir los nuevos requisitos.
  • Cuando se migran máquinas virtuales a diferentes grupos de recursos.
  • Cuando un centro de datos virtual (VDC) de organización detecta máquinas virtuales creadas en cualquier grupo de recursos de vCenter Server que respalda el VDC y el sistema construye una vApp simplificada para que se incluya en ella cada máquina detectada.
El motor de colocación utiliza los siguientes criterios para seleccionar grupos de recursos idóneos para una máquina virtual.
  • Capacidad de CPU
  • Capacidad de memoria
  • Número de CPU virtuales
  • Versión de hardware admitida por el host y permitida por el VDC de proveedor
  • Reglas de afinidad

El motor de colocación filtra los grupos de recursos desactivados de la lista de candidatos. Cuando es posible, VMware Cloud Director coloca las máquinas virtuales en el mismo clúster de hosts que otras máquinas virtuales en el VDC de organización.

El motor de colocación utiliza los siguientes criterios para seleccionar almacenes de datos idóneos para las máquinas virtuales.
  • Capacidad de almacenamiento y umbrales
  • Directivas de almacenamiento
  • Requisitos de afinidad entre máquinas virtuales
  • Si está IOPS activado, la capacidad de IOPS y las IOPS de los discos de máquina virtual
Existen dos umbrales de almacenes de datos en VMware Cloud Director.
  • Umbral rojo: la cantidad de espacio libre en un almacén de datos (por debajo del cual, VMware Cloud Director filtra el almacén de datos durante la colocación de cualquier entidad, como una máquina virtual, una plantilla o un disco).

    Cuando un almacén de datos alcanza su umbral de color rojo, el motor de asignación de las cargas de trabajo deja de colocar nuevas máquinas virtuales en ese almacén de datos, excepto al importar máquinas virtuales desde vCenter Server. En el caso de la importación de máquinas virtuales, si la máquina virtual de vCenter Server ya está presente en el almacén de datos del umbral rojo, el motor de colocación prefiere el almacén de datos existente.

    El motor de colocación de cargas de trabajo utiliza el umbral rojo para todos los flujos de trabajo. Al realizar una solicitud para cualquier nueva colocación, el motor de colocación filtra primero los almacenes de datos o los pods de almacenamiento que han infringido el umbral rojo. Al realizar una solicitud de colocación de una entidad existente si los discos residen en los almacenes de datos que infringen el umbral rojo, VMware Cloud Director reubica los discos a otros almacenes de datos disponibles. A continuación, el motor selecciona un almacén de datos de los almacenes de datos o pods de almacenamiento restantes, ya sea a través de la lógica de selección de VMware Cloud Director o de las recomendaciones de vSphere Storage DRS.

  • Umbral amarillo: la cantidad de espacio libre en el almacén de datos, por debajo de la cual VMware Cloud Director filtra el almacén de datos durante la colocación de máquinas virtuales instantáneas desde las cuales VMware Cloud Director crea máquinas virtuales con aprovisionamiento rápido. Para obtener más información sobre las máquinas virtuales instantáneas, consulte Aprovisionamiento rápido de máquinas virtuales.

    El umbral amarillo no se aplica a los clones vinculados que VMware Cloud Director utiliza para el aprovisionamiento rápido de máquinas virtuales. Cuando el motor de colocación selecciona un almacén de datos para un clon vinculado, si al almacén de datos seleccionado le falta una máquina virtual instantánea, VMware Cloud Director crea una máquina virtual instantánea en el almacén de datos. Este umbral no se aplica a la máquina virtual instantánea en este caso.

    El umbral amarillo se aplica solo al trabajo periódico en segundo plano que crea máquinas virtuales instantáneas. Si se activa, el trabajo se ejecuta cada 24 horas y utiliza la creación urgente de máquinas virtuales en cada almacén de datos para un par determinado de directivas de almacenamiento y hub. Para activar el trabajo de aprovisionamiento urgente de máquinas virtuales instantáneas, debe establecer la siguiente propiedad en true.
    valc.catalog.fastProvisioning=true
    Nota: El trabajo periódico en segundo plano crea máquinas virtuales instantáneas en todos los almacenes de datos para todas las plantillas. El trabajo aumenta el consumo de almacenamiento incluso cuando no se utilizan almacenes de datos ni máquinas virtuales instantáneas.

En la mayoría de los casos, el motor de colocación retira de la lista de candidatos los almacenes de datos desactivados y los que superan el umbral rojo. El motor no filtra estos almacenes de datos cuando se importa una máquina virtual desde vCenter Server.

Al implementar la lógica de umbral, VMware Cloud Director no evalúa los requisitos del asunto de colocación actual. Para que el motor de asignación de las cargas de trabajo coloque un asunto en un almacén de datos, el espacio disponible en bytes debe ser superior al umbral en bytes. Por ejemplo, para un almacén de datos con una capacidad disponible de 5 GB con un umbral rojo establecido en 4 GB, el motor de colocación puede colocar una máquina virtual con un requisito de 2 GB. Si la creación de la máquina virtual infringe el umbral, el motor de colocación filtra el almacén de datos para otras colocaciones.

El motor de colocación utiliza el nombre de red para seleccionar grupos de redes idóneos para una vApp y sus máquinas virtuales.

Después de seleccionar un conjunto de recursos idóneos, el motor de colocación clasifica los recursos y selecciona la mejor ubicación para cada máquina virtual en función de la CPU, la RAM virtual y la configuración de almacenamiento de cada máquina virtual.

Al clasificar los recursos, el motor de colocación examina el uso de los recursos actuales y el uso estimado de recursos futuros. El uso estimado futuro se calcula en función de las máquinas virtuales apagadas actualmente situadas en un determinado grupo de recursos y su uso previsto una vez encendidas. En el caso de la CPU y la memoria, el motor de colocación considera la capacidad actual sin reservar, el uso máximo y la capacidad estimada futura sin reservar. En el caso del almacenamiento, el motor considera la capacidad aprovisionada agregada que suministra el clúster al que pertenece cada grupo de recursos. El motor de colocación considera, a continuación, los indicadores ponderados de la idoneidad actual y futura de cada grupo de recursos.

Cuando es necesario realizar un movimiento, el motor de colocación favorece los grupos de recursos con más capacidad de CPU, memoria y almacenamiento sin reservar. Asimismo, otorga una preferencia más baja a los clústeres amarillos, de forma que estos solo se seleccionan si no hay ningún otro clúster disponible que cumpla los criterios de colocación. Al importar una máquina virtual desde vCenter Server, si la colocación de la máquina virtual es satisfactoria, para minimizar el movimiento, el motor ignora los umbrales.

Cuando enciende una máquina virtual, VMware Cloud Director intenta encenderla en su ubicación actual. Si vCenter Server notifica un error de capacidad de CPU y memoria del host, VMware Cloud Director intenta usar el grupo de recursos dos veces antes de tratar de mover la máquina virtual a los otros grupos de recursos compatibles en el VDC de organización. Al volver a ejecutar el motor de colocación para intentar encontrar un grupo de recursos compatible, VMware Cloud Director excluye los grupos de recursos probados anteriormente y con errores. Si no hay grupos de recursos adecuados conectados al almacén de datos en el que se encuentran los VMDK, mover una máquina virtual a otro grupo de recursos puede provocar la migración de los VMDK de la máquina virtual a un almacén de datos diferente. Si se produce un error en la colocación de máquinas virtuales en todas las ubicaciones que cumplen los requisitos de la máquina virtual, VMware Cloud Director devuelve un mensaje de error que indica que la colocación no es factible. Si existe una afinidad con el almacén de datos actual y el almacén de datos no está disponible, el motor de colocación devuelve un error que indica que la colocación no es factible. Este es un estado normal del sistema cuando funciona casi a plena capacidad y la solución propuesta no cumple todos los requisitos en el momento actual. Para corregir el error, puede agregar o liberar recursos e iniciar un reintento. Cuando no se requiere ningún almacén de datos específico, el motor de colocación selecciona un almacén de datos en el clúster de hosts candidato o en el grupo de recursos que cumple con los demás requisitos, como la directiva de almacenamiento, la capacidad de almacenamiento y la capacidad de IOPS.

En las situaciones de implementación simultánea cuando un grupo de recursos se encuentra cerca del máximo de su capacidad, la validación de ese grupo de recursos puede producirse aunque este carezca de los recursos suficientes para admitir la máquina virtual. En estos casos, la máquina virtual no puede encenderse. Si una máquina virtual no se enciende en esta situación y hay más de un grupo de recursos que respalda el VDC, para solicitar a VMware Cloud Director que migre la máquina virtual a un grupo de recursos diferente, vuelva a iniciar la operación de encendido.

Cuando el clúster al que pertenece un grupo de recursos se encuentra cerca del máximo de su capacidad, una máquina virtual de ese grupo de recursos no podrá encender si ningún host individual tiene capacidad suficiente para encender la máquina virtual. Esto se produce como resultado de la fragmentación de la capacidad a nivel de clúster. En estos casos, un administrador del sistema debe migrar algunas máquinas virtuales fuera del clúster para que este mantenga una capacidad disponible suficiente.

Algoritmo del motor de colocación de máquinas virtuales

El algoritmo de colocación selecciona un clúster de hosts de la lista de clústeres de hosts que tienen perfiles de almacenamiento necesarios disponibles y satisfacen todas las reglas existentes de afinidad o antiafinidad de máquina virtual-máquina virtual y máquina virtual-host. VMware Cloud Director calcula la solución de colocación mediante varias puntuaciones. Para cambiar el comportamiento del motor, puede utilizar la herramienta de administración de celdas para modificar los parámetros configurables que comienzan con el símbolo de guion bajo (_).
  1. Para cada clúster de hosts, el motor de colocación de las cargas de trabajo calcula una capacityScore, una futureCapacityScore y una reservationScore. El motor de colocación calcula cada puntuación por separado para la CPU, la memoria y el almacenamiento.
    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 clúster de hosts, el motor de colocación calcula una weightedCapacityScore para CPU, memoria y almacenamiento.
    weightedCapacityScore = capacityScore * _currentScoreWeight + futureCapacityScore * (1 - _currentScoreWeight)

    Cada weightedCapacityScore es un índice de 0 a 1, con valores más altos para representar más recursos disponibles. Los valores de weightedCapacityScore se pueden comparar entre diferentes tipos de recursos, como por ejemplo CPU, memoria y almacenamiento, ya que representan una medida de disponibilidad que no tiene unidades. Un valor mayor de weightedCapacityScore significa una mayor disponibilidad del recurso correspondiente en el clúster de hosts.

  3. El motor de colocación verifica que haya suficientes recursos para CPU, memoria y almacenamiento.
    totalAvailable * _[memory|cpu|storage]headRoom < free / UnreservedCapacity
  4. El motor de colocación ordena la lista de clústeres de hosts basándose en la weightedCapacityScore, de modo que el clúster de hosts menos restringido sea el primero y el clúster de hosts más restringido sea el último.
  5. El motor de colocación procesa cada clúster de hosts en la lista.
    • Si se debe evitar un clúster de hosts, por ejemplo, debido a una regla de antiafinidad, el motor lo agrega a avoidHubList.
    • Si el clúster de hosts no tiene suficientes recursos adicionales, el motor lo agrega a noHeadRoomHubList.
    • Si se prefiere un clúster de hosts, por ejemplo, debido a una regla de afinidad sólida o el clúster de hosts actual, el motor los agrega a preferredHubList.
    • Todos los demás clústeres de hosts van a acceptableHubList.

    Dentro de cada lista, el clúster de hosts con mayor preferencia es el primero y el de menor preferencia es el último.

  6. El motor integra las cuatro listas.

    preferredHubList + acceptableHubList + noHeadRoomHubList + avoidHubList

    El motor ordena la lista resultante del clúster de hosts con mayor preferencia al de menor preferencia.

  7. El motor de colocación selecciona el primer clúster de hosts de la lista como hub de destino.

Parámetros ajustables

Para influir en varios umbrales de algoritmos de selección, existen varios parámetros que puede personalizar. No obstante, solo los administradores de proveedores de servicios con conocimientos avanzados de las operaciones de VMware Cloud Director podrían intentar cambiar estos parámetros respecto a sus valores predeterminados, ya que se podrían producir resultados indeseables e inesperados. Pruebe primero los cambios de parámetros en un entorno que no sea de producción.

Puede personalizar los siguientes parámetros mediante la Herramienta de administración de celdas.

Parámetro Descripción
vcloud.placement.ranking.currentScoreWeight La importancia relativa del componente actual de la puntuación del clúster del hosts. El valor debe estar en [0.1]. Cuando el valor es 0, el motor clasifica el clúster de hosts solo en función de una puntuación futura. Cuando el valor es 1, el motor clasifica el clúster de hosts solo en función de la puntuación actual. El valor predeterminado es 0.5.

vcloud.placement.ranking.memoryBurstRatio

vcloud.placement.ranking.cpuBurstRatio

Porcentaje de colocación superior a la reserva de una máquina virtual que el clasificador utiliza para calcular la carga del clúster. El valor es de 0 a 1. 0 significa que una máquina virtual solo utiliza su reserva. 1 significa que la máquina virtual está totalmente ocupada. El valor predeterminado es 0.67.
vcloud.placement.ranking.futureDeployRatio El porcentaje de máquinas virtuales en este clúster de hosts que se espera que se implementen y que consuman memoria y CPU. El valor es de 0 a 1. El valor predeterminado es 0.5.

vcloud.placement.ranking.memoryHeadRoom

vcloud.placement.ranking.cpuHeadRoom

vcloud.placement.ranking.storageHeadRoom

Estos parámetros proporcionan el control para dejar recursos adicionales para el crecimiento en un clúster de hosts. El motor define la capacidad de aumento como un porcentaje de recursos no reservados. Por ejemplo, si vcloud.placement.ranking.memoryHeadRoom es 0.2 después de que un clúster de hosts tenga menos del 20 % de recursos disponibles, el motor lo considera como un clúster con capacidad de aumento de memoria insuficiente y lo clasificará como inferior a otros clústeres de hosts. El valor debe estar comprendido entre 0 y 1. El valor predeterminado es 0.2.

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

Filtros de almacenes de datos y algoritmo de colocación de almacenamiento

Los filtros de almacenes de datos y el algoritmo de colocación de almacenamiento de VMware Cloud Director determinan la colocación de archivos y discos de máquina virtual en los recursos de almacenamiento subyacentes. Los contenedores de almacenamiento representan los recursos de almacenamiento, ya sea un almacén de datos o un clúster de almacenes de datos.

Los filtros de almacenes de datos forman parte de la cadena de filtros de almacenamiento, lo cual ayuda a delimitar los contenedores de almacenamiento aptos, en función de los requisitos del asunto de colocación. Los filtros utilizan los contenedores de almacenamiento disponibles en un VDC de proveedor como lista de entrada. Los filtros se ejecutan en una secuencia predefinida y cada filtro pasa la lista refinada de contenedores de almacenamiento al siguiente filtro. VMware Cloud Director omite los filtros que no se pueden aplicar. Por ejemplo, para las máquinas virtuales sin un ajuste de IOPS, VMware Cloud Director no ejecuta el filtro de IOPS.

Tabla 1. Filtros de almacenes de datos
Filtrar Descripción
AffinityDatastoreFilter Filtra los contenedores de almacenamiento en función de las reglas de afinidad y antiafinidad definidas para los almacenes de datos. VMware Cloud Director establece reglas de afinidad de almacenes de datos en casos como la importación de máquinas virtuales desde vCenter Server, la migración de tenants, etc.
AlreadyOnValidDatastoreFilter Si ya se ha colocado un asunto de colocación en un almacén de datos válido, este filtro rechaza todos los demás contenedores de almacenamiento y conserva solo el almacén de datos válido.
BadHostsFilter Filtra los contenedores de almacenamiento que no tienen al menos un host conectado, operativo y encendido. Filtra los contenedores de almacenamiento que se han eliminado del inventario.
DatastoreClusterFilter

Filtra todos los clústeres de almacenes de datos y los almacenes de datos que forman parte de un clúster de almacenes de datos. Este filtro se utiliza cuando el asunto de colocación no requiere clústeres de almacenes de datos. Por ejemplo, si no se permiten discos con nombre compartidos en los clústeres de almacenes de datos, en función de config: vcloud.disk.shared.allowOnSpod.

DatastoreFsFilter Filtra todos los contenedores de almacenamiento que forman parte del sistema de archivos especificado. Por ejemplo, si no se permiten discos con nombre compartidos en almacenes de datos NFS en función de config: vcloud.disk.shared.allowOnNfs, el algoritmo de colocación agrega este filtro a la cadena.
DisabledDatastoreFilter Filtra todos los contenedores de almacenamiento desactivados de la lista de entrada.
IopsCapacityDatastoreFilter

Filtra todos los almacenes de datos que no tienen suficiente capacidad de IOPS para la máquina virtual.

El filtro se ejecuta si se cumplen los siguientes requisitos previos.

  • La máquina virtual tiene un ajuste de IOPS.
  • No hay pods de almacenamiento.
  • Todos los almacenes de datos tienen iopsCapacities establecido.
  • La máquina virtual ha activado la capacidad de VCD/IOPS de la directiva de almacenamiento y está activada la opción Impacto en la colocación de la configuración de la directiva de almacenamiento.
LeastProvisionedFilter Identifica el contenedor de almacenamiento menos aprovisionado.
LinkedCloneFilter Filtra todos los almacenes de datos que no tienen una máquina virtual de origen o las máquinas virtuales instantáneas correspondientes en un almacén de datos. Filtra los almacenes de datos que tienen máquinas virtuales de origen con una longitud de cadena máxima superada para los discos virtuales de las máquinas virtuales.
MinFreeSpaceFilter Filtra los contenedores de almacenamiento que no tienen suficiente espacio libre para el asunto de colocación. Para los pods de almacenamiento, el espacio libre máximo de los almacenes de datos secundarios determina el espacio libre y no el espacio libre total de los almacenes de datos secundarios o el espacio libre del pod de almacenamiento. Por ejemplo, si un pod de almacenamiento tiene dos almacenes de datos, respectivamente, con 3 GB y 5 GB libres. VMware Cloud Director considera que el espacio libre del pod de almacenamiento es de 5 GB. Si no existen estos contenedores, el filtro mantiene el contenedor con la mayor cantidad de espacio libre.
MostFreeSpaceFilter Identifica el contenedor de almacenamiento con más espacio libre.
StorageClassFilter Filtra los contenedores de almacenamiento o pods de almacenamiento que no concuerdan con la directiva de almacenamiento del asunto de colocación, definido en sus requisitos.
ThresholdFilter Filtra los contenedores de almacenamiento que alcanzan el umbral especificado de capacidad disponible. Hay umbrales amarillo y rojo en VMware Cloud Director. Consulte la Configurar umbrales de poco espacio de disco para un contenedor de almacenamiento de centro de datos virtual de proveedor en VMware Cloud Director.
VirtualMachineFilter Filtra todos los contenedores de almacenamiento a los que la máquina virtual especificada no tiene acceso.

VMware Cloud Director pasa la lista final de contenedores de almacenamiento filtrados al algoritmo de colocación de almacenamiento que intenta colocar el asunto de colocación en los contenedores de almacenamiento seleccionados.

Para colocar el conjunto de asuntos de colocación en el mejor almacén de datos posible para cada uno de ellos, el algoritmo de colocación de almacenamiento utiliza criterios configurables y la lista de almacenes de datos válidos. El algoritmo de colocación de almacenamiento utiliza el siguiente flujo de trabajo.
  1. Recibe del motor de colocación un conjunto de temas de colocación y un grupo de recursos de destino que respalda el VDC de proveedor. Hay dos alternativas.

    • Por lo general, el algoritmo recibe un archivo de inicio de máquina virtual que contiene metadatos e información de configuración, y un conjunto de discos para la colocación de máquinas virtuales normales, sin aprovisionamiento rápido.
    • El algoritmo podría utilizar un enfoque de disco agregado para discos con nombre y máquinas virtuales con aprovisionamiento rápido. En otras palabras, para cada máquina virtual de aprovisionamiento rápido, el algoritmo recibe un requisito para la máquina virtual y todos sus discos.
  2. Recibe el conjunto de contenedores de almacenamiento aptos para ese hub que incluye tanto almacenes de datos como pods de almacenamiento.
  3. Para filtrar los contenedores de almacenamiento que no pueden ajustarse a un asunto, para cada asunto de colocación, el algoritmo se ejecuta a través de la cadena estática de filtros de colocación. Por ejemplo, si un disco de máquina virtual no cabe en un almacén de datos, el algoritmo marca ese almacén de datos como no apto para el disco de máquina virtual.
  4. Clasifica los contenedores de almacenamiento para cada asunto en orden de preferencia siguiendo de forma consecutiva las consideraciones subsiguientes.
    1. Si el contenedor es un pod de almacenamiento o un almacén de datos
    2. Cuántos otros temas de colocación contienen el pod de almacenamiento como contenedor válido
    3. Tamaño del contenedor
  5. Si alguno de los contenedores es un pod de almacenamiento, para reducir los pods de almacenamiento a almacenes de datos, el algoritmo ejecuta el algoritmo de invocación de vSphere Storage DRS.
  6. Después de introducir los temas de colocación y su conjunto de almacenes de datos válidos, determina dónde debe residir el asunto de colocación.
  7. Devuelve un resultado de colocación final que determina los almacenes de datos en los que debe residir cada asunto de colocación o devuelve un error que indica que el algoritmo de VMware Cloud Director no puede encontrar una colocación adecuada.