You are here

Disques : le stripping.

Le stripping est une technique parfois appelée "RAID 0" qui consiste à utiliser les disques "en série". Sur le plan électrique la mise en série de deux piles de 1,5 volts permet de proposer une tension de 3 volts, les piles dites 4,5 volts sont en fait le résultat de la mise en série de trois éléments identiques.
Pour les disques cela veut dire que les deux sont utilisés "alternativement" pour les données qui se suivent : un premier paquet sur le premier disque, le suivant sur le deuxième disque, le suivant de nouveau sur le premier. Cette méthode permet d'obtenir des débits plus importants car les deux disques débitent les données quasiment simultanément.
Mais il existe un problème de réglage, quelle est la taille optimale des "paquets" à ecrire (ou lire) pour chaque disque.
J'ai réalisé quelques essais à l'aide de deux disques SATA de 160Go récupérés sur une machine assez ancienne. Ces disques en test "hdparm" brut donnent grossièrement un débit de 70Mo/seconde. Quelle sera la vitesse obtenue en fonction de la taille des "bandes" ou "stripes" utilisée.
Conditions des tests.
Les tests ont été réalisés avec LVM qui permet d'associer plusieurs disques au sein d'un volume unique, on peut ensuite créer des partitions sur ces disques selon trois modes :

  • Normal : l'espace est alloué de manière continue n'importe où dans l'espace fourni par les deux disques.
  • Miroir (RAID1) : un espace identique est alloué sur chacun des deux disques et les écritures sont réaisées en double assurant une garantie contre la panne d'un des deux disques.
  • Strippé (RAID0) : l'espace est alloué sur les deux disques et les mouvements de données concernent chacun des disques tour à tour avec changement de disque après un certain volume d'écriture.
    Le volume d'écriture avant changement peut être de 4, 8, 16, 32, 64, 128, 256 ou 512K octets.

Tests (RAID0) : pour mesurer la variation de performance en fonction de la taille de ces bandes les tests ont été menés pour chacune des tailles de bande. Pour ce faire 8 partitions exploitant chacune des tailles possibles ont été mise en place et les tests ont été réalisés en utilisant 5 fois chaque taille de bande.
Série 1 : Test 1 pour 4K, test 2 pour 8K ... test 8 pour 512K
Séries 2 à 5 identiques
Les tests ont été réalisés pour deux versions du noyau Linux : 2.6.30 et 2.6.33.
Les courbes montrent un comportement assez différent avec une meilleure performance moyenne pour le noyau le plus récent. Les résultats (Moyenne des 5 séries) sont présentés dans les deux graphiques ci-dessous.

Résultats des tests.

Le noyau 2.6.33 se comporte bien mieux avec les "petites" bandes et atteint pratiquement le maximum dès les bandes de 16K, le noyau 2.6.30 est très en retrait pour les petites bandes et n'atteint le maximum qu'après les bandes de 32K.

Par ailleurs le débit maximal constaté est bien égal à environ deux fois la vitesse "brute" de chacun des deux disques. Le stripping permet donc bien d'augmenter sensiblement le débit, mais, attention, la perte de données est au moins deux fois plus probable qu'avec un seul disque.

système: 
performance: