Outils pour utilisateurs

Outils du site


linux:raid (lu 23736 fois)

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
linux:raid [26-05-2014 11:12]
edmc73 créée
linux:raid [08-09-2014 11:25] (Version actuelle)
edmc73
Ligne 3: Ligne 3:
  
 Une bonne doc => http://www.linuxpedia.fr/doku.php/expert/mdadm Une bonne doc => http://www.linuxpedia.fr/doku.php/expert/mdadm
 +
 +http://www.debian-fr.org/raid-logiciel-avec-mdadm-exemple-raid1-niveau-debutant-t27585.html
 +
 +===== Commandes utiles =====
 +
 +Etat du raid
 +<code># cat /proc/mdstat 
 +Personalities : [raid1] [raid6] [raid5] [raid4] 
 +md1 : active raid5 sda5[0] sde5[2] sdc5[1]
 +      527012864 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU]
 +      
 +md0 : active raid1 sda1[0] sde1[4] sdc1[2]
 +      29279104 blocks super 1.2 [3/3] [UUU]
 +      
 +unused devices: <none>
 +</code>
 +
 +  mdadm --examine --scan
 +
 +Mettre à jour les infos
 +  mdadm --examine --scan >> /etc/mdadm/mdadm.conf
 +
 +Pour avoir le détail d'une grappe
 +  mdadm --detail /dev/md0
 +
 +L'état d'un disque
 +  mdadm --examine /dev/sda1
 +
 +Création d'une grappe RAID1 avec deux disques
 +  mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/sda1 /dev/sdb1
 +
 +Création d'une grappe RAID1 de deux disque dont un est absent pour l'instant
 +  mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/sda1 missing
 +
 +Création d'une grappe RAID1 avec d'autres paramètres ...
 +  mdadm --create --verbose /dev/md0 --level=1 --name=xyz --metadata=1.0 --raid-devices=2 /dev/sda1 /dev/sdb1
 +  * nommage explicite de la grappe avec --name=xyz
 +  * forçage du type de superblock  avec --metadata=1.0
 +
 +J’attire spécialement l’attention sur le paramètre metadata=<version>. Il permet de préciser le mode de gestion du « superblock » RAID.
 +
 +Version du superblock (métadonnée RAID)
 +
 +Le « superblock » désigne l’ensemble des données stockées sur les disques et servant à fournir au système les informations lui permettant de gérer les grappes RAID. Le format et le mode de stockage de ces métadonnées sont indiqué par un numéro de version :
 +
 +0.90 : valeur par défaut, sauf indication contraire dans mdadm.conf
 +
 +1.0 : « superblock » stocké en fin de partition, cette valeur est utilisée automatiquement par le partitioneur de openSUSE pour une compatibilité avec l’amorçage du système avant montage des volumes en RAID (avec GRUB2 ou Lilo)
 +
 +1.1 : « superblock » stocké en début de partition
 +
 +1.2 : « superblock » stocké à 4K du début de la partition
 +
 +
 +Changement du nombre de disques de la grappe
 +  mdadm --grow --raid-devices=2 /dev/md0
 +
 +Ajout d'un disque (/dev/sdb1) à une grappe (/dev/md0)
 +  mdadm --add /dev/md0 /dev/sdb1
 +
 +
 +Changer l'espace disque utilisé par la grappe
 +  mdadm --grow /dev/md2 --size=max
 +
 +**max** indique la capacité maximum, sinon préciser une taille en ko
 +
 +
 +Désactiver le disque
 +  mdadm /dev/md0 --fail /dev/sdb1
 +
 +Avant de le retirer de la grappe
 +  mdadm /dev/md0 --remove /dev/sdb1
 +
 +Si c'est un retrait définitif, il est nécessaire de supprimer le superblock du disque
 +  mdadm --zero-superblock /dev/sdb1
 +
 +
 +
 +Arrêt de la grappe
 +  mdadm --stop /dev/md0
 +
 +Écrasement des superblocks pour finaliser la suppression de la grappe
 +  mdadm --zero-superblock /dev/sda1
 +
 +Pour tous les disques de la grappe
 +  mdadm --zero-superblock /dev/sdb1
 +
 +Un examine scan permet de férifier que la grappe a bien été définitivement supprimé
 +  mdadm --examine --scan
 +
 +
 +source pas très lisible : http://blog.ramdani.net/2010/11/commandes-pratiques-pour-gerer-le-raid-soft-sous-linux/
 +
 +
 +===== Réparation =====
 +
 +Imaginons que vous avez fait une connerie et que le serveur ne démarre plus car il n'arrive plus à monter le RAID.
 +
 +Lancer un liveCD et c'est parti.
 +
 +On vérifie la présence des partitions raid
 +
 +<code>root@ubuntu:~# fdisk -l | grep raid
 +/dev/sda1          2048    58593279    29295616   fd  Linux raid autodetect
 +/dev/sda5        58595328   585871359   263638016   fd  Linux raid autodetect
 +/dev/sdb1          2048    58593279    29295616   fd  Linux raid autodetect
 +/dev/sdb5        58595328   585871359   263638016   fd  Linux raid autodetect
 +/dev/sdc1          2048    58593279    29295616   fd  Linux raid autodetect
 +/dev/sdc5        58595328   585871359   263638016   fd  Linux raid autodetect
 +/dev/sdd1          2048    58593279    29295616   fd  Linux raid autodetect
 +/dev/sdd5        58595328   585871359   263638016   fd  Linux raid autodetect
 +/dev/sde1          2048    58593279    29295616   fd  Linux raid autodetect
 +/dev/sde5        58595328   585871359   263638016   fd  Linux raid autodetect
 +</code>
 +
 +On vérifie la validité d'une partition 
 +<code>root@ubuntu:~# mdadm --examine /dev/sda1
 +/dev/sda1:
 +          Magic : a92b4efc
 +        Version : 1.2
 +    Feature Map : 0x0
 +     Array UUID : fd7d0783:025baf16:c02e44cf:f1fda742
 +           Name : serveur:0
 +  Creation Time : Thu Dec  5 07:58:58 2013
 +     Raid Level : raid1
 +   Raid Devices : 5
 +
 + Avail Dev Size : 58558464 (27.92 GiB 29.98 GB)
 +     Array Size : 58558208 (27.92 GiB 29.98 GB)
 +  Used Dev Size : 58558208 (27.92 GiB 29.98 GB)
 +    Data Offset : 32768 sectors
 +   Super Offset : 8 sectors
 +          State : clean
 +    Device UUID : 7b97f61d:bb3a9025:40eb6b07:e4cbdba8
 +
 +    Update Time : Thu Sep  4 13:55:28 2014
 +       Checksum : a71bde76 - correct
 +         Events : 3732599
 +
 +
 +   Device Role : Active device 0
 +   Array State : A.A.A ('A' == active, '.' == missing)
 +</code>
 +
 +
 +On tente d'assembler notre raid (car dans ce cas là, on le connait déjà)
 +
 +<code>root@ubuntu:~# mdadm --assemble /dev/md0 /dev/sd[ace]1 --force
 +mdadm: /dev/md0 has been started with 3 drives (out of 5).
 +
 +root@ubuntu:~# cat /proc/mdstat 
 +Personalities : [raid1] 
 +md0 : active raid1 sda1[0] sde1[4] sdc1[2]
 +      29279104 blocks super 1.2 [5/3] [U_U_U]
 +      
 +unused devices: <none>
 +</code>
 +
 +Ensuite on monte le raid
 +<code>root@ubuntu:~# cd /mnt
 +root@ubuntu:/mnt# ls
 +root@ubuntu:/mnt# mkdir raid
 +root@ubuntu:/mnt# mount /dev/md0 raid/
 +</code>
 +
 +
 +Dans notre cas, le raid /dev/md0 a 5 disques dont 2 ne fonctionnent pas (on le voit par un tiret bas _)
 +<code># cat /proc/mdstat 
 +Personalities : [raid1] [raid6] [raid5] [raid4] 
 +md1 : active raid5 sda5[0] sde5[2] sdc5[1]
 +      527012864 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU]
 +      
 +md0 : active raid1 sda1[0] sde1[4] sdc1[2]
 +      29279104 blocks super 1.2 [5/3] [U_U_U]
 +      
 +unused devices: <none>
 +</code>
 +
 +On peut lui dire de ne gérer que 3 disques
 +<code># mdadm --grow --raid-devices=3 /dev/md0
 +raid_disks for /dev/md0 set to 3
 +</code>
 +
 +On vérifie que les tirets bas ne sont plus là.
 +<code># cat /proc/mdstat 
 +Personalities : [raid1] [raid6] [raid5] [raid4] 
 +md1 : active raid5 sda5[0] sde5[2] sdc5[1]
 +      527012864 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU]
 +      
 +md0 : active raid1 sda1[0] sde1[4] sdc1[2]
 +      29279104 blocks super 1.2 [3/3] [UUU]
 +      
 +unused devices: <none>
 +</code>
 +
 +On peut ensuite sauvegarder cette config
 +  mdadm --detail --scan --verbose > /etc/mdadm/mdadm.conf
linux/raid.1401095523.txt.gz · Dernière modification: 26-05-2014 11:12 de edmc73