Replicación de almacenamiento de clúster a clúster entre regiones en Azure
Puede configurar réplicas de almacenamiento de clúster a clúster para aplicaciones entre regiones en Azure. En los ejemplos siguientes se usa un clúster de dos nodos, pero la réplica de almacenamiento de clúster a clúster se pueden usar en otros tipos de clúster. La siguiente ilustración es un clúster directo de espacio de almacenamiento de dos nodos que se pueden comunicar entre sí, se encuentran en el mismo dominio y son entre regiones.
Vea el siguiente vídeo para ver un tutorial completo del proceso.
Importante
Todos los ejemplos a los que se hace referencia son específicos de la ilustración anterior.
En el Azure Portal, cree grupos de recursos en dos regiones diferentes.
Por ejemplo, SR-AZ2AZ en Oeste de EE. UU. 2 y SR-AZCROSS en Centro-oeste de EE. UU., como se muestra más arriba.
Cree dos conjuntos de disponibilidad, uno en cada grupo de recursos de cada clúster.
- Conjunto de disponibilidad (az2azAS1) en (SR-AZ2AZ)
- Conjunto de disponibilidad (azcross-AS) en (SR-AZCROSS)
Crear dos redes virtuales
- Cree la red virtual (az2az-Vnet) en el primer grupo de recursos (SR-AZ2AZ), con una subred y una subred de puerta de enlace.
- Cree la red virtual (azcross-VNET) en el segundo grupo de recursos (SR-AZCROSS), con una subred y una subred de puerta de enlace.
Cree dos grupos de seguridad de red
- Cree el grupo de seguridad de red (az2az-NSG) en el primer grupo de recursos (SR-AZ2AZ).
- Cree el grupo de seguridad de red (azcross-NSG) en el segundo grupo de recursos (SR-AZCROSS).
Agregue una regla de seguridad de entrada para RDP:3389 a ambos grupos de seguridad de red. Puede quitar esta regla una vez finalice la instalación.
Cree máquinas virtuales de Windows Server en los grupos de recursos creados anteriormente.
Controlador de dominio (az2azDC). Puede optar por crear un tercer conjunto de disponibilidad para su controlador de dominio o añadir el controlador de dominio en uno de los dos conjuntos de disponibilidad. Si va a agregarlo al conjunto de disponibilidad creado para los dos clústeres, asígnele una dirección IP pública estándar durante la creación de la máquina virtual.
- Instale Servicio de dominio de Active Directory.
- Cree un dominio (contoso.com)
- Cree un usuario con privilegios de administrador (contosoadmin)
Cree dos máquinas virtuales (az2az1, az2az2) en el grupo de recursos (SR-AZ2AZ) mediante la red virtual (az2az-Vnet) y el grupo de seguridad de red (az2az-NSG) en el conjunto de disponibilidad (az2azAS1). Asigne una dirección IP pública estándar a cada máquina virtual durante su creación.
- Agregue al menos dos discos administrados a cada máquina
- Instale clústeres de conmutación por error y la característica Réplica de almacenamiento
Cree dos máquinas virtuales (azcross1, azcross2) en el grupo de recursos (SR-AZCROSS) mediante la red virtual (azcross-VNET) y el grupo de seguridad de red (azcross-NSG) en el conjunto de disponibilidad (azcross-AS). Asigne una dirección IP pública estándar a cada máquina virtual durante la creación
- Agregue como mínimo dos discos administrados a cada máquina
- Instale clústeres de conmutación por error y la característica Réplica de almacenamiento
Conecte todos los nodos al dominio y proporcione privilegios de administrador al usuario creado anteriormente.
Cambie el servidor DNS de la red virtual a la dirección IP privada del controlador de dominio.
En el ejemplo, el controlador de dominio az2azDC tiene una dirección IP privada (10.3.0.8). En las redes virtuales (az2az-Vnet y azcross-VNET), cambie el servidor DNS 10.3.0.8.
En el ejemplo, conecte todos los nodos a "contoso.com" y proporcione privilegios de administrador a "contosoadmin".
Inicie sesión como contosoadmin desde todos los nodos.
Cree los clústeres (SRAZC1, SRAZCross).
A continuación se muestran los comandos de PowerShell como ejemplo
New-Cluster -Name SRAZC1 -Node az2az1,az2az2 –StaticAddress 10.3.0.100
New-Cluster -Name SRAZCross -Node azcross1,azcross2 –StaticAddress 10.0.0.10
Habilite Espacios de almacenamiento directo.
Enable-clusterS2D
Nota
Cree un disco virtual y un volumen para cada clúster. Uno para los datos y otro para el registro.
Cree una SKU estándar interna Load Balancer para cada clúster (azlbr1, azlbazcross).
Establezca la dirección IP del clúster como dirección IP privada estática para el equilibrador de carga.
- azlbr1 => IP de front-end: 10.3.0.100 (elija una dirección IP sin usar de la subred de la red virtual (az2az-Vnet))
- Cree un grupo de back-end para cada equilibrador de carga. Agregue los nodos de clúster asociados.
- Cree el sondeo de estado: puerto 59999
- Cree una regla de equilibrio de carga: permita puertos de alta disponibilidad, con ip flotante habilitada.
Establezca la dirección IP del clúster como dirección IP privada estática para el equilibrador de carga.
- azlbazcross => IP de front-end: 10.0.0.10 (elija una dirección IP sin usar de la subred de la red virtual (az2az-Vnet))
- Cree un grupo de back-end para cada equilibrador de carga. Agregue los nodos de clúster asociados.
- Cree el sondeo de estado: puerto 59999
- Cree una regla de equilibrio de carga: permita puertos de alta disponibilidad, con ip flotante habilitada.
Cree una puerta de enlace de red virtual para la conectividad de red virtual a red virtual.
Cree la primera puerta de enlace de red virtual (az2az-VNetGateway) en el primer grupo de recursos (SR-AZ2AZ)
Tipo de puerta de enlace = VPN, y tipo de VPN = Basado en rutas
Cree la segunda puerta de enlace de red virtual (azcross-VNetGateway) en el segundo grupo de recursos (SR-AZCROSS)
Tipo de puerta de enlace = VPN, y tipo de VPN = Basado en rutas
Cree una conexión de red virtual a red virtual desde la primera puerta de enlace de red virtual a la segunda puerta de enlace de red virtual. Proporcione una clave compartida
Cree una conexión de red virtual a red virtual desde la segunda puerta de enlace de red virtual a la primera puerta de enlace de red virtual. Proporcione la misma clave compartida que se proporcionó en el paso anterior.
Abra el puerto 59999 (sondeo de estado) en cada nodo de clúster.
Ejecute el siguiente comando en cada nodo:
netsh advfirewall firewall add rule name=PROBEPORT dir=in protocol=tcp action=allow localport=59999 remoteip=any profile=any
Indique al clúster que escuche los mensajes de sondeo de estado en el puerto 59999 y que responda desde el nodo que posee actualmente este recurso.
Ejecútelo una vez desde cualquier nodo del clúster, y esto con cada clúster.
En nuestro ejemplo, asegúrese de cambiar el "ILBIP" según los valores de configuración. Ejecute el siguiente comando desde cualquier nodo az2az1/az2az2az2
$ClusterNetworkName = "Cluster Network 1" # Cluster network name (Use Get-ClusterNetwork on Windows Server 2012 or higher to find the name. And use Get-ClusterResource to find the IPResourceName). $IPResourceName = "Cluster IP Address" # IP Address cluster resource name. $ILBIP = "10.3.0.100" # IP Address in Internal Load Balancer (ILB) - The static IP address for the load balancer configured in the Azure portal. [int]$ProbePort = 59999 Get-ClusterResource $IPResourceName | Set-ClusterParameter -Multiple @{"Address"="$ILBIP";"ProbePort"=$ProbePort;"SubnetMask"="255.255.255.255";"Network"="$ClusterNetworkName";"ProbeFailureThreshold"=5;"EnableDhcp"=0}
Ejecute el siguiente comando desde cualquier nodo azcross1/azcross2
$ClusterNetworkName = "Cluster Network 1" # Cluster network name (Use Get-ClusterNetwork on Windows Server 2012 or higher to find the name. And use Get-ClusterResource to find the IPResourceName). $IPResourceName = "Cluster IP Address" # IP Address cluster resource name. $ILBIP = "10.0.0.10" # IP Address in Internal Load Balancer (ILB) - The static IP address for the load balancer configured in the Azure portal. [int]$ProbePort = 59999 Get-ClusterResource $IPResourceName | Set-ClusterParameter -Multiple @{"Address"="$ILBIP";"ProbePort"=$ProbePort;"SubnetMask"="255.255.255.255";"Network"="$ClusterNetworkName";"ProbeFailureThreshold"=5;"EnableDhcp"=0}
Asegúrese de que ambos clústeres pueden conectarse o comunicarse entre sí.
Use la característica "Conectar al clúster" en el administrador de clústeres de conmutación por error para conectarse al otro clúster o comprobar que otro clúster responde desde uno de los nodos del clúster actual.
Del ejemplo que hemos usado:
Get-Cluster -Name SRAZC1 (ran from azcross1)
Get-Cluster -Name SRAZCross (ran from az2az1)
Cree un testigo en la nube para ambos clústeres. Cree dos cuentas de almacenamiento (az2azcw,azcrosssa) en Azure, una para cada clúster de cada grupo de recursos (SR-AZ2AZ, SR-AZCROSS).
- Copie el nombre y la clave de la cuenta de almacenamiento desde las "claves de acceso"
- Cree el testigo en la nube desde el "administrador de clústeres de conmutación por error" y use el nombre y la clave de la cuenta anteriores para crearlo.
Ejecute las pruebas de validación de clústeres antes de pasar al siguiente paso
Inicie Windows PowerShell y use el cmdlet Test-SRTopology para determinar si satisface todos los requisitos de la Réplica de almacenamiento. Puede usar el cmdlet en modo de solo requisitos para una prueba rápida, o en modo de evaluación de rendimiento de ejecución más larga.
Configure la réplica de almacenamiento de clúster a clúster. Permita el acceso de un clúster a otro en ambas direcciones:
Como en nuestro ejemplo:
Grant-SRAccess -ComputerName az2az1 -Cluster SRAZCross
Si usa Windows Server 2016, ejecute también este comando:
Grant-SRAccess -ComputerName azcross1 -Cluster SRAZC1
Cree estos SR-Partnership para los dos clústeres:
- Para el clúster SRAZC1
- Ubicación del volumen:- c:\ClusterStorage\DataDisk1
- Ubicación del registro:- g:
- Para el clúster SRAZCross
- Ubicación del volumen:- c:\ClusterStorage\DataDiskCross
- Ubicación del registro:- g:
Ejecute el comando:
PowerShell
New-SRPartnership -SourceComputerName SRAZC1 -SourceRGName rg01 -SourceVolumeName c:\ClusterStorage\DataDisk1 -SourceLogVolumeName g: -DestinationComputerName SRAZCross -DestinationRGName rg02 -DestinationVolumeName c:\ClusterStorage\DataDiskCross -DestinationLogVolumeName g: -LogType Raw