Question Haute disponibilité avec 2 serveurs?


Est-il possible d'avoir une configuration haute disponibilité avec 2 serveurs?

Vous exécutez Windows Web Server 2008 et MSSQL Web Edition (car je sais que Express n’est pas pris en charge)?

En arriver au point où notre serveur dédié doit être progressivement étendu et passer à un deuxième serveur est déjà plus du double du coût, car il est nécessaire d'utiliser Web Edition plutôt que Express (la base de données ne représente que 500 Mo).


5
2018-04-05 23:02


origine


HA n'est-il pas orthogonal à la répartition de charge et à la mise à l'échelle? - svrist


Réponses:


Il n'y a pas de nombre magique de serveurs qui englobe la "haute disponibilité". Si vos besoins sont modestes, vous pouvez le faire avec une seule boîte, bien que (évidemment) dès que vous devez le redémarrer, voilà votre 4 9.

Tant que votre site n'est pas trop utilisé, je dirais que deux machines (décentes) avec une base de données mise en miroir (qui est supportée par MSSQL Web, comme vous le savez), et NLB ça devrait aller. Encore une fois cependant, c'est une question très générale. Je gère environ 50 sites ÉNORMES sur deux «serveurs», mais les serveurs sont très reconnaissants envers les serveurs lames Sun.

Mon souci ne concernerait pas les machines (je suppose que vous exécuteriez à la fois IIS et MSSQL sur chaque machine, car il n’y avait pas d’autre moyen d’essayer autrement de tenter une disponibilité élevée), mais plutôt ce que vous avez entre l'Internet. Avoir IIS exposé à Internet n’est pas le problème qu’il était jadis, mais IIS et MSSQL? Je ne le ferais pas si je devais être conforme aux normes PCI ou HIPPA.

@Tom: Ceci est votre version standard de "défense en profondeur". Presque tout le monde suggérera la séparation des serveurs Web et des serveurs de base de données, et en plus de cela, vous devriez imposer de lourdes restrictions. entre eux aussi ... Idéalement, il ne devrait y avoir rien sur votre serveur Web que vous ne pouvez pas simplement restaurer à partir d'une sauvegarde ... Votre code est reflété sur votre ordinateur de développement, il suffit donc de le sauvegarder sur le site Web et tout va bien. . Mais les serveurs de base de données changent tout le temps et votre configuration doit en tenir compte.

Si vous êtes limité à deux machines, vous devrez installer Web et une base de données sur les deux et faire de votre mieux pour les renforcer. Je verrouillerais complètement les bases de données afin qu'elles ne soient accessibles que par les autres et le serveur Web local.

NLB remplace un équilibreur de charge matérielle et doit basculer automatiquement. Évidemment, YMMV: les solutions matérielles ont beaucoup à offrir, mais le prix est beaucoup plus élevé. Si vous ne vous attendez pas à un trafic considérable, NLB devrait fonctionner normalement, mais les équilibreurs de charge matérielle ont tendance à avoir une protection supérieure contre des attaques de type DDoS. Encore une fois, tout dépend de ce dont vous aurez besoin.

@Tom: 1 IP c'est bien. NLB utilise une adresse IP "virtuelle" qui résout toutes les machines locales. Lorsque vous activez NLB, accédez aux propriétés de la connexion. Un onglet "Équilibrage de la charge réseau" s'affiche. Cet onglet a besoin de l'adresse qui s'applique à l'ensemble du cluster (votre adresse IP statique). Ensuite, vous accédez à l'onglet TCP / IP normal et configurez l'adresse IP locale, qui correspond à l'adresse spécifique de la machine.


5
2018-04-06 00:26



Merci pour la réponse, c'est vraiment apprécié! Donc, proposez-vous d’avoir un serveur uniquement pour la base de données sur un réseau local privé afin de ne pas le placer sur le Web? Pour éviter la redondance, nous aurions besoin de deux serveurs Web et de deux serveurs de base de données. Sans équilibreur de charge matérielle, comment l'autre serveur prendrait-il le relais si l'autre serveur meurt?
@Tom R: Comme @Satanicpuppy l'a dit, Windows NLB gère le basculement automatique de vos serveurs de niveau Web. Si vous effectuez une mise en miroir SQL Server, vous devrez créer des scripts avec seulement 2 serveurs. Si vous ajoutez un troisième serveur "témoin", un basculement automatique peut être effectué. - MattB
Merci, mais disons qu'il n'y a qu'une seule adresse IP dédiée pour le site Web. Les deux serveurs récupèrent-ils cette adresse IP? J'avais pensé qu'une seule adresse IP ne peut aller qu'à une seule machine à la fois.
Merci beaucoup pour votre aide :) Je vais essayer de tester toutes ces choses avec des VM avant de les déployer dans un proche avenir.
Je viens de me rendre compte qu'avec NLB, c'est un outil de couche réseau, donc si les services IIS ne fonctionnaient pas correctement, les demandes iraient quand même là-bas. Cette fonctionnalité est-elle similaire à la fonctionnalité Ferme Web dans IIS7?


Habituellement, une installation HA classique nécessite 3 machines: deux backend serveurs (généralement un "principal" et un "backup", le "backup" reflétant le "primaire") puis un troisième routeur machine, qui peut prendre plusieurs formes: il s’agit parfois d’un proxy, parfois d’un routeur, parfois d’un serveur Web.

Cependant, il doit exister un ordinateur détectant la défaillance du serveur principal et garantissant que le trafic est bien dirigé vers le serveur de sauvegarde. Il devrait généralement s'agir d'un basculement à sens unique, avec un Manuel réinitialiser à partir de la sauvegarde sur le principal. La raison en est que si quelque chose a pris le mode principal hors ligne, vous devez vous assurer que le problème sous-jacent est résolu; et dans l'intervalle, les données sur le principal ne seront plus synchronisées avec le secondaire, et vous devez refléter ces modifications dans le principal avant de réinitialiser.


1
2018-04-06 05:40



Merci cependant cette troisième machine de routeur pourrait échouer, alors qu'est-ce qui se passe?
@Tom - si vous avez réellement besoin de HA, vous faites tout par paires (au moins). Votre équipement réseau, y compris les routeurs, les pare-feu, les équilibreurs de charge, devra tous être configuré en haute disponibilité. - mfinni