Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 02/08/2006, à 19:38

cep

Raid1 logiciel après installation classique pour y mettre /home

Le but de ce poste est de montrer de façon simplifiée (les procédures de gestion sont occultées) une méthode pour créer sur une installation classique déjà existante, un système de raid1 et y installer /home qui auparavant était sur la partition racine.

On crée une partion /dev/hda3 et une partition /dev/hdb1 sur un autre disque. On ne détaille pas la création des partitions. Voir si nécessaire les différents tutos, y compris  http://forum.ubuntu-fr.org/viewtopic.php?pid=135436

Avant tout on vérifie que mdadm est installé, ce qui devrait être le cas :

:~$ aptitude show mdadm |grep -i état
État: installé

Pour ne pas avoir à taper la commande sudo à chaque fois, on utilise sudo -s ( exit pour en sortir)

Comme je n'avais pas mis le type fd aux partitions hda3 et hdb1 j'utilise parted pour le faire :
 

:~# parted -s /dev/hda set 3 raid on
  :~# parted -s /dev/hdb set 1 raid on

On aurait très bien pu le modifier avec cfdisk ou autre fdisk.

Les partitions n'étant pas montées, je crée /dev/md0 avec level 1 et en incorporant les deux partitions (je n'ai pas de disque spare) :
 

:~# mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/hda3 /dev/hdb1
. . .
mdadm : array /dev/md0 started

On vérifie :
 

:~# mdadm --detail /dev/md0
/dev/md0:
        Version : 00.90.03
  Creation Time : Wed Aug  2 16:46:40 2006
     Raid Level : raid1
     Array Size : 883456 (862.89 MiB 904.66 MB)
    Device Size : 883456 (862.89 MiB 904.66 MB)
   Raid Devices : 2
  Total Devices : 2
Preferred Minor : 0
    Persistence : Superblock is persistent

    Update Time : Wed Aug  2 16:49:25 2006
          State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
  Spare Devices : 0

           UUID : 2c2c322b:802a0582:ea7ace9d:3682902f
         Events : 0.2

    Number   Major   Minor   RaidDevice State
       0       3        3        0      active sync   /dev/hda3
       1       3       72        1      active sync   /dev/hdb1

On crée le système de fichiers sur /dev/md0 :

 

:~# mkfs.ext3 -v -m1 /dev/md0
mke2fs 1.38 (30-Jun-2005)

À toutes fins utiles, on crée le fichier mdadm.conf (on a cependant Superblock is persistent) :

 

:~#  mdadm --detail --scan > /etc/mdadm/mdadm.conf
  :~# cat /etc/mdadm/mdadm.conf
ARRAY /dev/md0 level=raid1 num-devices=2 UUID=2c2c322b:802a0582:ea7ace9d:3682902f

que je modifie pour avoir :

DEVICE    /dev/hda3 /dev/hdb1
ARRAY /dev/md0 level=raid1 num-devices=2 UUID=2c2c322b:802a0582:ea7ace9d:3682902f

Enfin on monte /dev/md0 sur /mnt/raid pour y copier la totalité de /home (plusieurs users) :
 

:~# mkdir /mnt/raid
  :~# mount -t ext3 /dev/md0 /mnt/raid
  :~# rsync -a /home/ /mnt/raid/

Avec nano ou autre, on crée la ligne de mount de /home/ dans /etc/fstab. Voilà ce que j'ai mis :

/dev/md0       /home           ext3    defaults        0       2

Enfin on passe en telinit 1 pour renommer /home en /home_old afin d'avoir une "sauvegarde" au cas ou, et on crée un autre point de montage /home :
 

:~# telinit 1
. . .
:~# mv /home/ /home_old
:~# mkdir /home

et on reboote puis on vérifie :

:~$ mount |grep /home
/dev/md0 on /home type ext3 (rw)
:~$ cat /proc/mdstat
Personalities : [raid1]
md0 : active raid1 hda3[0] hdb1[1]
      883456 blocks [2/2] [UU]
     
unused devices: <none>

Pour les différentes commandes de gestion du raid, voir le man mdadm et divers sites :
http://www.labo-linux.org/cours/module-1/chapitre-13-raid-et-lvm/
http://www.linuxdevcenter.com/pub/a/linux/2002/12/05/RAID.html?page=1
Et pour une installation de A à Z voir :
http://doc.ubuntu-fr.org/installation/raid1_software

Dernière modification par cep (Le 03/08/2006, à 06:53)

Hors ligne

#2 Le 19/08/2006, à 18:00

cep

Re : Raid1 logiciel après installation classique pour y mettre /home

Il est aussi possible d'ajouter le raid en incorporant une partition déjà existante, tout en préservant les données présentes sur cette partition.
La procédure peut être faite en recovery ou bien en session normale. Dans ce cas, il sera préférable de passer ensuite en telinit 1 pour "confirmer" le rsync et pouvoir démonter et remonter la partition /home, ou rebooter.
Bien entendu des sauvegardes des données sont indispensables, on n'est pas à l'abri d'une erreur de frappe.

Exemple : ajouter le raid1 pour /home actuellement sur hda3 avec raid sur hdc3

- ajouter le type fd à /dev/hda3 et /dev/hdc3 comme expliqué plus haut
- créer le raid1 avec la ligne de commande sans omettre missing. Missing portera sur l'actuelle partition /home afin qu'elle soit préservée dans un premier temps :
  :~# mdadm --create /dev/md0 --level 1 --raid-devices=2 missing /dev/hdc3
. . .
mdadm : array /dev/md0 started

On crée le système de fichiers de son choix sur /dev/md0:
  :~# mkfs.ext3 -m1 /dev/md0

On crée le point de montage, on monte /dev/md0 et on copie /home/ sur le point de montage avec cp -a ou rsync ( attention si vous utilisez les ACL à prendre les bonnes options ).
  :~# mkdir /mnt/raid
  :~# mount -t ext3 /dev/md0 /mnt/raid
  :~# rsync -aH /home/ /mnt/raid/

- modifier /etc/fstab pour avoir :
/
/dev/md0       /home           ext3    defaults        0       2

Ensuite on reboute ou on démonte /dev/md0 et /home puis on les remonte mount -a -o remount

On ajoute l'ancienne partition /home /dev/hda3 qui avait été déclare missing :

  :~# mdadm --add /dev/md0 /dev/hda3
mdadm: hot added /dev/hda3
   
- on vérifie que tout se passe bien et surtout on ne reboote pas avant que ce soit fini :
:~# cat /proc/mdstat
Personalities : [raid1]
md0 : active raid1 hda3[2] hdc3[1]
      2666688 blocks [2/1] [_U]
      [>....................]  recovery =  3.9% (106560/2666688) finish=8.4min speed=5074K/sec

unused devices: <none>
  :~# cat /proc/mdstat
Personalities : [raid1]
md0 : active raid1 hda3[2] hdc3[1]
      2666688 blocks [2/1] [_U]
      [===================>.]  recovery = 99.1% (2646144/2666688) finish=0.0min speed=4456K/sec

unused devices: <none>
  :~# cat /proc/mdstat
Personalities : [raid1]
md0 : active raid1 hda3[0] hdc3[1]
      2666688 blocks [2/2] [UU]

unused devices: <none>

Voilà, c'est terminé. On aurait aussi pu vérifier le déroulement avec :
watch -n 30 cat /proc/mdstat ou tout autre intervalle que 30 secondes.

- on crée /etc/mdadm/mdadm.conf comme expliqué plus haut :

  :~# mdadm --detail --scan > /etc/mdadm/mdadm.conf

et on le modifie avec nano ou autre pour ajouter la ligne DEVICE et avoir :

DEVICE /dev/hda3 /dev/hdc3
ARRAY /dev/md0 level=raid1 num-devices=2 UUID=7f526abd:1e0c5c3c:3595d176:13

C'est terminé, vous pouvez rebouter une dernière fois pour vérifier que tout est ok, qu'il n'y a pas de message douteux dans les logs.

La procédure a été faite sur /home mais aurait très bien pu se faire sur un autre point de montage.

Si l'on a deux disques parfaitement identiques, on peut copier la table des partitions par :
sfdisk -d /dev/hda | sfdisk /dev/hdb
Voir le man sfdisk et les possibilités d'utiliser sfdisk avec l'option -d.
Créer ensuite les systèmes de fichiers avec les vérifications nécessaires.

Hors ligne

#3 Le 24/08/2006, à 14:56

cep

Re : Raid1 logiciel après installation classique pour y mettre /home

En complément, sute à l'installation de mdadm on trouve une documentation assez complète à l'adresse :  /usr/share/doc/mdadm/

Par exemple :
w3m /usr/share/doc/mdadm/rootraiddoc.97.html
ou file:///usr/share/doc/mdadm/rootraiddoc.97.html  depuis firefox

Hors ligne