Administrators, autoreview, Vérificateurs d’utilisateurs, checkuser-log, editor, reviewer, usersnoop
3 321
modifications
m (a renommé Raid (mdam) en Raid logiciel (mdadm) : petite erreur de frappe ; il manquait un "d" à mdadm. Et rajout de la mention "logiciel") |
Aucun résumé des modifications |
||
(11 versions intermédiaires par 4 utilisateurs non affichées) | |||
Ligne 1 : | Ligne 1 : | ||
__TOC__ | |||
<br/> | <br/> | ||
<br/> | <br/> | ||
Ligne 10 : | Ligne 11 : | ||
Désolé, toutes ces sources sont en anglais, mais les sources françaises ne m'ont pas plu ; trop souvent de simples billets qui balancent des commandes toutes les deux lignes sans trop expliquer pourquoi...<br/> | Désolé, toutes ces sources sont en anglais, mais les sources françaises ne m'ont pas plu ; trop souvent de simples billets qui balancent des commandes toutes les deux lignes sans trop expliquer pourquoi...<br/> | ||
<br/> | <br/> | ||
Je me suis efforcé de détailler toutes les étapes requises pour construire une grappe RAID1 avec mdadm, et je | Je me suis efforcé de détailler toutes les étapes requises pour construire une grappe RAID1 avec mdadm, et je traite uniquement de ce cas précis ! (même si j'en rajoute un peu à la fin...). Les plus érudits d'entre vous trouveront ce tutoriel bien long pour pas grand chose mais c'est tout à fait volontaire ; l'objectif étant d'apporter une source française supplémentaire sur le sujet, et qu'elle soit plus abordable aux novices que celles déjà présentes actuellement.<br/> | ||
<br/> | <br/> | ||
La manipulation des disques dur restera toujours une opération délicate demandant un maximum d'attention et ne devant pas se faire à la va-vite. Rien de mieux qu'un bon dimanche pluvieux pour s'aventurer dans ces contrées. Ne jamais oublier que les erreurs de manipulation sur les disques sont souvent irréversibles. Vous l'aurez compris, je vous dis tout ça afin de vous désigner comme seul responsable en cas de problèmes qui pourraient survenir sur votre matériel.<br/> | La manipulation des disques dur restera toujours une opération délicate demandant un maximum d'attention et ne devant pas se faire à la va-vite. Rien de mieux qu'un bon dimanche pluvieux pour s'aventurer dans ces contrées. Ne jamais oublier que les erreurs de manipulation sur les disques sont souvent irréversibles. Vous l'aurez compris, je vous dis tout ça afin de vous désigner comme seul responsable en cas de problèmes qui pourraient survenir sur votre matériel.<br/> | ||
Ligne 19 : | Ligne 20 : | ||
<br/> | <br/> | ||
<br/> | <br/> | ||
=== Architecture utilisée === | === Architecture utilisée === | ||
Ligne 146 : | Ligne 148 : | ||
<br/> | <br/> | ||
Il est temps de créer notre ensemble RAID qui se nommera /dev/md0 | Il est temps de créer notre ensemble RAID qui se nommera /dev/md0 | ||
# mdadm --create | # mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdb1 /dev/sdc1 | ||
On observe donc les paramètres --level=1 pour RAID1 et --raid-devices=2 pour deux partitions (ou deux disques)<br/> | On observe donc les paramètres --level=1 pour RAID1 et --raid-devices=2 pour deux partitions (ou deux disques)<br/> | ||
Ceci peut se condenser en : (c'est exactement la même commande !) | Ceci peut se condenser en : (c'est exactement la même commande !) | ||
# mdadm -Cv /dev/md0 -l1 -n2 /dev/sdb1 /dev/sdc1 | # mdadm -Cv /dev/md0 -l1 -n2 /dev/sdb1 /dev/sdc1 | ||
''<u>Note :</u> il est possible d'intégrer à notre | |||
# mdadm --create | Remarque on a enlevé l'option --verbose à la commande suite à [https://www.debian-fr.xyz/viewtopic.php?p=26646#p26646| cette discussion sur le forum] | ||
''<u>Note :</u> il est possible d'intégrer à notre RAID1 un disque de spare qui sera donc automatiquement synchronisé en cas de panne d'un disque du miroir. Pour cela, il suffit de préparer une troisième partition sur un troisième disque (ex : /dev/sdd1) et de créer l'ensemble RAID /dev/md0 avec la commande suivante :'' | |||
# mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdb1 /dev/sdc1 --spare-devices=1 /dev/sdd1 | |||
Notre ensemble RAID est alors en phase de construction, vous pouvez observer son état d'avancement avec la commande : | Notre ensemble RAID est alors en phase de construction, vous pouvez observer son état d'avancement avec la commande : | ||
# cat /proc/mdstat | # cat /proc/mdstat | ||
Ligne 166 : | Ligne 171 : | ||
. | . | ||
unused devices: <none> | unused devices: <none> | ||
...c'est que le RAID n'est pas encore prêt. Patientez donc un peu... et passez à l'étape suivante.<br/> | ...c'est que le RAID n'est pas encore prêt. Patientez donc un peu... et passez à l'étape suivante.<br/> | ||
<br/> | <br/> | ||
Vous pouvez aussi suivre la construction de l'ensemble Raid "en direct" avec la commande suivante : | |||
# watch -n 1 cat /proc/mdstat | |||
==== Formatage de l'array /dev/md0 ==== | ==== Formatage de l'array /dev/md0 ==== | ||
Ligne 192 : | Ligne 203 : | ||
Certains se demandent peut être : "Mais pourquoi ne pas utiliser directement les options gid,uid,umask dans le /etc/fstab au lieu de s'embêter avec des chown, chmod, et autre addgroup ?!.." C'est tout simplement parce que le système ext3 ne supporte pas de telles options. Ces options la existent seulement pour des systèmes de fichiers étrangers au monde linux qui ne gèrent pas de la même façon les permissions UNIX (comme fat, ntfs,...). Or ext3 est un système de fichiers natif, qui supporte évidemment les permissions UNIX, donc on s'en sert !<br/> | Certains se demandent peut être : "Mais pourquoi ne pas utiliser directement les options gid,uid,umask dans le /etc/fstab au lieu de s'embêter avec des chown, chmod, et autre addgroup ?!.." C'est tout simplement parce que le système ext3 ne supporte pas de telles options. Ces options la existent seulement pour des systèmes de fichiers étrangers au monde linux qui ne gèrent pas de la même façon les permissions UNIX (comme fat, ntfs,...). Or ext3 est un système de fichiers natif, qui supporte évidemment les permissions UNIX, donc on s'en sert !<br/> | ||
<br/> | <br/> | ||
Voilà, notre grappe RAID1 | Voilà, notre grappe RAID1 est maintenant prête à être utilisée, mais avant sauvegardons notre configuration dans le fichier /etc/mdadm/mdadm.conf : | ||
# mdadm --detail --scan | # mdadm --detail --scan > /etc/mdadm/mdadm.conf | ||
Cette commande est à renouveler après toutes modifications sur les arrays (ajout de disque, remplacement de disque HS, etc…)<br/> | Cette commande est à renouveler après toutes modifications sur les arrays (ajout de disque, remplacement de disque HS, etc…)<br/> | ||
<br/> | <br/> | ||
<br/> | <br/> | ||
=== Maintenance === | === Maintenance === | ||
Ligne 226 : | Ligne 238 : | ||
<br/> | <br/> | ||
- Soit vous scriptez en vous basant sur le fichier /proc/mdstat ou la sortie de mdadm --detail puis vous appelez ce script via une crontab.<br/> | - Soit vous scriptez en vous basant sur le fichier /proc/mdstat ou la sortie de mdadm --detail puis vous appelez ce script via une crontab.<br/> | ||
Pour ceux qui | Pour ceux qui manqueraient d'inspiration, voici un exemple tout bête avec le célèbre Conky :<br/> | ||
Placez cette ligne quelque part dans la partie TEXT de votre .conkyrc.<br/> | Placez cette ligne quelque part dans la partie TEXT de votre .conkyrc.<br/> | ||
${texeci 3600 awk ' $2 == "blocks" && $4 != "[UU]" {print "DANGER ! Erreur RAID détectée !!!"}' /proc/mdstat} | ${texeci 3600 awk ' $2 == "blocks" && $4 != "[UU]" {print "DANGER ! Erreur RAID détectée !!!"}' /proc/mdstat} | ||
Ligne 237 : | Ligne 249 : | ||
# mdadm --monitor -f --mail=votre@email.com --delay=3600 /dev/md0 | # mdadm --monitor -f --mail=votre@email.com --delay=3600 /dev/md0 | ||
'''-f''' permet de "daemoniser" le mode monitor (comprendre exécuter en arrière plan). Mais si par malheur le processus tombe, alors vous ne serez plus averti.<br/> | '''-f''' permet de "daemoniser" le mode monitor (comprendre exécuter en arrière plan). Mais si par malheur le processus tombe, alors vous ne serez plus averti.<br/> | ||
<br/> | <br/> | ||
==== Cas 1 : panne d'un disque de l'array (ex : /dev/sdb) ==== | ==== Cas 1 : panne d'un disque de l'array (ex : /dev/sdb) ==== | ||
Ligne 258 : | Ligne 271 : | ||
<br/> | <br/> | ||
Une fois la reconstruction terminée, ne pas oublier de mettre à jour le fichier de configuration : | Une fois la reconstruction terminée, ne pas oublier de mettre à jour le fichier de configuration : | ||
# mdadm --detail --scan | # mdadm --detail --scan > /etc/mdadm/mdadm.conf | ||
<br/> | <br/> | ||
==== Cas 2 : panne du disque système, la grappe RAID est OK ==== | ==== Cas 2 : panne du disque système, la grappe RAID est OK ==== | ||
Ligne 270 : | Ligne 283 : | ||
Choix 2 - Si vous aviez sauvegardé le fichier /etc/mdadm/mdadm.conf, vous pouvez le restaurer et taper la commande suivante : | Choix 2 - Si vous aviez sauvegardé le fichier /etc/mdadm/mdadm.conf, vous pouvez le restaurer et taper la commande suivante : | ||
# mdadm --assemble --scan | # mdadm --assemble --scan | ||
Ceci à pour effet de scanner le mdadm.conf et d'assembler toutes les arrays y figurant. En sachant qu'un simple redémarrage de la machine avec le mdadm.conf | Ceci à pour effet de scanner le mdadm.conf et d'assembler toutes les arrays y figurant. En sachant qu'un simple redémarrage de la machine avec le mdadm.conf fraîchement restauré suffit à offrir le même résultat.<br/> | ||
<br/> | <br/> | ||
Choix 3 - | Choix 3 - S'il ne se passe rien et que vous n'avez plus votre mdadm.conf alors il vous faut connaître le nom de votre array et les partitions qui la composent. Dans notre cas c'est pas bien dur ; nos deux partitions /dev/sdb1 et /dev/sdc1 sont en RAID1 dans l'array /dev/md0. On tape donc : | ||
# mdadm --assemble /dev/md0 /dev/sdb1 /dev/sdc1 | # mdadm --assemble /dev/md0 /dev/sdb1 /dev/sdc1 | ||
Choix 4 - Si l'architecture est plus complexe et que vous pataugez dans la semoule, il est judicieux de | Choix 4 - Si l'architecture est plus complexe et que vous pataugez dans la semoule, il est judicieux de vous aider des commandes ''# fdisk -l'' et ''# mdadm <nowiki>–-</nowiki>examine /dev/<partition>'' pour identifier le bouzin.<br/> | ||
<br/> | <br/> | ||
Exemple : | Exemple : | ||
Ligne 314 : | Ligne 327 : | ||
0 0 8 1 0 active sync /dev/sdc1 | 0 0 8 1 0 active sync /dev/sdc1 | ||
1 1 8 17 1 active sync /dev/sdb1 | 1 1 8 17 1 active sync /dev/sdb1 | ||
Grâce à ces infos, je sais donc que la partition /dev/sdb1 fait partie d'un ensemble RAID1 et que sa compagne est la partition /dev/sdc1 (voir à la fin)<br/> | |||
On tape donc :<br/> | On tape donc :<br/> | ||
# mdadm --assemble /dev/md0 /dev/sdb1 /dev/sdc1 | # mdadm --assemble /dev/md0 /dev/sdb1 /dev/sdc1 | ||
<br/> | <br/> | ||
<br/> | <br/> | ||
Une fois que tout est en ordre | Une fois que tout est en ordre et bien synchro, tapez ceci : | ||
# mdadm --detail --scan | # mdadm --detail --scan > /etc/mdadm/mdadm.conf | ||
<br/> | <br/> | ||
<br/> | <br/> | ||
=== Aller plus loin... === | === Aller plus loin... === | ||
Ligne 331 : | Ligne 345 : | ||
- 3(ou+) disques en RAID5 pour les données<br/> | - 3(ou+) disques en RAID5 pour les données<br/> | ||
<br/> | <br/> | ||
<u>RAID1 système :</u> il est possible d'utiliser l'installeur debian pour mettre en place une architecture de type RAID1+LVM sur le système. Cependant, la partition /boot doit être en dehors du LVM à cause d'une limitation de GRUB premier du nom. | <u>RAID1 système :</u> il est possible d'utiliser l'installeur debian pour mettre en place une architecture de type RAID1+LVM sur le système. Cependant, la partition /boot doit être en dehors du LVM à cause d'une limitation de GRUB premier du nom. GRUB2 supporte maintenant le boot sur LVM (avis aux experts pour compléments d'infos, merci).<br/> | ||
<br/> | <br/> | ||
Avec notre cher collaborateur [[Utilisateur:lol|lol]] ;) nous avons testé ceci grâce à ces explications : http://blog.le7.net/linux/debian/installation-debian-ubuntu-avec-raid-1/<br/> | Avec notre cher collaborateur [[Utilisateur:lol|lol]] ;) nous avons testé ceci grâce à ces explications : http://blog.le7.net/linux/debian/installation-debian-ubuntu-avec-raid-1/<br/> | ||
Ligne 344 : | Ligne 358 : | ||
<br/> | <br/> | ||
Exemple : | Exemple : | ||
# mdadm --create | # mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/sdb1 /dev/sdc1 /dev/sdd1 | ||
Cependant, je tiens à signaler qu'on trouve des personnes se plaignant des performances RAID5 avec mdadm. Je vous conseille donc vivement de jeter un oeil à la fin de cet article qui est en anglais mais se comprend assez facilement : https://raid.wiki.kernel.org/index.php/RAID_setup<br/> | Cependant, je tiens à signaler qu'on trouve des personnes se plaignant des performances RAID5 avec mdadm. Je vous conseille donc vivement de jeter un oeil à la fin de cet article qui est en anglais mais se comprend assez facilement : https://raid.wiki.kernel.org/index.php/RAID_setup<br/> | ||
<br/> | <br/> | ||
Ligne 350 : | Ligne 364 : | ||
<br/> | <br/> | ||
- Construire son RAID5 en positionnant la taille du chunk à 128KB :<br/> | - Construire son RAID5 en positionnant la taille du chunk à 128KB :<br/> | ||
# mdadm --create | # mdadm --create /dev/md0 --level=5 --chunk=128 --raid-devices=3 /dev/sdb1 /dev/sdc1 /dev/sdd1 | ||
- Choisir la taille des blocs du système de fichiers résidant sur /dev/md0 : prenons par exemple 4KB qui est une valeur adaptée pour l'utilisation de gros fichiers.<br/> | - Choisir la taille des blocs du système de fichiers résidant sur /dev/md0 : prenons par exemple 4KB qui est une valeur adaptée pour l'utilisation de gros fichiers.<br/> | ||
<br/> | <br/> | ||
Ligne 362 : | Ligne 376 : | ||
'''''/!\ Attention, cette commande concerne l'ensemble md0 ! Adapter en conséquence...''''' | '''''/!\ Attention, cette commande concerne l'ensemble md0 ! Adapter en conséquence...''''' | ||
# echo 8192 > /sys/block/md0/md/stripe_cache_size | # echo 8192 > /sys/block/md0/md/stripe_cache_size | ||
Rien d'objectif dans ces choix, alors faites vos tests et venez nous en faire part sur le [http:// | Rien d'objectif dans ces choix, alors faites vos tests et venez nous en faire part sur le [http://debian-fr.xyz forum] !<br/> | ||
<br/> | <br/> | ||
<br/> | <br/> |
modifications