general.general : raid
Posté par wohlgi () le 29 mars 2008bonsoir forum,
J'ai une question de culture générale. J'ai créé un volume RAID1 et j'ai commencé par utilisé l'utilitaire du bios. Puis à l'installation, Diskdruid (fedora) m'a proposé la création de RAID logiciel. Bref, j'ai fait comme conseillé et apparemment, ça fonctionne (youpie).
Mais après coup, je me suis demandé à quoi ça servait de créer un volume RAID avec le bios si linux le fait de toute façon au moment de créer les partitions. Les deux étapes sont-elles nécessaires ?
Merci d'éclairer ma lanterne.
> Lire le message (35 commentaires, moyenne: 2,1).
Vous avez demandé le commentaire #917765.



bonjur,
il existe purement et simplement 3 type de raid differents (a ne pas confondre avec les niveaux de raid 0,1,0+1,5,etc...)
-raid materiel integrallement gere par la carte 100% transparent pour l'OS !!!
-raid soft gere integrallement par la couche soft de l'OS
-le faux raid materiel (utilise certains materiels mais necessite une assistance par la couche soft.
utilisations ?
SEUL le raid veritablement materiel permet de booter sur le secours si le disque bootable est mort (repose en paix)...sans manipulation humaine et donc sans risque d'erreur du tout. et s'applique a tous les niveaux de raid
le raid soft est utile pour 99.9% de la population grand publique mais il est plus lent que les deux solutions materieles, et s'applique a tous les niveaux de raid
le faux raid materiel est simplement une solution intermediaire , plus fiable et surtout plus rapide que le raid soft seul, mais aussi puissant que le raid materiel (sanf dans les utilisation des niveaux 0,1,0+1)
enfin les couts
raid faux materiel : peu couteu
raid soft : aucun cout hormis les disques eux meme
raid materiel : son prix le rend inutile mais dans certaine application critiques au niveau professionnel c'est encore rentable aujourd'hui
[^]Fiabilité / rapidité
Le "faux RAID matériel" n'est ni plus fiable, ni plus rapide que le RAID soft à la Linux. testé, retesté. Et quand il casse, adieu les données.
Et le RAID matériel "pure" n'est que très peu plus rapide que le RAID logiciel (sauf à prendre des grappes imposantes sur des machines surchargées).
Qui a existé en premier: le compilateur ou son code source ?
[^]Re: Fiabilité / rapidité
En gros la limite du raid soft, c'est la puissance cpu du PC où la bande passante des bus PCI. (pour un raid 1, la donné circule 2 fois, etc...)
[^]Re: Fiabilité / rapidité
"Et le RAID matériel "pure" n'est que très peu plus rapide que le RAID logiciel"
Oui et non :
Le raid matériel permet de laisser le/les CPU bosser sur autre chose, c'est donc forcément utile sur un serveur : le raid est traité par la carte raid, tout le reste (NFS, Samba, FTP, X... etc) par les/le CPU (Sans parler des cartes RAID ou l'on peut mettre des tonnes de RAM en guise de cache).
Forcément si tu fais des comparaisons "raid matériel vs raid logiciel" sur une machine qui n'a que ça a faire tu ne verra que peu de différence, puisque le CPU est disponible pour le raid ! mais dans un environnement de travail, la différence se ressent énormément !
[^]Re: Fiabilité / rapidité
Si tu en es à ce genre de problème, ne faut-il pas mieux avoir 2 machines l'une faisant uniquement serveur de fichier ? Le prix d'une bonne carte RAID (avec RAM et batterie) coute le prix d'une serveur.
Est-ce que 2 serveurs relié en gigabits ne serait pas plus efficace qu'un serveur avec une grosse carte raid ?
[^]Re: Fiabilité / rapidité
Je suis tout à fait d'accord avec toi: le RAID matériel décharge la CPU et la carte-mère.
Mon constat est cependant que la plupart des serveurs passent leur temps à ne rien faire :-)
Au boulot nous avons des serveurs Debian qui hébergent plusieurs machines virtuelles Windows avec SQL et Terminal Server. J'ai regardé l'une d'elle ce matin: 22 utilisateurs en TSE, 17% de CPU. Bon, pas la peine d'investir dans une carte RAID.
La différence se fera sentir sur une machine qui est chargée ET qui écrit pas mal (je parle du RAID 1, le RAID 5 étant, à mon avis, trop dangeureux à cause de son taux de panne). Si il n'y a que peu d'écriture, matériel ou logiciel, kif-kif.
Si c'est du RAID 0, je n'ai pas mesuré, mais une carte n'apporte probablement rien aux performances. Même sur une machine chargée.
Par contre en RAID 5 ou 6, là, effectivement, je suppose qu'on voit une différence. Mais de combiens ? Encore une fois, le prix d'une carte RAID est peut-être mieux investi dans une meilleure CPU et/ou des RAM plus performantes.
Exemple:
Passer d'un AMD 4200+ avec 2 Go de RAM 667 3-3-3-12 vers un AMD 6000+ avec 4 Go de RAM 800 3-3-3-12 coûte 140 € HT de plus (prix LDLC-pro avec de la mémoire CRUCIAL).
Pour 140 € donc on double la mémoire, on accélère les échanges mémoire/processeur, et on augmente significativement la puissance du processeur.
Si à la place on prend une carte RAID, ça coûte environ 100 € (les cartes à 36 €, je ne suis pas certain qu'elles soient "matériel").
Pour un particulier, pas besoin de l'un ou de l'autre. Problème réglé.
Pour un particulier exigeant, ou une entreprise, pour 40€ de plus on double la mémoire, on augmente la puissance du processeur (tout le temps, pas uniquement pour les transferts disque). Et si on ne double pas la mémoire, ça coûte seulement 80 €, donc moins cher qu'une carte RAID.
Il reste les gros-gros serveurs. Ceux qui ont déjà les processeurs les plus puissants, avec tous les emplacements occupés, et qui tournent à 100% de processeur et qui font pas mal d'écriture disque.
C'est juste trèèès rare.
Qui a existé en premier: le compilateur ou son code source ?
[^]Re: Fiabilité / rapidité
"le RAID 5 étant, à mon avis, trop dangereux à cause de son taux de panne"
C'est même pire que cela; le RAID-5 logiciel n'a pratiquement aucun avantage. La perte d'un disque risque de faire perdre toute la matrice contrairement au RAID-5 matériel.
"Si à la place on prend une carte RAID, ça coûte environ 100 € (les cartes à 36 €, je ne suis pas certain qu'elles soient "matériel")."
Même à 100€, je ne connais pas de carte RAID matériel; les premiers prix tournent autour de 300€, et pour ce prix, on a rarement la batterie de secours qui permet de faire du RAID-5.
[^]Re: Fiabilité / rapidité
C'est même pire que cela; le RAID-5 logiciel n'a pratiquement aucun avantage. La perte d'un disque risque de faire perdre toute la matrice contrairement au RAID-5 matériel.
Pourquoi ? T'as des sources ? Je ne vois pas de différence théorique entre les deux ...
Même à 100€, je ne connais pas de carte RAID matériel; les premiers prix tournent autour de 300€, et pour ce prix, on a rarement la batterie de secours qui permet de faire du RAID-5.
Oui c'est clair. Faire gaffe aux quelques cartes de "grandes marques" (Adaptec, ...) qui sont pas chères (genre 100€), mais qui sont en fait du fakeraid ...
[^]Re: Fiabilité / rapidité
"Pourquoi ? T'as des sources ? Je ne vois pas de différence théorique entre les deux ..."
Oui, j'ai des sources, dans /usr/src/linux//Documentation/md.txt
Degraded = il manque un disque
Dirty = arrêt brutal
Le cas classique c'est la coupure de courant avec la défaillance d'un disque (l'un entrainant l'autre).
"If a raid5 or raid6 array is both dirty and degraded, it could have
undetectable data corruption. This is because the fact that it is
'dirty' means that the parity cannot be trusted, and the fact that it
is degraded means that some datablocks are missing and cannot reliably
be reconstructed (due to no parity).
For this reason, md will normally refuse to start such an array. This
requires the sysadmin to take action to explicitly start the array
despite possible corruption."
[^]Re: Fiabilité / rapidité
Ha OK, tu parlais de ce problème là. Mais je ne vois pas ce qu'une carte matérielle fait de mieux ; par contre, une carte avec une batterie pour finir les I/O, OK. Mais je suppose que c'est ce que tu voulais dire, c'est juste que sans préciser, je ne voyais pas le rapport ...
[^]Re: Fiabilité / rapidité
Oui, bon, hum, tu utilises quelques raccourcis :-)
Quoi qu'il en soit, le RAID-5 n'a aujourd'hui plus de raison d'être utilisé. Trop dangeureux pour quelque chose qui est justement sensé être sécurisant. Matériel ou pas, même résultat.
Qui a existé en premier: le compilateur ou son code source ?
[^]Re: Fiabilité / rapidité
Ouai enfin bon, déjà, des coupures de courant, chez moi, c'est _très_ rare, alors des coupures de courant qui font péter un disque en plus ... jamais vu. Même si, OK, ça peut aider à faire déconner le disque.
La plupart des disques que j'ai vu claquer, c'était en pleine marche normale de la machine. Ou alors un jour, en rebootant, hop, pu de disque. C'est conte ça que je veux me protéger (oui, je me suis intéressé à ce sujet car je compte faire du RAID 5 en soft sous nunux).
[^]Indentation ?
Je crois que tu te mélanges dans l'indentation des réponses :-)
Qui a existé en premier: le compilateur ou son code source ?
[^]Re: Indentation ?
Pas tant que ça, même si c'était effectivement dans la continuité du message de Sébastien. Ce qui m'a fait réagir, c'est ton "le RAID 5 n'a plus raison d'être", que je trouve quand même très exagéré...
[^]Re: Indentation ?
Je ne saisi toujours pas le rapport :-)
Tu parles de coupures de courant, ce qui semble être en rapport avec les carte qui embarquent de la mémoire et une batterie. Je n'ai pas parlé de cela.
Je dis simplement que le RAID-5 est dangereux à cause de son taux de panne plus élevé que le RAID-1. Etant donné que les performances ne sont pas vraiment meilleures en RAID-5, et que le coût est marginalement plus faible, on n'utilise généralement pas le RAID-5.
Sauf pour des questions d'habitudes, de croyances, de modes, etc.
Qui a existé en premier: le compilateur ou son code source ?
[^]Re: Indentation ?
Vu que tu répondais à Sébastien, je pensais que tu parlais du RAID 5 comme "mauvais" à cause du problème du "degraded & dirty".
Quant au taux de panne plus elevé, que veux-tu dire ? Que plus de disques peuvent tomber en panne en RAID 1 avant de perdre des données ? Oui, mais le RAID 5 est fait pour être plus économique, non ?
Pour les perfs, tu as des chiffres ?
Ce n'est pas d'une manière aggressive de dire ça, mais ça m'intéresse de savoir les désavantages que je vais avoir en RAID 5 ...
[^]Re: Indentation ?
Bonne idée d'aborder les performances.
En RAID1:
En lectures: elles sont normalement distribuées sur les deux disques; en théorie le débit devrait être doublé. D'après http://kernelnewbies.org/KernelProjects/Raid1ReadBalancing ce n'est pas fait sous Linux, donc la lecture actuelle offre les performances d'un disque.
En écriture, il faut écrire les données sur les deux disques; donc transférer deux fois les données au(x) contrôleur(s) disque. Tout n'est pas forcément parallélisable, cela dépends du chemin des données; on a donc un petit surcout à l'écriture par rapport à un disque
En RAID5:
En lectures: les lectures sont globalement distribuées sur N-1 disques, donc le débit est augmenté d'autant.
En écriture: L'écriture est complexe: pour écrire un bloc, il faut lire l'ancien bloc de données, écrire le nouveau bloc de données, lire l'ancien bloc de CRC, recalculer le CRC, et écrire le nouveau CRC. Dans le cas où l'on ré-écrit tous les blocs dans le même groupe, on peut calculer le nouveau CRC sans relire l'ancien. Il y a encore d'autres optimisation sur écritures multiples pour réduire les lectures; mais le coût d'une écriture est grosse; nécessite de la mémoire et du temps de calcul.
Pour écrire une donnée, il faut lire deux blocs et en écrire deux.
C'est cette complexité, et les risques de problèmes entre les différentes étapes qui rendent le RAID-5 si fragile.
[^]Re: Indentation ?
Je me réponds à moi-même, après consultation des sources (toujours lire les sources).
Il y a bien un algo de répartition des lectures sur les deux disques.
Il mémorise la position de la dernière lecture; et envoi la requête vers le disque qui est le plus proche.
L'inconvénient de cette méthode, c'est que si on a plusieurs matrices RAID, la tête de lecture ne va pas forcément rester près du dernier bloc lu.
[^]Re: Indentation ?
Pas tout à fait :-)
RAID 1: la lecture est distribuée sur tous les disques. C'est très visible avec iostat. En écriture, bien entendu, c'est écrit deux fois.
Il faudrait en théorie lire les deux disques (ou 3 ou 4, etc) et comparer les données afin d'émettre un avertissement en cas de différence. Personne ne le fait à ma connaissance (matériel ou logiciel) vu que ça divise par deux les performances en lecture.
En lecture on est plus rapide que le RAID-0 car les têtes n'ont pas besoin d'être au même endroit (donc on peut lire à des endroits différents en même temps). Ce dernier point est théorique, je n'ai jamais mesuré par rapport à du RAID-0. En écriture, on est moitié moins rapide que du RAID-0 sur de grosses écritures séquentielles. Pour de l'écriture aléaoire, c'est kif-kif (théorique aussi).
RAID 5: La lecture est distribuée sur les disques 1 et 2, puis sur 2 et 3, puis sur 3 et 1, etc. En écriture c'est sur 3 disques.
Donc en lecture séquentielle longue c'est aussi rapide que RAID 1, mais en lecture aléatoire c'est nettement moins rapide car les têtes doivent toutes être à peu près au même endroit. En écriture c'est 50% moins rapide que RAID-1.
En théorie pour la lecture il faurait aussi lire les 3 disques et vérifier que tout concorde. Certaines cartes le font, je ne connais pas les détails. Je ne sais pas si md le fait.
Qui a existé en premier: le compilateur ou son code source ?
[^]Re: Indentation ?
Je ne suis pas d'accord.
Je n'ai pas comparé le RAID 1 au RAID 0, mais à un disque seul:
- le RAID 0 n'est pas du RAID à mes yeux, il n'y a pas de redondance.
- on compare le gain de sécurité et l'impact sur les performances lorsqu'on fait de la redondance par rapport à la solution sans redondance
RAID-5:
En lecture tu pars de l'hypothèse qu'il n'y a que 3 disques; donc les lectures sont réparties sur 2 disques; c'est bien ce que j'ai dis, et ce n'est plus vrai s'il y a plus de 3 disques.
En écriture les performances ne sont pas 50% moins rapide (50% moins rapide = 2 fois plus rapide). Pour toute écriture il est nécessaire de faire deux lecteurs et deux écritures; c'est dont un surcout de 300% (4 fois moins rapide) en ignorant le temps de calcul du CRC. Pour les zones souvent utilisées il y a le cache mémoire qui évite heureusement de faire les lectures; mais sur les données volumineuses comme une bonne base de données ou des fichiers vidéos, c'est très pénalisant. Si le système de fichier est journalisé sur les données en prime, c'est encore +400% d'opérations sur le disque par rapport à l'écriture initiale. N'oublions pas la mise à jour des méta-données (on double encore les IO). (Vous êtes toujours content d'avoir économisé 70 euros ?).
Concernant les vérifications des matrices; ce n'est effectivement pas fait à la lecture; mais il est possible de les vérifier (commande /usr/share/mdadm/checkarray sous debian) sans interrompre le système. De plus en plus de distributions proposent d'automatiser ce test dans la crontab toutes les semaines ou tous les mois.
[^]Re: Indentation ?
50% moins rapide = 2 fois plus rapide
Je crois que tu as des raccourics de pensée qui ne fonctionnent pas.
Je roule moité moins vite (50% moins vite), donc je roule moins vite.
J'ai une réduction de 25% sur ce superbe baril de lessive, donc je l'achète moins cher.
Pour toute écriture il est nécessaire de faire deux lecteurs et deux écritures
J'avais oublié la taille des blocs RAID. :-) Donc oui, c'est encore pire.
Si le système de fichier est journalisé sur les données en prime, c'est encore +400%
Non car si il est journalisé, alors il l'est également dans le système de référence.
Vous êtes toujours content d'avoir économisé 70 euros ?
Je ne comprends pas à quoi se rapporte cette remarque.
Qui a existé en premier: le compilateur ou son code source ?
[^]Re: Indentation ?
Je ne comprends pas à quoi se rapporte cette remarque.
Ca se rapporte au fait que les gens choisissent généralement du RAID-5 pour économiser quelques euros; rien à voir avec toi.
[^]Re: Indentation ?
J'avais compris que ce n'était pas pour moi, mais je ne comprenais pas à quoi ça se rapportait :-)
Il y a quelques années, j'avais parlé avec un ami d'un ami (qui connait le concierge de celui qui a vu le cousin de...) qui a débuté dans l'informatique est 1970. Il m'expliquait qu'au moment où RAID 5 est arrivé, tout ceux qui pouvait se l'offrir le faisaient car c'était à l'époque très interessant question prix. Je crois me souvenir qu'il parlait des environs de 1975. L'appelation ne devait pas être RAID, et ça devait plus se rapprocher du RAID 4 que du 5. Peu importe, ça permettait d'avoir de la redondance qui ne gaspille pas autant que les miroirs. C'était l'époque où les disques coûtaient plus que le salaire mensuel d'une petite équipe. Alors qu'aujourd'hui un disque SATA 1 To coûte moins que le salaire (+charges+etc) journalier d'un bon technicien.
Qui a existé en premier: le compilateur ou son code source ?
[^]Re: Indentation ?
Pendant que je tiens deux gars qui s'y connaissent, j'aimerais dériver un peu plus.istorique/20080401000000/20080401000000
Je compte me monter une bécane dont je compte tirer plusieurs choses au niveau des disques : de bonnes perfs, car pour moi un disque seul limite grandement les perfs, mais aussi un peu de sécurité si un disque clalque. Je sais, on peut pas tout avoir, peut-être que je demande la lune ...
Une question me vient quant au RAID 5, à propos des perfs en écriture : le système est obligé de relire les blocs à l'écriture, pour recalculer le CRC. Mais si la taille d'une stripe est égale à la taille d'une page en mémoire ? Je ne sais pas exactement comment se comporte la lecture d'un disque par rapport à la taille d'une page, mais imaginons que l'OS utilise des stripe de la même taille qu'une page, et qu'on lise à chaque fois tous les disques (-1) lorsqu'on veut lire un bloc ; alors, à l'écriture, aucune lecture n'aura besoin d'être faite, seulement 2 écritures. Par contre, contrairement à ton exemple, je dirais qu'il n'y a presque aucune différence (en dehors du calcul du CRC) qu'avec un seul disque (ou du RAID 1) puisque ces écritures sont réparties sur tous les disques !
Je voulais donc savoir si vous aviez plus d'info sur comment ça se passe, et ce que vous pensez de ma proposition de stripe à 4Ko.
[^]Re: Indentation ?
Argh, désolé du collé malencontreux.
J'ai oublié de préciser une chose dans mon hypothèse d'une page = une stripe, c'est que l'OS lise la taille d'une page/stripe complète à la fois.
[^]Re: Indentation ?
Imaginons un RAID sur 3 disques, ta solution est de faire un strip de 4 Ko, soit 2Ko sur le premier disque, 2 Ko sur le second disque, et les 2 Ko suivant servant de CRC.
Je vois trois inconvénients:
1. Cela est propre au RAID-5: Comme expliqué par Kerro, toutes les têtes de lectures doivent être synchronisées sur le même strip. Le temps d'accès n'est pas amélioré par le nombre de disques contrairement au RAID-1.
2. Les secteurs sur disque font 512 octets, et c'est le seul niveau d'atomicité connu des disques. Les FS manipulent généralement les méta-données par secteur et non par page mémoire, donc ton optimisation ne fonctionnera pas sur les méta-données. Idem pour les journaux à cause de l'atomicité.
3. Pour amélioré les I/O, en ATA on fait des opérations sur plusieurs blocs d'un coup. Les disques permettent généralement de lire 16 secteurs disque d'un coup (8Ko), ce qui permet d'anticiper les demandes (généralement lorsqu'on demande un secteur, on risque de demander le suivant). Avec ton strip de 4Ko, il y a un bloc de 2Ko de CRC pour 4 Ko de données; j'ai peur que rien dans la chaine OS/Controleur/Disque ne soit capable de fusionner les requêtes à cause du trou de 2 Ko; ce qui entrainerait une baisse des performances en lecture.
[^]Re: Indentation ?
OK, déjà j'ai fait une boulette (je ne suis pas vraiment doué en RAID), je pensais que la taille d'une stripe c'était _par_ disque, et non pour la totalité (moins le CRC). Je voulais donc plutôt dire une stripe de 8Ko, toujours sur 3 disques.
Pour les inconvénients :
1) effectivement, les têtes doivent être "synchronisées", mais je ne vois pas en quoi ça change le temps d'accès : c'est équivalent au temps d'accès à un disque, comme partout, non ?
2) oui, c'était la principale question que je me posais : l'OS travaille-t-il par secteur de 512 ou lit-il par 4Ko ? Quand tu mmap un fichier par exemple, tout est fait par page, non ? Par contre, tu as raison, ça va amener des problèmes d'atomicité ...
3) Je ne connaissais pas cette possibilité des disques, même si je supposais qu'il existait un mécanisme du genre. Par contre, de quel "trou" parles-tu ? C'est peut-être du à mon erreur du départ : ça devrait marcher correctement avec un stripe de 8Ko, non ?
Merci pour tes explications.
[^]Taux de panne RAID
En RAID 1, on a 2 disques, donc moins de "chance" d'avoir une panne qu'en RAID 5.
Une fois qu'on a une panne, il faut changer le disque. C'est là qu'intervient le problème. En RAID 1 il ne reste qu'une seule possibilité de panne, alors qu'en RAID 5 c'est le double.
Conclusion: la panne totale est deux fois plus probable en RAID 5.
C'est expliqué mathématiquement sur Wikipédia, je ne sais plus où.
L'étude google sur la fiabilité des disques-durs indique qu'il est fréquent (mais de combien?) que la panne totale arrive avant le changement du disque deffectueux. Je ne sais pas combien de temps ils attendent :-)
Pour ma part, je tente toujours de mettre en RAID 1 des disques qui ne proviennent pas du même lot de fabrication afin d'éviter des pannes rapprochés pour cause de défaut de fabrication. L'idéal serait peut-être de mettre des disques de fabricants différents.
Cela dit, le RAID 5 est plus économique. A l'achat. De quelques euros seulement.
Exemple pour avoir 1 To en SATA:
2 x Hitachi 1 To RAID 1 = 2 x 200 € HT chez LDLC-pro, soit 400 € HT
3 x Hitachi 750 Go RAID 5 = 3 x 117 € HT, soit 351 € HT
Le RAID 5 économise 50 € HT. Le risque vaut-il ce prix ? Ca dépend de l'utilisation. Pour ma part, en tant que particulier, niet, et en tant que responsable informatique d'une PME, non, même sur des petits serveurs de rien du tout.
Le RAID 6 est fait pour contrer cela. Je crois que "RAID 6" n'a pas de signification fixe. Pour moi c'est le principe du RAID 5 avec 5 disques par exemple, et possibilité d'avoir 2 disques en panne.
Qui a existé en premier: le compilateur ou son code source ?
[^]Re: Taux de panne RAID
Oui, effectivement, une fois qu'on a perdu un disque, il vaut mieux se dépêcher d'un remettre un autre.
Quant au prix, oui, effectivement, ça ne fait pas une différence énorme.
Par contre, je m'intéresse aussi à la place dans un boitier (c'est pour un desktop, pas pour un serveur), la conso électrique, et le bruit ... ce qui fera peut-être la différence entre RAID5 ou 1. Bon, tu va me dire, quand on a déjà 3 disques, un de plus ...