Ajout de serveurs ou de lecteurs aux espaces de stockage direct

S’applique à : Windows Server 2022, Windows Server 2019, Windows Server 2016

Cette rubrique décrit comment ajouter des serveurs ou des lecteurs aux espaces de stockage direct.

Ajout de serveurs

L’ajout de serveurs, qui est souvent appelé montée en charge, permet d’ajouter de la capacité de stockage en vue d’améliorer les performances et de profiter d’une plus grande efficacité de stockage. Dans le cas d’un déploiement hyper-convergé, l’ajout de serveurs fournit également une plus grande quantité de ressources de calcul pour votre charge de travail.

Animation of adding a server to a four-node cluster

L’ajout de serveurs facilite la montée en charge des déploiements classiques. Deux étapes suffisent :

  1. Exécutez l’Assistant Validation de cluster en utilisant le composant logiciel enfichable du cluster de basculement ou en exécutant l’applet de commande Test-Cluster dans PowerShell en tant qu’administrateur. Spécifiez le <NouveauNœud> du nouveau serveur à ajouter.

    Test-Cluster -Node <Node>, <Node>, <Node>, <NewNode> -Include "Storage Spaces Direct", Inventory, Network, "System Configuration"
    

    Cette action confirme que le nouveau serveur exécute Windows Server 2016 Datacenter Edition, qu’il a rejoint le même domaine des services de domaine Active Directory que celui des serveurs existants, qu’il présente l’ensemble des rôles et fonctionnalités nécessaires et que sa mise en réseau est correctement configurée.

    Important

    Si vous réutilisez des lecteurs contenant d’anciennes données ou métadonnées dont vous n’avez plus besoin, effacez leur contenu à l’aide de la Gestion des disques ou de l’applet de commande Reset-PhysicalDisk. Si d’anciennes données ou métadonnées sont détectées, les lecteurs ne sont pas regroupés.

  2. Exécutez l’applet de commande suivante sur le cluster pour terminer l’ajout du serveur :

Add-ClusterNode -Name NewNode

Notes

Le regroupement automatique implique de ne disposer que d’un seul pool. Si vous avez contourné la configuration standard pour créer plusieurs pools, vous devez ajouter de nouveaux lecteurs à votre pool préféré à l’aide de Add-PhysicalDisk.

De deux à trois serveurs : déverrouiller la mise en miroir triple

adding a third server to a two-node cluster

Avec deux serveurs, vous pouvez uniquement créer des volumes en miroir double (en comparaison avec le système RAID-1 distribué). Avec trois serveurs, vous pouvez créer des volumes en miroir triple pour offrir une plus grande tolérance de panne. Nous recommandons d’utiliser la mise en miroir triple chaque fois que cela est possible.

Les volumes en miroir double ne peuvent pas être directement mis à niveau en volumes en miroir triple. À la place, vous pouvez créer un autre volume et y transférer vos données (en les copiant à l’aide de la fonctionnalité Réplica de stockage, par exemple), puis supprimer l’ancien volume.

Pour commencer à créer des volumes en miroir triple, vous avez plusieurs options possibles. Choisissez celle qui vous convient le mieux.

Option 1 :

Spécifiez PhysicalDiskRedundancy = 2 sur chaque nouveau volume que vous créez.

New-Volume -FriendlyName <Name> -FileSystem CSVFS_ReFS -StoragePoolFriendlyName S2D* -Size <Size> -PhysicalDiskRedundancy 2

Option 2 :

Définissez PhysicalDiskRedundancyDefault = 2 sur l’objet ResiliencySetting du regroupement appelé Mirror. Tous les nouveaux volumes en miroir utiliseront automatiquement une mise en miroir triple si vous ne spécifiez pas le type de mise en miroir.

Get-StoragePool S2D* | Get-ResiliencySetting -Name Mirror | Set-ResiliencySetting -PhysicalDiskRedundancyDefault 2

New-Volume -FriendlyName <Name> -FileSystem CSVFS_ReFS -StoragePoolFriendlyName S2D* -Size <Size>

Option 3

Définissez PhysicalDiskRedundancy = 2 sur le modèle StorageTier appelé Capacity, puis créez les volumes en référençant le niveau.

Set-StorageTier -FriendlyName Capacity -PhysicalDiskRedundancy 2

New-Volume -FriendlyName <Name> -FileSystem CSVFS_ReFS -StoragePoolFriendlyName S2D* -StorageTierFriendlyNames Capacity -StorageTierSizes <Size>

De trois à quatre serveurs : déverrouiller la double parité

adding a fourth server to a three-node cluster

Avec quatre serveurs, vous pouvez utiliser la double parité, également appelée codage d’effacement (en comparaison avec le système RAID-6 distribué). Cela offre la même tolérance de panne que la mise en miroir triple, mais avec une meilleure efficacité de stockage. Pour en savoir plus, consultez Tolérance de pannes et efficacité du stockage dans les espaces de stockage direct.

À partir d’un déploiement de plus petite taille, vous avez plusieurs options possibles pour commencer à créer des volumes à double parité. Choisissez celle qui vous convient le mieux.

Option 1 :

Spécifiez PhysicalDiskRedundancy = 2 et ResiliencySettingName = Parity sur chaque nouveau volume que vous créez.

New-Volume -FriendlyName <Name> -FileSystem CSVFS_ReFS -StoragePoolFriendlyName S2D* -Size <Size> -PhysicalDiskRedundancy 2 -ResiliencySettingName Parity

Option 2 :

Définissez PhysicalDiskRedundancy = 2 sur l’objet ResiliencySetting du regroupement appelé Parity. Tous les nouveaux volumes avec parité utiliseront automatiquement une double parité si vous ne spécifiez pas le type de parité.

Get-StoragePool S2D* | Get-ResiliencySetting -Name Parity | Set-ResiliencySetting -PhysicalDiskRedundancyDefault 2

New-Volume -FriendlyName <Name> -FileSystem CSVFS_ReFS -StoragePoolFriendlyName S2D* -Size <Size> -ResiliencySettingName Parity

Avec quatre serveurs, vous pouvez également commencer à utiliser la résilience accélérée par miroir, où un volume individuel utilise à la fois la mise en miroir et la parité.

Pour cela, vous devez mettre à jour vos modèles StorageTier pour avoir les mêmes niveaux Performance et Capacity que ceux qui auraient été créés si vous aviez d’abord exécuté Enable-ClusterS2D sur quatre serveurs. Plus précisément, ces deux niveaux doivent avoir le même MediaType que vos appareils de capacité (comme un disque dur ou SSD) et PhysicalDiskRedundancy = 2. Le niveau Performance doit être ResiliencySettingName = Mirror, et le niveau Capacity doit être ResiliencySettingName = Parity.

Option 3

Vous pouvez aussi simplement supprimer le modèle de niveau existant et créer les deux nouveaux. Cela n’affecte pas les volumes existants qui ont été créés préalablement en référençant le modèle de niveau, car il s’agit seulement d’un modèle.

Remove-StorageTier -FriendlyName Capacity

New-StorageTier -StoragePoolFriendlyName S2D* -MediaType HDD -PhysicalDiskRedundancy 2 -ResiliencySettingName Mirror -FriendlyName Performance
New-StorageTier -StoragePoolFriendlyName S2D* -MediaType HDD -PhysicalDiskRedundancy 2 -ResiliencySettingName Parity -FriendlyName Capacity

Et voilà ! Vous êtes maintenant prêt à créer des volumes de parité accélérés par miroir en référençant ces modèles de niveau.

Exemple

New-Volume -FriendlyName "Sir-Mix-A-Lot" -FileSystem CSVFS_ReFS -StoragePoolFriendlyName S2D* -StorageTierFriendlyNames Performance, Capacity -StorageTierSizes <Size, Size>

Au-delà de quatre serveurs : une plus grande efficacité de la parité

Cette montée en charge au-delà de quatre serveurs permet aux nouveaux volumes de bénéficier d’une efficacité d’encodage de parité encore plus grande. Par exemple, entre six et sept serveurs, l’efficacité passe de 50 % à 66,7 % dès qu’il devient possible d’utiliser Reed-Solomon 4 + 2 (plutôt que 2 + 2). Aucune étape que vous devez effectuer pour commencer à profiter de cette nouvelle efficacité ; l’encodage optimal est déterminé automatiquement chaque fois que vous créez un volume.

Toutefois, tous les volumes préexistants ne seront pas « convertis » en un nouvel encodage plus large. Une bonne raison à cela est que cela nécessiterait un calcul énorme affectant littéralement chaque octet du déploiement tout entier. Si vous souhaitez que les données préexistantes soient encodées de manière plus efficace, vous pouvez les faire migrer vers les nouveaux volumes.

Pour en savoir plus, consultez Tolérance de pannes et efficacité du stockage dans les espaces de stockage direct.

Ajout de serveurs lors de l’utilisation de la tolérance de panne de châssis ou de rack

Si votre déploiement utilise la tolérance de panne de châssis ou de rack, vous devez spécifier le châssis ou le rack des nouveaux serveurs avant de les ajouter au cluster. Cela indique aux espaces de stockage direct comment distribuer au mieux les données afin d’optimiser la tolérance de panne.

  1. Créez un domaine d’erreur temporaire pour le nœud en ouvrant une session PowerShell avec élévation de privilèges, puis en utilisant la commande suivante, où <NewNode> est le nom du nouveau nœud de cluster :

    New-ClusterFaultDomain -Type Node -Name <NewNode>
    
  2. Déplacez ce domaine d’erreur temporaire vers le châssis ou le rack où se trouve concrètement le nouveau serveur spécifié par <ParentName> :

    Set-ClusterFaultDomain -Name <NewNode> -Parent <ParentName>
    

    Pour plus d’informations, voir Reconnaissance des domaines d’erreur dans Windows Server 2016.

  3. Ajoutez le serveur au cluster, comme décrit dans Ajout de serveurs. Quand le nouveau serveur rejoint le cluster, il est automatiquement associé (par son nom) au domaine d’erreur de l’espace réservé.

Ajout de lecteurs

L’ajout de lecteurs, également appelé montée en puissance, permet d’ajouter de la capacité de stockage et également d’améliorer les performances. Si vous avez des emplacements disponibles, vous pouvez ajouter des lecteurs à chaque serveur pour augmenter votre capacité de stockage sans ajout de serveurs. Vous pouvez ajouter des lecteurs de cache ou de capacité de manière indépendante, à tout moment.

Important

Assurez-vous que tous les serveurs présentent la même configuration de stockage.

Animation showing adding drives to a sytem

Pour monter en puissance, connectez les lecteurs et vérifiez que Windows les détecte. Ils doivent apparaître dans la sortie de l’applet de commande Get-PhysicalDisk dans PowerShell et avoir leur propriété CanPool définie sur True. S’ils apparaissent avec la propriété CanPool = False, examinez la propriété CannotPoolReason pour en connaître la raison.

Get-PhysicalDisk | Select SerialNumber, CanPool, CannotPoolReason

En peu de temps, les lecteurs concernés sont automatiquement réclamés par les espaces de stockage direct, ajoutés au pool de stockage, et les volumes sont automatiquement redistribués uniformément entre tous les lecteurs. À ce stade, vous avez terminé et vous êtes prêt à étendre vos volumes ou à en créer des nouveaux.

Si les lecteurs n’apparaissent pas, recherchez manuellement les modifications matérielles. Cela est possible en utilisant Gestionnaire de périphériques, sous le menu Action. S’ils contiennent d’anciennes données ou métadonnées, envisagez de les reformater. Pour ce faire, utilisez la Gestion des disques ou l’applet de commande Reset-PhysicalDisk.

Notes

Le regroupement automatique implique de ne disposer que d’un seul pool. Si vous avez contourné la configuration standard pour créer plusieurs pools, vous devez ajouter de nouveaux lecteurs à votre pool préféré à l’aide de Add-PhysicalDisk.

Optimisation de l’utilisation des lecteurs après l’ajout de lecteurs ou de serveurs

Au fil du temps, à mesure que des lecteurs sont ajoutés ou supprimés, la distribution des données entre les lecteurs du pool peut devenir inégale. Dans certains cas, certains lecteurs peuvent arriver à saturation tandis que les autres lecteurs du pool ont une consommation bien plus faible.

Pour assurer une parité dans l’allocation des lecteurs du pool, les espaces de stockage direct optimisent automatiquement l’utilisation des lecteurs à la suite de l’ajout de lecteurs ou de serveurs au pool (il s’agit d’un processus manuel pour les systèmes d’espaces de stockage qui utilisent des boîtiers SAS partagés). L’optimisation commence 15 minutes après l’ajout d’un nouveau lecteur au pool. Sachant que l’optimisation du pool s’exécute en arrière-plan comme une opération de faible priorité, celle-ci peut prendre des heures voire des jours, surtout si vous utilisez des disques durs volumineux.

L’optimisation repose sur deux tâches, l’une appelée Optimisation et l’autre appelée Rééquilibrage, et vous pouvez contrôler leur progression avec la commande suivante :

Get-StorageJob

Vous pouvez optimiser manuellement un pool de stockage à l’aide de l’applet de commande Optimize-StoragePool. Voici un exemple :

Get-StoragePool <PoolName> | Optimize-StoragePool