Академический Документы
Профессиональный Документы
Культура Документы
Bonjour tous, dans ce nouveau tuto, nous allons voir comment mettre en place deux serveur
NFS qui vont nous servir de SAN afin de centraliser les donnes de nos serveurs Web.
Ce tutoriel fait suite aux deux tutoriels prcdents, je donc vous epxliquer comment mettre en
place deux serveurs , un serveur actif et un serveur passif avec NFS, DRBD et heartbeat.
Voici la topologie:
Topologie
Dans ce turoriel, je vais rajouter les deux serveurs dans mon cluster, mais afin de soulager ma
machine je vais juste dmarrer mon serveur lb1 et configurer mes deux serveurs NFS comme
ceci
Important!
hostname: nfs1
ip: 10.1.0.31
passerelle: 10.1.0.1
Un disque supplmentaire pour DRBD de 8GO
hostname: nfs2
ip: 10.1.0.32
passerelle: 10.1.0.1
Un disque supplmentaire pour DRBD de 8GO
Afin de pouvoir accder en SSH aux nouveaux serveurs, je vais rajouter le ces deux lignes
dans le fichier /etc/init.d/firewall de lb1
/etc/init.d/firewall restart
Vous pouvez maintenant vous connecter en SSH vos deux serveurs NFS
Warning!
Sur nsf1
Sur nfs2
Maintenant que nous avons partitionnes les deux disques nous allons installer les
paquets ncessaires lutilisation de DRBD.
Puis une fois le paquet install on active le module avec la commande suivante:
modprobe drbd
Vous pouvez vrifier la version de DRBD installe en tapant la commande modinfo drbd
Maintenant que nos disques et DRBD sont mis en place nous allons configurer la rplication
des donnes entre les deux disques.
Pour ce faire nous allons crer et diter un fichier que nous allons appeler drbd0.res dans le
dossier /etc/drbd.d/
Attention les commandes et les configurations suivantes sont faire sur les deux serveurs.
cd /etc/drbd.d
nano drbd0.res
resource r0 {
startup {
wfc-timeout 30;
degr-wfc-timeout 15;
}
disk {
on-io-error detach;
}
syncer {
rate 100M;
}
on nfs1 {
device /dev/drbd0;
disk /dev/sdb1;
address 10.1.0.31:7788;
meta-disk internal;
}
on nfs2 {
device /dev/drbd0;
disk /dev/sdb1;
address 10.1.0.32:7788;
meta-disk internal;
}
}
Explications:
Tout dabord on donne un nom notre ressource DRBD dans notre cas nous allons lappeler
r0.
Dans cette ressource nous allons renseigner nos deux serveurs nfs , cela commence donc par
nfs1 (nfs1 doit tre le hostname de la machine) avec les valeurs suivantes:
device /dev/drbd0; #Ceci est le nom du disque DRBD que nous allons crer
disk /dev/sdb1; #Ceci est le chemin de la parition que nous allons utiliser
address 10.1.0.31:7788; #Adresse IP de nfs1
meta-disk internal; #On crit les MD sur le disque
Une fois ce fichier crit sur les deux serveurs nous allons enfin pouvoir mettre en place la
rplication:
drbdadm create-md r0
drbdadm up r0
Et voila notre DRBD est pratiquement mis en place vous pouvez vrifier que vos serveurs se
contactent en tapant la commande suivante:
drbd-overview
root@nfs1:~# drbd-overview
0:r0 Connected Secondary/Secondary Inconsistent/Inconsistent C r-----
Cela veut dire que vos derveurs se connectent mais que la rplication nest pas encore
possible tant donn quaucun des deux nest en mode Primary, pour y remdier nous allons
mettre nfs1 primary avec la commande suivante:
root@nfs1:~# drbd-overview
0:r0 SyncSource Primary/Secondary UpToDate/Inconsistent C r-----
[======>.............] sync'ed: 38.2% (5064/8188)Mfinish: 0:01:31
speed: 56,432 (55,192) K/sec
La synchronisation initiale peut tre plus ou moins lente en fonction de lespace disque et de
la rapidit de votre rseau local.
Vous pouvez suivre la synchronisation avec un rafraichissement toutes les 2 secondes avec la
commande suivante:
watch drbd-overview
Une fois la synchronisation termine la commande cat /proc/drbd vous donneras ceci:
root@nfs1:~# drbd-overview
0:r0 Connected Primary/Secondary UpToDate/UpToDate C r-----
Si les deux sont en mode ds:UpToDate/UpToDate cest que tout fonctionne bien.
Maintenant que notre raid rseau et fonctionnel nous allons crer un systme de fichier en
ext4 pour pouvoir crire dessus.
Tapez la commande suivante sur le serveur primaire (nfs1)
Warning!
Avec DRBD, vous devez savoir que lon ne peut monter la partition DRBD uniquement sur le
serveur sur lequelle la partition DRBD est en Primary.
Installaion de NFS
Nos deux serveurs vont donc nous servir afin dexternaliser le stockage du contenu Web.
Nous allons donc installer les rle de serveur NFS dur les deux serveurs.
Une fois NFS install sur les deux serveurs, nous allons crer un dossier dans lequelle nous
allons monter la partition DRBD mais aussi qui va servir de dossier de partage NFS.
Nous allons donc crer un dossier datas-web sur les deux serveurs.
mkdir /datas-web
Maintenant, sur les deux serveurs NFS nous allons configurer le partage NFS, cela se fait dans
le fichier /etc/exports
/datas-web 10.1.0.0/24(rw,sync,fsid=0,no_root_squash,no_subtree_check)
Explications:
Maintenant que NFS est configur. nous allons installer heartbeat sur les deux serveurs afin
de:
Mettre en place le balancement de la partition DRBD entre les deux serveurs
Mettre en place une IP balance, qui sera lIP partir de laquelle les serveurs web vont
se connecter
Dmarrer et arrter le service nfs-kernel-server
Toutes les prochaines tapes sont faire sur les deux serveurs !
Une fois heartbeat installer nous allons devoir crer trois fichiers dans le dossier /etc/ha.d/
warntime 4
deadtime 5
initdead 15
keepalive 2
#Serveurs du cluster
node nfs1
node nfs2
Attention Pour que tout fonctionne bien il faut sassurer que vous puissez ping nfs2 depuis
nfs1 et vice-versa.
Pensez donc rajouter les deux lignes suivantes sur le fichier /etc/hosts sur vos deux nodes:
##nodes
10.1.0.31 nfs1
10.1.0.32 nfs2
Et pour finir nous allons crer le fichier authkeys. Ce fichier contient un clef partag entre les
deux serveurs. Cela peut tre un mot de passe, ou un simple mot.
Voici le mien:
auth 3
3 md5 my-auth-key
Ce fichier la doit avoir les permissions 600. Donc sur les deux serveurs tapez:
Avant de dmarrer heartbeat, nous allons sur les deux serveurs nfs, dsactiver le
lancement automatique de nfs-kernel-server.
insserv -r nfs-kernel-server
/etc/init.d/heartbeat start
Vous pouvez aussi vrifier avec la commande ifconfig, vous verrez quune nouvelle interface
eth0:0 a t crer avec ladresse IP configur dans le fichier haresources.
/etc/init.d/heartbeat start
Comment le tester?
Connectez vous si ce nest pas dj fait en SSH sur les deux serveurs nfs.
Sur nfs2 tapez la commande suivante pour vrifier ltat de drbd en temps rel:
watch drbd-overview
Cette ligne nous montre bien que nfs2 est secondary et que la partition DRBD nest pas
monte.
/etc/init.d/heartbeat stop
Cela nous montre bien que nfs2 est devenu primaire et que la partition DRBD est bien
mont. Vous pouvez aussi vrifier que lip de balancement est bien prsente sur nfs2.
/etc/init.d/heartbeat start
Comme dans le fichier haresources jai mis la valeur auto_failback on, nfs1 va redevenir
automatiquement primaire ds que heartbeat est redmarrer.
lb1
web1 et web2
nfs1 et nfs2
A partir des deux serveurs Web, vous pouvez voir les partages disponibles avec la commande
showmount -e 10.1.0.30
mkdir /datas-web
Si vous faites un df -h, vous verrez que le partage est bien mont sur les deux serveurs web
Maintenant nous allons mettre les donns de nos pages dans le dossier /datas-web.
Le dossier par dfaut ou sont stocks les page web dans Debian se trouve dans /var/www/
nous allons donc metre le contenu du ce dossier dans /datas-web et crer un lien symbolique
vers le dossier dorigine:
mv /var/www /datas-web/
ln -s /datas-web/www/ /var/
rm -rvf /var/www/
ln -s /datas-web/www/ /var/
Et voila vos deux serveurs Web utilisent maintenant le partage nfs pour stocker les pages
web. Si vous souhaitez rajouter du contenu web, vous navez qua placer le fichiers dans
/datas-web/www partir de nimporte quel serveur web.
Vrifiez que vous pouvez toujous accder vos pages web via lIP web balanc:
http://192.168.2.100/.
Pour tester que tout fonctionne vous pouvez arrter le serveur nfs1 et vrifier que vos pages
web sont toujours accssibles.
Si vous souhaitez que le partage nfs soit mont automatiquement sur vos serveurs web, vous
pouvez rajouter la ligne suivante dans le fichier /etc/fstab sur vos deux serveurs Web