Articles plus anciens

12496426_f79990a45b

Pour supprimer un volume RAID il ne suffit pas d’arrêter et de supprimer le device correspondant.


En effet l’auto-assemblage des volumes RAID scan les disques-dur, détecte les superblock et ré-assemble un volume au reboot suivant.

Voici comment procéder.


On commence par arreter le volume :

sudo mdadm --stop /dev/md0
sudo mdadm --remove/dev/md0


Puis on supprime les superblocks :

sudo mdadm --zero-seperblock /dev/sda3
sudo mdadm --zero-seperblock /dev/sdb1


On peut alors vérifier que nos partition se redevenues « normales » :

sudo mdadm --examine /dev/sda3
mdadm : no md superberblock detected on /dev/sda3



Enfin il faudra ensuite commenter la ligne concernant la grappe dans le fichier /etc/mdadm/mdadm.conf, sinon il y aura une erreur au reboot.

 


Source :

Removing RAID Devices – How-to Remove Linux Software RAID Devices – Array, Raid, Mdadm, Linux, Devices

Illustration par Vitor Sá – Virgu


353912773_e8a6ffc854_Random_ActivityPour faire suite à mon article Créer un volume RAID1 logiciel avec mdadm, voici une erreur que j’ai rencontré….


Lorsque j’ai commencé à jouer avec le RAID (dans une machine virtuelle)  j’avais oublié de mettre à jour mon fichier mdadm.conf et je pensais qu’un RAID non paramétré dans ce fichier n’était pas assemblé.

Au reboot j’ai donc voulu réassembler mon RAID avec la commande :

sudo mdadm --assemble /dev/md0 /dev/sda3 /dev/sdb1


Et là stupeur, j’ai eu l’erreur :

mdadm: cannot open device /dev/sda3 : device or resource busy
mdadm: /dev/sda3 has no superblock -assembly aborted


Ma première réaction a été, heureusement que je fais des test dans une machine virtuelle et non pas sur un vrai disque avec des données dessus….


J’ai alors fait quelques recherches sur Internet et j’ai resolu le problème en appliquant la deuxième solution de ce billet.


Ce n’est que plus tard que j’ai compris que un RAID même non paramétré dans mdadm.conf était monté, mais non pas sous le device indiqué lors de sa création, mais sous une autre device dont le nom est attribué par le sytème.



Solution 1 : trouver et supprimer l’array auto-assemblé


Pour résoudre ce problème, il suffit de chercher le volume RAID auto-assemblé qui utilise les disques de notre RAID, pour cela on regarde les stats de mdmadm :


cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md_d0 : active raid1 sda3[0] sdb1[1]
      570240 blocks [2/2] [UU]
 
unused devices: <none>


On voit ici un device RAID md_d0 qui utilise nos 2 partitions, il suffit donc de l’arrêter et de la supprimer pour pouvoir réssaembler notre RAID à la main :

sudo mdadm --stop /dev/md_d0 
sudo mdadm --remove /dev/md_d0
sudo mdadm --assemble /dev/md0 /dev/sda3 /dev/sdb1


Solution 2 : on supprime tout


Cette solution est à appliquer en cas d’échec de la première elle est beaucoup plus expeditive.

On supprime le fichier de configuration :

sudo mv/etc/mdadm/mdadm.conf /etc/mdadm/mdadm.conf-save


On reboot et on peut ré-assembler son RAID (et ajouter la configuration dans mdadm.conf)



Illustration par Random Activity sous CC


2740660572_162b50150eJe reprends la série des articles sur le RAID logiciel commencé il y a maintenant plus de 2 mois…


Pour rappel le RAID1 consiste à assembler 2 disques dur (au moins 2) dans une grappe (ou array).

Les écritures faite sur cette grappe sont répliquées/dupliquées sur les 2 disques dur, ainsi en cas de défaillance d’un des disques les données sont toujours présentes sur l’autre.


Pour plus d’information sur les différents niveaux de RAID cf. wikipedia : http://fr.wikipedia.org/wiki/RAID_%28informatique%29 et comment ça marche : http://www.commentcamarche.net/contents/protect/raid.php3



En pré-requis il faut donc avoir 2 disques dur ayant une partion de même taille marquée en « Linux RAID autodetect » (cf. article Préparer un disque dur pour monter un RAID logiciel).


Il faut ensuite avoir installé mdadm.


 

Création la grappe


On indique ici à mdadm le type de RAID que l’on fait (level = 1), le nombre de disques dur composant cette grappe (raid-devices=2), le nom de la grappe (/dev/md0) et les partitions composant la grappe (/dev/sda3 et /dev/sdb1) :

sudo mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/sda3 /dev/sdb1



la commande nous rend la main quasiment aussitôt mais il faut faire très attention puisque la synchronisation des partitions se fait en arrière plan.

watch -n 3 cat /proc/mdstat


Ce qui affiche ce résultat (actualisé toutes les 3 secondes) :

Every 3,0s: cat /proc/mdstat                                            Tue Nov 17 13:43:26 2009
 
Personalities : [raid1]
md0 : active raid1 sdb1[1] sda3[0]
      292969216 blocks [2/2] [UU]
      [>....................]  resync =  0.3% (997184/292969216) finish=63.4min speed=76706K/sec
 
unused devices: <none>


Au terme de la ynchronisation on aura ceci :  

Every 3,0s: cat /proc/mdstat                                            Tue Nov 17 15:00:19 2009
 
Personalities : [raid1]
md0 : active raid1 sdb1[1] sda3[0]
      292969216 blocks [2/2] [UU]
 
unused devices: <none>

 

Sauvegarde des caractéristiques de la grappe (optionnel)


Avec la commande précédente on a créé et assemblé la grappe, elle peut au terme de la synchronisation être utilisée directement.


Cependant sans autre configuration elle ne sera pas remonté au prochain démarrage.

En fait si, mdadm scan les disque à la recherche des superblock caractérisant les partitions RAID et reconstitue les grappe.

Cependant le device créé aura un nom différent de celui donné à la création (md_d0 par exemple au lieu de md0)


Pour plus de sureté, de maîtrise on peut vouloir sauvegarder les les caratéristiques de la grappe.

Cela se fait via le fichier /etc/mdadm/mdadm.conf


On peut si on le souhaite lire attentivement la page man de madadm.conf et créer le paramétrage mdadm.conf à la main, ou exécuter la commande suivante qui va réaliser le travail pour nous :

sudo bash -c "mdadm --detail --scan >> /etc/mdadm/mdadm.conf"


Ce qui ajoutera la ligne suivante au fichier mdadm.conf :

ARRAY /dev/md0 level=raid1 num-devices=2 metadata=00.90 UUID=a02d4c25:4c0a891c:c0c43f3e:b08f1a90


Remarques :

On trouvera parfois que pour alimenter le fichier mdadm.conf il faut éxécuter la commande

mdadm --examine --scan >> /etc/mdadm/mdadm.conf

Cette commande scanne les disques à la recherche des superblocks caractéristiques d’un volume RAID, tandis que la précédente interroge les grappes actives pour retrouver leur informations.

Elle renvoit sensiblement la même chose :

ARRAY /dev/md0 level=raid1 num-devices=2 UUID=a02d4c25:4c0a891c:c0c43f3e:b08f1a90 

(La donnée metadata=00.90 à disparue)


Enfin d’autres sites préconisent l’ajout du flag –verbose à la commande (–examine –scan), cela pour conséquence d’ajouter le nom des partitions utilisé par la grappe RAID :

mdadm --detail --scan --verbose >> /etc/mdadm/mdadm.conf
ARRAY /dev/md0 level=raid1 num-devices=2 metadata=00.90 UUID=a02d4c25:4c0a891c:c0c43f3e:b08f1a90
   devices=/dev/sda3,/dev/sdb1



On peut (il est conseillé) d’éditer le fichier mdadm.conf pour voir les lignes ajoutés, les comprendre à l’aide du man et éventuellement les modifier.



Utilisation du volume RAID


Le volume RAID peut ensuite être utilisé comme n’importe quelle autre partition. Il faut le formatter, puis le monter (à la main ou avec le fstab)


sudo mkfs.ext3 /dev/md0
sudo mount /dev/md0 /mnt/




Sources :

mdadm –detail vs mdadm –examine : http://osdir.com/ml/linux-raid/2009-04/msg00245.html

mdadm: A New Tool For Linux Software RAID Management – O&apos;Reilly Media

Software Raid | Raid Arrays | mdadm on Linux

raid_logiciel – Documentation Ubuntu Francophone

Forum Ubuntu-fr.org / [Résolu] Raid 5 : raid inactif après reboot

Using mdadm to send e-mail alerts for RAID failures

Mdadm – Le wiki de 2 noisettes – noisette.ch

Doug Bunger: Activating an Inactive Raid Element

expert:mdadm [Linuxpédia]


Illustration par sean dreilinger sous CC


Si vous n’utilisez pas htop tout d’abord je vous conseil de vous renseigner à son sujet (cf. liens en fin d’article), tant l’outil est pratique.


Si vous utilisez htop sous Ubuntu, il existe un bug (ici et la) du module console-kit (donc pas de htop) qui conduit à l’affichage de nombreux (environ 60) process console-kit-daemon.


La preuve en image :

htop - console-kit-deamon



Malgré le fait que le problème ne soit pas dû à htop, il existe tout de même une solution de contournement.

il faut pour cela Entrer dans le Setup de htop (touche F2), aller sur la ligne « Display Option » et côcher « Hide userland threads » :


htop - hide userland thread



Pour information htop stock son paramétrage dans le fichier .htoprc sous le home de chacun de vos utilisateur.

Voici le contenu du mien :

# Beware! This file is rewritten every time htop exits.
# The parser is also very primitive, and not human-friendly.
# (I know, it's in the todo list).
fields=0 48 17 18 38 39 40 2 46 47 49 1
sort_key=46
sort_direction=1
hide_threads=0
hide_kernel_threads=1
hide_userland_threads=0
shadow_other_users=0
highlight_base_name=0
highlight_megabytes=1
highlight_threads=0
tree_view=1
header_margin=1
detailed_cpu_time=0
color_scheme=0
delay=15
left_meters=AllCPUs Memory Swap
left_meter_modes=1 1 1
right_meters=Tasks LoadAverage Uptime
right_meter_modes=2 2 2

Ce qui me donne cet affichage :

htop

Ajout des colonnes IO rate read / IO rate write et de l’heure dans l’en-tête


Sources :

hTop, un monitoring plus user-friendly.

Htop, la gestion des processus

Htop, a tip-top ncurses interactive tool for system monitoring your desktop


http://forum.ubuntu-fr.org/viewtopic.php?id=221696



ravescuritiba_789517948Un petit article sur la sauvegarde ça faisait longtemps…


Ma stratégie de sauvegarde est maintenant en place depuis quelques temps, mais il me restait à faire quelques réglages, notamment exclure certain répertoire de la sauvegarde.


Cela se fait en ajoutant au fichier de configuration rsnapshot, autant de directive exclude que de fichier/répertoire à exclure, ou en utilisant la directive exclude_file de ce même fichier de configuration.


J’ai choisi la deuxième solution, j’ai donc ajouté à mon fichier de configuration rsnapshot :


exclude_file     /home/mon_user/bin/rsnapshotExclude



Fichier qui contient :


Trash/
.thumbnails/
.mozilla/*/*/Cache/
.gvfs
tmp/


  • Le / à la fin indique qu’il s’agit d’un répertoire
  • Le * correspond à tous les caractères à l’exclusion des barres obliques /
  • Le * correspond à tous les caractères (j’aurai donc pu remplacer .mozilla/*/*/Cache/ par .mozilla/**/Cache/


J’exclus ici de mon répertoire /home la corbeille, les miniatures d’images, le cache de Firefox et un répertoire temporaire que j’ai créé.



Enfin pour faire fonctionner ce fichier d’exclusion j’ai dû ajouter l’option –relative au arguments long de rscync :

rsync_long_args --delete --numeric-ids --relative --delete-excluded --stats



Remarque :

Il est aussi possible de faire fonctionner l’exclusion sans l’option –relative, mais il faut changer le fichier d’exclusion et cela à des conséquences sur l’arborescence des fichiers sauvegardés :

Paramètre Solution 1 Solution 2
Option rsync –relative /
Fichier Exclusion Trash/
.thumbnails/
.mozilla/*/*/Cache/
.gvfs
tmp/
**/Trash/
**/.thumbnails/
**/.mozilla/*/*/Cache/
**/.gvfs
**/tmp/
Conséquences /rsnapshot_root/daily.x/home/mon_user /rsnapshot_root/daily.x/mon_user



Pour plus de renseignements sur les pattern d’exclusion, les chemins relatifs ou non, etc. voir la page man de rsync



Sources :

http://km.azerttyu.net/Sauvergarder-son-serveur.html

http://marcimat.magraine.net/Sauvegarde-d-un-serveur-Linux

http://www.backupcentral.com/phpBB2/two-way-mirrors-of-external-mailing-lists-3/rsnapshot-24/rsnapshot-copy-twice-same-folders-97984/

http://michaeljaylissner.com/archive/files/rsnapshotOpal2.conf

http://www.jejik.com/articles/2006/07/easy_local_and_remote_backup_of_your_home_network/


Illustration par ravescuritiba (Gabe Photos)