La stratégie de mise en miroir de server pose problème sur la réplication SQL Server, la réplication MySQL, la réplication de files, etc.

Je travaille comme développeur d'applications pour une entreprise avec laquelle j'ai travaillé pendant un certain time. L'entreprise aimerait refléter son server Windows existant (server A) vers un nouveau server (server B) dans le but principal de fournir une redondance où l'un ou l'autre server n'est pas disponible. Un équilibreur de charge matérielle gérera l'orientation du trafic vers l'un ou l'autre server. Il est prévu qu'un seul server reçoive du trafic à un moment donné. Sur chaque server, toutes les ressources requirejses pour exécuter toutes les applications sont sur la seule machine.

Les données nécessitant une synchronisation bidirectionnelle dans les deux machines sont les suivantes:

  • Plusieurs bases de données MySQL.
  • Deux bases de données SQL Server.
  • Code source pour une application .NET et un site Web ASP classique.
  • Serveur de messagerie électronique. Des dossiers.
  • Autres applications, routines de sauvegarde, etc.
  • Paramètres du server (si possible).

La société d'hébergement de co-implantation est à bord qui a des idées pour l'équilibrage de charge et la réplication, mais on m'a demandé de gérer cela.

J'ai des préoccupations générales à ce sujet, étant:

  1. Ce n'est pas la société la plus structurée que j'ai travaillé en process (expérience de contrôle de petite source dans l'entreprise, access gratuit au server en direct dont la configuration est en cours de modification régulière, pas de documentation, etc.). Cela peut nécessiter une discipline plus technique que celle actuellement présente.

  2. Aucune des applications ne connaît le cluster. La plupart des opérations de DB sont de nature non transactionnelle.

Mes questions spécifiques sont les suivantes:

  • Est-ce que deux servers échouent sur la configuration, comme je l'ai déjà décrit ici? Des avantages / inconvénients?

  • Quels sont les puits potentiels avec une réplication bidirectionnelle de données, où les deux servers de bases de données doivent être à la fois éditeurs et abonnés? Comment puis-je vérifier les risques liés à la concurrency des données?

  • Existe-t-il leurs outils pour la duplication des installations / parameters du logiciel server? (L'imagerie est probablement hors de question puisque les deux servers sont différents matériels et spécifications). J'imagine garder les parameters OS / les schémas db / le code source / le server de contrôle de la version / le server de messagerie etc etc etc pourraient être un gros frais généraux?

  • Compte tenu de mes préoccupations mentionnées précédemment, devrais-je conseiller de ralentir cela jusqu'à ce que nous puissions apporter une meilleure gestion des systèmes et résoudre les éventuelles faiblesses de l'application avant d'aller de l'avant ou pensez-vous que la nécessité serait le meilleur pilote de ces changements une fois le deuxième server est en jeu?

Désolé si c'est un peu de randonnée. Un aperçu de la façon de gérer ceci ou des commentaires selon les lignes de "vous devez laisser cela à quelqu'un qui sait ce qu'il fait" sont les bienvenus!

Cette question est trop grande; vous n'aurez probablement pas de réponses précises à ce sujet.

Pour avoir une réplication "multi-master", ce qui signifie que les deux servers répondent, vous devez résoudre ce problème séparément pour chaque protocole (SQL, SMB, HTTP, etc.). Un itinéraire beaucoup plus facile est d'utiliser uniquement un server à la fois dans un scénario actif-passif, mais vous parlez toujours d'une solution très complexe pour garantir une perte de données nulle sur toutes ces applications et protocoles.

La solution la plus simple, mais pas probable, est une machine virtuelle sur un cluster hôte de basculement, mais si vous avez un basculement non planifié, je crois que vous perdrez ce qui est en memory lorsque la machine virtuelle redémarre.

Les services de files Windows, IIS et SQL Server ont tous leurs différents niveaux de redondance, mais chacun est unique et devrait être évalué en fonction des besoins spécifiques de votre application.

Si c'était moi, je fonderais cette décision sur le time et l'importance des données. Si vous pouvez supporter le scénario actif-passif du cluster machine virtuelle, faites-le. Je pense essayer d'en faire un multi-maître avec toutes ces technologies différentes sur une seule boîte est un cauchemar. Je ne connais personne qui le fait. Ils / nous avons des servers SQL en train de faire une mise en miroir, et le courrier électronique fait leur propre chose sur des servers distincts, etc. Chaque application que vous ajoutez est sa propre "solution" pour une disponibilité élevée (pour moi).