web-dev-qa-db-fra.com

Groupes de disponibilité à l'aide de la cluster de multi-sous-réseau: les propriétaires préférés pour les rôles et les propriétaires possibles pour AG auditeur IPS

Nous utilisons un groupe de disponibilité SQL Server 2016 sur un cluster de basculement multi-sous-réseau Windows Server 2012 pour HA/DR. Il y a deux nœuds dans notre New York Datacenter (sous-réseau 10.7.x.x) et un nœud de notre Datacenter Colorado (sous-réseau 10.8.x.x). Le serveur Colorado est principalement destiné à la récupération de catastrophe ou à la maintenance étendue où NY est hors ligne. Nous définissons donc actuellement le quorum nodeweight/vote pour le nœud CO-SQL01 à zéro pour l'empêcher de prendre automatiquement la propriété du cluster ou de l'AG s'il existe des problèmes. .

Ma question est la suivante: Devrions-nous modifier les paramètres par défaut dans le gestionnaire de cluster de basculement, spécifiquement les propriétaires préférés du rôle AG et les propriétaires possibles des ressources IP de l'auditeur AG? Les valeurs par défaut qui sont utilisées semblent entrer en conflit avec nos objectifs de haute disponibilité à l'aide des deux nœuds de NY et uniquement à l'aide du nœud de coordonnée pour la récupération après sinistre.

Voici les paramètres par défaut des propriétaires préférés de notre multi-sous-réseau AG: Default settings for Preferred Owners on Multi-Subnet FoC AG

Devrions-nous ajouter un chèque à côté de NY-SQL02 et le déplacer ci-dessus CO-SQL01 afin qu'il soit préféré? Qu'en est-il d'autres rôles, pouvons-nous définir les propriétaires préférés des ressources de cluster de base (comme le nom du cluster)?

Et voici les paramètres par défaut pour les ressources IP SQL-Stackoverflow_ag: Default settings for the Possible Owners of the AG Listener IP resource

Devrions-nous supprimer les cochons à côté des serveurs dans un sous-réseau différent de cette adresse IP?

Cette question s'est produite sur une récente Heures de burea , mais c'est quelque chose que nous pourrions aider à prévenir les temps d'arrêt lorsque notre cluster a des problèmes. Nous avons récemment eu une panne de 5 minutes lorsque nous avons remplacé notre matériel de serveur CO-SQL01 et il a été ajouté au cluster de basculement (mais pas à AG) sans supprimer son vote. Le serveur CO-SQL01 a ensuite connu un crash dur (nous pensons qu'il s'agissait d'un bogue de pilote NVME/PCIe sous une charge importante) et a réussi à supporter le AG avec elle (nous pensons que CO-SQL01 a pris la possession des ressources de base du cluster à son arrivée. retour en ligne).

Pour être honnête, nous avons eu un certain nombre de problèmes inattendus avec l'utilisation de groupes de disponibilités de cluster de basculement multi-sous-réseau, et il semble que les propriétaires de rôle préférés par défaut et les propriétaires de ressources possibles puissent être incorrects ou du moins optimaux pour notre scénario. Nous envisageons actuellement d'utiliser les nouveaux groupes de disponibilité distribués Fonction de SQL Server 2016 pour diviser notre multi-sous-réseau AG en à deux agents de sous-réseau unique (un pour chaque datacenter) comme moyen d'empêcher ces problèmes dans l'avenir. Nous pensons également que cela nous permettra de Mettre à niveau le système d'exploitation du cluster avec des temps d'arrêt minimes .

7
Greg Bray

Ma question est la suivante: Devrions-nous modifier les paramètres par défaut dans le gestionnaire de cluster de basculement, spécifiquement les propriétaires préférés du rôle AG et les propriétaires possibles des ressources IP de l'auditeur AG?

Ne jamais vérifier ou décocher les propriétaires préférés ou possibles pour les ressources AG. Lorsque vous utilisez SQL Server 2016, la liste des propriétaires préférées peut être déplacé UP et bas pour contrôler les cibles de basculement préférés étant donné que les cibles de basculement multiples changent mais ne pas Vérifiez ou décochez des cases. , jamais, avec des groupes de disponibilité. Point final.

Si vous vérifiez et décochez des objets comme celui-ci, vous êtes AG ne va pas fonctionner correctement. Lorsque j'enseigne la classe de groupe de disponibilité, je montre toujours comment cela fonctionne, pourquoi cela fonctionne et pourquoi nous ne voulons jamais faire cela (alerte spoiler: le AG échouera probablement, dur).

Permettez-moi d'expliquer cela, cependant, de le faire un peu plus clair.

Propriétaires préférés et possibles

Ces valeurs sont définies par SQL Server en fonction des paramètres du groupe de disponibilité. Le cluster a sa propre copie des métadonnées de la manière dont les choses devraient fonctionner et SQL Server aussi a une copie de la façon dont il croit que les choses devraient fonctionner.

C'est une bonne la plupart du temps, lorsque personne ne change rien et que SQL Server et le cluster continuent de bourdonner.

Toutefois, SQL Server sait ce qu'il croit devrait et ne devrait pas être propriétaire des ressources basées sur les paramètres AG et le reflète en appelant les API de cluster pour définir le comportement attendu. Vous verrez cela reflété dans le HADR_CLUSAPI_CALL Type d'attente.

Trois répliques asynchrones

Regardons SQL Server avec une configuration AG afin qu'il y ait trois répliques de validation asynchronisées. Si nous faisons cela, notre ressource AG et ROOLE devraient être considérées comme telles: enter image description hereenter image description here

N'oubliez pas que les répliques de validation d'Async ne peuvent pas avoir de basculement automatique. Ainsi, cela a du sens; Notre rôle actuel est le seul propriétaire possible et préféré. Étant donné que SQL Server est configuré de manière à ce que le seul moyen d'échouer est en le forçant, nous ne voulons pas que d'autres répliques récupèrent et commencent à courir avec cela, appliquant ainsi cela au niveau de la clustering.

Deux bascules manuels synchrones, une asynchronisation - démo

Les résultats seront les mêmes que les trois démo Async. Pourquoi?

C'est la même explication que les trois répliques asynchrones, nous n'avons pas encore de basculement automatique, donc nous ne voulons pas que quelqu'un AUTOMATIQUEMENT Prendre le dessus. Ainsi, les paramètres sont les mêmes.

Deux bascules automatiques asynchrones, une asynchronisation - démo

Voici où les choses changent et deviennent intéressantes! Puisque nous introduisons maintenant un basculement automatique - et c'est l'un des rôles du WSFC (avec la vérification de la santé, la distribution de métadonnées, etc.) - nous allons veux avoir préféré des propriétaires préférés et possibles .

enter image description hereenter image description here

Autres réponses

Nous avons récemment eu une panne de 5 minutes lorsque nous avons remplacé notre matériel de serveur Co-SQL01 ...

Vous avez spécifiquement supprimé le vote de CO et que vous n'aviez que 1 autre électeur, puis a eu un accident inattendu. On dirait que cela fonctionnait comme il se doit.

Pour être honnête, nous avons eu un certain nombre de problèmes inattendus avec l'utilisation de groupes de disponibilités de cluster de basculement multi-sous-réseau, et il semble que les propriétaires de rôle préférés par défaut et les propriétaires de ressources possibles puissent être incorrects ou du moins optimaux pour notre scénario.

Je vais être brutalement honnête ici. Les groupes de disponibilité ne sont pas une balle d'argent, fixez tout HA & DR. Il semble que la technologie soit utilisée, mais on sait trop sur la façon dont cela fonctionne ou pourquoi cela fait ces choses à la fois au niveau AG ou à un niveau de la WSFC, donc je suis tout à fait d'accord, cela peut ne pas être configuré correctement ... cependant, Il fonctionne comme étant configuré - je ne peux pas faute au cluster pour faire ce qu'il est censé faire.

il regarde actuellement l'utilisation des nouveaux groupes de disponibilité distribués dans SQL Server 2016 pour scinder notre multi-sous-réseau AG en à deux agents de sous-réseau unique (un pour chaque centre de données) afin d'éviter ces problèmes à l'avenir.

Si vous avez ces nombreux problèmes avec des groupes de disponibilité, je voudrais non Foray dans des groupes de disponibilité distribués vous-même. Il peut ne pas correspondre ou non à vos cas d'utilisation - mais si j'étais vous, j'apporterais une personne qui aide à archiver ces types de solutions et que vos cas d'utilisation sont prêts. Sinon, vous allez faire un autre message comme celui-ci.

Nous pensons également que cela nous permettra de mettre à niveau le système d'exploitation au cluster avec un minimum de temps d'arrêt.

L'un des cas d'utilisation pour les groupes de disponibilité distribués est destiné aux migrations de grappes croisées extrêmement basse, vous êtes correct. Si vous utilisez Windows Server 2012R2, vous pouvez faire Mises à niveau du cluster de roulement [non disponible en 2012, doit être R2] sans avoir à faire des groupes de disponibilité distribués.

Et voici les paramètres par défaut pour les ressources IP SQL-Stackoverflow_AG

Oui, ne les touchez pas :) Laissez-les comme ça.

7
Sean Gallardy