Les technologies du stockage
0
commentaires
Les technologies ici abordées sont celles qui auront permis le développement des solutions de stockage que nous aborderons plus tard.
Le RAID
La technologie RAID (pour Redundant Array of Inexpensive Disks) permet de combiner plusieurs disques durs en une seule unité de stockage virtuelle. Ainsi, une partie de l'espace est souvent réservée pour faire de la redondance d'informations. Les avantages de cette technologie sont multiples : souplesse du stockage, tolérance aux pannes et performance. RAID est encadré par l'organisme de normalisation RAB (Raid Advisory Board).Bien que l'objectif de cet exposé n'est pas de faire une présentation de RAID, il s'agit néanmoins d'une technologie essentielle dont il convient de connaître au moins le principe.
Les illustrations utilisées ci-dessous proviennent du très complet article Wikipedia sur les RAID (et sont publiées sous les termes de la Licence de documentation libre GNU ou sont dans le domaine publique).
RAID 0
Le RAID 0, également connu sous le nom d'"entrelacement de disques" ou de "volumes agrégés par bandes" est une configuration RAID permettant d'augmenter les performances de la grappe en concaténant n disques durs qui fonctionneront ensemble pour constituer un volume plus large. On répartit les accès sur plusieurs disques, on accélère donc significativement les temps d'accès.Le RAID 0 n'apportant pas de redondance (donc pas de sécurité supplémentaire), tout l'espace disque disponible est utile. Le volume ainsi créé est donc moins fiable qu'un seul disque dur : la perte d'un seul disque entraîne la perte de toutes les données.
RAID 1
Le RAID 1 consiste en l'utilisation de plusieurs disques redondants, chaque disque de la grappe contenant à tout moment exactement les mêmes données : on parle aussi de miroir.La capacité totale est égale à celle du plus petit élément de la grappe : il est donc conseillé d'utiliser des éléments identiques.
Cette solution offre un excellent niveau de protection des données. Elle accepte une défaillance de n-1 éléments (ou n est le nombre de disques) sans perte de données. En cas de défaillance, les disques sont automatiquement désactivés, puis reconstruits après remplacement de manière transparente pour les utilisateurs.
La contrepartie est le coût très élevé de cette solution. Plus le nombre de miroirs est élevé, et plus la sécurité augmente, mais plus son coût devient prohibitif.
RAID 1/0 ou RAID 10
Le RAID 10 est le cumul des deux solutions précédentes : il s'agit de constituer un volume agrégé de deux grappes en miroir. Chaque grappe contenant au minimum 2 éléments et un minimum de 2 grappes étant nécessaire, il faut au minimum 4 unités de stockage pour créer un volume.Sa fiabilité est assez bonne puisqu'il faut que tous les éléments d'une grappe soient défectueux pour entraîner un défaut global. La reconstruction est également performante puisqu'elle ne mobilise que les disques d'une seule grappe.
La capacité de la solution est de n*c (où n est le nombre de grappe miroir, et c la capacité du plus petit élément de la grappe).
Cette solution est également relativement coûteuse.
RAID 0+1
Le RAID 0+1 permet aussi de cumuler les 2 premières solutions, en mettant en miroir 2 grappes RAID 0. Ainsi que pour le RAID 10, il faut au minimum 4 unités de stockage pour créer un volume RAID0+1.La fiabilité est ici plutôt moyenne car un disque défectueux entraîne le défaut de toute sa grappe. Par ailleurs, le temps de reconstruction est beaucoup plus long, et il peut impacter les performances de la machine. L'intérêt principal réside ici dans la possibilité de réaliser une sauvegarde instantanée du système avec le retrait volontaire d'une grappe entière. On notera tout de même qu'il faut un miroir à 3 grappes ou plus, si on ne souhaite pas perdre la redondance.
La capacité et les coûts sont les mêmes que pour le RAID 10.
RAID 5
Le RAID 5 combine la méthode du volume agrégé et de la parité (ici, répartie). Il s'agit donc d'un compromis permettant d'allier performance et sécurité pour un coût moindre : nous avons ici une redondance à N+1 uniquement.La lecture se faisant sur chacun des disques le temps d'accès en lecture est réduit. Il faut noter que le temps d'écriture est légèrement pénalisé par l'écriture de la parité.
La parité, qui est incluse avec chaque écriture se retrouve répartie circulairement sur les différents disques. Ainsi, en cas de défaillance de l'un des disques de la grappe, pour chaque bande il manquera soit un bloc de données soit le bloc de parité. Quelque soit la nature du bloc manquant (données ou résultat d'un calcul de parité), celui-ci pourra aisément être retrouvé. L'intégrité des données de chaque bande est donc préservée : non seulement la grappe est toujours en état de fonctionner, mais il est de plus possible de reconstruire le disque une fois échangé à partir des données et des informations de parité contenues sur les autres disques.
RAID 5 supporte donc la perte d'un seul disque. Cette notion peut poser problème lorsque la taille des disques augmente et que les temps de reconstruction s'allongent en conséquence. Il est donc courant dans ce cas d'ajouter au groupe RAID un disque spare qui sera utilisé en cas de défaillance d'un des disques comme nous le verrons plus tard.
On notera qu'ici aussi la reconstruction d'un disque pourra légèrement impacter les performances de la baie.
Ce système nécessite impérativement un minimum de trois disques durs, toutefois on considère généralement que les meilleures performances sont obtenues pour 5, 9 et 14 disques. Ceux-ci doivent théoriquement être de même taille (ce qui tend à ne plus être vrai sur certaines cartes RAID modernes).
La capacité de stockage utile réelle, pour un système de n disques dont le plus petit à une capacité c identiques est de (n - 1) * c.
Ce système allie donc pour un coût modéré la sécurité (grâce à la parité) et une bonne disponibilité (grâce à la répartition de la parité), même en cas de défaillance d'un des périphériques de stockage. C'est la raison pour laquelle c'est celui qui est généralement mis en place dans les baies SAN.
Manipulation
Cette petite manipulation, réalisable sous GNU/Linux, permet de créer des fichiers que le système considérera comme des volumes. On crée ensuite à partir de ces volumes un groupe RAID dans lequel on créera un LUN./!\ Cette manipulation nécessite l'installation de l'outil mdadm, utilitaire gratuit qui permet entre autres de gérer les RAID sous Linux.
Contenu du script Shell [ téléchargement ] :
#!/bin/sh
# ordonne l'affichage des instructions lors de l'execution du script
set -x
# creation des fichiers de 10 Mo, chacun peuples de 0
dd if=/dev/zero of=/tmp/img0 bs=1M count=10
dd if=/dev/zero of=/tmp/img1 bs=1M count=10
ls -lh /tmp/img*
read a
# association aux peripheriques virtuels /dev/loop0 et /dev/loop1
losetup /dev/loop0 /tmp/img0
losetup /dev/loop1 /tmp/img1
read a
# creation du volume virtuel /dev/md1
# en RAID1 à partir des lecteurs virtuels /dev/loop0 et /dev/loop1
mdadm --create /dev/md1 --level=1 --raid-devices=2 /dev/loop0 /dev/loop1
# verification
mdadm --detail /dev/md1
read a
# creation d'un physical volume
pvcreate /dev/md1
# verification
pvdisplay /dev/md1
read a
# creation d'un volume group
vgcreate vg_test /dev/md1
# verification
vgdisplay vg_test
read a
# creation d'un LUN ou logical volume
lvcreate -n lv0 -l 1 vg_test
# verification
lvdisplay /dev/vg_test/lv0
read a
# creation d'un second LUN ou logical volume
lvcreate -n lv1 -l 1 vg_test
# verification
lvdisplay /dev/vg_test/lv1
read a
# formatage des LUNs en ext3
mkfs.ext3 -j /dev/vg_test/lv0
read a
mkfs.ext3 -j /dev/vg_test/lv1
read a
# chacun des LUNs est monte dans l'arborescence
mkdir /tmp/m0 /tmp/m1
mount -t ext3 /dev/vg_test/lv0 /tmp/m0
mount -t ext3 /dev/vg_test/lv1 /tmp/m1
# verification : nous avons 2 nouveaux lecteurs de 4 Mo chacun !
df -h
read a
# on ecrit sur ces disques virtuels
echo "ceci est le test0\nsur lv0">>/tmp/m0/test0
echo "ceci est le test1\nsur lv1">>/tmp/m1/test1
read a
# on provoque une faute sur un disque
mdadm --fail /dev/md1 /dev/loop1
read a
# on simule le retrait du disque
mdadm --remove /dev/md1 /dev/loop1
read a
# on simule l'ajout d'un nouveau volume
mdadm --add /dev/md1 /dev/loop1
read a
# on constate que le volume est correctement reconstruit
# nettoyage
umount /tmp/m0
umount /tmp/m1
read a
lvremove /dev/vg_test/lv0
lvremove /dev/vg_test/lv1
read a
vgremove vg_test
read a
pvremove /dev/md1
read a
mdadm --stop /dev/md1
read a
En outre la commande suivante, exécutée dans un terminal, permet de suivre en temps réel la création des groupes RAID sur la machine :
$ tail -f /proc/mdstat
SCSI
La technologie SCSI (pour Small Computer System Interface) est un standard de bus informatique permettant de relier des ordinateurs et des périphériques très utilisé par les périphériques de stockage. Elle fournit une interface parallèle avec un débit allant jusque 640 Mo/s dans ses dernières spécifications. La longueur des câbles peut aller jusque 20 m., et reste donc limitante.Enfin, la seule topologie gérée est logiquement le point à point.De part son fonctionnement, SCSI est une interface plus rapide, mais aussi plus complexe que d'autres interfaces telles qu'E-IDE : elle repose notamment sur le fait que les équipements reliés sauront recevoir des instructions complexes que l'on ne prendra donc pas le temps de décomposer.
On lui préfère aujourd'hui des liaisons Fibre Channel.
Fibre Channel (FC)
Initialement conçues pour les super-ordinateurs, les technologies de fibre optiques sont aujourd'hui devenu un standard dans les réseaux de stockage.Il convient lorsque l'on parle de fibre channel de bien faire la différence entre le protocole et le support qui peuvent être utilisés indépendamment.
Le protocole
Le protocole FC définit 3 topologies distinctes.- Point à point : les périphériques sont reliés directement entre eux. La bande passante est entièrement dédiée aux échanges entre ces 2 machines.
- En boucle (aussi appelé Arbitred Loop ou FC-AL) : dans ce cas tous les périphériques sont reliés. On peut avoir jusque 126 périphériques ainsi reliés. La boucle est gérée par des éléments hubs.
- Switchée ou commutée (aussi appelé Fabric) : on utilise dans ce cas un switch Fibre Channel dont le principe de fonctionnement est le même que pour les échanges ethernet. Dans cette configuration, on rencontre un maximum théorique de 16 millions de composants.
Le protocole FC utilise 5 couches. Assez classiquement, les couches de bas-niveaux (FC0 et FC1) sont dédiées au transport de données, tandis que la couche FC4, permet de s'interfacer avec différentes applications. Le protocole utilisé pour le transfert des données est le SCSI série (SCSI-3). L’implantation actuelle autorise des débits de 100 Mo/s et des distances jusqu’à 10 km.
Ce protocole est aujourd'hui le plus fréquemment utilisé sur des supports cuivre ou fibre optique.
Le media
Le support Fibre Channel est donc la fibre optique. Son coeur est de l'ordre de quelques microns.Il existe 2 types de fibre :
- multinode : avec une coeur d'une cinquantaine de microns, une perte de débit est remarquée, due notament aux phénomènes de rélfexions que l'on pourra avoir ;
- mononode :de coeur beaucoup plus fine, elles limitent le phénomène de perte nodale ; en contrepartie, la puissante d'émission nécessaire est plus importante.
Le débit spécifié est de 1 à 8 Gbit/s, et la fibre peut être tirée sur plusieurs kilomètres (l'usage de répéteurs est possible, et même courant pour certaines utilisations).
La fibre optique est utilisée dans les réseaux de stockage pour le transfert de données, mais aussi pour l'échange d'informations.
Les switchs
Le rôle d'un switch FC est tout à fait similaire à celui d'un switch ethernet.Dans le réseau fibre, chaque device fibre est appelé noeud. Chaque noeud possède un numéro unique appelé World Wide Name et permettant son identification dans le réseau.
Un switch FC est un investissement relativement coûteux.
0 commentaires:
Enregistrer un commentaire