Existe-t-il un moyen d'empêcher Storage Spaces Direct d'ajouter automatiquement des disques?


8

Vous avez un problème ici sur un cluster de basculement Windows Server (WSFC) 2016 hébergeant une instance de cluster de basculement SQL (FCI) utilisant des espaces de stockage directs (S2D). Sur chaque serveur, après la création initiale réussie, S2D a automatiquement ajouté un volume RAID autrement inutilisé au pool de stockage (bien que S2D ne puisse pas être créé sur des volumes RAID et insiste absolument sur les disques non traités). Maintenant, il est cassé, pour autant que je sache, exactement cela. Par conséquent, le disque virtuel est hors ligne, emportant tout le cluster avec lui. Il ne reviendra pas en ligne, en raison d'une ressource réseau de cluster manquante. Les disques en question peuvent être retirés mais pas supprimés. La réparation du disque virtuel ne s'exécute pas, le test de compatibilité de cluster prétend une configuration non valide.

Ceci est une nouvelle configuration. Je pouvais donc simplement supprimer le disque virtuel, le cluster ou même les serveurs et recommencer. Mais avant de devenir productif, je dois m'assurer que cela ne se reproduira plus jamais. Le système se tirant dans le genou virtuel à un arrêt brutal simplement en ajoutant inutilement et à tort un disque non pris en charge n'est pas une plate-forme que nous pouvons déployer. J'ai donc principalement besoin d'un moyen d'empêcher que cela se produise, plutôt que de le réparer maintenant. Je suppose qu'empêcher une configuration S2D d'attraper plus de disques qu'elle n'a été créée ferait l'affaire. Le coût d'une interaction potentiellement plus manuelle lors d'un remplacement de disque réel est négligeable pour le clusterf ... que nous avons ici. Même si j'ai parcouru la documentation jusqu'à présent, cependant, je ne trouve aucun moyen de contrôler cela. Sauf si je manque quelque chose, ni Set-StoragePool,

Toute aide ou indice serait grandement apprécié.

Voici juste plus de détails sur ce qui précède: Nous avons 2 machines serveurs HPE DL380 Gen9 doublement connectées les unes aux autres via Ethernet 10 Go compatible RDMA et via 1 Go au réseau client. Chacun dispose d'un contrôleur RAID HP ??? et un simple contrôleur HBA HP ??? (puisque S2D nécessite absolument et ne fonctionne que sur des disques non attachés directement connectés). La configuration de stockage comprend un OS-RAID sur le contrôleur RAID, un Files-RAID sur le contrôleur RAID et l'ensemble de disques directement connectés sur le HBA destiné au S2D.

J'ai configuré 2 éditions de centre de données Windows Servers 2016 sur les OS-RAID, installé la fonction WSFC, exécuté et réussi le test de compatibilité du cluster, y compris l'option S2D, créé le cluster sans stockage, ajouté un témoin de partage de fichiers (sur une machine distincte), activé S2D sur le pool de stockage, qui comprenait automatiquement tous les disques non traités, et au-dessus de ce pool a créé un disque virtuel du type miroir et utilisé NTFS comme système de fichiers, car il est censé être le FS de choix pour un SQL FCI installation.

J'ai ensuite installé l'édition standard de SQL 2016 en tant que FCI sur ce cluster, importé une base de données et testé tout cela. Tout était bien. La base de données était là et plus rapide que jamais. Le basculement forcé et automatique était un jeu d'enfant. Tout avait l'air bien.

Le lendemain, nous avons essayé d'utiliser le reste des fichiers RAID. La première chose a été de changer le niveau RAID car nous n'aimions pas la pré-configuration. Peu de temps après avoir supprimé le volume RAID préconfiguré et en avoir créé un nouveau (sur chaque serveur), nous avons détecté que le cluster était en panne. D'après ce que j'ai pu comprendre jusqu'à présent, le volume Files-RAID préconfiguré avait entre-temps été automatiquement ajouté au pool, et comme nous venons de le supprimer, il était maintenant absent du pool. Pendant que je vérifiais, j'ai trouvé le nouveau Files-RAID, tout en étant en cours de création, déjà montré comme lecteur physique du pool également. Le pool comprenait donc maintenant 2 volumes RAID sur chaque serveur, dont l'un n'existait même pas. Ces volumes (mais pas leurs disques) sont répertoriés par Get-PhysicalDisk avec les disques réellement physiques sur le HBA, pas sûr que ce soit normal.

J'ai pu retirer ces disques physiques (c'est-à-dire ceux qui sont en fait les volumes RAID), et ils sont maintenant marqués comme retirés. Mais ils sont toujours dans la piscine et je ne peux pas les supprimer tout de suite, essayer de le faire échoue. Un Repair-VirtualDisk devrait reconstruire le disque virtuel à un état correct uniquement sur les disques restants (je suis allé par ceci: https://social.technet.microsoft.com/Forums/windows/en-US/dbbf317b-80d2-4992- b5a9-20b83526a9c2 / stockage-espaces-supprimer-disque-physique? forum = winserver8gen ), mais ce travail est immédiatement terminé, "réussi" bien sûr, sans aucun effet.

La tentative de remise en ligne du disque virtuel échoue, indiquant qu'une ressource de cluster en réseau n'est pas disponible. Pour autant que je sache, cela ne pourrait faire référence qu'au pool de stockage (disponible), car les disques manquants ne sont pas des ressources de cluster. Le pool ne montre aucune erreur à corriger. L'exécution du test de compatibilité de cluster revendique une configuration non adaptée à un cluster.

Je ne trouve aucune pièce qui bougerait d'un pouce, le tout semble définitivement bloqué. Avez-vous des idées sur la façon d'empêcher un WSFC en cours d'exécution de se déclencher de cette façon?

Je n'ai rencontré aucun message d'erreur que j'ai trouvé particulièrement instructif, et je ne voulais pas bombarder encore plus la page en les publiant tous. Si quelqu'un veut avoir des détails spécifiques, faites le moi savoir.

Merci beaucoup pour votre temps, les gars!

Karsten

Mise à jour demandée par M. Raspberry entrez la description de l'image ici


3
Pourriez-vous nous partager une liste de vos lecteurs et leurs types de bus? Commande PoweShell: Get-PhysicalDisk -CanPool $true | Sort Model | ft FriendlyName, BusType, CanPool, OperationalStatus, HealthStatus, Usage, SizeDe plus, y a-t-il une chance que vous ayez commis une erreur lors de la reconfiguration de File-RAID en affectant un lecteur S2D à un nouveau RAID?
M. Raspberry

2
Quel est l'intérêt de S2D + SQL Server? Pourquoi voulez-vous dépenser de l'argent sur une machine virtuelle sous licence illimitée si vous ne prévoyez pas (ne pouvez pas en fait ...) en exécuter? SQL Server 2016 peut faire AlwaysOn Basic AG même avec la norme et vous pouvez économiser énormément d'argent en utilisant simplement Windows Server Standard 2016. docs.microsoft.com/en-us/sql/database-engine/…
BaronSamedi1958

@Monsieur. Framboise: j'ai mis à jour l'entrée avec la liste des disques physiques. Veuillez noter que j'ai omis "-CanPool $ true" car aucun n'est groupable.
Karsten Köpnick

3
@ KarstenKöpnick: Eh bien, je vous suggère de considérer SQL Server AlwaysOn FCI + StarWind Virtual SAN Free. Cette configuration ferait mieux le travail dans votre cas de cluster à 2 nœuds à moindre coût et est beaucoup plus facile à déployer et à gérer sans ces problèmes. starwindsoftware.com/…
M. Raspberry

1
"S2D était la voie à suivre, il semblait" Eh bien ... Bonne chance avec ça :)
BaronSamedi1958

Réponses:


5

Oui, vous pouvez désactiver le comportement de regroupement automatique. L'expérience n'est pas géniale, mais elle est certainement faisable et prise en charge. Le nom du paramètre et l'exemple de syntaxe de cmdlet se trouvent dans la section Paramètres de ce document public:

https://technet.microsoft.com/en-us/windows-server-docs/failover-clustering/health-service-overview

Exécutez essentiellement ceci en tant qu'administrateur:

Cluster Get-StorageSubSystem * | Set-StorageHealthSetting -Name "System.Storage.PhysicalDisk.AutoPool.Enabled" -Value False

J'espère que cela t'aides! - Cosmos (@cosmosdarwin), Microsoft PM


@CosmosDarvin: Merci! On dirait que ça pourrait faire l'affaire. J'ai besoin de lire un peu plus en profondeur et de comprendre les implications, puis je vais essayer et faire un rapport.
Karsten Köpnick

@CosmosDarvin: Merci beaucoup. J'ai finalement eu la chance d'approfondir le sujet pour découvrir les répercussions potentielles. Autant que je sache, avec cette option désactivée, la seule conséquence serait que les disques devront être ajoutés au pool manuellement avec une commande Add-PhysicalDisk. Ce qui est un bon compromis. Je n'ai trouvé aucune indication sur d'autres complications ou inconvénients, je vais donc essayer. - Il suffit de documenter la nécessité d'ajouter manuellement des disques en cas de remplacement. - Je rendrai compte des résultats.
Karsten Köpnick

Rapport des résultats: je voudrais ajouter que je n'ai pu rassembler aucune expérience de la vie réelle avec cette approche. Il a été décidé d'ajouter un boîtier de disque et de l'utiliser au lieu de S2D. Les remplacements de disques dans un RAID de cette taille sont une tâche fréquente, et la nécessité d'avoir à tout moment une personne possédant une expertise suffisante pour effectuer une intervention PowerShell, même documentée, pour un simple échange de disque a été considérée comme un arrêt de spectacle. En regardant les choses de cette façon, je suis totalement d'accord. Nous avons donc réinstallé en utilisant le boîtier et n'avons eu aucun problème depuis. - Merci à tous pour votre aide aimable et experte.
Karsten Köpnick

2

La solution de contournement que j'ai trouvée à ce problème est de changer le type de bus des volumes ou disques RAID en le changeant d'un des types pris en charge à un type non pris en charge.

Vous devrez identifier le pilote du contrôleur à partir du Gestionnaire de périphériques et après aller dans le registre et trouver le nom du pilote à l'emplacement ci-dessous.

HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ SmartPqi \ Parameters

Dans mon cas, j'ai changé la clé de registre qui correspond à SAS en RAID

«BusType» = 0x00000008 (RAID) (au lieu de 0x0000000a) (SAS)

redémarrer la machine

Après cette modification, vous pouvez avoir le pool de stockage dans le sous-système de stockage Windows au lieu des espaces de stockage en cluster

Soyez prudent si vous souhaitez appliquer ce type de solution de contournement car il ne s'agit pas d'une solution validée et peut exposer votre environnement de production à un risque élevé.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.