WOW !! MUCH LOVE ! SO WORLD PEACE !
Fond bitcoin pour l'amélioration du site: 1memzGeKS7CB3ECNkzSn2qHwxU6NZoJ8o
  Dogecoin (tips/pourboires): DCLoo9Dd4qECqpMLurdgGnaoqbftj16Nvp


Home | Publier un mémoire | Une page au hasard

 > 

Virtualisation d'un réseau intranet

( Télécharger le fichier original )
par Bonhomie BOPE
Institut supérieur de techniques appliquées - Ingénieur en génie électrique 2010
  

précédent sommaire suivant

Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy

C. Augmenter le disque de la VM

Utiliser LVM pour la gestion des VM permet d'augmenter très facilement l'espace disque, il suffit de redimensionner le volume logique. L'exemple suivant montre l'extension de +10Go de la VM adi051.ista.ac.cd.

xm shutdown adi051.ista.ac.cd

lvextend /dev/vg01/adi051.ista.ac.cd -disk +L 10G e2fsck -f /dev/vg01/adi051.ista.ac.cd -disk resize2fs /dev/vg01/adi051.ista.ac.cd -disk

xm create /etc/xen/adi051.ista.ac.cd

D. Dupliquer des VM

Une fois le principe assimilé, il est simple de dupliquer des VM. Ici encore il existe de nombreuses méthodes, la plus simple est de créer une première VM en appliquant certaines personnalisations communes et de créer une image tar.

A titre d'exemple il faut installer les packages suivants : aptitude install vim ntpdate

Puis éditer aussi le .bashrc en root :

export LS_OPTIONS='--color=auto' eval "`dircolors`"

alias ls='ls $LS_OPTIONS'

alias ll='ls $LS_OPTIONS -hl' alias l='ls $LS_OPTIONS -lA' alias df='df -h'

E. Création d'une image tar de la VM Stopper la VM et monter son volume logique sur un point de montage.

xm shutdown adi051.ista.ac.cd

mkdir /mnt/img

mount /dev/vg01/adi051.ista.ac.cd -disk /mnt/img cd /mnt/img

tar -cvpsf /home/vm_modele.tar *

cd /

umount /mnt/img

Editer ensuite le fichier /etc/xen-tools/xen-tools.conf et modifier la ligne install-method ainsi :

#install-method = debootstrap

install-method = tar

install-source = /home/vm_modele.tar

Bien rajouter la ligne install-source.

La commande de création des VM est identiquée à celle utilisée précédemment. Les scripts hooks du package xen-tools faisant les corrections type IP, hostname...

F. Cluster avec des VM

L'objectif ici est de simuler un cluster avec des VM, il est ainsi facile de tester le cluster et ensuite de la passer en production sur des serveurs réels. Debian propose 95% des fonctions disponibles sous REDHAT en matière de gestion des clusters. Il ne manque que quelques utilitaires, type ricci et luci ou encore pirhana qui simplifient simplement la mise en place de la configuration.

Pour information la gestion d'un cluster se fait dans un unique fichier au format XML et nommé /etc/cluster/cluster.conf.

Important

· Les packages redhat-cluster-suite permettent de gérer des clusters jusqu'a 16 noeuds.

· Seul le protocole IPV4 est actuellement utilisable.

A partir de la VM exemple rajouter les packages suivants : aptitude install redhat-cluster-suite ipvsadm open-iscsi

· redhat-cluster-suite, contient l'ensemble des fonction de cluster ( cman, rgmanage, GFS... )

· ipvsadm, permet de gérer la répartition de charge.

· open-iscsi permet d'utiliser des disques via le protocole iscsi.

une fois cette opération faite, stopper la VM et créer une image tar pour la duplication.

xm shutdown adi051.ista.ac.cd

mkdir /mnt/img

mount /dev/vg01/adi051.ista.ac.cd -disk /mnt/img tar -cvpsf /home/vm_cluster_modele.tar *

cd /

umount /mnt/img

Le cluster exemple comportera 3 noeuds, créer donc les deux VM supplementaires.

xen-create-image --hostname adi052.ista.ac.cd --ip 192.168.1.52 --install-source

/home/vm_cluster_modele.tar

xen-create-image --hostname adi053.ista.ac.cd --ip 192.168.1.53 --install-source

/home/vm_cluster_modele.tar

Lancer ensuite les 3 VM

root@adi100:~# xm create /etc/xen/adi051. ista.ac.cd.cfg

root@adi100:~# xm create /etc/xen/adi052. ista.ac.cd.cfg

root@adi100:~# xm create /etc/xen/adi053. ista.ac.cd.cfg

root@adi100:~# xm list

Name

Domain-0 adi051.ista.ac.cd adi052.ista.ac.cd adi053.ista.ac.cd root@adi100:~#

ID

Mem VCPUs

State

Time(s)

0

2514

2

r

144.6

9

512

1

-b

1.8

10

512

1

-b

1.9

11

512

1

-b

1.7

 

Sur chaque VM mettre en place la résolution de nom via /etc/hosts

192.168.1.51 adi051.ista.ac.cd adi051

192.168.1.52 adi052.ista.ac.cd adi052

192.168.1.53 adi053.ista.ac.cd adi053

Fichier /etc/cluster/cluster.conf

Afin de vérifier le fonctionnement correct du cluster, nous allons mettre en place une configuration simple des 3 noeuds. Attention ce fichier n'est pas complet et ne pose que les bases du cluster. Il doit être copié à l'identique sur les 3 noeuds.

<?xml version="1.0" ?>

<cluster name="alpha" config_version="1">

<cman>

<multicast addr="224.0.0.1" />

</cman>

<clusternodes>

<clusternode name ="adi051.ista.ac.cd " votes="1" nodeid="1">

<fence>

<method name="single">

<device name="manual" />

</method>

</fence>

</clusternode>

<clusternode name ="adi052.ista.ac.cd " votes="1" nodeid="2">

<fence>

<method name="single">

<device name="manual" />

</method> </fence>

</clusternode>

<clusternode name ="adi053.ista.ac.cd " votes="1" nodeid="3">

<fence>

<method name="single">

<device name="manual" />

</method> </fence>

</clusternode> </clusternodes> <fencedevices>

<fencedevice name="manual" agent="fence manual" />

_

</fencedevices>

<fence_daemon clean_start="0" post_fail_delay="0" post_join_delay="3" />

<rm>

<failoverdomains>

<failoverdomain name="dom01" restricted="1" ordered="1" nofailback="0">

<failoverdomainnode name="adi051.ista.ac.cd " priority="10" />

<failoverdomainnode name="adi052.ista.ac.cd " priority="20" />

<failoverdomainnode name="adi053.ista.ac.cd " priority="30" />

</failoverdomain>

</failoverdomains>

</rm>

</cluster>

· Le cluster se nomme alpha et comprend 3 noeuds.

· L'isolation des noeuds ( fence ) est faite manuellment.

· Un seul failoverdomain est défini ( dom01 ) avec la priorité de chaque noeud.

Sur chaque noeud lancer les commandes suivantes :

/etc/init.d/cman start /etc/init.d/rgmanager start

Sur n'importe quel noeud du cluster lancer la commande clustat pour

vérifier le démarrage correct du cluster.

clustat

Cluster Status for alpha @ Wed Aug 24 12:21:27 2011 Member Status: Quorate

Member Name ID Status

adi051.ista.ac.cd 1 Online, Local

adi52. ista.ac.cd 2 Online

adi53. ista.ac.cd 3 Online

Mise en place d'un serveur web (www.ista.ac.cd)

Pour l'exemple nous allons utiliser le serveur Web apache, qui sera donc démarré en priorité sur adi051.ista.ac.cd et en cas de défaillance redémarrer sur adi052.ista.ac.cd et enfin sur adi053. ista.ac.cd.

Installer apache sur chaque noeud et désactiver son démarrage au boot.

aptitude install apache2 /etc/init.d/apache2 stop update-rc.d apache2 remove

Note : il peut y avoir sur les VM des messages d'erreurs debconf qui peuvent être ignorés, sans doute un mauvais paramétrage de la console...

Modifier sur chaque noeud le fichier /etc/cluster/cluser.conf en prenant soin d'incrémenter le numéro de version

<?xml version="1.0" ?>

<cluster name="alpha" config_version="2">

<cman>

<multicast addr="224.0.0.1" />

</cman>

<clusternodes>

<clusternode name ="adi051.ista.ac.cd" votes="1" nodeid="1">

<fence>

<method name="single">

<device name="manual" />

</method>

</fence>

</clusternode>

<clusternode name ="adi052.ista.ac.cd" votes="1" nodeid="2">

<fence>

<method name="single">

<device name="manual" />

</method>

</fence>

</clusternode>

<clusternode name ="adi053.ista.ac.cd" votes="1" nodeid="3">

<fence>

<method name="single">

<device name="manual" />

</method>

</fence>

</clusternode>

</clusternodes>

<fencedevices>

<fencedevice name="manual" agent="fence_manual" /> </fencedevices>

<fence_daemon clean_start="0" post_fail_delay="0" post_join_delay="3" />

<rm>

<failoverdomains>

<failoverdomain name="dom01" restricted="1" ordered="1" nofailback="0">

<failoverdomainnode name="adi051.ista.ac.cd " priority="10" />

<failoverdomainnode name="adi052.ista.ac.cd " priority="20" />

<failoverdomainnode name="adi053.ista.ac.cd " priority="30" />

</failoverdomain>

</failoverdomains>

<service name="web" autostart="1" domain="dom01" recovery="relocate" >

<script name="start_ web" file="/etc/init.d/apache2" />

</service>

</rm>

</cluster>

Relancer le cluster, sur chaque noeud

/etc/init.d/rgmanager stop /etc/init.d/cman restart /etc/init.d/rgmanager start

Puis lancer la commande clustat pour vérifier le fonctionnement correct

root@adi051:-# Cluster Status Member Status:

clustat

for alpha @ Quorate

Wed Aug

24 10:45:28 2011

Member Name

ID

Status

 

adi051.ista.ac.cd
adi052.ista.ac.cd
adi053.ista.ac.cd

1

2

3

Online,
Online,
Online,

Local, rgmanager

rgmanager
rgmanager

Service Name Owner (Last) State

Service : web adi051.ista.ac.cd started

root@adi051:-#

Pour tester la bascule stopper la VM adi051.ista.ac.cd et relancer la commande clustat sur adi052.ista.ac.cd pour vérifier que le service apache a bien migré.

root@adi052:-# clustat

Cluster Status for alpha @ Wed Aug 24 10:54:05 2011 Member Status: Quorate

Member Name ID Status

adi051.ista.ac.cd 1 Offline

adi052.ista.ac.cd 2 Online, Local, rgmanager

adi053.ista.ac.cd 3 Online, rgmanager

Service Name Owner (Last) State

Service : web adi052.ista.ac.cd started

root@adi052:-#

Si adi051.ista.ac.cd revient dans le cluster, le service est stoppé sur adi052.ista.ac .cd et redémarré sur adi051.ista.ac.cd

Il est possible de migrer manuellement le service ainsi :

root@adi052:-# clusvcadm -r web -m adi053.ista.ac.cd Trying to relocate service:web to adi053. ista.ac.cd...Success service:web is now running on adi053. ista.ac.cd

root@adi052:-# clustat

luster Status for alpha @ Wed Aug 24 10:57:10 2011 Member Status: Quorate

Member Name ID Status

adi51. ista.ac.cd 1 Online, rgmanager

adi52. ista.ac.cd 2 Online, Local, rgmanager

adi53. ista.ac.cd 3 Online, rgmanager

Service Name Owner (Last) State

service:web adi053. ista.ac.cd started

root@adi052:~#

précédent sommaire suivant






Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy








"Entre deux mots il faut choisir le moindre"   Paul Valery