Un p’tit cluster NLB sur Windows Server 2008?

17 Nov
Mmm...

Cluster NLB?

Vous avez un service quelconque qui tourne sur une machine. Comment faire pour avoir un architecture en haute disponibilité? En ayant des machines en réseau permettant de répondre à une même demande en faisant du failover ou du loadbalancing.

Les deux systèmes permettent d’avoir une machine qui permet de répondre aux demandes en permanence (tout du moins, tant qu’il reste un serveur opérationnel…). Les différences principales entre les deux solutions sont:

  • failover: avec état. Partage de ressources entre les machines pour garder une consistance (sessions, stockages etc…). Plutôt adapté aux bases de données, aux serveurs de fichiers…
  • loadbalancing: sans état. La communication entre les machines permet de savoir si le service répond toujours et adapter la charge par exemple. Plutôt adapté aux webservices par exemple.

Des solutions sont donc possibles pour y répondre:

  • utiliser du matériel réseau de type BIG-IP, mais bon, c’est pas donné…
  • construire un cluster logiciel de serveurs

Pour ma part, je vais présenter une solution de Loadbalancing logiciel, pour par exemple, une garantie de services pour une publication de webservices.

Je vais donc présenter cette deuxième solutions, sous Windows Server 2008.

Le nécessaire:

Pour ce faire, il faut:

– un windows server 2008 enterprise edition,

– une carte réseau compatible avec mulicast et windows server 2008, plus généralement.

La cible: deux machines, un cluster.


Installation de NLB

Dans l’outil « Server Manager »,faire « Action » et « Add feature ». Cocher « Network load balancing ». Faire suivant, suivant…Et voilà…

N.B: à faire sur tous les serveurs faisant partis du cluster.

Création du cluster

Pour cela, suite à l’installation, il y a un outil graphique. Il peut être lancé par la commande « nlbmgr.exe » ou Administrative tools -> Network Load Balancing Manager

Il faut alors faire le faire le cluster: clic droit sur « network load balcing cluster » et « New cluster ».

Créer le cluster

Créer le cluster

Taper le hostname de la machine qui va être le noeud « racine ». Ici, « localhost » pour moi.

Selection du premier host

Selection du premier host

Choisir l’interface réseau qui va permettre de communiquer pour le NLB(j’avais monter deux cartes réseaux, c’est sur une VM: celle choisie correspond à la carte réseau permettant de communiquer avec la machine host). En passant, il nous signale que le DHCP va être desactivé (logique).

Paramétrer les adresses ip des machines faisant les noeuds du cluster avec la priorité:

Faire add et ajouter l'adresse ip

Faire add et ajouter l'adresse ip

Rajouter l’adresse qui va correspondre à notre cluster à proprement dit: le DNS devra faire la correspondance vers cet ip.

Adresse ip "virtuelle" du cluster

Adresse ip "virtuelle" du cluster

Choisir ensuite le mode de communication réseau pour chaque interface. En effet, le cluster, qui est une sorte d’interface réseau virtuelle, va avoir aussi une adresse MAC. Plusieurs modes sont disponibles. Cela  a de l’importance si vous utilisez une seule carte réseau par machine:

  • en unicast, les adresses MAC des interfaces(physiques) réseaux ne sont pas utilisées. Elles ont l’adresse MAC du cluster(la communication entre les machines n’est pas possible).
  • en multicast, l’adresse MAC du cluster est multicast et donc chaque serveur a sa propre adresse MAC mais aussi celle du cluster. Conseillé si une seule carte réseau.

Il faut utiliser le même mode sur les différentes interfaces.

Choix du mode de fonctionnement du cluster

Choix du mode de fonctionnement du cluster

L’étape suivante permet de régler les règles de gestion de balancing, à savoir, comment vont être dispatchées les requêtes dans le cluster. Le mode de filtrage permet de que la règle sur le port donné sera multiple(donc données envoyées sur tous les noeuds) avec une certaine affinité(aucune: n’importe quel noeud prend la requête, simple: tout va sur le même noeud sauf si crach, Network: mix – toutes les requêtes vont vers une seule machine en permanence), simple(tout sur ce noeud) et bloqué.

Par exemple, je configure une règle pour dispatcher dans tout mon NBL toute requête sur le port 80.

Choix de règle de port

Choix de règle de port

Et voila mon cluster paramétré:

Le cluster est opérationnel. Voilà!

Le cluster est opérationnel. Voilà!

Si votre serveur IIS est bien configuré, vous devriez voir à l’adresse du cluster(ici 192.168.56.104 et non 102) la page d’accueil de IIS.

Ajouter un noeud au cluster

Dans la console, faire un clic droit sur le cluster et faire « add host »

Renseigner l’adresse de l’autre machine(ayant lui aussi le NLB activé):

Elle apparait, magie!

Elle apparait, magie!

Faire la configuration, comme sur la machine précédente. Elle apparait dans la console:

Le cluster NLB de deux machines

Le cluster NLB de deux machines

Le test

Mon test se base donc sur IIS (j’ai coupé les firewalls pour me prendre la tête…).

  • Je vais sur l’adresse 192.168.56.104, j’ai la page d’accueil IIS
  • Je coupe la machine 192.168.56.102, je vais sur l’adresse 192.168.56.104, j’ai la page d’accueil IIS. Sur l’ip 192.168.56.103, j’ai plus rien…le cluster a bien balancé sur la machine 192.168.56.103

Conclusion

2 thoughts on “Un p’tit cluster NLB sur Windows Server 2008?

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *