Outils pour utilisateurs

Outils du site


clustering_avec_centos_5.6

Différences

Cette page vous affiche les différences entre la révision choisie et la version actuelle de la page.

Lien vers cette vue comparative

clustering_avec_centos_5.6 [2011/09/11 14:26]
admin [Configuration Conga]
clustering_avec_centos_5.6 [2012/05/14 16:07] (Version actuelle)
admin [Configuration Conga]
Ligne 1: Ligne 1:
 ===== Introduction ===== ===== Introduction =====
-Ce document présente la mise en place d'un cluster consitué de 3 VM sous Centos 5.6.+Ce document présente la mise en place d'un cluster consitué de 3 VM sous Centos 5.8.
  
 La configuration d'un cluster ne demande que le paramétrage d'un fichier xml nommé /​etc/​cluster/​cluster.conf et présents sur tous les noeuds du cluster. La configuration d'un cluster ne demande que le paramétrage d'un fichier xml nommé /​etc/​cluster/​cluster.conf et présents sur tous les noeuds du cluster.
Ligne 30: Ligne 30:
 00 00 * * * root /​usr/​sbin/​ntpd -q -u ntp:ntp 00 00 * * * root /​usr/​sbin/​ntpd -q -u ntp:ntp
 </​code>​ </​code>​
 +===== Création des VM =====
 +Il existe de nombreuses méthodes dans CentOS pour cela, la plus intuitive est virt-manager,​ interface graphique permettant ceci. Toutefois pour cet exemple, nous allons employer virt-install avec un fichier kickstart.
  
 +Dans un premier temps, il faut mettre en place un serveur Web pour l'​accès aux sources de l'​installation. Le principe sera de monter l'​image ISO du DVD de Cent0S et de le rendre accessible via un serveur Web.
 +==== Le serveur Web ====
 +L'​installation du serveur httpd est simple :
 +<​code>​
 +yum -y install httpd
 +service httpd start
 +chkconfig httpd on
 +</​code>​
 +==== Monter l'ISO ====
 +Le plus simple est soit de récupérer l'ISO depuis un mirroir CentOS soit de la recréer depuis le DVD ayant servit à l'​installation. Pour cela mettre le DVD dans le lecteur et créer l'ISO
 +<​code>​
 +dd if=/​dev/​cdrom of=/​home/​centos58.iso
 +</​code>​
 +Monter ensuite l'ISO sur un point de montage
 +<​code>​
 +mkdir /u01
 +mount -o loop -t iso9660 /​home/​centos58.iso /u01
 +</​code>​
 +Pour rendre le montage permanent, ajouter la ligne suivante dans /etc/fstab
 +<​code>​
 +/​home/​centos58.iso /u01 iso9660 loop,ro 0 0
 +</​code>​
 +Puis créer un lien symbolique pour l'​accès Web
 +<​code>​
 +ln -s /u01 /​var/​www/​html/​centos
 +</​code>​
 +En pointant un navigateur sur http://​ip_du_serveur/​centos,​ l'​arborescence du DVD doit apparaitre.
 +==== Fichier kickstart ====
 +Un kickstart permet d'​installer automatiquement une CentOS sans devoir répondre aux questions. Dans l'​exemple,​ le cluster devra faire tourner un serveur web accessible via une IP flottante en fonction du noeud actif. Le fichier kickstart installera donc le minimum requis ( core ), plus le serveur httpd ainsi qu'un des deux composants de Conga ( ricci ) dont le fonctionnement sera vu plus tard.
  
 +=== Exemple de kickstart ====
 +Le serveur porte l'IP 192.168.1.100,​ c'est sur lui que tourne le serveur Web contenant les sources de l'​installation. Ce fichier exemple sert pour la création d'une VM nommée vm01.adi100.concarnux.org en IP 192.168.1.101
 +<​code>​
 +install
 +url --url http://​192.168.1.100/​centos
 +lang fr_FR.UTF-8
 +keyboard fr-latin9
 +text
 +network --device eth0 --bootproto static --ip 192.168.1.101 ​ --netmask 255.255.255.0 --gateway 192.168.1.1 --nameserver 80.10.246.2 --hostname vm01.adi100.concarnux.org
 +rootpw azerty
 +firewall --disabled
 +authconfig --enableshadow --enablemd5
 +selinux --disabled
 +timezone --utc Europe/​Paris
 +bootloader --location=mbr --driveorder=xvda
 +reboot
 +clearpart --all --initlabel --drives=xvda
 +part /boot --fstype ext2 --size=100 --asprimary
 +part / --fstype ext3 --size=500 --asprimary
 +part swap --size=1024 --asprimary
 +part /usr --fstype ext3 --size=2000
 +part /var --fstype ext3 --size=1000
 +part /tmp --fstype ext3 --size=500
 +part /home --fstype ext3 --size=1 --grow
 +%packages --excludedocs --nobase
 +@core
 +httpd
 +ricci
 +</​code>​
 +Sachant de plus que chaque VM est identique, l'​unique différence est au niveau de la ligne network, le plus simple est de créer un script shell qui génèrera le kickstart propre à chaque VM et installera la VM avec virt-install. Le script recevant en paramètre l'IP de la VM et son nom DNS.
 +=== Script createVM.sh ===
 +Il s'agit d'un script très simple, je laisse à chacun le soin de l'​améliorer...
 +<​code>​
 +#!/bin/sh
  
 +IP=$1
 +NOM_DNS=$2
 +VM=$(echo $(echo $NOM_DNS | cut -d '​.'​ -f1))
 +
 +echo "La VM portera le nom : $VM et aura pour nom DNS : $NOM_DNS et pour IP : $IP"
 +
 +rm -f /​etc/​xen/​$VM
 +
 +cat <<EOF > /​var/​www/​html/​${VM}-ks.cfg
 +install
 +url --url http://​192.168.1.100/​centos
 +lang fr_FR.UTF-8
 +keyboard fr-latin9
 +text
 +network --device eth0 --bootproto static --ip $IP  --netmask 255.255.255.0 --gateway 192.168.1.1 --nameserver 80.10.246.2 --hostname $NOM_DNS
 +rootpw azerty
 +firewall --disabled
 +authconfig --enableshadow --enablemd5
 +selinux --disabled
 +timezone --utc Europe/​Paris
 +bootloader --location=mbr --driveorder=xvda
 +reboot
 +clearpart --all --initlabel --drives=xvda
 +part /boot --fstype ext2 --size=100 --asprimary
 +part / --fstype ext3 --size=500 --asprimary
 +part swap --size=1024 --asprimary
 +part /usr --fstype ext3 --size=2000
 +part /var --fstype ext3 --size=1000
 +part /tmp --fstype ext3 --size=500
 +part /home --fstype ext3 --size=1 --grow
 +%packages --excludedocs --nobase
 +@core
 +httpd
 +ricci
 +EOF
 +
 +virt-install --name $VM -p -r 512 --disk path=/​home/​disks/​${VM}.img,​size=8 --location http://​192.168.1.100/​centos -x "​cmdline ks=http://​192.168.1.100/​${VM}-ks.cfg ip=$IP netmask=255.255.255.0 gateway=192.168.1.1 dns=80.10.246.2 hostname=${NOM_DNS}"​ --nographics
 +</​code>​
 +
 +Créer les 3 VM
 +<​code>​
 +sh /​root/​createVM 192.168.1.101 vm01.adi100.concarnux.fr
 +sh /​root/​createVM 192.168.1.102 vm02.adi100.concarnux.fr
 +sh /​root/​createVM 192.168.1.103 vm03.adi103.concarnux.fr
 +</​code>​
 +Chaque VM est créee avec 512Mo de RAM et un disque dur de 8Go partitonné.
 +
 +Il est très important que la résolution de noms soit correctement effectuée. Dans notre exemple, chaque machine du cluster aura un fichier /etc/hosts composé des lignes suivantes :
 +<​code>​
 +127.0.0.1 localhost
 +192.168.1.100 adi100.concarnux.fr ​
 +192.168.1.101 vm01.adi100.concarnux.fr
 +192.168.1.102 vm02.adi100.concarnux.fr
 +192.168.1.103 vm03.adi100.concarnux.fr
 +</​code>​
 ===== Configuration Conga ===== ===== Configuration Conga =====
 Conga permet la gestion du cluster au travers une interface web. Conga est constitué de deux éléments : Conga permet la gestion du cluster au travers une interface web. Conga est constitué de deux éléments :
Ligne 39: Ligne 159:
 Conga assure en fait la gestion transparente sur chaque noeud du fichier /​etc/​cluster/​cluster.conf. Conga assure en fait la gestion transparente sur chaque noeud du fichier /​etc/​cluster/​cluster.conf.
  
-Sur chaque noeud, installer ricci+{{:​conga.jpg?​300|}} 
 + 
 +Sur chaque noeud, installer ricci, ce qui a été fait sur les 3 VM, il faut aussi l'​installer sur le Dom0 car c'est depuis celui-ci que sera géré le cluster. 
 + 
 +Donc sur le serveur adi100.concarnux.org ( 192.168.1.100 ) installer ricci et luci.
 <​code>​ <​code>​
-yum install ricci+yum install ricci luci
 </​code>​ </​code>​
-Sur un des noeuds, installer luci. Il n'est pas nécessaraire que le noeud où est installé luci soit dans le cluster. Le noeud où est installé luci doit aussi posséder ​ricci.+Lancer ​ricci
 <​code>​ <​code>​
-yum install luci+service ricci start
 </​code>​ </​code>​
 Configurer luci pour le mot de passe du user admin Configurer luci pour le mot de passe du user admin
Ligne 58: Ligne 182:
  
 {{:​luci.png?​|}} {{:​luci.png?​|}}
 +
 +Se connecter en admin avec le mot de passe créé précédement.
 ==== Parefeu ==== ==== Parefeu ====
-Il faut pour Conga et la gestion du cluster en général ouvrir certains ports su parefeu.+Il faut pour Conga et la gestion du cluster en général ouvrir certains ports sur le parefeu.
 <​code>​ <​code>​
 iptables -I INPUT -p udp -m state --state NEW -m multiport --dports 5404,5405 -j ACCEPT iptables -I INPUT -p udp -m state --state NEW -m multiport --dports 5404,5405 -j ACCEPT
clustering_avec_centos_5.6.txt · Dernière modification: 2012/05/14 16:07 par admin