13
1 Mise en place d’un cluster NLB (v1.12) Tutorial conçu et rédigé par Michel de CREVOISIER – Avril 2013 SOURCES Présentation du NLB : http://technet.microsoft.com/en-us/library/bb742455.aspx Installation : http://technet.microsoft.com/en-us/library/cc770689%28v=ws.10%29.aspx

Mise en place d'un cluster NLB (tuto de A à Z)

Embed Size (px)

DESCRIPTION

Création d'un cluser NLB pour fournir un service hautement disponible

Citation preview

Page 1: Mise en place d'un cluster NLB (tuto de A à Z)

1

Mise en place d’un

cluster NLB (v1.12)

Tutorial conçu et rédigé par Michel de CREVOISIER – Avril 2013

SOURCES Présentation du NLB :

http://technet.microsoft.com/en-us/library/bb742455.aspx Installation :

http://technet.microsoft.com/en-us/library/cc770689%28v=ws.10%29.aspx

Page 2: Mise en place d'un cluster NLB (tuto de A à Z)

2

INDEX

SOURCES .............................................................................................................................................................. 1

INDEX ................................................................................................................................................................... 2

Préambule ........................................................................................................................................................... 3

1. Présentation ................................................................................................................................................ 4

1.1 Mode Unicast ...................................................................................................................................... 4

1.2 Mode Multicast ................................................................................................................................... 5

2. Prérequis ..................................................................................................................................................... 5

2.1 Mode Unicast ...................................................................................................................................... 5

2.2 Mode Multicast ................................................................................................................................... 6

3. Installation .................................................................................................................................................. 7

3.1 Ajout de la fonctionnalité NLB ............................................................................................................. 7

3.2 Pare-feu ............................................................................................................................................... 7

4. Configuration .............................................................................................................................................. 8

4.1 Configuration via PowerShell .............................................................................................................. 8

4.2 Configuration via GUI .......................................................................................................................... 9

4.3 Mode Multicast ................................................................................................................................. 11

5. Notes ......................................................................................................................................................... 12

5.1 Mode « Core » ................................................................................................................................... 12

5.2 Console distante ................................................................................................................................ 12

Conclusion ......................................................................................................................................................... 13

Page 3: Mise en place d'un cluster NLB (tuto de A à Z)

3

Préambule

A la suite vous allez découvrir comment mettre en place une ferme de serveurs NLB. Notez toutefois que seules les parties mises en place et configuration seront présentées. Pour ce tuto, j’utiliserai 3 serveurs membres du même domaine :

SRV-AD: serveur Active Directory et DNS (installation non détaillée)

SRV-WEB01 (configuration détaillée)

SRV-WEB02 (configuration détaillée)

A titre d’information, le tableau ci-dessous compare les différentes solutions existantes permettant de fournir une solution de répartition de charge :

Round Robin (DNS) Matériel (NAT) Dispatch NLB

Facilité d'installation Oui Oui Oui

Matériel nécessaire Serveur(s) DNS Routeur NAT/PAT Min. 2 serveurs

Point de cassure unique Oui Oui Oui Non

Montée en charge facilitée Oui Limitée Limitée Oui

Haute performance Oui Limitée Limitée Oui

Tolérance de panne Non Limitée Limitée Oui

Page 4: Mise en place d'un cluster NLB (tuto de A à Z)

4

1. Présentation Le NLB (Network Load Balancing) est une fonctionnalité propre à Windows Server. Elle permet de disposer d’une ferme de serveurs hautement disponibles au travers d’un système de répartition de charge avancé. Plus concrètement, lorsque ce service est configuré, une IP virtuelle est émulée par l’ensemble des nœuds (ou serveurs) du cluster. De cette façon, même si un serveur venait à s’arrêter, le cluster continuerait d’exister et le service resterait ininterrompu. Cette solution présente toutefois quelques inconvénients mineurs. Tout d’abord les performances globales ne dépendent pas (ou très peu) du matériel utilisé sinon de la capacité de votre réseau à acheminer le trafic. Enfin, vous ne pouvez disposer « que » de 32 nœuds au sein du cluster et l’ensemble de ces nœuds doivent être situés dans le même sous-réseau. Il également important de noter qu’il existe deux modes de fonctionnement du NLB. Aussi, lors des étapes de conception de votre maquette, assurez-vous de bien avoir assimilé les particularités de ces deux modes présentés à la suite.

1.1 Mode Unicast En mode unicast, l’adresse MAC de chaque serveur est remplacée par une adresse MAC commune, définie en tant qu’adresse du cluster. Dès lors, l’ensemble des paquets seront envoyés à chacun des nœuds étant donné qu’ils disposent de la même adresse MAC. Toutefois cette configuration présente un inconvénient majeur. En effet, il n’est pas possible d’avoir plusieurs ports sur le switch déclarant la même adresse MAC. Pour pallier ce problème, une fausse adresse MAC (« bogus address ») est créée pour chacun des nœuds du cluster. Cette « bogus adresse » est générée selon l’ID du nœud. Par exemple l’adresse 00-01-ac-10-00-01 correspondra à l’hôte n°1 et l’adresse 00-02-ac-10-00-01 à l’hôte n°2. Toutefois, si une seule adresse MAC est enregistrée sur chacun des switchs, les paquets ne pourront être transmis à l’ensemble des nœuds du cluster. Pour cela, le switch va alors émettre des « broadcast ARP ». Ainsi, quand le routeur effectuera une requête ARP pour connaitre l’adresse de l’IP virtuelle, un « ARP header » avec l’adresse MAC du cluster sera émis au lieu d’une « bogus address ». Pour rappel, un client utilise l’adresse MAC située au niveau ARP (niveau 3 du modèle OSI) et non Ethernet (niveau 2). Inversement pour le switch qui utilise l’adresse MAC du niveau 2 et non celle du niveau 3. Lorsqu’un client envoie une requête vers le cluster, le switch va rechercher dans sa table CAM l’adresse du cluster qui n’est bien évidemment pas enregistrée. Dès lors, le switch va « flooder » l’ensemble de ses ports pour savoir à qui est assignée cette adresse. Cette technique peut s’avérer fonctionnelle, mais va générer une quantité de trafic importante. La solution pour éviter cela est de placer en frontal du switch (où sont connectés les nœuds du cluster) un hub. De cette façon, le hub enregistrera les adresses MAC des nœuds tout en acheminant l’ensemble des requêtes vers tous ses ports. Conclusion : comme vous avez pu le constater, ce mode présente une certaine complexité et requiert des équipements supplémentaires au détriment de possibles baisses des performances en

raison du « flooding » et du « hub » (détails point 2.1). Notez par ailleurs que ce mode n’est pas

supporté sur le Nexus 1000v Switch (sauf v4.2(1) SV1 (5.1) et ultérieur).

Page 5: Mise en place d'un cluster NLB (tuto de A à Z)

5

1.2 Mode Multicast Le mode multicast est une alternative au mode unicast. Ce choix implique d’une part que les membres du cluster répondent aux requêtes ARP via une adresse MAC « multicast » et d’autres parts qu’ils envoient des messages « IGMP membership ». Si l’« IGMP snooping » est activé sur le switch, toutes les trames de ce type seront analysées. De ce fait, quand un client enverra un paquet à destination de l’adresse MAC du cluster, il sera transmis vers l’ensemble des ports membre du cluster. Il n’y donc en ici aucun problème de « flooding ». Toutefois, un problème survient avec ce mode. En effet, l’adresse virtuelle sera inaccessible depuis un sous-réseau différent étant donné que les périphériques Cisco ne supportent pas les réponses ARP pour une adresse IP unicast contenant une adresse MAC multicast. De ce fait, un message « ICMP unreachable » sera envoyé au client. Solution : pour résoudre ce problème, il convient de créer manuellement une entrée ARP associée

à l’adresse MAC multicast (détails point 2.2)

2. Prérequis

En corrélation avec votre architecture et les points 1.1 et 1.2, effectuez les étapes de « pré-

configuration » décrites à la suite.

2.1 Mode Unicast

2.1.1 Environnement physique Vous aurez besoin deux cartes réseaux pour chacun des nœuds du cluster :

Une carte réseau pour l’administration de votre serveur

Une carte réseau dédiée pour le NLB

2.1.2 Environnement virtuel Pour commencer, notez que ce mode n’est pas recommandé en environnement virtuel. Par ailleurs vous aurez besoin deux cartes réseaux pour chacun des nœuds du cluster :

Une carte réseau virtuelle pour l’administration de votre serveur

Une carte réseau virtuelle dédiée pour le NLB Effectuez les paramétrages suivants au niveau de votre hyperviseur :

Désactivez les paquets RARP (au choix - source) o Au niveau du NIC virtuel, passez le Notify switches à No (onglet NIC Teaming) o Au niveau du switch virtuel, passez le Notify switches à No (onglet NIC Teaming)

Notez également que :

Tous les membres du cluster devront être connectés au même vSwitch

vMotion n’est pas supporté

Page 6: Mise en place d'un cluster NLB (tuto de A à Z)

6

2.1.3 Configuration système (env. physique et virtuel)

Exécutez les commandes suivantes sur l’interface réseau dédiée au NLB : netsh interface ipv4 set interface "<interface>" weakhostreceive=enable netsh interface ipv4 set interface "<interface>" weakhostsend=enable

Vérifiez la prise en compte des paramètres : netsh interface ipv4 show interface "<interface>" Pour terminer, effectuez les configurations suivantes cette même carte réseau :

Attribuez-lui une IP fixe

Supprimez les DNS / WINS saisis

Désactivez l’enregistrement DNS automatique et vérifiez qu’il n’existe pas d’autres enregistrements DNS liés à cette IP

2.2 Mode Multicast

2.2.1 Environnement physique Vous aurez besoin deux cartes réseaux pour chacun des nœuds du cluster :

Une carte réseau pour l’administration de votre serveur

Une carte réseau dédiée pour le NLB

2.2.2 Environnement virtuel Si vous êtes en environnement virtuel, VMware recommande d’utiliser le mode Multicast, en plus de deux cartes réseaux pour chacun des nœuds du cluster. Autrement dit, il vous faudra :

Une carte réseau virtuelle pour l’administration de votre serveur

Une carte réseau virtuelle dédiée pour le NLB

2.2.3 Configuration système (env. physique et virtuel) Vous devrez également effectuer les configurations suivantes sur la carte dédiée au NLB :

Attribuez-lui une IP fixe

Supprimez les DNS / WINS saisis

Désactivez l’enregistrement DNS automatique et vérifiez qu’il n’existe pas d’autres enregistrements DNS liés à cette IP

Page 7: Mise en place d'un cluster NLB (tuto de A à Z)

7

3. Installation

3.1 Ajout de la fonctionnalité NLB

3.1.1 Installation via PowerShell Si vous passez par un script : Set-ExecutionPolicy RemoteSigned Pour déployer ce rôle en PowerShell sur tous vos serveurs exécutez la commande suivante depuis votre console « pilote »: $Session=New-PsSession –ComputerName <name1>, <name2>, <name3> Invoke-Command –Session $Session –ScriptBlock {Import-Module ServerManager} Invoke-Command –Session $Session –ScriptBlock {Add-WindowsFeature NLB, RSAT-NLB} Exécutez ensuite cette commande pour installer la console de gestion sur votre serveur pilote : Add-WindowsFeature RSAT-NLB

3.1.2 Installation via GUI Pour installer cette fonctionnalité, lancez simplement la console Server Manager et sélectionnez le rôle Network Load Balancing. Répétez cette action sur chacun de vos serveurs :

3.2 Pare-feu

Suite à l’activation de ce rôle, les règles ci-dessous seront créées. Aucune autre modification à ce niveau ne sera nécessaire par la suite :

Page 8: Mise en place d'un cluster NLB (tuto de A à Z)

8

4. Configuration Pour configurer votre cluster, vous avez le choix entre le mode GUI et le mode PowerShell. Rappelez-vous que le PowerShell peut être exécuté à distance sur vos serveurs.

4.1 Configuration via PowerShell Pour configurer votre cluster en PowerShell, exécutez dans l’ordre les commandes ci-dessous : Si vous passez par un script : Set-ExecutionPolicy RemoteSigned Import-Module NetworkLoadBalancingClusters Création du cluster et de son premier nœud : New-NlbCluster -InterfaceName “<network interface>” -ClusterName <cluster name> -Hostname <hostname> -ClusterPrimaryIP <cluster IP> -OperationMode <mode : multicast/unicastt>

Suppression des ports existants en écoute: Get-NlbClusterPortRule | Remove-NlbClusterPortRule –Force Ajout des ports en écoute (action à répéter pour chaque port de site IIS hébergé) Add-NlbClusterPortRule -StartPort 80 -EndPort 80 -Protocol TCP -Affinity Single -InterfaceName “<interface>”

Intégration d’un nouveau nœud au cluster: Get-NlbCluster –hostname <cluster ip> | Add-NlbClusterNode -NewNodeName <hostname> -NewNodeInterface “<network interface>”

Page 9: Mise en place d'un cluster NLB (tuto de A à Z)

9

4.2 Configuration via GUI Lancez la console NLB et faites :

Clic droit > New Cluster

Saisissez le nom du serveur à configurer et choisissez l’interface réseau dédiée au NLB :

Indiquez la priorité du serveur :

Page 10: Mise en place d'un cluster NLB (tuto de A à Z)

10

Ajoutez une IP virtuelle pour le cluster …

… ainsi que son nom et son mode (explications aux points 1.1 et 1.2)

Note importante : récupérer bien l’adresse MAC du cluster si vous êtes en multicast. Vous en aurez

besoin pour le point 4.3

Spécifiez ensuite les ports « en écoute » pour le NLB (attention à l’affinité) :

Page 11: Mise en place d'un cluster NLB (tuto de A à Z)

11

Les informations ci-dessous sont à préciser lorsque vous ajoutez un port :

4.3 Mode Multicast

Si vous avez opté pour ce mode, vous devez créer une entrée ARP sur vos cœurs de réseaux Cisco. Pour cela exécutez la commande suivante (format adresse MAC : XXXX.XXXX.XXXX) : conf t arp <IP> <cluster MAC> mac-address-table static <cluster MAC> vlan <ID> interface faX/X faX/X Pour les Cisco Catalyst 6000/6500, il faut impérativement ajouter le paramètre « disable-snooping » : mac-address-table static <cluster MAC> vlan <ID> interface faX/X faX/X disable-snooping

Note : l’adresse MAC devra elle celle générée par le cluster au point 4.2

Page 12: Mise en place d'un cluster NLB (tuto de A à Z)

12

5. Notes

5.1 Mode « Core » Lorsque vous basculez en mode Core après avoir configuré votre NLB, les commandes PowerShell propres au NLB ne seront plus disponibles (Get-ClusterNLB…).

5.2 Console distante

Les 5 règles de pare-feu « Network Load Balancing (…) » du point 3.2 apparaitront de la façon

suivante depuis une console MMC distante :

Page 13: Mise en place d'un cluster NLB (tuto de A à Z)

13

Conclusion Ce tuto vous a permis de mettre en place une ferme de serveurs NLB. Grâce à cela, vous êtes maintenant en mesure de fournir un service hautement disponible, aussi bien sur des plateformes physiques que virtuelles. Par ailleurs, sachez que cette configuration est particulièrement adaptée pour l’hébergement de sites web. C’est pourquoi je vous invite à lire mon tuto concernant la mise en place d’une ferme de serveurs IIS en mode Core.

N’hésitez pas à m’envoyer vos commentaires ou retours à l’adresse suivante : m.decrevoisier A-R-0-B-A-5 outlook . com

Soyez-en d’ores et déjà remercié