Réplication du stockage de cluster à cluster
Le réplica de stockage peut répliquer des volumes entre des clusters, y compris la réplication de clusters à l’aide de espaces de stockage direct. La gestion et la configuration sont similaires à la réplication de serveur à serveur.
Vous allez configurer ces ordinateurs et ce stockage dans une configuration de cluster à cluster, où un seul cluster réplique son propre ensemble de stockage avec un autre cluster et son ensemble de stockage. Ces nœuds et leur stockage devraient se trouver sur des sites physiques distincts, même si cela n’est pas obligatoire.
Important
Dans ce test, quatre serveurs sont pris comme exemple. Vous pouvez utiliser autant de serveurs que Microsoft autorise dans chaque cluster, soit actuellement 8 pour un cluster d’espaces de stockage direct et 64 pour un cluster de stockage partagé.
Ce guide ne couvre pas la configuration de Storage Spaces Direct. Pour plus d’informations sur la configuration d’espaces de stockage direct, consultez la vue d’ensemble espaces de stockage direct.
Cette procédure pas à pas utilise l’environnement suivant comme exemple :
Deux serveurs membres, nommés SR-SRV01 et SR-SRV02, qui sont ensuite formés en un cluster nommé SR-SRVCLUSA.
Deux serveurs membres, nommés SR-SRV03 et SR-SRV04, qui sont ensuite formés en un cluster nommé SR-SRVCLUSA.
Une paire de sites logiques qui représentent deux centres de données différents, l’un étant nommé Redmond et l’autre Bellevue.
FIGURE 1 : Réplication de cluster à cluster
Prérequis
- Forêt de services de domaine Active Directory (exécution de Windows Server 2016 non nécessaire).
- 4 à 128 serveurs (deux clusters de 2 à 64 serveurs) exécutant Windows Server 2019 ou Windows Server 2016, Datacenter Edition. Si vous exécutez Windows Server 2019, vous pouvez utiliser l’édition Standard si vous ne pouvez répliquer qu’un seul volume d’une taille maximale de 2 To.
- Deux ensembles de stockage utilisant des JBOD SAS, un VHDX partagé, espaces de stockage direct ou une cible iSCSI. Le stockage doit contenir un mélange de disques durs et SSD. Nous allons rendre chaque ensemble de stockage disponible uniquement pour chacun des clusters, sans aucun accès partagé entre les clusters.
- Chaque ensemble de stockage doit autoriser la création d’au moins deux disques virtuels, un pour les données répliquées et un autre pour les journaux. Le stockage physique doit avoir la même taille de secteur sur tous les disques de données. Le stockage physique doit avoir la même taille de secteur sur tous les disques de journal.
- Au moins une connexion Ethernet/TCP sur chaque serveur pour la réplication synchrone, mais de préférence RDMA.
- Règles de pare-feu et de routeur appropriées pour autoriser le trafic bidirectionnel ICMP, SMB (port 445, ainsi que 5445 pour SMB Direct) et WS-MAN (port 5985) entre tous les nœuds.
- Un réseau entre les serveurs avec une bande passante suffisante pour contenir votre charge de travail d’écriture d’E/S et une latence moyenne de parcours circulaire égale à 5 ms pour la réplication synchrone. La réplication asynchrone ne présente pas de recommandation en matière de latence.
- Le stockage répliqué ne peut pas être situé sur le lecteur contenant le dossier de système d’exploitation Windows.
- Il existe des limitations importantes à prendre en compte pour la réplication des espaces de stockage direct. Veuillez consulter les informations détaillées ci-dessous.
La plupart de ces exigences peuvent être déterminées à l’aide de l’applet de commande Test-SRTopology
. Vous pouvez accéder à cet outil si vous installez un réplica de stockage ou les fonctionnalités des outils de gestion des réplicas de stockage sur au moins un serveur. Il n’est pas nécessaire de configurer de réplica de stockage pour utiliser cet outil, mais vous devez installer l’applet de commande. Vous trouverez plus d’informations dans la procédure ci-dessous.
Étape 1 : Configurer le système d’exploitation, les fonctionnalités, les rôles, le stockage et le réseau
Installez Windows Server sur les quatre nœuds de serveur avec le type d’installation (Expérience utilisateur) de Windows Server.
Ajoutez des informations réseau et joignez-les au domaine, puis redémarrez-les.
Important
À partir de ce stade, connectez-vous toujours en tant qu’utilisateur de domaine membre du groupe Administrateurs intégré sur tous les serveurs. Pensez toujours à élever vos invites CMD et Windows PowerShell à l’avenir lors de l’exécution sur une installation de serveur graphique ou sur un ordinateur Windows 10.
Connectez le premier ensemble de boîtiers de stockage JBOD, la cible iSCSI, le SAN FC ou le stockage sur disque fixe local (DAS) au serveur du site Redmond.
Connectez le deuxième ensemble de stockage au serveur du site Bellevue.
Installez si nécessaire les derniers pilotes et microprogrammes de stockage et de boîtier du fournisseur, les derniers pilotes du fournisseur HBA, le dernier microprogramme du fournisseur de BIOS/UEFI, les derniers pilotes réseau du fournisseur et les derniers pilotes de carte mère sur les quatre nœuds. Redémarrez les nœuds si besoin.
Notes
Consultez la documentation de votre fournisseur de matériel pour la configuration du stockage partagé et du matériel réseau.
Vérifiez que les paramètres BIOS/UEFI des serveurs permettent de hautes performances, par exemple avec la désactivation de C-State, la définition de la vitesse de QPI, l’activation de NUMA et la définition de la fréquence mémoire la plus élevée. Vérifiez que la gestion de l’alimentation dans Windows Server est définie pour favoriser de hautes performances. Redémarrez quand vous y êtes invité.
Configurez les rôles comme suit :
Méthode graphique
Exécutez ServerManager.exe et créez un groupe de serveurs, en ajoutant tous les nœuds de serveur.
Installez les rôles et fonctionnalités Serveur de fichiers et Réplica de stockage sur chacun des nœuds et redémarrez-les.
Méthode Windows PowerShell
Sur SR-SRV04 ou un ordinateur de gestion à distance, exécutez la commande suivante dans une console Windows PowerShell pour installer les fonctionnalités et rôles requis pour un cluster étendu sur les quatre nœuds et redémarrez-les :
$Servers = 'SR-SRV01','SR-SRV02','SR-SRV03','SR-SRV04' $Servers | ForEach { Install-WindowsFeature -ComputerName $_ -Name Storage-Replica,Failover-Clustering,FS-FileServer -IncludeManagementTools -restart }
Pour plus d’informations sur ces étapes, consultez Installer ou désinstaller des rôles, services de rôle ou fonctionnalités
Configurez le stockage comme suit :
Important
- Vous devez créer deux volumes sur chacun des boîtiers : un pour les données et l’autre pour les journaux.
- Les disques de données et de journaux doivent être initialisés en tant que GPT, et non MBR.
- Les deux volumes de données doivent être de la même taille.
- Les deux volumes de journaux doivent être de la même taille.
- Tous les disques de données répliqués doivent avoir la même taille de secteur.
- Tous les disques de journaux doivent avoir la même taille de secteur.
- Les volumes de journaux doivent utiliser un stockage flash, comme les disques SSD. Microsoft recommande que le stockage des journaux soit plus rapide que le stockage des données. Les volumes de journal ne doivent jamais être utilisés pour d’autres charges de travail.
- Les disques de données peuvent utiliser des disques HDD, des disques SSD ou une combinaison hiérarchisée et utiliser des espaces de parité ou en miroir, ou RAID 1 ou 10, ou RAID 5 ou RAID 50.
- Le journal doit avoir une taille par défaut de 8 Go, qui peut être supérieure ou inférieure selon la configuration requise.
- Lorsque vous utilisez les espaces de stockage direct (Storage Spaces Direct) avec un NVME ou un cache SSD, vous constatez une augmentation de latence plus importante que prévu lors de la configuration de la réplication du réplica de stockage entre clusters d’espaces de stockage direct. Le changement de latence est proportionnellement beaucoup plus élevé que lorsque vous utilisez NVME et SSD dans une configuration performances + capacité et sans niveau HDD, ni niveau capacité.
Ce problème se produit en raison des limitations architecturales du mécanisme de journalisation du réplica de stockage combinées à la latence extrêmement faible de NVME par rapport à un média plus lent. Lors de l’utilisation du cache des espaces de stockage direct, toutes les E/S des journaux du réplica de stockage, ainsi que toutes les E/S récentes des applications en lecture/écriture, se produisent dans le cache et jamais sur les niveaux de performances ou de capacité. Cela signifie que toutes les activités de stockage de réplica se produisent sur le même support de vitesse. Cette configuration n’est pas prise en charge et non recommandée (voir pour les https://aka.ms/srfaq recommandations de journalisation).
Lorsque vous utilisez espaces de stockage direct avec des disques durs, vous ne pouvez pas désactiver ou éviter le cache. En guise de solution de contournement, si vous utilisez uniquement SSD et NVME, vous pouvez configurer uniquement les niveaux de performances et de capacité. Si vous utilisez cette configuration et en plaçant les journaux SR sur le niveau de performance uniquement et les volumes de données qu’ils maintiennent étant sur le niveau de capacité uniquement, vous éviterez le problème de latence élevée décrit ci-dessus. La même chose pourrait être effectuée avec un mélange de disques SSD plus rapides et plus lents et sans NVME.
Évidemment, cette solution de contournement n’est pas idéale et certains clients peuvent ne pas être en mesure de l’utiliser. L’équipe de réplica de stockage travaille sur des optimisations et un mécanisme de journalisation mis à jour pour l’avenir, afin de réduire ces goulots d’étranglement artificiels qui se produisent. Il n’y a pas d’ETA pour cela, mais lorsqu’il est disponible pour les clients TAP à des fins de test, ce FAQ sera mis à jour.
- Pour les boîtiers JBOD :
Assurez-vous que chaque cluster peut voir uniquement les boîtiers de stockage de ce site et que les connexions SAS sont correctement configurées.
Approvisionnez le stockage à l’aide d’espaces de stockage en suivant les étapes 1 à 3 indiquées dans Déployer des espaces de stockage sur un serveur autonome à l’aide de Windows PowerShell ou du Gestionnaire de serveur.
- Pour le stockage d’une cible iSCSI :
Assurez-vous que chaque cluster peut voir uniquement les boîtiers de stockage de ce site. Vous devez utiliser plusieurs cartes réseau si vous utilisez iSCSI.
Configurez le stockage à l’aide de la documentation de votre fournisseur. Si vous utilisez le ciblage iSCSI basé sur Windows, voir Stockage par blocs de cibles iSCSI, procédure.
- Pour le stockage SAN Fibre Channel :
Assurez-vous que chaque cluster peut voir uniquement les boîtiers de stockage de ce site et que vous avez correctement segmenté les hôtes.
Configurez le stockage à l’aide de la documentation de votre fournisseur.
- Pour les espaces de stockage direct :
Assurez-vous que chaque cluster peut voir les boîtiers de stockage de ce site uniquement en déployant espaces de stockage direct.
Assurez-vous que les volumes de journaux SR seront toujours sur le stockage flash le plus rapide et les volumes de données sur un stockage de haute capacité plus lent.
Démarrez Windows PowerShell et utilisez l’applet de commande
Test-SRTopology
pour déterminer si toutes les conditions des réplicas de stockage sont satisfaites. Vous pouvez utiliser l’applet de commande dans un mode d’exigences uniquement pour un test rapide ainsi qu’un mode d’évaluation de performances à exécution longue. Par exemple,MD c:\temp Test-SRTopology -SourceComputerName SR-SRV01 -SourceVolumeName f: -SourceLogVolumeName g: -DestinationComputerName SR-SRV03 -DestinationVolumeName f: -DestinationLogVolumeName g: -DurationInMinutes 30 -ResultPath c:\temp
Important
Quand vous utilisez un serveur de test sans aucune écriture de charge d’E/S sur le volume source spécifié pendant la période d’évaluation, envisagez d’ajouter une charge de travail, ou le rapport généré ne sera pas utile. Vous devez effectuer des tests avec des charges de travail de type production afin de voir des nombres réels et les tailles de journal recommandées. Vous pouvez également simplement copier certains fichiers dans le volume source pendant le test ou télécharger et exécuter DISKSPD pour générer des E/S d’écriture. Par exemple, un échantillon avec une faible charge de travail d’E/S pendant cinq minutes pour le D: volume:
Diskspd.exe -c1g -d300 -W5 -C5 -b8k -t2 -o2 -r -w5 -h d:\test.dat
Examinez le rapport TestSrTopologyReport.html pour vous assurer que les exigences de réplica de stockage sont satisfaites.
Étape 2 : Configurer deux clusters de basculement de serveur de fichiers avec montée en puissance parallèle
Vous allez maintenant créer deux clusters de basculement normaux. Après la configuration, la validation et le test, vous allez les répliquer à l’aide d’un réplica de stockage. Vous pouvez effectuer toutes les étapes ci-dessous sur les nœuds de cluster directement ou à partir d’un ordinateur de gestion distant qui contient les outils d’administration serveur distant de Windows Server.
Méthode graphique
Exécutez cluadmin.msc sur un nœud dans chaque site.
Validez le cluster proposé et analysez les résultats pour vérifier que vous pouvez continuer. L’exemple ci-dessous contient SR-SRVCLUSA et SR-SRVCLUSB.
Créez deux clusters. Assurez-vous que les noms de cluster font 15 caractères ou moins.
Configurez un témoin de partage de fichiers ou un témoin cloud.
Notes
Windows Server inclut désormais une option de témoin cloud (Azure). Vous pouvez choisir cette option de quorum au lieu du témoin de partage de fichiers.
Avertissement
Pour plus d’informations sur la configuration du quorum, consultez la section Configuration du témoin dans Configurer et gérer le quorum. Pour plus d’informations sur l’applet de commande
Set-ClusterQuorum
, voir Set-ClusterQuorum.Ajoutez un disque dans le site Redmond sur le cluster CSV. Pour ce faire, faites un clic droit sur un disque source dans le nœud Disques de la section Stockage, puis cliquez sur Ajouter aux volumes partagés du cluster.
Créez les serveurs de fichiers avec montée en charge sur les deux clusters en suivant les instructions de Configurer un serveur de fichiers avec montée en charge
Méthode Windows PowerShell
Testez le cluster proposé et analysez les résultats pour vous assurer que vous pouvez continuer :
Test-Cluster SR-SRV01,SR-SRV02 Test-Cluster SR-SRV03,SR-SRV04
Créez des clusters (vous devez spécifier vos propres adresses IP statiques pour les clusters). Assurez-vous que chaque nom de cluster fait 15 caractères ou moins :
New-Cluster -Name SR-SRVCLUSA -Node SR-SRV01,SR-SRV02 -StaticAddress <your IP here> New-Cluster -Name SR-SRVCLUSB -Node SR-SRV03,SR-SRV04 -StaticAddress <your IP here>
Configurez un témoin de partage de fichiers ou un témoin cloud (Azure) dans chaque cluster qui pointe vers un partage hébergé sur le contrôleur de domaine ou un autre serveur indépendant. Par exemple :
Set-ClusterQuorum -FileShareWitness \\someserver\someshare
Notes
Windows Server inclut désormais une option de témoin cloud (Azure). Vous pouvez choisir cette option de quorum au lieu du témoin de partage de fichiers.
Avertissement
Pour plus d’informations sur la configuration du quorum, consultez la section Configuration du témoin dans Configurer et gérer le quorum. Pour plus d’informations sur l’applet de commande
Set-ClusterQuorum
, voir Set-ClusterQuorum.Créez les serveurs de fichiers avec montée en charge sur les deux clusters en suivant les instructions de Configurer un serveur de fichiers avec montée en charge
Étape 3 : Configurer la réplication de cluster à cluster à l’aide de Windows PowerShell
Vous allez maintenant configurer la réplication de cluster à cluster à l’aide de Windows PowerShell. Vous pouvez effectuer toutes les étapes ci-dessous sur les nœuds directement ou à partir d’un ordinateur de gestion distant qui contient les outils d’administration serveur distant de Windows Server
Accordez au premier cluster un accès complet à l’autre cluster en exécutant l’applet de commande Grant-SRAccess sur n’importe quel nœud du premier cluster, ou à distance. Outils d’administration de serveur distant pour Windows Server
Grant-SRAccess -ComputerName SR-SRV01 -Cluster SR-SRVCLUSB
Accordez au second cluster un accès complet à l’autre cluster en exécutant l’applet de commande Grant-SRAccess sur n’importe quel nœud du second cluster, ou à distance.
Grant-SRAccess -ComputerName SR-SRV03 -Cluster SR-SRVCLUSA
Configurez la réplication de cluster à cluster, en spécifiant les disques de la source et de la destination, les journaux de la source et de la destination, les noms de cluster de la source et de la destination, et la taille du journal. Vous pouvez exécuter cette commande localement sur le serveur ou à l’aide d’un ordinateur de gestion à distance.
New-SRPartnership -SourceComputerName SR-SRVCLUSA -SourceRGName rg01 -SourceVolumeName c:\ClusterStorage\Volume2 -SourceLogVolumeName f: -DestinationComputerName SR-SRVCLUSB -DestinationRGName rg02 -DestinationVolumeName c:\ClusterStorage\Volume2 -DestinationLogVolumeName f: -LogType Raw
Avertissement
La taille du journal par défaut est de 8 Go. En fonction des résultats de l’applet de commande Test-SRTopology, vous pouvez décider d’utiliser - LogSizeInBytes avec une valeur supérieure ou inférieure.
Pour obtenir l’état de réplication de la source et de la destination, utilisez Get-SRGroup et Get-SRPartnership, comme suit :
Get-SRGroup Get-SRPartnership (Get-SRGroup).replicas
Déterminez la progression de la réplication comme suit :
Sur le serveur source, exécutez la commande suivante et examinez les événements 5015, 5002, 5004, 1237, 5001 et 2200 :
Get-WinEvent -ProviderName Microsoft-Windows-StorageReplica -max 20
Sur le serveur de destination, exécutez la commande suivante pour afficher les événements de réplica de stockage qui indiquent la création du partenariat. Cet événement indique le nombre d’octets copiés, ainsi que la durée de l’opération de copie. Exemple :
Get-WinEvent -ProviderName Microsoft-Windows-StorageReplica | Where-Object {$_.ID -eq "1215"} | Format-List
Voici un exemple de sortie :
TimeCreated : 4/8/2016 4:12:37 PM ProviderName : Microsoft-Windows-StorageReplica Id : 1215 Message : Block copy completed for replica. ReplicationGroupName: rg02 ReplicationGroupId: {616F1E00-5A68-4447-830F-B0B0EFBD359C} ReplicaName: f:\ ReplicaId: {00000000-0000-0000-0000-000000000000} End LSN in bitmap: LogGeneration: {00000000-0000-0000-0000-000000000000} LogFileId: 0 CLSFLsn: 0xFFFFFFFF Number of Bytes Recovered: 68583161856 Elapsed Time (seconds): 117
Le groupe de serveurs de destination pour le réplica peut aussi indiquer le nombre d’octets restants à copier à tout moment, et peut être interrogé via PowerShell. Par exemple :
(Get-SRGroup).Replicas | Select-Object numofbytesremaining
Un exemple de progression (qui ne s’interrompt pas) :
while($true) { $v = (Get-SRGroup -Name "Replication 2").replicas | Select-Object numofbytesremaining [System.Console]::Write("Number of bytes remaining: {0}`n", $v.numofbytesremaining) Start-Sleep -s 5 }
Sur le serveur de destination dans le cluster de destination, exécutez la commande suivante et examinez les événements 5009, 1237, 5001, 5015, 5005 et 2200 pour comprendre la progression du traitement. Aucun avertissement ni aucune erreur ne doivent s’afficher durant cette séquence. Il y aura un grand nombre d’événements 1237 ; ils indiquent la progression.
Get-WinEvent -ProviderName Microsoft-Windows-StorageReplica | FL
Notes
Le disque de cluster de destination s’affiche toujours comme étant En ligne (aucun accès) lors de la réplication.
Étape 4 : Gérer la réplication
Vous gérez et opérez maintenant votre réplication cluster à cluster. Vous pouvez effectuer toutes les étapes ci-dessous sur les nœuds de cluster directement ou à partir d’un ordinateur de gestion distant qui contient les outils d’administration serveur distant de Windows Server.
Utilisez Get-ClusterGroup ou Gestionnaire du cluster de basculement pour déterminer la source et la destination de réplication et leur état actuel. Outils d’administration de serveur distant pour Windows Server
Pour mesurer les performances de la réplication, utilisez l’applet de commande Get-Counter sur les nœuds source et de destination. Les noms des compteurs sont :
\Statistiques d’E/S du réplica du système de stockage(*)\Nombre de suspensions du vidage
\Statistiques d’E/S du réplica du système de stockage(*)\Nombre d’E/S de vidage en attente
\Statistiques d’E/S du réplica du système de stockage(*)\Nombre de demandes associées à la dernière écriture de journal
\Statistiques d’E/S du réplica du système de stockage(*)\Longueur de file d’attente de vidage moyenne
\Statistiques d’E/S du réplica du système de stockage(*)\Longueur de file d’attente de vidage actuelle
\Statistiques d’E/S du réplica du système de stockage(*)\Nombre de demandes d’écriture d’application
\Statistiques d’E/S du réplica du système de stockage(*)\Nombre moyen de demandes associées par écriture de journal
\Statistiques d’E/S du réplica du système de stockage(*)\Moy. de latence d’écriture d’app
\Statistiques d’E/S du réplica du système de stockage(*)\Moy. de latence de lecture d’app
\Statistiques du réplica du système de stockage(*)\RPO cible
\Statistiques du réplica du système de stockage(*)\RPO actuel
\Statistiques du réplica du système de stockage(*)\Longueur de file d’attente de journal moyenne
\Statistiques du réplica du système de stockage(*)\Longueur de file d’attente de journal actuelle
\Statistiques du réplica du système de stockage(*)\Total des octets reçus
\Statistiques du réplica du système de stockage(*)\Total des octets envoyés
\Statistiques de réplica de stockage(*)\Latence d’envoi réseau moyenne
\Statistiques du réplica du système de stockage(*)\État de réplication
\Statistiques de réplica de stockage(*)\Latence d’aller-retour de message moyenne
\Statistiques du réplica du système de stockage(*)\Temps écoulé pour la dernière récupération
\Statistiques du réplica du système de stockage(*)\Nombre de transactions de récupération vidées
\Statistiques du réplica du système de stockage(*)\Nombre de transactions de récupération
\Statistiques du réplica du système de stockage(*)\ Nombre de transactions de réplication vidées
\Statistiques du réplica du système de stockage(*)\ Nombre de transactions de réplication
\Statistiques du réplica du système de stockage(*)\Numéro séquentiel dans le journal max.
\Statistiques du réplica du système de stockage(*)\Nombre de messages reçus
\Statistiques du réplica du système de stockage(*)\Nombre de messages envoyés
Pour plus d’informations sur les compteurs de performances dans Windows PowerShell, voir Get-Counter.
Pour déplacer la direction de réplication d’un site, utilisez l’applet de commande Set-SRPartnership.
Set-SRPartnership -NewSourceComputerName SR-SRVCLUSB -SourceRGName rg02 -DestinationComputerName SR-SRVCLUSA -DestinationRGName rg01
Notes
Windows Server empêche le basculement de rôle lorsque la synchronisation initiale est en cours, ce qui peut entraîner une perte de données si vous déclenchez un basculement avant la fin de la réplication initiale. Ne forcez pas les directions de basculement tant que la synchronisation initiale n’est pas terminée.
Vérifiez les journaux d’événements pour voir la direction du changement de réplication et la survenue du mode de récupération, puis rapprochez. Les E/S d’écriture peuvent alors écrire sur le stockage du nouveau serveur source. Modifier la direction de réplication bloquera les E/S d’écriture sur l’ordinateur source précédent.
Notes
Le disque de cluster de destination s’affiche toujours comme étant En ligne (aucun accès) lors de la réplication.
Pour modifier la taille du journal par défaut de 8 Go, utilisez Set-SRGroup sur les groupes de réplicas de stockage source et de destination.
Important
La taille du journal par défaut est de 8 Go. En fonction des résultats de l’applet de commande Test-SRTopology, vous pouvez décider d’utiliser -LogSizeInBytes avec une valeur supérieure ou inférieure.
Pour supprimer la réplication, utilisez Get-SRGroup, Get-SRPartnership, Remove-SRGroup, et Remove-SRPartnership dans chaque cluster.
Get-SRPartnership | Remove-SRPartnership Get-SRGroup | Remove-SRGroup
Notes
Le réplica de stockage démonte les volumes de destination. C'est la procédure normale.