RAID logiciel sur une clé USB

Gazette Linux n°151 — Juin 2008

Adaptation française : Deny

Relecture de la version française : Deny

Article paru dans le n°151 de la Gazette Linux de juin 2008.

Article publié sous Open Publication License. La Linux Gazette n'est ni produite, ni sponsorisée, ni avalisée par notre hébergeur principal, SSC, Inc.


Table des matières

Performance du disque dur
Solution
Installation du RAID logiciel
Arrêter et démarrer le tableau
Arrêter le tableau
Tests de performance
Solutions de rechange et perspectives
Problèmes
Liens

J'ai une base de données sur laquelle je travaille, et quelquefois je dois la faire fonctionner sur mon portable. Cependant, la base de donnée est vraiment exigeante, et c'est simplement trop lent pour le disque dur de mon portable. J'ai rapidement trouvé que la limitation provenait de la vitesse du disque dur, et pas tant de l'unité centrale. Ce dont j'avais besoin était un disque dur externe rapide. De toute façon, j'ai toujours voulu expérimenter un RAID logiciel.

Performance du disque dur

Il y a trois paramètres pour la vitesse du disque :

  • La vitesse de lecture

  • La vitesse d'écriture

  • Le temps d'accès—c'est le temps dont le disque a besoin pour trouver l'emplacement d'où il devrait lire l'information (ou l'écrire) avant de commencer à lire ou à écrire. Par exemple, pour votre disque dur normal, la tête doit se déplacer vers l'emplacement physique du disque magnétique

Je n'ai pas besoin d'une vitesse d'écriture ou de lecture rapide, puisque la quantité d'informations issue de la base de donnée est infime et que la base est presque entièrement en lecture seule. Cependant, j'ai besoin d'un temps d'accès rapide : la base de donnée est très grande et je dois retrouver très rapidement l'information depuis plusieurs emplacements dans la base de données. C'est-à-dire, j'ai besoin d'un temps d'accès très bas, d'une vitesse de lecture acceptable, et je ne me soucie pas de l'écriture.

Solution

Il est bien connu que les prétendus solid-state disks, (SSD, disque dur électronique) ont des temps d'accès très bas. j'aurais pu essayer d'acheter un SSD, mais étant curieux, j'ai opté pour un autre choix. On peut dire que les clés usb, les disques dur à mémoire flash, les pen drives© sont également des sortes de SSD— mais ils ont des mauvais taux de transfert. En fin de compte, j'ai décidé de créer un RAID logiciel en utilisant quatre clés USB de 2 Go. J'ai acheté

  • 4 clés USB, de 2 Go chacune

  • 1 concentrateur USB

Installation du RAID logiciel

Prèrequis : vous avez besoin de l'outil mdadm (pour debian©, exécutez simplement apt-get install mdadm).

Insérez la clé dans le concentrateur, et connectez le concentrateur à l'ordinateur.

Si GNOME ou autre monte les disques automatiquement, démontez-les avant de continuer.

Tout d'abord, il est nécessaire de trouver les noms des dispositifs qui sont attachés :

dmesg | grep "Attached SCSI"
sd 56:0:0:0: [sde] Attached SCSI removable disk
sd 57:0:0:0: [sdf] Attached SCSI removable disk
sd 58:0:0:0: [sdg] Attached SCSI removable disk
sd 59:0:0:0: [sdh] Attached SCSI removable disk

Bien, les dispositifs sont /dev/sde, /dev/sdf, /dev/sdg/, /dev/sdh. Je veux un RAID—0;  c'est-à-dire, sans redondance et 4x2 Go=8 Go d'espace. Créer le RAID est simple :


mdadm --create --verbose /dev/md0 --level=0 --raid-devices=4 /dev/sd{e,f,g,h}

De cette façon, on a un nouveau dispositif de bloc qui peut être formaté. J'emploie ext2, puisque la fiabilité ou la journalisation ne jouent aucun rôle :

mkfs.ext2 /dev/md0
tune2fs -c 0 -j 0 /dev/md0
mount /dev/md0 /mnt

La première commande crée le système de fichiers (« formate » le dispositif) ; la seconde désactive les vérifications régulières. Enfin, la troisième commande monte le RAID dans le système de fichiers de sorte qu'on peut y écrire des données et les lire.

Arrêter et démarrer le tableau

Arrêter le tableau

Avant d'arrêter le tableau, exécutez ce qui suit (et enregistrez la sortie quelque part) :


mdadm --detail /dev/md0

Pour arrêter le tableau en cours d'exécution, démontez tout d'abord le répertoire (umount /mnt) et ensuite arrêtez le tableau :


mdadm --stop /dev/md0

À présent, vous pouvez sans risque retirer les disques et, par exemple, les connecter sur une autre machine.

Démarrer de nouveau le tableau

Avant de pouvoir réutiliser votre RAID, vous devez l'« assembler ». C'est facile si vous n'avez pas retiré le disque et si vous essayez l'assemblage depuis la même machine. Dans ce cas, saisissez simplement :


mdadm --verbose -A /dev/md0 /dev/sd{e,f,g,h}

Cependant, que faire si les lettres du dispositif ont changé (c'est-à-dire, non e-h, mais i,j.k,l) ? Eh bien, on peut encore découvrir quelles sont les lettres. Mais il y a une meilleure solution. Souvenez-vous que je vous ai dit d'enregistrer la sortie de mdadm --detail ? Elle contient une ligne de ce genre :

		
           UUID : d7ea744f:c3963d02:982f0012:7010779c
   
   

D'après cet UUID (Unique User IDentifier, identification d'un utilisateur de manière unique), on peut facilement « assembler le tableau » sur n'importe quel ordinateur :


mdadm --verbose -A /dev/md0 -u d7ea744f:c3963d02:982f0012:7010779c

On peut également écrire cette information dans le fichier de configuration /etc/mdadm/mdadm.conf

Tests de performance

TestDescriptionRésultatsCommentaire
hdparmLecture52 Mo/sC'est deux fois aussi bon que sur mon portable, et pire que les 70Mo/s du disque SATA de ma station de travail
ddÉcriture28 Mo/sLa moitié de ce que peut faire le disque de ma station de travail
seekerAccès aléatoire0.8-1msC'est de 10 à 20 fois meilleur qu'un disque dur ordinaire

Notes pour les Tests

  • hdparm :c'est une application Linux standard (sous Debian©, installez-la avec la commande apt-get install hdparm). La ligne de commande est la suivante :

    		
          hdparm -t /dev/md0
    
    

  • dd : La ligne de commande complète est :

    
          dd if=/dev/zero of=/tmp/test2.bin bs=1M count=1024 conv=fsync
    
    

  • seeker:  J'ai utilisé cette application depuis cette page pour des essais sur la performance des disques. Elle effectue des recherches purement aléatoires sur le dispositif, simulant de ce fait le pire scénario, quand de petits fragments de données dispersés doivent être lus. Voici la ligne de commande :

    
          seeker /dev/md0
    
    

  • En outre, j'ai examiné la performance de l'installation entière avec mon application particulière. C'était impeccable ! Pas aussi bon que la mémoire vive du disque que j'emploie pour une partie de ce dernier, mais cependant très, très rapide.

  • Depuis que je l'ai installé il y a quelques jours, je l'ai constamment employé avec une importante charge en lecture et je n'ai pas rencontré de problèmes ou d'erreurs (tels que ceux notés ici).

  • Notez que la vitesse de connexion sera limitée par la vitesse maximale de connexion du concentrateur, puisque 480  mégabits par seconde (USB 2.0) correspondent à peu près à 60 mégabits par seconde au plus.

Solutions de rechange et perspectives

j'ai expliqué ici comment créer un RAID-0 depuis quatre clés USB. Cependant, la plupart de ce que j'ai expliqué ici s'applique également à d'autres types de RAID et d'autres lecteurs de disque. Et plus encore ! On peut combiner simplement n'importe quels dispositifs dans un RAID. Bien sûr, cela se conçoit seulement si les dispositifs sont de tailles semblables, mais on peut créer un RAID hors des RAIDs (c'est-à-dire, joindre deux clés USB de 2 Go dans un RAID0 /dev/md0, ensuite joindre /dev/md0 avec une clé USB de 4 Go pour obtenir un RAID0 d'une taille de 8 Go...) et on peut combiner des dispositifs de différentes tailles en employant LVM (Logical Volume Manager,Gestionnaire de volumes logiques).

Problèmes

À part quelques erreurs commises parce que je ne connaissais pas mdadm, je n'ai pas rencontré de problème. Si il y en a, deux choses en général sont d'un grand secours :

  • Lire la documentation :-) en particulier man mdadm et les liens ci-dessous, et

  • Étudier les messages du noyau. Le mieux est de saisir

    	
    
          tail -f
            /var/log/messages
    
    

Liens

  • LinuxInsight© publie cet excellent article sur le test de performance des disques durs

  • Il y eu une autre tentative de créer un tel tableau, mais avec des conclusions tout à fait différentes et peu d'explications.

  • Pour en apprendre plus à propos du RAID logiciel sous Linux, veuillez consultez le HOWTO Linux RAID et cette page du wiki d'Ubuntu©

  • Un autre bon HOWTO, avec d'autres astuces utiles.

  • Encore une autre expérience avec une clé USB.

January Weiner est un biologiste qui utilise des outils informatiques pour étudier des processus évolutionnaire. Il est postdoctorant dans un groupe bio-informatique.