TP RAID Logiciel

Transcription

TP RAID Logiciel
ISET KAIROUAN 2014 - 2015
TP
Raid logiciel sous Linux
Auteur
N.GRASSA & J.AMMAR
Installation et configuration du RAID logiciel sous LINUX
Version - Date
Nom du fichier
tp-raid
Mars 2015
TP
Raid logiciel sous Linux
Version 1.0 - Mars 2015
A. Sommaire
A. SOMMAIRE.................................................................................................................................................................................. 2
B. OBJECTIFS ................................................................................................................................................................................... 3
C. ENVIRONNEMENT ......................................................................................................................................................................... 3
D. DISQUES VIRTUELS ........................................................................................................................................................................ 3
E. SUPPORT DU RAID ....................................................................................................................................................................... 4
F. RAID-0 ...................................................................................................................................................................................... 4
F.1. Création du volume « /dev/md0 » ................................................................................................................................... 4
F.2. Création d’un système de fichiers .................................................................................................................................... 5
F.3. Montage du volume ......................................................................................................................................................... 5
F.4. Vérification du volume ..................................................................................................................................................... 6
F.5. Création de fichiers de grande taille ................................................................................................................................ 6
F.6. Provoquons la panne d’un disque .................................................................................................................................... 6
F.7. Changement du disque .................................................................................................................................................... 7
G. RAID-1...................................................................................................................................................................................... 7
G.1. Création du volume « /dev/md1 » ................................................................................................................................... 7
G.2. Création d’un système de fichiers .................................................................................................................................... 8
G.3. Montage du volume « /dev/md1 » ................................................................................................................................. 8
G.4. Copie de fichiers .............................................................................................................................................................. 8
G.5. Et là, c’est le drame ......................................................................................................................................................... 8
G.6. Le remède ........................................................................................................................................................................ 9
G.7. Ajouter un nouveau disque sur un volume RAID-1 ........................................................................................................ 10
H. RAID-5.................................................................................................................................................................................... 12
H.1. Insertion des disques ..................................................................................................................................................... 12
H.2. Création du volume « /dev/md5 » ................................................................................................................................. 12
H.3. Création du système de fichiers ..................................................................................................................................... 13
H.4. La panne ........................................................................................................................................................................ 13
2 / 13
TP
Raid logiciel sous Linux
Version 1.0 - Mars 2015
B. Objectifs
Il existe 2 types de RAID : Le raid logiciel et matériel. Le raid matériel impose la présence physique d’un
contrôleur RAID dans le système. Le RAID logiciel, quant à lui, ne nécessite pas la présence de ce
contrôleur. La gestion du RAID est alors assurée par le système d’exploitation lui-même.
Ce TP propose d’installer, configurer et surveiller des volumes RAID sous LINUX. Les commandes de base
liées au RAID seront utilisées.
C. Environnement
Afin de faciliter les manipulations, nous utiliserons un environnement totalement virtualisé. Les aspects
matériels (Connexion d’un disque physique par exemple) ne seront pas traités ici. Dans la pratique, cela
ne change rien au fonctionnement du RAID même si d’un point de vue performances, 2 fichiers de
disques dur virtuels stockés sur le même système de fichier n’offrent pas les mêmes avantages que 2
disques réels et distincts. En revanche, en ce qui concerne la configuration et l’installation de volumes
RAID, cela ne change rien.
Les manipulations seront effectuées dans les conditions suivantes :
 Environnement de virtualisation : VMWare, VirtualBox ou
autre  Machine virtuelle « Linux Debian/Ubuntu » :

5 disques durs virtuels

1 carte réseau (Installation des paquets RAID)
D. Disques virtuels
Vous allez maintenant créer les disques virtuels permettant de respecter le cahier des charges suivant :
 5 disques

sda : Disque système

sdb, sdc : Disques pour le RAID 0

sdc, sdd : Disques pour le RAID 1
Créez les disques virtuels SCSI (De préférence) nécessaires dans votre environnement de virtualisation. Si le
système est déjà installé, la création du disque sda n’est pas nécessaire.
Installez le système ou utilisez une machine virtuelle existante sous Debian
3 / 13
TP
Version 1.0 - Mars 2015
Raid logiciel sous Linux
E. Support du RAID
Cette partie permet de mettre en place le support du RAID logiciel sous LINUX. Certains paquets sont
nécessaires pour cette prise en charge. Nous utiliserons l’outil « apt-get » pour télécharger les paquets.
Installez le paquet « mdadm » qui contient l’outil permettant de gérer le raid logiciel
L’assistant d’installation vous demandera si la partition système est un volume RAID, ce qui n’est pas le
cas dans ce TP. Il demandera également si vous souhaitez que les volumes RAID soient démarrés
automatiquement.
F. RAID-0
Le volume en RAID-0 (Stripping) sera utilisé pour obtenir des performances accrues en stockant les
données sur 2 disques distincts :
sda
Partition système
montée sur
Sda1
(Partition système)
/
sda5
(swap)
Volume RAID0 - /dev/md0 monté sur /data (Taille 1Go)
sdb
Les données sont
réparties sur 2
disques. Le volume
/dev/md0 est vu
comme un seul
disque
sdb (512 Mo)
sdc
sdc (512 Mo)
F.1. Création du volume « /dev/md0 »
Utilisez la commande suivante pour créer un volume RAID 0 :
Mode CREATION
2 éléments
constituant ce
volume
Les périphériques
concernés : sda et
sdb
mdadm -C /dev/md0 -n 2 -l raid0 /dev/sd[ab]
Commande pour Chemin du nouveau
gérer le RAID sous périphérique RAID
Linux
Niveau de RAID
souhaité
4 / 13
TP
Version 1.0 - Mars 2015
Raid logiciel sous Linux
F.2. Création d’un système de fichiers
Avant de pouvoir stocker des fichiers sur ce volume, il faut créer un système de fichiers, comme pour un
disque normal.
Utilisez la commande suivante pour créer un système de fichier ext4 sur ce volume
root@hostname# mkfs –t ext4 /dev/md0
mke2fs 1.41.12 (17-May-2010)
Étiquette de système de fichiers=
Type de système d'exploitation : Linux
Taille de bloc=4096 (log=2)
Taille de fragment=4096 (log=2)
« Stride » = 128 blocs, « Stripe width » = 256 blocs
66960 i-noeuds, 267776 blocs
13388 blocs (5.00%) réservés pour le super utilisateur
Premier bloc de données=0
Nombre maximum de blocs du système de fichiers=276824064
9 groupes de blocs
32768 blocs par groupe, 32768 fragments par groupe
7440 i-noeuds par groupe
Superblocs de secours stockés sur les blocs :
32768, 98304, 163840, 229376
Écriture
Création
Écriture
fichiers
des tables d'i-noeuds : complété
du journal (8192 blocs) : complété
des superblocs et de l'information de comptabilité du système de
: complété
Le système de fichiers sera automatiquement vérifié tous les 37 montages ou
après 180 jours, selon la première éventualité. Utiliser tune2fs -c ou -i
pour écraser la valeur.
F.3. Montage du volume
La dernière étape consiste à monter le volume RAID sur un répertoire de votre arborescence.
Créez un répertoire /data
Montez le volume /dev/md0 sur le répertoire /data à l’aide de la commande suivante
root@hostname# mount /dev/md0 /data
Afin de conserver le point de montage après redémarrage de la machine, il faut modifier le fichier
« /etc/fstab » et y ajouter la ligne suivante :
/dev/md0
/data
auto
rw
0
0
5 / 13
TP
Raid logiciel sous Linux
Version 1.0 - Mars 2015
F.4. Vérification du volume
Pour vérifier que le volume est correctement initialisé, la commande suivante peut-être utile :
root@hostname# cat /proc/mdstat
Résultat :
Personalities : [raid0]
md0 : active raid0 sdc[1] sdb[0]
1071104 blocks super 1.2 512k chunks
unused devices: <none>
F.5. Création de fichiers de grande taille
Afin de tester le fonctionnement du volume, créez un fichier volumineux à l’aide de la commande suivante
(60000 blocs de 1k) :
root@hostname# dd if=/dev/zero of=/data/file1 bs=1k count=60000
root@hostname# ls –lh /data
total 59M
-rw-r--r-- 1 root root 59M 25 avril 09:22 file1
Recommencez l’opération pour créer d’autres fichiers
F.6. Provoquons la panne d’un disque
Notez qu’une panne sur un disque en RAID0 rend le volume indisponible. Le but du RAID0 n’est pas
d’augmenter la tolérance de panne mais plutôt d’apporter des performances accrues.
Le seul moyen de provoquer une panne est de retirer physiquement un disque.
Dans votre environnement virtuel, supprimer le disque « sdb ». Ensuite, utilisez la commande « dd » pour
ajouter un nouveau fichier dans « /data ».
Regardez les logs « /var/log/syslog » et constatez les erreurs d’écriture. D’après les logs, dans quel état est le
volume RAID ?
Redémarrez la machine virtuelle et constatez l’état du volume /dev/md0 ?
6 / 13
TP
Version 1.0 - Mars 2015
Raid logiciel sous Linux
F.7. Changement du disque
Stoppez la machine virtuelle, ajoutez un nouveau disque et recommencez toutes les étapes de création du
volume « /dev/md0 » avec le nouveau disque inséré ( « fdisk -l » pour obtenir la liste des disques détectés)
Conclusion sur la perte de données suite à une panne d’un disque d’un volume en RAID-0 ?
G. RAID-1
Le Raid-1 apporte la tolérance de panne en dupliquant les données sur plusieurs disques. L’intérêt étant
qu’une panne sur un disque ne provoque aucune destruction de données. Voici le cahier des charges :
sda
Partition système
montée sur
/
Sda1
(Partition système)
sda5
(swap)
Volume RAID0 - /dev/md0 monté sur /data (Taille 1Go)
sdb
Les données sont
réparties sur 2
disques. Le volume
/dev/md0 est vu
comme un seul
disque
sdb (512 Mo)
sdc
sdc (512 Mo)
Volume RAID1 - /dev/md1 monté sur /data-backup (Taille 1Go)
sdd
Les données sont
dupliquées sur 2
disques. Le volume
/dev/md1 est vu
comme un seul
disque
sdd (1 Go)
sde
sde (1 Go)
G.1. Création du volume « /dev/md1 »
Utilisez la commande suivante permettant de créer un volume RAID1 avec les disques « sdd » et « sde »
7 / 13
TP
Version 1.0 - Mars 2015
Raid logiciel sous Linux
root@hostname# mdadm -C /dev/md1 -n 2 -l raid1 /dev/sd[de]
G.2. Création d’un système de fichiers
Avant de pouvoir stocker des fichiers sur ce volume, il faut créer un système de fichiers, comme pour un
disque normal.
Utilisez la commande suivante pour créer un système de fichier ext4 sur ce volume
root@hostname# mkfs –t ext4 /dev/md1
G.3. Montage du volume « /dev/md1 »
La dernière étape consiste à monter le volume RAID sur un répertoire de votre arborescence.
Créez un répertoire /data-backup
Montez le volume /dev/md1 sur le répertoire /data-backup à l’aide de la commande suivante
root@hostname# mount /dev/md1 /data-backup
Afin de conserver le point de montage après redémarrage de la machine, il faut modifier le fichier
« /etc/fstab » et y ajouter la ligne suivante :
/dev/md1
/data-backup
auto
rw
0
0
G.4. Copie de fichiers
Copiez les fichiers du répertoire « /data » vers une archive compressée dans le répertoire « /data-backup » à
l’aide de la commande suivante
root@hostname# tar -czf /data-backup/backup1.tar.gz /data/
Vérification de la présence de l’archive :
root@hostname# ls –lh /data-backup
total 76
-rw-r--r-- 1 root root 59801 25 avril 11:23 backup1.tar.gz
drwx------ 2 root root 16384 25 avril 11:14 lost+found
G.5. Et là, c’est le drame
Déconnectez le disque « sde » de la machine virtuelle.
8 / 13
TP
Raid logiciel sous Linux
Version 1.0 - Mars 2015
Créez un gros fichier dans le répertoire « /data-backup » en utilisant la commande « dd » suivante :
root@hostname# dd if=/dev/zero of=/data-backup/file1 bs=1k count=100000
Affichez le status des volumes RAID avec la commande suivante
root@hostname# cat /proc/mdstat
Et constatez le problème :
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4]
[raid10]
md1 : active raid1 sde[1](F) sdd[0]
1048564 blocks super 1.2 [2/1] [U_]
md0 : active raid0 sdc[1] sdb[0]
1071104 blocks super 1.2 512k chunks
unused devices: <none>
Que s’est-il passé ?
G.6. Le remède
Lorsqu’un disque est « faulty », il faut l’enlever du volume afin de le remplacer. Utilisez la commande
suivante.
root@hostname# mdadm --remove /dev/md1 /dev/sde
Puis :
root@hostname# cat /proc/mdstat
Le disque ne fait alors plus partie du volume :
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4]
[raid10]
md0 : active raid0 sdb[0] sdc[1]
1071104 blocks super 1.2 512k chunks
md1 : active raid1 sdd[0]
1048564 blocks super 1.2 [2/1] [U_]
unused devices: <none>
9 / 13
TP
Raid logiciel sous Linux
VVersion 1.0 - Mars 2015
Après avoir éteint la machine, remplacé le disque défaillant (Par un autre disque virtuel) et démarré la
machine, ajouter le nouveau disque au volume « /dev/md1 ». Aidez-vous de la commande suivante
Pour repérer le nouveau disque :
root@hostname# fdisk –l
Résultat :
Disk /dev/sda: 2147 MB, 2147483648 bytes
255 heads, 63 sectors/track, 261 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000af620
…
Disk /dev/sde: 1073 MB, 1073741824 bytes
255 heads, 63 sectors/track, 130 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Disk /dev/sde doesn't contain a valid partition table
…
Ajouter sde au volume md1 :
root@hostname# mdadm --add /dev/md1 /dev/sde
Et immédiatement après :
root@hostname# cat /proc/mdstat
Etat de la reconstruction du volume :
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4]
[raid10]
md0 : active raid0 sdb[0] sdc[1]
1071104 blocks super 1.2 512k chunks
md1 : active raid1 sde[2] sdd[0]
1048564 blocks super 1.2 [2/1] [U_]
[=============>.......] recovery = 68.4% (717376/1048564) finish=0.0min
speed=239125K/sec
unused devices: <none>
G.7. Ajouter un nouveau disque sur un volume RAID-1
Cette opération peut-être utile pour augmenter la tolérance de panne. Elle ne change rien aux
performances. Le but est de positionner un disque comme une roue de secours (Spare Disk). Ce nouveau
disque prendra le relais si l’un des autres devenait défaillant.
10 / 13
TP
Raid logiciel sous Linux
Version 1.0 - Mars 2015
Stoppez la machine virtuelle. Ajouter un nouveau disque de la même taille que les autres (1 Go). Démarrez la
machine. Vérifiez que le disque est bien détecté et ajoutez le disque comme « Spare » dans le volume grâce
à la commande suivante
root@hostname# mdadm --add /dev/md1 /dev/sdf
Et immédiatement après :
root@hostname# cat /proc/mdstat
Etat de la reconstruction du volume :
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4]
[raid10]
md0 : active raid0 sdb[0] sdc[1]
1071104 blocks super 1.2 512k chunks
md1 : active raid1 sdf[3](S) sdd[0] sde[2]
1048564 blocks super 1.2 [2/2] [UU]
unused devices: <none>
Déclarez le disque « sde » en tant que disque défaillant (faulty)
root@hostname# mdadm -f /dev/md1 /dev/sde
Observez alors ce qui se passe
root@hostname# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4]
[raid10]
md0 : active raid0 sdb[0] sdc[1]
1071104 blocks super 1.2 512k chunks
md1 : active raid1 sdf[3] sdd[0] sde[2](F)
1048564 blocks super 1.2 [2/1] [U_]
[=======>.............] recovery = 38.1% (400000/1048564) finish=0.0min
speed=200000K/sec
unused devices: <none>
Que s’est-il passé ?
11 / 13
TP
Version 1.0 - Mars 2015
Raid logiciel sous Linux
H. RAID-5
Le RAID-0 apporte les performances alors que le RAID-1 apporte plutôt la tolérance de panne. Et nous
pouvions bénéficier des deux en même temps. C’est l’objectif que vous allez atteindre en utilisant le
RAID-5 avec la configuration suivante :
sda
Partition système
montée sur
Sda1
(Partition système)
/
sda5
(swap)
Volume RAID0 - /dev/md5 monté sur /data (Taille 1Go)
sdb
sdb (512 Mo)
sdc
Les données et la
parité sont réparties
sur 4 disques. Le
volume
/dev/md5 est vu
comme un seul
disque
sdc (512 Mo)
sde
sde (512 Mo)
sdf
sdf (512 Mo)
H.1. Insertion des disques
Après avoir démonté les 2 points de montage « /data » et « /data-backup », stoppez les volumes RAID en
utilisant les commandes suivantes
root@hostname# mdadm -S /dev/md0
root@hostname# mdadm -S /dev/md1
H.2. Création du volume « /dev/md5 »
Stoppez la machine virtuelle et créez les disques nécessaires à la configuration ci-dessus (4 disques de 512
Mo). Redémarrez la machine et créez un nouveau volume RAID-5 « /dev/md5 » en utilisant les mêmes
commandes que pour le RAID-0 ou le RAID-1 (En spécifiant un niveau de RAID à 5 bien sûr)
12 / 13
TP
Raid logiciel sous Linux
VVersion 1.0 - Mars 2015
H.3. Création du système de fichiers
Assurez-vous que le volume est bien installé et créez un système de fichier ext4. Ensuite, affichez
immédiatement l’état du volume
Que se passe t-il ?
Montez le volume sur le point de montage « /data ». Affichez les détails du volume grâce à la commande
suivante
root@hostname# mdadm --detail /dev/md5
Quelle est la taille du volume ? Justifiez cette taille
H.4. La panne
Le grand intérêt du RAID-5 est la tolérance de panne. La disponibilité des données pendant une panne
d’un disque est primordiale. Nous allons donc provoquer une panne sur un disque.
Déconnecter un des disques virtuels dans votre environnement de virtualisation. Visualisez les logs du
système et affichez l’état du volume. Que se passe-t-il ?
Stoppez la machine, réinsérer le disque virtuel. Démarrez la machine. Le disque défaillant a-t-il été réintégré
dans le volume ? Si non, que faire (Notez les commandes utilisées et les différents états observés du
volume) ?
13 / 13