wiki:InsiaAdminSysTp3_3

Sommaire

TP3 - Serveur de données

Le but de ce TP est de rassembler les notions vues précédemment et de les pratiquer en combinaison pour une situation (presque) réaliste, celui du serveur de donnée (filer).

Notions à utiliser: RAID, LVM, NFS, outils de mesure/audit (bonnie++, dd, dstat).

1. Système d'exploitation

On désire installer Debian GNU/Linux Etch (4.0). Comme cette version est toujours en cours de développement (sortie prochaine), on se base sur une image de test (/morphale/debian/debian-testing-i386-CD-1.iso).

Prenez l'installation la plus simple possible, sans installer un seul élément, et en anglais.

Pour cela, vous aurez besoin d'un simple disque virtuel de taille modeste, par exemple 800Mo. La connexion à votre réseau (switch virtuel) est facultative dans un premier temps, les accès au proxy de l'INSIA étant possible sans cela.

$ qemu-img create filer.img 800M
$ qemu filer.img

Utilisez un partitionnement très simple (une partition pour les fichiers, une petite partition de swap). Nous allons nous occuper du RAID et de LVM dans un deuxième temps.

2. RAID

Nous voulons équiper notre système d'un RAID5 avec 3 disques. Nous créons donc ces disques (100Mo par disque suffira pour nos tests):

... arrêt de la machine virtuelle ...
$ for i in 1 2 3; do  qemu-img create data$i.img 100M; done
$ qemu -hdb data1.img -hdc data2.img -hdd data3.img  filer.img

Décrivez la séquence de commandes qui va vous permettre de 1/ partitionner les disques (une partition qui remplit chaque disque), 2/ créer le volume RAID5 voulu. Notez le résultat de votre configuration tel que affiche par mdadm --detail /dev/md0.

Vérifiez que votre volume RAID est bien remonté au prochain démarrage. Est-t-il sensible à l'ordre de détection des disques ? (Essayez d'invoquer qemu en changeant l'ordre des disques). Pourquoi ?

3. LVM

Construisez un volume group simple comportement uniquement le volume RAID créé comme physical volume. Notez la séquence de commande. Quelle taille disponible propose votre volume group ? Détaillez le calcul qui mène à ce chiffre.

Créez un simple logical volume utilisant la moitié de l'espace disponible, notez la commande invoquée. Notez les informations fournies par vgdisplay et lvdisplay.

4. Performances brutes

A ce stade, nous n'avons que des blocks devices, et nous nous proposons de faire une mesure des performances de lecture/écriture séquentielle. Ceci nous donnant une idée très simpliste et une borne maximale pour les résultats suivants.

Equipez-vous du programme dstat, et gardez une console affichant en permanence la sortie de dstat -dlcim.

A l'aide de la commande dd et de fichiers spéciaux comme /dev/null et /dev/zero, proposez une manière de mesurer les performance en lecture d'une part, écriture d'autre part de votre volume group. Vérifiez que vos résulats sont reproductibles. Aide:

  • vérifiez que le cache système est vide pour la lecture (par exemple: echo 1 >/proc/sys/vm/drop_caches)
  • vérifiez que les accès en écriture sont synchrones pour vous affranchir du cache

Reproduisez cette manipulation, mais directement sur le disque de spare. Attention: n'écrivez pas au début de ce block device, vous écraseriez les superblocks RAID et LVM, utilisez seek=... pour écrire au delà du 1er méga-octet.

Comment analysez-vous les chiffres que vous observez avec dstat pendant les tests, surtout concernant l'utilisation du processeur ?

5. Système de fichier

Construisez un système de fichier ext3 sur votre logical volume. Montez-le sur le répertoire /srv, faites-en sorte que ceci soit permanent via /etc/fstab.

Effectuez un test simple avec Bonnie++. Comparez ces chiffres avec vos mesures brutes.

6. NFS

Exportez votre système de fichier /srv via NFS en mode synchrone, en utilisant le paquet nfs-kernel-server. Utilisez la même machine comme cliente en montant ce partage sur /mnt/filer.

A l'aide de dd, imaginez un test permettant de faire une mesure simple d'accès en lecture et écriture séquentielle via NFS. Que mesurez-vous exactement quand le client et la machine sont sur le même serveur ?

Last modified 13 years ago Last modified on Mar 5, 2007, 12:17:37 PM