Leer en inglés

Compartir a través de


Creación de reglas de afinidad de sitio y máquina para máquinas virtuales

Se aplica a: Azure Local, versiones 23H2 y 22H2

Con Windows Admin Center o Windows PowerShell, puede crear fácilmente reglas de afinidad y antiafinidad para máquinas virtuales (VM) en la instancia local de Azure.

Nota

La manera recomendada de crear y administrar máquinas virtuales en Azure Local, versión 23H2, usa el plano de control de Azure Arc. Use el mecanismo que se describe a continuación para administrar las máquinas virtuales solo si necesita funcionalidad que no está disponible en máquinas virtuales de Azure Arc.

Affinity es una regla que establece una relación entre dos o más grupos de recursos o roles, como máquinas virtuales, para mantenerlos juntos en la misma máquina, sistema o sitio. La antiafinidad es lo contrario en que se usa para mantener las máquinas virtuales o grupos de recursos especificados entre sí, como dos controladores de dominio colocados en máquinas independientes o en sitios independientes para la recuperación ante desastres.

Las reglas de afinidad y antiafinidad se utilizan de forma similar a como Azure usa las zonas de disponibilidad. En Azure, puede configurar zonas de disponibilidad para mantener las máquinas virtuales en zonas independientes y alejarlas entre sí o en la misma zona entre sí.

Con las reglas de afinidad y antiafinidad, cualquier máquina virtual en clúster permanecería en la misma máquina o se impediría que estuvieran juntas en la misma máquina. De este modo, la única manera de mover una máquina virtual fuera de una máquina sería hacerlo manualmente. Asimismo puede mantener las máquinas virtuales junto con su almacenamiento como, por ejemplo, con el volumen compartido de clúster (CSV) en el que reside su VHDX.

Uso de Windows Admin Center

Puede crear reglas básicas de afinidad y antiafinidad mediante Windows Admin Center.

Pantalla Máquinas virtuales

  1. En Inicio de Windows Admin Center, en Todas las conexiones, seleccione la máquina o el sistema para el que desea crear la regla de máquina virtual.
  2. En Herramientas, seleccione Configuración.
  3. En Configuración, seleccione Reglas de afinidad y, a continuación, seleccione Crear regla en Reglas de afinidad.
  4. En Nombre de la regla: escriba un nombre para la regla.
  5. En Tipo de regla, seleccione Juntos (misma máquina) o Apart (diferentes máquinas) para colocar las máquinas virtuales en la misma máquina o en máquinas diferentes.
  6. En Se aplica a, seleccione las máquinas virtuales a las que se aplica esta regla. Use el botón Agregar para agregar más máquinas virtuales a la regla.
  7. Cuando termine, seleccione Crear regla.
  8. Para eliminar una regla, selecciónela y seleccione Eliminar regla.

Uso de Windows PowerShell

Puede crear reglas más complejas con Windows PowerShell que con Windows Admin Center. Normalmente, configura las reglas desde un equipo remoto, en lugar de en un equipo host de un sistema. Este equipo remoto se denomina equipo de administración.

Al ejecutar comandos de Windows PowerShell desde un equipo de administración, incluya el -Name parámetro o -Cluster con el nombre del sistema que administra. Si procede, también debe especificar el nombre de dominio completo (FQDN) al usar el -ComputerName parámetro para una máquina.

Nuevos cmdlets de PowerShell

Para crear reglas de afinidad para clústeres, utilice los siguientes cmdlets nuevos de PowerShell:

New-ClusterAffinityRule

El cmdlet New-ClusterAffinityRule se utiliza para crear nuevas reglas. Con este comando, especificaría el nombre de la regla y el tipo de regla que es, donde:

-Name es el nombre de la regla.

Los valores de -RuleType son SameFaultDomain | SameNode | DifferentFaultDomain | DifferentNode

Ejemplo:

New-ClusterAffinityRule -Name Rule1 -RuleType SameFaultDomain

Set-ClusterAffinityRule

El cmdlet Set-ClusterAffinityRule se utiliza para habilitar o deshabilitar una regla, donde:

-Name es el nombre de la regla que se va a habilitar o deshabilitar.

-Enabled | Disabled habilita o deshabilita la regla.

Ejemplo:

Set-ClusterAffinityRule -Name Rule1 -Enabled

Get-ClusterAffinityRule

El cmdlet Get-ClusterAffinityRule se utiliza para mostrar la regla especificada y qué tipo es. Si -Name no se especifica, enumera todas las reglas.

Ejemplo:

Get-ClusterAffinityRule -Name Rule1

Add-ClusterGroupToAffinityRule

El cmdlet Add-ClusterGroupToAffinityRule se utiliza para agregar un nombre de grupo o rol de máquina virtual a una regla de afinidad específica, donde:

-Groups es el nombre del grupo o rol que se va a agregar a la regla.

-Name es el nombre de la regla a la que se va a agregar.

Ejemplo:

Add-ClusterGroupToAffinityRule -Groups Group1 -Name Rule1

Add-ClusterSharedVolumeToAffinityRule

El cmdlet Add-ClusterSharedVolumeToAffinityRule permite que las máquinas virtuales permanezcan juntas con el volumen compartido de clúster en el que reside el VHDX, donde:

-ClusterSharedVolumes es el disco CSV que desea agregar a la regla.

-Name es el nombre de la regla a la que se va a agregar.

Ejemplo:

Add-ClusterSharedVolumeToAffinityRule -ClusterSharedVolumes CSV1 -Name Rule1

Remove-ClusterAffinityRule

El Remove-ClusterAffinityRule elimina la regla especificada, donde -Name es el nombre de la regla.

Ejemplo:

Remove-ClusterAffinityRule -Name Rule1

Remove-ClusterGroupFromAffinityRule

Remove-ClusterGroupFromAffinityRule quita un grupo de máquinas virtuales o un rol de una regla específica, pero no deshabilita ni elimina la regla, donde:

-Name es el nombre de la regla.

-Groups son los grupos o roles que desea quitar de la regla.

Ejemplo:

Remove-ClusterGroupFromAffinityRule -Name Rule1 -Groups Group1

Remove-ClusterSharedVolumeFromAffinityRule

El Remove-ClusterSharedVolumeFromAffinityRule cmdlet se usa para quitar los volúmenes compartidos de clúster de una regla específica, pero no deshabilita ni elimina la regla, donde:

-ClusterSharedVolumes es el disco CSV que desea quitar de la regla.

-Name es el nombre de la regla a la que se va a agregar.

Ejemplo:

Remove-ClusterSharedVolumeFromAffinityRule -ClusterSharedVolumes CSV1 -Name Rule1

Cmdlets de PowerShell existentes

Con la llegada de los nuevos cmdlets, también hemos agregado nuevos modificadores adicionales a algunos cmdlets existentes.

Move-ClusterGroup

El nuevo -IgnoreAffinityRule modificador omite la regla y mueve el grupo de recursos del clúster a otra máquina. Para más información sobre este cmdlet, consulte Move-ClusterGroup.

Ejemplo:

Move-ClusterGroup -IgnoreAffinityRule -Cluster Cluster1

Nota

Si una regla de movimiento es válida, es decir, se admite, también se moverán todos los grupos y roles afectados. Si el movimiento de una máquina virtual infringe una regla, pero se necesita una sola vez, use el modificador -IgnoreAffinityRule para permitir que se produzca el movimiento. En este caso, se mostrará una advertencia de infracción de la máquina virtual. Después, puede volver a habilitar la regla según sea necesario.

Start-ClusterGroup

El nuevo -IgnoreAffinityRule modificador omite la regla y pone el grupo de recursos del clúster en línea en su ubicación actual. Para más información sobre este cmdlet, consulte Start-ClusterGroup.

Ejemplo:

Start-ClusterGroup -IgnoreAffinityRule -Cluster Cluster1

Ejemplos de reglas de afinidad

Las reglas de afinidad son reglas de "juntos" que mantienen los recursos en la misma máquina, sistema o sitio. Estos son algunos escenarios comunes de configuración de las reglas de afinidad.

Escenario 1

Supongamos que tiene una máquina virtual con SQL Server y una máquina virtual de servidor web. Estas dos máquinas virtuales deben permanecer siempre en el mismo sitio, pero no necesariamente deben estar en la misma máquina. Con SameFaultDomain, esto es posible, como se muestra:

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 esta regla y cómo está configurada, use el Get-ClusterAffinityRule cmdlet para ver la salida:

Get-ClusterAffinityRule -Name WebData -Cluster Cluster1

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

Escenario 2

Vamos a usar el mismo escenario, excepto especificar que las máquinas virtuales deben residir en la misma máquina. Con SameNode, establézcalo de la siguiente manera:

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 la regla y cómo está configurada, use el Get-ClusterAffinityRule cmdlet para ver la salida:

Get-ClusterAffinityRule -Name WebData1 -Cluster Cluster1

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

Ejemplos de reglas de antiafinidad

Las reglas de antiafinidad son reglas "separadas" que separan los recursos y los colocan en diferentes máquinas, sistemas o sitios.

Escenario 1

Tiene dos máquinas virtuales que ejecutan SQL Server en el mismo sistema multisitio local de Azure. Cada máquina virtual emplea una gran cantidad de recursos de memoria, de CPU y de almacenamiento. Si los dos terminan en la misma máquina, esto puede provocar problemas de rendimiento con uno o ambos, ya que compiten por los ciclos de memoria, CPU y almacenamiento. El uso de una regla de antiafinidad con DifferentNode como tipo de regla, estas máquinas virtuales siempre permanecerán en diferentes máquinas.

Los comandos de ejemplo serían:

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 la regla y cómo está configurada, use el Get-ClusterAffinityRule cmdlet para ver la salida:

Get-ClusterAffinityRule -Name SQL -Cluster Cluster1

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

Reglas de afinidad de almacenamiento

También puede mantener una máquina virtual y su VHDX en un volumen compartido de clúster (CSV) en la misma máquina. Si lo hace, se evitaría que se produjera el redireccionamiento de CSV, lo que puede ralentizar el inicio o la detención de una máquina virtual. Teniendo en cuenta el escenario combinado de afinidad y antiafinidad anteriormente, puede mantener la máquina virtual de SQL y el volumen compartido de clúster en la misma máquina. Para ello, utilice los comandos siguientes:

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 estas reglas y cómo están configuradas, use el Get-ClusterAffinityRule cmdlet sin el -Name modificador y vea la salida.

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

Pasos siguientes

Aprenda a administrar las máquinas virtuales. Consulte Administración de máquinas virtuales en Azure Local mediante Windows Admin Center.