Compartir a través de


Implementación de un conjunto de clústeres

Se aplica a: Windows Server 2019

En este artículo se proporciona información sobre cómo implementar un conjunto de servidores en clúster para clústeres de conmutación por error de Windows Server mediante PowerShell. Un conjunto de clústeres es un grupo de varios clústeres de conmutación por error agrupados. Mediante el uso de un conjunto de clústeres, puede aumentar el número de nodos de servidor en una única nube de centro de datos definido por software (SDDC) por orden de magnitud.

Los conjuntos de clústeres se han probado y se admiten hasta 64 nodos de clúster totales. Sin embargo, los conjuntos de clústeres se pueden escalar a límites mucho mayores y no están codificados de forma dura para un límite.

Ventajas

Los conjuntos de clústeres ofrecen las siguientes ventajas:

  • Aumenta significativamente la escala de nube de SDDC admitida para ejecutar máquinas virtuales (VM) de alta disponibilidad mediante la combinación de varios clústeres más pequeños en un único tejido grande, al tiempo que mantiene el límite de error de software en un único clúster. Puede migrar fácilmente máquinas virtuales a través del conjunto de clústeres.

  • Aumento de la resistencia. Tener cuatro clústeres de 4 nodos en un conjunto de clústeres proporciona una mejor resistencia que un único clúster de 16 nodos en que varios nodos de proceso pueden bajar y la producción permanece intacta.

  • Administración del ciclo de vida del clúster de conmutación por error, incluida la incorporación y retirada de clústeres, sin afectar a la disponibilidad de la máquina virtual del inquilino.

  • Flexibilidad de máquina virtual entre clústeres individuales y un espacio de nombres de almacenamiento unificado.

  • Cambie fácilmente la relación de carga de trabajo de proceso a almacenamiento en el entorno hiperconvergido.

  • Benefíciese de los dominios de error y los conjuntos de disponibilidad similares a Azure en clústeres individuales en la ubicación inicial de la máquina virtual y la migración posterior.

  • Puede usar incluso si el hardware de proceso y almacenamiento entre los nodos del clúster no es idéntico.

  • Migración en vivo de máquinas virtuales entre clústeres.

  • Conjuntos de disponibilidad similares a Azure y dominios de error en varios clústeres.

  • Traslado de máquinas virtuales de SQL Server entre clústeres.

Requisitos y limitaciones

Existen algunos requisitos y limitaciones para usar conjuntos de clústeres:

  • Todos los clústeres miembro de un conjunto de clústeres deben estar en el mismo bosque de Active Directory (AD).

  • Los servidores miembros del conjunto deben ejecutar la misma versión del sistema operativo. Las máquinas virtuales no se pueden migrar en vivo entre diferentes sistemas operativos. Puede tener un conjunto de clústeres que consiste en uno, pero no varios, de las siguientes opciones:

    • Clúster de conmutación por error de Windows Server 2019 y Clúster de conmutación por error de Windows Server 2019
    • Clúster de conmutación por error de Windows Server 2019 y Espacios de almacenamiento directo de Windows Server 2019
    • Espacios de almacenamiento directo de Windows Server 2019 y Espacios de almacenamiento directo de Windows Server 2019
  • Se necesita hardware de procesador idéntico en todos los servidores miembros para la migración en vivo entre clústeres miembro; de lo contrario, debe seleccionar Compatibilidad del procesador de CPU en la configuración de las máquinas virtuales.

  • Las máquinas virtuales del conjunto de clústeres se deben migrar manualmente en vivo entre clústeres, no se pueden conmutar por error automáticamente.

  • La réplica de almacenamiento debe usarse entre clústeres miembro para lograr resistencia de almacenamiento a errores de clúster. Al usar la réplica de almacenamiento, tenga en cuenta que las rutas de acceso UNC del almacenamiento del espacio de nombres no cambiarán automáticamente en la conmutación por error de almacenamiento al clúster de destino de la réplica.

  • Storage Spaces Direct no funciona entre clústeres miembro de un conjunto de clústeres. En su lugar, Espacios de almacenamiento directo se aplica a un único clúster, con cada clúster teniendo su propio grupo de almacenamiento.

Arquitectura

En el diagrama siguiente se muestra un conjunto de clústeres en un nivel alto:

Diagrama que muestra un conjunto de clústeres.

A continuación se proporciona un resumen de cada uno de los elementos mostrados:

Clúster de administración

El clúster de administración hospeda el Servidor de archivos de escalabilidad horizontal (SOFS) de alta disponibilidad del plano de administración y la referencia del espacio de nombres para el conjunto de clústeres. Un clúster de administración se desacopla lógicamente de clústeres de miembros individuales que ejecutan cargas de trabajo de máquina virtual. Esto hace que el plano de administración del conjunto de clústeres sea resistente a los errores localizados en todo el clúster, como la pérdida de energía de un clúster miembro.

SOFS de referencia de espacio de nombres del conjunto de clústeres

Se proporciona un espacio de nombres para el conjunto de clústeres con un rol de servidor SOFS que se ejecuta en el clúster de administración. Esto es similar a un espacio de nombres del sistema de archivos distribuido (DFSN). Sin embargo, a diferencia de DFSN, los metadatos de referencia del espacio de nombres del conjunto de clústeres se rellenan automáticamente en todos los nodos del clúster sin intervención, por lo que casi no hay ninguna sobrecarga de rendimiento en la ruta de acceso de almacenamiento. Este mecanismo de referencia ligero no participa en la ruta de entrada/salida.

Cada recurso compartido de referencia del bloque de mensajes del servidor (SMB) del espacio de nombres del conjunto de clústeres SOFS es de tipo SimpleReferral. Esta referencia permite a los clientes SMB acceder al recurso compartido SMB de destino hospedado en el SOFS del clúster miembro. Las referencias se almacenan en caché perpetuamente en cada uno de los nodos de cliente y el espacio de nombres del conjunto de clústeres actualiza dinámicamente las referencias según sea necesario automáticamente. La información de referencia se almacena en caché de forma persistente en cada nodo del conjunto de clústeres, incluso durante los reinicios.

Patrón del conjunto de clústeres

La comunicación entre los clústeres miembro está acoplada de forma flexible y coordinada por el recurso maestro del conjunto de clústeres (CS-Master). Al igual que otros recursos del conjunto de clústeres, CS-Master es altamente accesible y resistente a fallos en clústeres de miembros individuales o a fallos de los nodos del clúster de administración. A través de un proveedor WMI de conjunto de clústeres, CS-Master proporciona el punto de conexión de administración de todos los conjuntos de clústeres.

Clúster miembro

Un clúster miembro ejecuta cargas de trabajo de máquinas virtuales y Storage Spaces Direct. Varios clústeres de miembros participan en una implementación de conjunto de clústeres, formando la infraestructura en la nube SDDC. Los clústeres miembro difieren del clúster de administración en dos aspectos clave: los clústeres miembro participan en la configuración de dominios de error y conjuntos de disponibilidad, y están dimensionados para alojar máquinas virtuales y cargas de trabajo de Storage Spaces Direct. Las máquinas virtuales que se mueven entre clústeres miembro no se hospedan en el clúster de administración por este motivo.

Trabajo del conjunto de clústeres

El CS-Master interactúa con un recurso de clúster en los clústeres miembros llamado "trabajador del conjunto de clústeres" (CS-Worker). CS-Worker responde a las solicitudes de CS-Master, incluida la colocación de máquinas virtuales y el inventario de recursos. Hay una instancia CS-Worker por cada clúster de miembros.

Dominio de error

Un dominio de error es un grupo de hardware y software que podría producir errores juntos. Aunque puede designar uno o varios clústeres juntos como dominio de error, cada nodo podría participar en un dominio de error en un conjunto de disponibilidad. Los límites de dominio de error se basan en la topología del centro de datos, la arquitectura de red y otras consideraciones.

Conjunto de disponibilidad

Un conjunto de disponibilidad se usa para configurar la redundancia deseada de las cargas de trabajo en clúster entre dominios de error mediante la agrupación e implementación de cargas de trabajo. Para una aplicación de dos niveles, debe configurar al menos dos máquinas virtuales en un conjunto de disponibilidad para cada nivel, lo que garantiza que cuando un dominio de error de un conjunto de disponibilidad deje de funcionar, la aplicación tendrá al menos una máquina virtual en cada nivel hospedada en un dominio de error diferente.

Creación de un conjunto de clústeres

Utilice PowerShell en el siguiente ejemplo de flujo de trabajo para crear un conjunto de clústeres mediante dos clústeres. El nombre del conjunto de clústeres aquí es CSMASTER.

Nombre del clúster Nombre de SOFS de infraestructura
SET-CLUSTER SOFS-CLUSTERSET
CLUSTER1 SOFS-CLUSTER1
CLUSTER2 SOFS-CLUSTER2
  1. Use un equipo cliente de administración que ejecute Windows Server 2022 o Windows Server 2019.

  2. Instale las herramientas del clúster de conmutación por error en el servidor de clúster de administración.

  3. Cree dos miembros del clúster y con al menos dos volúmenes compartidos de clúster (CSV) en cada clúster.

  4. Cree un clúster de administración (físico o invitado) que abarque los clústeres miembro. Esto garantiza que el plano de administración del conjunto de clústeres sigue estando disponible a pesar de posibles errores en el clúster miembro.

  5. Para crear el conjunto de clústeres:

    New-ClusterSet -Name CSMASTER -NamespaceRoot SOFS-CLUSTERSET -CimSession SET-CLUSTER
    

    Nota:

    Si usa una dirección IP estática, debe incluir -StaticAddress x.x.x.x.x en el comando New-ClusterSet .

  6. Para agregar miembros del clúster al conjunto de clústeres:

    Add-ClusterSetMember -ClusterName CLUSTER1 -CimSession CSMASTER -InfraSOFSName SOFS-CLUSTER1
    Add-ClusterSetMember -ClusterName CLUSTER2 -CimSession CSMASTER -InfraSOFSName SOFS-CLUSTER2
    
  7. Para enumerar todos los clústeres de miembros del conjunto de clústeres:

    Get-ClusterSetMember -CimSession CSMASTER
    
  8. Para enumerar todos los clústeres miembro del conjunto de clústeres, incluidos los nodos del clúster de administración:

    Get-ClusterSet -CimSession CSMASTER | Get-Cluster | Get-ClusterNode
    
  9. Para enumerar todos los nodos de servidor de todos los clústeres miembro:

    Get-ClusterSetNode -CimSession CSMASTER
    
  10. Para enumerar todos los grupos de recursos en el conjunto de clústeres:

    Get-ClusterSet -CimSession CSMASTER | Get-Cluster | Get-ClusterGroup
    
  11. Para comprobar que el conjunto de clústeres contiene un recurso compartido SMB (ScopeName que es el nombre del servidor de archivos de infraestructura) en el SOFS de infraestructura para cada volumen CSV de miembro del clúster:

    Get-SmbShare -CimSession CSMASTER
    
  12. Revise los archivos de registro de depuración del conjunto de clústeres para el conjunto de clústeres, el clúster de administración y cada miembro del clúster:

    Get-ClusterSetLog -ClusterSetCimSession CSMASTER -IncludeClusterLog -IncludeManagementClusterLog -DestinationFolderPath <path>
    
  13. Configure Kerberos con delegación restringida entre todos los miembros del conjunto de clústeres.

  14. Configure el tipo de autenticación de migración en vivo entre clústeres en Kerberos en cada nodo del conjunto de clústeres:

    foreach($h in $hosts){ Set-VMHost -VirtualMachineMigrationAuthenticationType Kerberos -ComputerName $h }
    
  15. Agregue el clúster de administración al grupo de administradores locales en cada nodo del servidor miembro del clúster en el conjunto de clústeres:

    foreach($h in $hosts){ Invoke-Command -ComputerName $h -ScriptBlock {Net localgroup administrators /add <management_cluster_name>$} }
    

Creación de máquinas virtuales del conjunto de clústeres

Después de crear el conjunto de clústeres, el siguiente paso es crear máquinas virtuales. Debe realizar las siguientes comprobaciones de antemano:

  • Comprobación de la memoria disponible en cada nodo de servidor de clúster
  • Comprobación del espacio en disco disponible en cada nodo de servidor de clúster
  • Comprobación de los requisitos de almacenamiento de máquinas virtuales específicos en términos de velocidad y rendimiento

El Get-ClusterSetOptimalNodeForVM comando identifica el clúster y el nodo óptimos del conjunto de clústeres y, a continuación, implementa la máquina virtual en él. En el ejemplo siguiente, se crea una nueva máquina virtual con:

  • 4 GB disponibles
  • Un procesador virtual
  • 10% de CPU mínima disponible
# Identify the optimal node to create a new virtual machine
$memoryinMB=4096
$vpcount = 1
$targetnode = Get-ClusterSetOptimalNodeForVM -CimSession CSMASTER -VMMemory $memoryinMB -VMVirtualCoreCount $vpcount -VMCpuReservation 10
$secure_string_pwd = convertto-securestring "<password>" -asplaintext -force
$cred = new-object -typename System.Management.Automation.PSCredential ("<domain\account>",$secure_string_pwd)

# Deploy the virtual machine on the optimal node
Invoke-Command -ComputerName $targetnode.name -scriptblock { param([String]$storagepath); New-VM CSVM1 -MemoryStartupBytes 3072MB -path $storagepath -NewVHDPath CSVM.vhdx -NewVHDSizeBytes 4194304 } -ArgumentList @("\\SOFS-CLUSTER1\VOLUME1") -Credential $cred | Out-Null

Start-VM CSVM1 -ComputerName $targetnode.name | Out-Null
Get-VM CSVM1 -ComputerName $targetnode.name | fl State, ComputerName

Cuando haya finalizado, se muestra en qué nodo de clúster se implementó la máquina virtual. En el ejemplo anterior, se mostraría como:

State         : Running
ComputerName  : 1-S2D2

Si no hay suficiente memoria, capacidad de CPU o espacio en disco disponible para agregar la máquina virtual, recibirá el siguiente error:

Get-ClusterSetOptimalNodeForVM : A cluster node isn't available for this operation.

Una vez creada la máquina virtual, se muestra en Hyper-V administrador en el nodo específico especificado. Para agregarla como una máquina virtual de conjunto de clústeres y agregarla al clúster, use este comando:

Register-ClusterSetVM -CimSession CSMASTER -MemberName $targetnode.Member -VMName CSVM1

Cuando haya finalizado, la salida es:

Id  VMName  State  MemberName  PSComputerName
--  ------  -----  ----------  --------------
 1  CSVM1     On   CLUSTER1    CSMASTER

Si ha creado un clúster mediante máquinas virtuales existentes, las máquinas virtuales deben registrarse con el conjunto de clústeres. Para registrar todas las máquinas virtuales a la vez, use:

Get-ClusterSetMember -Name CLUSTER3 -CimSession CSMASTER | Register-ClusterSetVM -RegisterAll -CimSession CSMASTER

A continuación, agregue la ruta de acceso de la máquina virtual al espacio de nombres del conjunto de clústeres.

Por ejemplo, supongamos que se agrega un clúster existente al conjunto de clústeres con máquinas virtuales preconfiguradas que residen en el volumen compartido de clúster (CSV) local. La ruta de acceso del VHDX sería similar a C:\ClusterStorage\Volume1\MYVM\Virtual Hard Disks\MYVM.vhdx1.

Se necesita una migración de almacenamiento, ya que las rutas de acceso CSV son por diseño locales para un único clúster miembro y, por lo tanto, no son accesibles para la máquina virtual una vez que se migran en vivo a través de clústeres de miembros.

En este ejemplo, se agrega CLUSTER3 al conjunto de clústeres mediante Add-ClusterSetMember con el servidor de archivos de escalabilidad horizontal SOFS-CLUSTER3. Para mover la configuración y el almacenamiento de la máquina virtual, el comando es:

Move-VMStorage -DestinationStoragePath \\SOFS-CLUSTER3\Volume1 -Name MyVM

Una vez completado, puede recibir una advertencia:

WARNING: There were issues updating the virtual machine configuration that may prevent the virtual machine from running. For more information view the report file below.
WARNING: Report file location: C:\Windows\Cluster\Reports\Update-ClusterVirtualMachineConfiguration '' on date at time.htm.

Esta advertencia puede omitirse, ya que no hubo ningún cambio físico en la configuración de almacenamiento del rol de máquina virtual. La ubicación física real no cambia; solo lo hacen las rutas de acceso de configuración.

Para más información sobre Move-VMStorage, consulte Move-VMStorage.

La migración en vivo de una máquina virtual dentro de un conjunto de clústeres implica lo siguiente:

Set-VMHost -UseAnyNetworkForMigration $true

A continuación, para mover una máquina virtual de conjunto de clústeres de CLUSTER1 a NODE2-CL3 en CLUSTER3 por ejemplo, el comando sería:

Move-ClusterSetVM -CimSession CSMASTER -VMName CSVM1 -Node NODE2-CL3

Este comando no mueve los archivos de configuración ni almacenamiento de máquina virtual y no es necesario, ya que la ruta de acceso a la máquina virtual permanece como \\SOFS-CLUSTER1\VOLUME1. Una vez que se ha registrado una máquina virtual con la ruta de acceso del recurso compartido del servidor de archivos de la infraestructura, no es necesario que las unidades y la máquina virtual estén en el mismo nodo que la máquina virtual.

Creación del servidor de archivos de escalabilidad horizontal de la infraestructura

Hay un rol de clúster SOFS de infraestructura en un clúster. El rol SOFS de infraestructura se crea especificando el -Infrastructure parámetro de modificador para el Add-ClusterScaleOutFileServerRole cmdlet. Por ejemplo:

Add-ClusterScaleoutFileServerRole -Name "my_infra_sofs_name" -Infrastructure

Cada volumen CSV creado desencadena automáticamente la creación de un recurso compartido SMB con un nombre generado automáticamente en función del nombre del volumen CSV. No puede crear ni modificar directamente comparticiones SMB dentro del rol SOFS, excepto mediante el uso de operaciones de creación y modificación de volúmenes CSV.

En configuraciones hiperconvergentes, un SOFS de infraestructura permite que un cliente SMB (Hyper-V host) se comunique con la disponibilidad continua (CA) al servidor SMB de SOFS de infraestructura. Esta CA de bucle invertido de SMB hiperconvergente se logra mediante máquinas virtuales que acceden a sus archivos de disco virtual (VHDX) donde se reenvía la identidad de máquina virtual propietaria entre el cliente y el servidor. Este reenvío de identidades permite el uso de ACL para archivos VHDx igual que en configuraciones de clúster hiperconvergentes estándar como antes.

Una vez creado un conjunto de clústeres, el espacio de nombres del conjunto de clústeres se basa en un SOFS de infraestructura en cada uno de los clústeres miembro y, además, un SOFS de infraestructura en el clúster de administración.

En el momento en que se agrega un clúster miembro a un conjunto de clústeres, puede especificar el nombre de un SOFS de infraestructura en ese clúster si ya existe uno. Si el servidor SOFS de infraestructura no existe, se crea un nuevo rol de SOFS de infraestructura en el nuevo clúster miembro. Si ya existe un rol SOFS de infraestructura en el clúster miembro, la operación Agregar lo cambia implícitamente al nombre especificado según sea necesario. El conjunto de clústeres no usa los servidores SMB existentes ni los roles de SOFS que no son de infraestructura en los clústeres miembros.

Cuando se crea el conjunto de clústeres, tiene la opción de usar un objeto de equipo de AD existente como raíz del espacio de nombres en el clúster de administración. La creación de un conjunto de clústeres genera el rol de clúster SOFS de infraestructura en el clúster de administración o renombra el rol SOFS de infraestructura existente. El SOFS de infraestructura en el clúster de administración se usa como SOFS de referencia del espacio de nombres del conjunto de clústeres.

Cree dominios de error y conjuntos de disponibilidad

Los dominios de error y los conjuntos de disponibilidad similares a Azure se pueden configurar en un conjunto de clústeres. Esto es beneficioso para las ubicaciones iniciales de máquinas virtuales y las migraciones entre clústeres.

El ejemplo siguiente tiene cuatro clústeres en un conjunto de clústeres. Dentro del conjunto, se crea un dominio de error con dos de los clústeres y se crea un segundo dominio de error con los otros dos clústeres. Estos dos dominios de error componen el conjunto de disponibilidad.

En el ejemplo siguiente, CLUSTER1 y CLUSTER2 están en el dominio de error FD1 y CLUSTER3 y CLUSTER4 están en el dominio de error FD2. El conjunto de configuración disponible es CSMASTER-AS.

Para crear los dominios de error, los comandos son:

New-ClusterSetFaultDomain -Name FD1 -FdType Logical -CimSession CSMASTER -MemberCluster CLUSTER1,CLUSTER2 -Description "First fault domain"

New-ClusterSetFaultDomain -Name FD2 -FdType Logical -CimSession CSMASTER -MemberCluster CLUSTER3,CLUSTER4 -Description "Second fault domain"

Para asegurarse de que se han creado con éxito, se puede ejecutar Get-ClusterSetFaultDomain mostrando su salida para FD1:

PS C:\> Get-ClusterSetFaultDomain -CimSession CSMASTER -FdName FD1 | fl *

PSShowComputerName    : True
FaultDomainType       : Logical
ClusterName           : {CLUSTER1, CLUSTER2}
Description           : First fault domain
FDName                : FD1
Id                    : 1
PSComputerName        : CSMASTER

Ahora que se han creado los dominios de error, se crea el conjunto de disponibilidad:

New-ClusterSetAvailabilitySet -Name CSMASTER-AS -FdType Logical -CimSession CSMASTER -ParticipantName FD1,FD2

Para validar que se ha creado, use:

Get-ClusterSetAvailabilitySet -AvailabilitySetName CSMASTER-AS -CimSession CSMASTER

Al crear nuevas máquinas virtuales, use el -AvailabilitySet parámetro para determinar el nodo óptimo para la selección de ubicación. Este es un ejemplo:

# Identify the optimal node to create a new VM
$memoryinMB=4096
$vpcount = 1
$av = Get-ClusterSetAvailabilitySet -Name CSMASTER-AS -CimSession CSMASTER
$targetnode = Get-ClusterSetOptimalNodeForVM -CimSession CSMASTER -VMMemory $memoryinMB -VMVirtualCoreCount $vpcount -VMCpuReservation 10 -AvailabilitySet $av
$secure_string_pwd = convertto-securestring "<password>" -asplaintext -force
$cred = new-object -typename System.Management.Automation.PSCredential ("<domain\account>",$secure_string_pwd)

Eliminación de un clúster de un conjunto

Hay ocasiones en las que un clúster debe quitarse de un conjunto de clústeres. Como procedimiento recomendado, todas las máquinas virtuales del conjunto de clústeres deben moverse fuera del clúster de antemano. Esto se puede hacer mediante los Move-ClusterSetVM comandos y Move-VMStorage .

Si las máquinas virtuales no se mueven primero fuera del clúster, todas las máquinas virtuales del conjunto de clústeres restantes hospedadas en el clúster que se quitan se convertirán en máquinas virtuales de alta disponibilidad enlazadas a ese clúster, suponiendo que tengan acceso a su almacenamiento. Los conjuntos de clústeres también actualizan automáticamente su inventario, al dejar de realizar un seguimiento del estado de un clúster eliminado y las máquinas virtuales que se ejecutan en él, y al eliminar el espacio de nombres y todas las referencias a los recursos compartidos alojados en el clúster eliminado.

Por ejemplo, el comando para quitar el clúster de CLUSTER1 de un conjunto de clústeres es:

Remove-ClusterSetMember -ClusterName CLUSTER1 -CimSession CSMASTER

Copia de seguridad de estado del sistema

La copia de seguridad del estado del sistema incluirá el estado del clúster y metadatos. Con copias de seguridad de Windows Server, puede restaurar solo la base de datos de clúster de un nodo si es necesario o realizar una restauración autoritativa para revertir toda la base de datos del clúster en todos los nodos. En el caso de los conjuntos de clústeres, se recomienda realizar primero una restauración autoritativa para los clústeres miembro y, a continuación, para el clúster de administración. Para obtener más información sobre la copia de seguridad del estado del sistema, consulte Copia de seguridad del estado del sistema y equipo sin sistema operativo.

Pasos siguientes