SYN, SYN-ACK, ACK …

Steal This Blog

Archives Posts

Stripe Size

mars 25th, 2008 by Corbier

Stripe Size & Stripe Width

Les RAID qui utilise le stripping améliore les performances en partageant les fichiers en petites pièces et en les distribuant aux multiples disques durs. La plupart des mises en oeuvre de stripping permettent à l’administrateur plus de deux paramètres critiques qui définissent comment les données sont splittés, et envoyé aux différents disques durs. Chacun de ces facteurs a un impact important sur les performances du RAID.

Le premier paramètre clef est le stripe width du RAID. Le stripe width se réfère au nombre de stripes parallèles qui peuvent être écrites ou lu simultanément. C’est bien sûr égal au nombre de disques dans le tableau. Donc un RAID à quatre disques aurait un stripe width de quatre.

Les performances de lecture et écriture d’un RAID strippé augmente en même temps que le stripe width augmente. La raison est que l’ajout de disques durs au RAID augmente le parallélisme RAID, donnant ainsi l’accès à plus de disques durs simultanément.

Vous aurez généralement un taux de transfert plus performant d’un RAID comprenant huit disques durs de 18GB que d’un RAID de 36GB, tout en ayant le mêmes gammes de disques durs.

Bien sûr, le coût de huit disques durs de 18GB est plus onéreux que quatre disques durs de 36GB, tout en prenant compte la puissance nécessaire au niveau des alimentations.

Le second paramètre clef est le stripe size du RAID, quelques fois on retrouve ce terme comme la taille des blocs, longueur des blocs… Ce terme fait référence à la taille des blocs écrit sur chaque disques. Les RAID autorise la taille des blocs compris entre 2KB et 512KB (voir plus), chaque blocs est multiple de deux (2KB, 4KB, 8KB, …). Les RAID de type 3, n’autorise que un stripe size de 1B, voir moins, et n’est pas modifiable par l’utilisateur.

L’impact au niveau des performances du stripe size est plus difficile a quantifier que l’effet du stripe width.

Réduction du Stripe Size: comme le stripe size est réduit, alors les fichiers sont coupés en de plus petites pièces. Cela augmentera le nombre de disques contenant le fichier, en théorie, cela augmente le temps de transferts, mais ça réduit les performances de positionnement.

Augmentation du Stripe Size : l’augmentation du stripe size du RAID, fait l’opposé de ce que nous avons vu précédemment. Il faudra moins de disques durs pour contenir le fichier, du coup les performances de transferts seront réduites. Mais si le contrôleur est optimisé pour, la condition d’avoir moins de disques durs, permet aux disques durs non nécessaires d’avoir un accès particulier ceci afin d’être utilisé pour un autre transfert, améliorant la performance du positionnement

Exemple

Voici un exemple de deux différents disques avec des stripes size différents:

1.gif2.gif

A gauche, un RAID 0 de quatre disques avec un stripe size de 4 KB; à droite le même RAID avec les mêmes données, mais qui utilise un stripe size de 64 KB. Dans ce diagramme, quatre fichiers se distinguent par quatre couleurs différentes:

  • le fichier rouge à une taille de 4 KB
  • le fichier bleu à une taille de 20 KB
  • le fichier vert à une taille de 100KB
  • le fichier magenta à une taille de 500KB

Ils sont dessiné afin d’illustrer combien d’espace ils occupent en terme relatif dans le RAID (un pixel vertical représente 1KB).

On peut constater la différence de traitement de fichier entre les deux type de RAID. Les fichiers de 4KB prennent seulement un bloc sur un seul disque dans les deux RAID, et le fichier de 500KB est répartie au travers des quatre disque dans les deux RAID. Mais quand le plus large stripe size est utilisé, le fichier bleu apparaît seulement sur un seul disque à la place de quatre, et le fichier vert est réparti sur deux disques au lieu de quatre. Ceci améliore le positionnement aléatoire de ces fichiers. Dans les deux cas, le stripe width est bien sur de quatre.

Alors quel stripe size choisir ? La meilleur solution pour trouver lequel convient le mieux, est d’essayer plusieurs valeurs: plus ça empire, moins la solution sera bonne :) En outre, ne surestimez pas les performances entre les différents taille de stripe size, elle peut être significative, en particulier si vous prenez les opposés du spectre comme par exemple 4KB et 256KB, mais la différence n’est pas souvent aussi large entre deux valeurs.

Et si vous devez avoir un principe de base, je dirais ceci : les environnements transactionnels où vous avez un grand nombre de lecture et d’écriture sont probablement plus aisés avec une grande tailles de stripe size; les applications où de plus petits nombres de grand fichiers doivent être lus rapidement préféreront probablement de plus petit stripe size. Évidemment, si vous devez équilibrer ces conditions, choisissez quelque chose au milieu.

Sources

http://www.storagereview.com/guide2000/ref/hdd/perf/raid/concepts/perfStripe.html

Filed under Linux, system having 1 Comment »