TP de l'UE Cluster

Il y aura 2 séances de 3 heures de TP pour ``haute disponibilité´´ en 3 séances de 3 heures pour MPI.

Les étudiants suivant l'option Image ont l'obligation de se mettre en binome avec un étudiant d'option réseau.

Sujet haute disponibilité

Je vous demande de faire un script (shell, perl, python, ...) qui réinstalle complètement votre travail à partir de 0 (ce script fera parti de votre compte-rendu). Comme cela, même si le disque dur est effacé vous ne perdrez pas de temps à tout refaire. Vous stockerez donc toute les données nécessaires pour configurer la machine ainsi que le script la configurant dans une disquette ou une clef USB qui vous permettra d'initialiser le maître et l'esclave en lançant le script sur l'une et sur l'autre.

La première séance de TP portera sur DRBD et la seconde sur HeartBeat.

Configuration réseau

On utilisera la deuxième carte réseau pour connecter directement les deux machines (avec un câble croisé). Chacune des deux machines a une adresse IP normale et une adresse privée et l'une des deux à l'adresse publique du service.

Le script déterminera si la machine est maître ou esclave en regardant son nom (commande hostname). En aucun cas vous ne devez changer les noms des machines sur lequel vous êtes. Les paramètres du script sont :

  1. "Nom du maître"
  2. "XXX du maître" # Pour Heartbeat
  3. "Nom de l'esclave"
  4. "XXX de l'esclave" # Pour Heartbeat

Configurer les deux cartes réseaux sans utiliser ifconfig mais dans le fichier /etc/network/interfaces Pour tester immédiatement la nouvelle configuration lancez /etc/init.d/networking restart

La première sera connectée au réseau mural afin que toutes les machines puissent communiquer entre elles. La deuxième permettra de faire la synchronisation avec l'autre machine en utilisant un câble croisé.

Vous ne configurez pas l'adresse du service pour l'instant. C'est HeartBeat qui s'en chargera

Branchez les câbles et testez les liaisons en utilisant les 2 adresses IP de la machine distante.

Libérez une partition

On a besoin d'une partition, il n'y en a point de libre... Nous allons donc prendre la partition de swap. Pour ce faire, votre script d'installation doit :

Installation DRBD

Récupérez sur le réseau la dernière version de DRBD http://oss.linbit.com/drbd/ que vous mettrez sur votre disquette ou votre clef USB avec votre script de configuration.

Décompressez, détarrez, compilez et installez DRBD. ATTENTION, il est nécessaire d'ajouter la ligne : unsigned int module_refcount(struct module *u) { return 1 ; } dans le fichier drbd_main.c après les include.

Créez le périphérique block nommé /dev/drbd0, il vous permettra d'accéder au disque virtuel fiable. Son major est 147 et son minor 0

Configurez DRBD. Il stockera les données dans /dev/hda3 Et c'est TROIS et pas autre chose.

Prenez 50M comme vitesse de synchronisation

Faites en sorte que DRBD soit lancé au démarrage et arrêté lors du shutdown. Pour cela ajoutez les bons liens dans /etc/rc2.d et /etc/rc0.d Je vous conseille le nombre 19 comme niveau de priorité au lancement des scripts. S'il vous plais : enlevez ces fichiers lorsque votre TP est terminé, par exemple en lançant votre script d'installation sans donner de paramètres.

Lancez DRBD (/etc/init.d/drbd start).

Regardez le status de DRBD (/proc/drbd), de préférence laissez une fenêtre le montrant en permanence (commande watch).

Initialisation disque fiable DRBD

Indiquez à DRBD quel est la machine primaire (commandes drbdsetup ou drbdadm).

Si vous êtes le primaire : faites un mkfs.ext3 sur /dev/drbd0, pas sur la partition physique.

Si vous êtes le primaire : montez la partition, travaillez dessus. Tout en faisant cela, analysez le comportement des 2 systèmes, des disques et du réseau.

Tests du disque fiable DRBD

Tout en continuant à modifier les fichiers, faites un redémarrage du secondaire. Rien ne devrait être perturbé. Combien de temps dure la synchronisation des deux disques ?

Faites un autre test en éteignant le primaire et en demandant au secondaire de devenir le nouveau primaire. Avez-vous accès à tous les fichiers ?

Démarrer l'ancien primaire, que ce passe-t-il ? Que devez-vous faire pour relancer la synchronization ?

Heartbeat

Branchez un câble "null modem" entre les deux machines pour faire passer les batements de cœur.

Configurer HeartBeat pour qu'il mettre l'adresse IP du service sur la carte réseau nommée eth0:0

C'est heartbeat qui fait la configuration réseau du service, NE mettez PAS celle ci dans le fichier /etc/network/interfaces

Le package "heartbeat" est déjà installé. Configurez le (/etc/ha.d/ha.cnf) avec seulement le service DRBD et le montage du disque DRBD (/etc/ha.d/haresources). Remettez le fichier original avant de quitter le TP, (faites comme pour les liens symboliques).

Les logs de heartbeat sont dans /var/log/ha-log

Tester les différents cas de panne (ils sont nombreux). Mesurez les temps de basculements pour chaque cas. Pourquoi ne pas tester la panne consistant à débrancher les 3 cables reliant les 2 machines ?

Exportez le disque DRBD via NFS (/etc/ha.d/haresources) et mesurez le temps pendant lequel les clients n'ont pas eu le service NFS en fonction de la panne. Ne faites pas lancer les services NFS par /etc/rc?.d/... car c'est heartbeat qui s'en charge. Par contre vous modifiez /etc/exports pour dire qui à le droit de monter votre disque.

Rapport

Vous devez expliciter tous les tests que vous avez fait dans votre rapport. Le rapport est à rendre la semaine qui suit le dernier TP.

Sujets parallélisme

Vous trouverez des petits exemples MPI sur mon compte que je vous conseille de tester et de comprendre, n'oubliez pas de prendre le Makefile. Le manuel de référence MPI

Problèmes courants :

Le sujet : un simulateur de vagues

Les sources d'un simulateur de vagues (vague.c) sont à votre disposition. Vous pouvez l'exécuter pour voir ce que cela fait.

Vous devez paralléliser cette application afin de la faire fonctionner sur plusieurs machines. Pour cela :

Remarques :

Vous devrez tester le fonctionnement de votre application parallèle :

Vous devez rendre un rapport papier d'environ 4 pages :

Le rapport est à rendre la semaine qui suit le dernier TP.


Thierry EXCOFFIER
Last modified: Mon Feb 27 11:00:48 CET 2006