Intitulé du document : Comment installer un système linux fiable et flexible avec mdadm, lvm et reiserfs ?
Localisation : http://www.opendoc.net/comment-installer-systeme-linux-fiable-flexible-raid-1-mdadm-lvm-reiserfs
Auteur : Alexandre Bray
Vos questions : support@opendoc.net
Date de création : 2010/10/01
Date de modification : 2010/10/18
Source : professionnel
http://tldp.org/HOWTO/LVM-HOWTO/
Tags :
Etat de la documentation : 100% completed
Vous souhaitez contribuer : Comment soutenir opendoc ?
Informations : Quelle est notre démarche ?
Licence : Contrat Creative Commons
opendoc.net est mis à disposition selon les termes de la licence Creative Commons Paternité - Pas d'Utilisation Commerciale - Partage à l'Identique 3.0 non transcrit.

Comment installer un système linux fiable et flexible avec mdadm, lvm et reiserfs ?

référez vous à la procédure ”Comment installer une Debian ?” pour une installation pas à pas.

1 Introduction

Nous avons tous été confronté un jour en tant qu'administrateur système à des problèmes de fiabilité ou des contraintes systèmes. Je ne vais pas réinventer la roue, des solutions existent depuis de très nombreuse années sous Linux et il est tellement simple d'en profiter alors pourquoi s'en priver. Nous allons voir comment répondre à nos deux problématiques :

  • La fiabilité : Avec mdadm il possible de réaliser simplement du RAID software.
  • La flexibilité : mdadm permet est aussi la flexibilité car il est possible de gérer des RAID avec des disques dur de taille différentes. LVM apporte de la flexibilité avec la possibilité de redimentionner simplement des partitions. Reiserfs permet d'accepter le redimentionnement à chaud, c'est très pratique pour éviter les interruptions de services.

Voici un schéma simplifié de la solution proposée :

2 Installation

Cette procédure est bête et méchante, elle vous permettra de préparer votre système avant de pouvoir passer à la suite.

Le contexte :

  • md0 : /boot
  • md1 : /
  • md2 : partition de type volume physique
Descriptif Support Visuel
1 Nous allons procéder à un partitionnement manuel du système
2 Sélectionner le premier disque
3 Créer une première partition
4 De 512 Mo
5 En primaire
6 En début de disque
7 Choisissez le type RAID pour votre partition.
La procédure montre un fonctionnement avec un RAID 1, mais cela peut fonctionner avec tous types de RAID (0,1,5,6,10 …)
8 Valider les changements
9 Faites de même avec le second disque.
Profitez en pour créer les partions qui ont été évoquées dans le contexte.
Vous devez obtenir ceci :
Création du RAID
10 Créer un périphérique multidisque
11 En RAID 1
12 Avec 2 disques
13 Sélectionner vos disques
14 Votre volume RAID est prêt.
Sélectionner le premier RAID
15 Formater le en EXT3
16 Spécifier le montage /boot. Faites de même avec votre second RAID. Formater le aussi en EXT3 et faites le montage sur /
Création du LVM
17 Après avoir sélectionné votre dernière partition RAID, préparer la partition en volume physique
18 Une fois revenu dans le menu principal, vous allez pouvoir commencer à gérer votre LVM
19 Créer un groupe de volumes
20 Nommé le par exemple VG
21 Choisissez une partition à ajouter, ici md2
22 Créer un volumes logique
23 Ici je l'ai nommé SWAP et donné lui une taille
Faites de même pour VAR
24 Sélectionner votre LV SWAP ou VAR.
25 Après avoir sélectionner votre lv VAR, formater votre partition en reiserfs et faites le montage sur /var
26 Appliquer les changements
27 Installer GRUB sur le secteur d'amorçage

3 Ajustement de grub

Bien que votre système soit en raid 1 il n'est pas pour autant tout à fait opérationnel. En effet, comme vous avez du le constater le gestionnaire de démarage, GRUB, est seulement installé sur le premier disque (sda). Pour remédier à cela il faut installer GRUB aussi sur le second disque.

  • Rendez vous dans le répertoire de GRUB et régénérer le fichier device.map :
cd /boot/grub
rm device.map
grub --device-map=device.map
  • Editer le fichier menu.lst et indiquer les informations suivantes :
# Put static boot stanzas before and/or after AUTOMAGIC KERNEL LIST

title           Debian GNU/Linux, kernel 2.6.26-2-amd64 (hd0,0)
root            (hd0,0)
kernel          /vmlinuz-2.6.26-2-amd64 root=/dev/md1 ro quiet
initrd          /initrd.img-2.6.26-2-amd64
savedefault

title           Debian GNU/Linux, kernel 2.6.26-2-amd64 (hd1,0)
root            (hd1,0)
kernel          /vmlinuz-2.6.26-2-amd64 root=/dev/md1 ro quiet
initrd          /initrd.img-2.6.26-2-amd64
savedefault

title           Debian GNU/Linux, kernel 2.6.26-2-amd64 (hd0,0 : single-user mode)
root            (hd0,0)
kernel          /vmlinuz-2.6.26-2-amd64 root=/dev/md1 ro single
initrd          /initrd.img-2.6.26-2-amd64
savedefault

title           Debian GNU/Linux, kernel 2.6.26-2-amd64 (hd1,0 : single-user mode)
root            (hd1,0)
kernel          /vmlinuz-2.6.26-2-amd64 root=/dev/md1 ro single
initrd          /initrd.img-2.6.26-2-amd64
savedefault

### BEGIN AUTOMAGIC KERNELS LIST

Quelques explications :
Ces lignes ont été rajoutées avec la partie générée automatiquement pour permettre :

  1. le boot sur le premier disque
  2. le boot sur le second disque
  3. le boot sur le premier disque en mode “single-user”
  4. le boot sur le second disque en mode “single-user”
  • Installer GRUB sur les 2 disques :
 grub-install /dev/sdb
 grub-install /dev/sda

4 Test du RAID

4.1 Boot en mode dégradé

Retirer le premier disque, normalement votre machine devrait booter.
Vous pouvez vérifier qu'effectivement votre RAID est dans un état dégradé mais fonctionnel

debian-test:~# cat /proc/mdstat
Personalities : [raid1]
md2 : active raid1 sdb3[1]
      2931776 blocks [2/1] [_U]

md1 : active raid1 sdb2[1]
      3903680 blocks [2/1] [_U]

md0 : active raid1 sdb1[1]
      497856 blocks [2/1] [_U]

4.2 Reconstruction du RAID

Après avoir réinséré votre disque, il est bien possible que votre RAID ne soit pas resynchronisé automatiquement. Pour le forcer, ajouter les partitions du premier disque dans les md associés :

debian-test:~# mdadm --manage /dev/md0 -a /dev/sda1
mdadm: re-added /dev/sda1
debian-test:~# mdadm --manage /dev/md1 -a /dev/sda2
mdadm: re-added /dev/sda2
debian-test:~# mdadm --manage /dev/md2 -a /dev/sda3
mdadm: re-added /dev/sda3

debian-test:~# cat /proc/mdstat
Personalities : [raid1]
md2 : active raid1 sda3[2] sdb3[1]
      2931776 blocks [2/1] [_U]
        resync=DELAYED

md1 : active raid1 sda2[2] sdb2[1]
      3903680 blocks [2/1] [_U]
      [===============>.....]  recovery = 75.9% (2966144/3903680) finish=0.2min speed=54286K/sec

md0 : active raid1 sda1[0] sdb1[1]
      497856 blocks [2/2] [UU]

unused devices: <none>

Votre RAID se resynchronise.

5 Nouveau RAID 1

Nous avons ajouté 2 nouveaux disques afin de créer un nouveau RAID 1.

5.1 Création des partitions de type RAID

fsdisk /dev/sdc
Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-1044, default 1): 
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-1044, default 1044): 1000

Command (m for help): t
Selected partition 1
Hex code (type L to list codes): fd
Changed system type of partition 1 to fd (Linux raid autodetect)

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

Faites de même avec sdd

5.2 Création du RAID

Vous avez vos 2 disques avec une partition compatible raid. Il vous faut maintenant créer votre raid avec la commande suivante :

debian-test:~#  mdadm -C /dev/md4 --level=raid1 --raid-devices=2 /dev/sd[cd]1
mdadm: array /dev/md4 started.
debian-test:~# cat /proc/mdstat 
Personalities : [raid1] 
md4 : active raid1 sdc1[0] sdd1[1]
      8032384 blocks [2/2] [UU]
      [======>..............]  resync = 34.4% (2770304/8032384) finish=0.6min speed=138515K/sec
      
md2 : active raid1 sda3[0] sdb3[1]
      2931776 blocks [2/2] [UU]
      
md1 : active raid1 sda2[0] sdb2[1]
      3903680 blocks [2/2] [UU]
      
md0 : active raid1 sda1[0] sdb1[1]
      497856 blocks [2/2] [UU]
      
unused devices: <none>

modification du fichier de configuration :

mdadm --detail --scan
ARRAY /dev/md0 level=raid1 num-devices=2 metadata=00.90 UUID=e1b8bc13:117cf7b0:a032d502:0d26231e
ARRAY /dev/md1 level=raid1 num-devices=2 metadata=00.90 UUID=2a58f89b:f3ed1c03:c27cdc40:6749fdd6
ARRAY /dev/md2 level=raid1 num-devices=2 metadata=00.90 UUID=131aca61:5f304727:0e62cdc9:41b755eb
ARRAY /dev/md4 level=raid1 num-devices=2 metadata=00.90 UUID=87d28e02:4470ede7:75eab842:89192630

Reprenez la ligne concernant votre raid (md4) et ajouter la dans /etc/mdadm/mdadm.conf. Profitez en pour ajouter la ligne suivante qui permettra d'envoyer un mail au user root en cas de défaillance du raid :

MAILADDR root

6 Gestion du LVM

6.1 Déclaration d'un nouveau PV

avant :

debian-test:~# pv display
-bash: pv: command not found
debian-test:~# pvdisplay 
  --- Physical volume ---
  PV Name               /dev/md2
  VG Name               VG
  PV Size               2,80 GB / not usable 3,06 MB
  Allocatable           yes (but full)
  PE Size (KByte)       4096
  Total PE              715
  Free PE               0
  Allocated PE          715
  PV UUID               f4Ftq2-N5Np-H5ZW-YxSw-DBGA-4OAO-3YcYNs

Ajouter la partition /dev/md4 en tant que volume physique :

debian-test:~# pvcreate /dev/md4
  Physical volume "/dev/md4" successfully created
  
debian-test:~# pvdisplay 
  --- Physical volume ---
  PV Name               /dev/md2
  VG Name               VG
  PV Size               2,80 GB / not usable 3,06 MB
  Allocatable           yes (but full)
  PE Size (KByte)       4096
  Total PE              715
  Free PE               0
  Allocated PE          715
  PV UUID               f4Ftq2-N5Np-H5ZW-YxSw-DBGA-4OAO-3YcYNs
   
  "/dev/md4" is a new physical volume of "7,66 GB"
  --- NEW Physical volume ---
  PV Name               /dev/md4
  VG Name               
  PV Size               7,66 GB
  Allocatable           NO
  PE Size (KByte)       0
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               v87e2S-NABb-Hbl0-92n0-pQaV-GNpW-WDnHXZ

6.2 Ajout du nouveau PV dans le VG existant

avant

debian-test:~# vgdisplay 
  --- Volume group ---
  VG Name               VG
  System ID             
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  7
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               2
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               2,79 GB
  PE Size               4,00 MB
  Total PE              715
  Alloc PE / Size       715 / 2,79 GB
  Free  PE / Size       0 / 0   
  VG UUID               fk1Gee-jeDO-9aZK-eHxn-pwNc-xuCM-88ngk2

ajout du nouveau PV dans le VG existant :

debian-test:~# vgextend VG /dev/md4

debian-test:~# vgdisplay 
  --- Volume group ---
  VG Name               VG
  System ID             
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  8
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               2
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               10,45 GB
  PE Size               4,00 MB
  Total PE              2675
  Alloc PE / Size       715 / 2,79 GB
  Free  PE / Size       1960 / 7,66 GB
  VG UUID               fk1Gee-jeDO-9aZK-eHxn-pwNc-xuCM-88ngk2

Vous pouvez constater que l'espace libre est passé de 0 à 7,66 Go

6.3 Agrandissement du LV nommé VAR

avant :

lvdisplay
 --- Logical volume ---
  LV Name                /dev/VG/VAR
  VG Name                VG
  LV UUID                mI2zZc-80Pr-VbfJ-fBuc-ec3D-Nc85-QB6T43
  LV Write Access        read/write
  LV Status              available
  # open                 2
  LV Size                2,14 GB
  Current LE             549
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:1

Agrandissement de LV :

debian-test:~# lvextend -L +3G /dev/VG/VAR 
  Extending logical volume VAR to 5,14 GB
  Logical volume VAR successfully resized

7 Agrandissement de la partition à chaud avec Reiserfs

Avant

debian-test:~# df -h
Sys. de fich.         Tail. Occ. Disp. %Occ. Monté sur
/dev/md1              3,7G  450M  3,1G  13% /
tmpfs                 187M     0  187M   0% /lib/init/rw
udev                   10M  724K  9,3M   8% /dev
tmpfs                 187M     0  187M   0% /dev/shm
/dev/md0              471M   21M  426M   5% /boot
/dev/mapper/VG-VAR    2,2G  260M  1,9G  12% /var

Agrandissement de la partition :

debian-test:~# resize_reiserfs /dev/VG/VAR 
resize_reiserfs 3.6.19 (2003 www.namesys.com)
resize_reiserfs: On-line resizing finished successfully.

debian-test:~# df -h
Sys. de fich.         Tail. Occ. Disp. %Occ. Monté sur
/dev/md1              3,7G  450M  3,1G  13% /
tmpfs                 187M     0  187M   0% /lib/init/rw
udev                   10M  724K  9,3M   8% /dev
tmpfs                 187M     0  187M   0% /dev/shm
/dev/md0              471M   21M  426M   5% /boot
/dev/mapper/VG-VAR    5,2G  260M  4,9G   5% /var

Comme vous pouvez le constater, côté système la partition à bien évoluée de 1,9 Go à 4,9 Go de disponible.

8 Conclusion

Cette procédure à bien évidemment des limites. On ne parle pas ici de comment correctement partitionner son système. Mais le but premier et de montrer qu'il existe depuis très longtemps des principes simples qui peuvent véritablement être des atouts. Ce procédé permet de faire évoluer la machine avec plus de stockage sans pour autant à la réinstaller. Un disque dur défaillant est très simple à remplacer, le système n'est pas dépendant d'une carte RAID propriétaire, n'importe quel disque de même taille voir plus grand peut être utilisé.

Avec ce mode de fonctionnement très flexible, on peux se projeter un minimum dans le temps en sachant que notre système sera évolutif à condition d'avoir des emplacements libres pour de nouveaux disques mais aussi du SPARE. Cette flexibilité peut être utile pour de petites entreprises mais aussi pour des plus grandes qui souhaiteraient le coupler avec du DRBD pour un cluster Actif/Passif.

solutions/comment-installer-systeme-linux-fiable-flexible-raid-1-mdadm-lvm-reiserfs.txt · Dernière modification: 2013/07/14 17:19 (modification externe)
 
Sauf mention contraire, le contenu de ce wiki est placé sous les termes de la licence suivante : CC Attribution-Noncommercial-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki