Il existe un grand nombre de niveaux de raid (raid 0, raid 1 etc) et au moins quatre types de raid (matériel, logiciel…) De très nombreuses documentations en ligne décrivent très bien les différents niveaux de raid. La page wikipedia consacrée a ce sujet est par exemple très exhaustive. Il est moins fréquent de trouver des comparatifs concernant les types de raid. Dans cette page nous commencerons donc par un rappel simplifié de ce qui existe sur wikipedia, puis nous verrons plus en détail les différents types. Vous avez un peu de temps devant vous ? L’esprit bien reposé ? GO !
Les niveaux de raid
Généralités
Quelque soit le niveau de RAID, il est nécessaire d’utiliser plusieurs disques de même capacité. Bien sur, on peut trouver des exceptions, ou la création temporaire d’un raid sur un seul disque peut être intéressante. Mais a long terme, du raid avec un seul disque n’a aucun intérêt.
Le raid est la sauvegarde sont deux notions qui n’ont absolument rien à voir. Un raid ne peut pas servir de sauvegarde. L’intérêt principal d’une sauvegarde est de pouvoir récupérer un fichier qui a été supprimé. Le raid ne permettra jamais cela.
Raid 0 (2 disques ou plus)
L’idée est d’écrire simultanément sur plusieurs disques. (Tous les fichiers sont découpés en morceaux qui sont écrits sur des disques différents)
Avantages : Gain de performance.
Inconvénients : Système moins fiable qu’avec un seul disque.
(Si l’un des disques tombe en panne, toutes les données sont perdues).
Synonyme : Stripping
Raid 1 (généralement 2 disques)
Tout ce qui est écrit sur un disque est aussi écrit sur l’autre.
Avantage : Un des deux disques peut tomber en panne sans que cela ai le moindre impact.
Inconvénients : En terme de capacité c’est comme si on n’avait qu’un seul disque !
Autre : En terme de performance, ce mécanisme est très efficace en lecture. On a en effet deux disques sur lequel on peut lire. En revanche, l’écriture est plus lente qu’avec un seul disque (il faut écrire sur les deux à chaque fois).
Synonyme : miroring
Raid 2, 3 et 4
Ils sont obsolètes et posent des problèmes de fiabilité ou de performance. Bref, on les oubli.
Raid 5 (au moins 2 disques)
Le niveau le plus utilisé a l’heure actuel (même si il est progressivement remplacé par le raid6)
Principe : Les données sont réparties (comme avec du raid0) mais un des disques est utilisé pour stocker une somme de contrôle (checksum). Grâce à cette information supplémentaire, il est possible de retrouver le contenu des autres disques si l’un d’eux tombe en panne. (En réalité ce n’est pas un disque qui est dédié à cette tache, l’information redondance est répartie sur l’ensemble des disques).
Avantages: Un disque (n’importe lequel) peut tomber en panne sans conséquences pour les données.
Inconvénient : on « perd » l’équivalent d’un disque en volumétrie.
(Si on utilise 4 disque de 500 Go, seul 1,5 To seront utilisable).
Note: J’ai déjà crée un raid5 sur un seul disque, en déclarant un second disque « missing ». C’est donc tout à fait possible mais très exceptionnel comme besoin 🙂
Raid 6 (au moins 3 disques)
Très similaire au raid 5, le niveau 6 double la quantité d’information redondante (cela nécessite donc le double d’espace disque)
Avantage : Deux disques peuvent tomber en panne sans que gêner l’accès aux données.
Inconvénient : on « perd » l’équivalent de deux disques en volumétrie.
Je donne quelques informations supplémentaires sur les raid 6 ici.
Raid 10 (n disques, n est pair et au moins égal à quatre)
C’est une combinaison des raid 0 et 1. Avec 4 disques par exemple, on écrit sur deux disques simultanément (raid 0), et les deux autres sont des copies exactes des deux premiers (raid 1). On parle aussi de Raid 0+1. En fait, a partir de 6 disques, ces deux appellations ne sont pas similaires et l’une des deux est préférable… Peut être qu’un jour je détaillerai ça dans une partie « Raid avancé ». Pour le moment, restons simple 🙂
Avantage : fiable et performant
Inconvénient : Très couteux ! Seule la moitié de la capacité totale est utilisable.
Les types de raid
Le raid matériel (hardware).
C’est le raid « historique », la première méthode utilisée pour l’implémenter. Comme son nom l’indique, ce type de raid nécessite l’achat d’un matériel. Un équipement qui sera chargé de tout le travail. Une carte PCI par exemple, sur laquelle on va brancher tout une série de disque. Le SCSI à depuis longtemps été abandonné au profit de disques en SATA (Serial ATA) ou SAS (Serial Attached SCSI).
Premier inconvénient, le prix ! Ces cartes sont chères. Rares sont les particuliers a pouvoir se permettre ce genre de choses. Deuxième soucis, la carte en elle même est un « spof » (Single point of failure). Autrement dit, si au bout de quelques années cette carte tombe en panne, vous perdez complétement (et définitivement) l’accès à vos données. Certaines entreprises achètent toujours plusieurs cartes, pour en avoir en secours en cas de problème. Mais en plus d’augmenter encore le prix globale de la solution, cela nécessite donc de stocker du matériel « au cas ou », et de ne pas oublier de faire les mises à jour firmwares etc, afin que la carte de secours soit toujours exactement au même niveau que la carte réellement utilisée. Couteux donc, et aussi peu pratique. Troisième problème, le système ignore totalement qu’un raid existe dans la machine. Le contrôleur raid lui cache totalement son existence. Le système d’exploitation ne voit qu’un « gros disque », et rien d’autre. Il n’est donc pas facile de surveiller l’était du raid, de l’administrer etc. Cela passe forcément par des applications propriétaires qui savent discuter avec la carte. Et chaque constructeur à ses propres logiciels, il n’existe aucune norme à ce sujet.
Beaucoup, beaucoup d’inconvénients donc. Seul avantage : Cette solution est souvent la plus performante. Mais le particulier n’est pas vraiment concerné.
Le fake raid (Faux raid)
Le fake raid, que j’appelle parfois un peu vulgairement « raid de merde » est, comme son nom l’indique, la pire solution actuellement disponible. A part le prix (un fake raid ne coute que quelques euros), il hérite de tous les défauts du raid matériel. Un fake raid utilise un chipset présent sur la carte mère (ou sur une carte PCI à très bas prix). Une partie des opérations sont réalisés par un processeur bas de gamme et très peu puissant. (Performances souvent très moyennes donc). Ce processeur ne sait pas faire grand chose et le système continu donc à « voir » les disques physiques en plus du disque virtuel. C’est au « driver » de faire le boulot. Ce type de raid nécessite donc des drivers propriétaires. Si il n’y a généralement pas de soucis sous windows, Utiliser ce type de raid sous linux est un véritable enfer. En effet, un driver est associé à une version précise du noyau.. A chaque mises à jour, vous prenez le risque de ne plus avoir accès à vos donnés… Sympathique non ? Pire, les cartes mères qui proposent ce type de solution sont beaucoup moins robustes que les cartes contrôleurs raid hors de prix cités plus haut. Le risque de perdre l’accès à ces données à cause d’un problème matériel n’ayant rien à voir avec les disques est donc vraiment élevé.
En résumé : Mauvaise performances et perte des données quand la carte mère lâchera. Une solution à éviter absolument.
Le raid logiciel (softraid)
Le type de raid que je recommande vivement. Il n’a pourtant pas très bonne réputation. Historiquement, il posait de gros problèmes de performances. Mais cela n’est plus vrai depuis des années. Un processeur actuel (genre dual core) utilisera moins de 5 pourcents de sa puissance pour tout faire fonctionner très rapidement. (On devrait plutôt tourner autour de 1 ou 2%). Globalement ce type de raid est plus performant que le fake raid. (Le cpu d’un PC moyen de gamme étant infiniment plus puissant que les chipsets à bas cout utilisé pour le fake raid). Mais ces vrais atouts sont ailleurs. D’abord il n’y a aucun spof dans cette solution. Si votre PC à de gros soucis, pas de problème, il suffit de prendre les disques et de les rebrancher sur une autre machine. Avec la même version de windows, ou avec n’importe quel linux, vous retrouverez votre raid sans aucune difficulté. (Attention, les raid logiciels linux et bsd sont différents… Impossible donc de récupérer avec linux un raid qui aurait été conçu sous freenas par exemple). Dans ce cas de figure c’est le système d’exploitation qui gère le tout. Il est donc très facile de superviser et d’administrer son raid.
En résumé ? Que des avantages ! Sérieusement, le seul minuscule inconvénient que l’on pourrait lui trouver est que chaque système d’exploitation utilise évidement son propre mécanisme. Un raid logiciel crée sur un système ne sera donc reconnu que sur ce type d’OS. Est-ce vraiment un inconvénient ?
Le raid distant
Officiellement, seuls ces trois types de raid (logiciel, matériel et « fake ») existent. Tout le reste, même si cela en reprend parfois les concepts, ne s’appelle pas du raid. Cela dit, le stockage se déporte de plus en plus et il semblait donc logique d’aborder le sujet.
Prenons un cas très simple. Le miroir, ou RAID 1. Que se passe t-il si au lieu d’avoir le deuxième disque dans le même ordinateur vous le mettez dans une autre machine ? Cela bien sur dans le but de se prémunir encore d’avantage contre tout problème matériel. (L’alimentation qui prend feu et qui grille tous les composants de la machine). En utilisant une seconde machine, peut être située dans un autre bâtiment, ce genre de cas de figure n’est plus possible.
En revanche, le lien réseau entre les deux machines sera évidement très sollicité, et les performances en écriture seront très inférieur à un Raid 1 local. Sur linux, il est possible de mettre en place un « raid 1 distant », en utilisant une simple connexion ethernet. Le logiciel qui gère cela s’appelle DRDB. Attention, quand j’avais essayé de mettre en place ce genre de chose chez moi il y a quelques années, j’avais découvert que drdb était… Comment dire… « pas totalement stable » (blague de geek : oui, comme l’astéroïde). Il est probable que de gros progrès aient été fait depuis, car de nombreuses entreprises ont sont très satisfaites.
Autre exemple, Freenet. Ce logiciel de lutte contre la censure dispose d’un mécanisme de stockage distribué, appelé « datastore », qui fonctionne un peu comme un raid 5 entre un grand nombre de machines. Bien sur, distribuer du stockage est beaucoup, beaucoup plus compliqué qu’une simple redondance d’informations… Cela nécessite des algorithmes complexes pour optimiser le placement des données et être capable de les retrouver le plus rapidement possible. (DHT et autre). Mais globalement, l’idée reste la même. Se prémunir contre la panne d’un ou plusieurs éléments, être capable de reconstituer l’information tant que suffisamment d’informations sont encore disponibles.