Bonjour à tous,
Dans le cadre d'une nouvelle infrastructure pour notre ERP (pour information Dynamics AX), nous voulons implémenter de la haute disponibilité avec SQL Server 2014. La principale contrainte étant qu'à l'heure actuelle, nous avons plusieurs sites distants, tous se connectant sur un même site "principal" où se trouve l'ERP en question.
La première étude nous a amener à mettre en place un groupe de Haute disponibilité Always On. Pas de soucis, cela est devenu quelque chose de classique maintenant pour un environnement de production. Tous les sites continuerons à se connecter au site "principal" pour utiliser l'ERP.
Puis on nous a demandé, pour des raisons de sécurité, d'avoir au moins 1 nœud sur chaque site distant, donc la deuxième solution a été d'ajouter autant de nœud dans notre groupe de haute disponibilité que de site distant, jusqu'à la limite autorisé par SQL Server 2014. Les sites se connectant toujours au site "principal" pour utiliser l'ERP, une latence existera si le nœud principal du groupe de haute disponibilité n'est pas sur le site où se trouve l'ERP.
Et c'est là que se pose notre problématique.
Partant du principe où nous avons un nœud sur chaque site et que tous les sites se connectent au site "principal" pour utiliser l'ERP, en cas de coupure d'un lien réseau entre site, et qu'un site se retrouve isolé, il sera dans l'impossibilité de se connecter à l'ERP du site "principal".
Nous avons réfléchi à mettre en place des ERP de secours ou secondaire sur chaque site pour ce cas là et d'utiliser le nœud se trouvant sur ce site. Mais cela pose plusieurs problèmes voir même impossible à ma connaissance.
Le premier soucis est qu'un noeud se trouvant dans un groupe de haute disponibilité ne peut pas être interrogé directement s'il est secondaire (lecture ET écriture) et donc s'il se retrouve isolé du groupe de haute disponibilité en cas de coupure, que faire ? Faut-il le sortir du groupe de haute disponibilité pour pouvoir le connecter directement à l'ERP du site ? Est-ce que cela est possible sachant que le groupe de haute disponibilité n'est pas joignable ? Et si tenté que cela soit possible, comment gérer le moment où le lien revient, des transactions auront été traités sur le serveur isolé ainsi que dans le groupe de haute disponibilité donc impossible de reformer le groupe de haute disponibilité de départ.
Cette problématique me paraît compliqué mais il existe peut-être des solutions dont j'ignore l'existence, soit par le biais de mécanisme propre à SQL Server ou bien par des logiciels tiers ou encore via une architecture plus complète pouvant gérer cette problématique.
Partager