/usr/share/doc/HOWTO/fr-html/Software-RAID-HOWTO.html is in doc-linux-fr-html 2013.01-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<meta name="generator" content=
"HTML Tidy for Linux/x86 (vers 25 March 2009), see www.w3.org">
<meta name="GENERATOR" content="LinuxDoc-Tools 0.9.69">
<title>Software-RAID HOWTO</title>
</head>
<body>
<h1>Software-RAID HOWTO</h1>
<h2>Jakob Ø ;stergaard ( <a href=
"mailto%C2%A0:jakob@ostenfeld.dk">jakob@ostenfeld.dk</a>)</h2>
v. 0.90.7 ; 19th of January 2000
<hr>
<em>Ce document décrit l'utilisation du RAID logiciel 0.90
sous Linux mis au point par Ingo Molnar et d'autres
développeurs. Il s'agit de la couche RAID qui sera standard
pour les versions 2.4.x du noyau Linux et qui est également
disponible sous forme de patches pour la branche 2.2. La couche
d'adaptation RAID 0.90 est disponible sous forme de patches pour
les branches 2.0 et 2.2. De nombreuses personnes la
considèrent comme bien plus robuste que la couche RAID
courante. those kernels.</em>
<hr>
<h2><a name="s1">1. Introduction</a></h2>
<p>Pour une description de la version antérieure de
l'interface RAID standard dans les noyaux 2.0 et 2.2, reportez vous
à l'excellent document de Linas Vepstas ( <a href=
"mailto%C2%A0:linas@linas.org">linas@linas.org</a>) disponible via
le Linux Documentation Project à l'adresse <a href=
"http%C2%A0://linuxdoc.org">linuxdoc.org</a>.</p>
<p><a href=
"http%C2%A0://ostenfeld.dk/~jakob/Software-RAID.HOWTO/">http ://ostenfeld.dk/~jakob/Software-RAID.HOWTO/</a>
est la page de référence pour ce HOWTO où les
dernières mises à jour seront disponibles. Ce
document a été rédigé par Jakob
Ostergaard à partir de nombreux messages
électroniques échangés entre l'auteur et Ingo
Molnar <a href=
"mailto%C2%A0:mingo@chiara.csoma.elte.hu">(mingo@chiara.csoma.elte.hu)</a>
- un des développeurs du RAID - , la liste de diffusion
linux-raid <a href=
"mailto%C2%A0:linux-raid@vger.rutgers.edu">(linux-raid@vger.rutgers.edu)</a>
ainsi que diverses personnes.</p>
<p>La rédaction de ce HOWTO a été
motivée par le besoin de documentation du nouveau
système RAID alors que le Software-RAID existant ne
documentait que les versions précédentes. Des
fonctionnalités nouvelles ont notamment été
introduites.</p>
<p>Pour utiliser la nouvelle mouture du RAID avec les noyaux 2.0 ou
2.2, vous devez récupérer le patch correspondant, par
exemple à l'adresse <a href=
"ftp://ftp.fi.kernel.org/pub/linux/daemons/raid/alpha">ftp://ftp.[your-country-code].kernel.org/pub/linux/daemons/raid/alpha</a>,
ou depuis <a href=
"http://people.redhat.com/mingo/">http://people.redhat.com/mingo/</a>.
Les noyaux 2.2 officiels ne gèrent directement que l'ancien
type de RAID et les patches sont donc nécessaires.
<em>L'ancien système RAID des noyaux 2.0 et 2.2 est
buggé</em>. De surcroît, il lui manque d'importantes
fonctionnalitées présentes dans la nouvelle
version.</p>
<p>La nouvelle mouture du RAID est en cours d'intégration
dans les noyaux de développement 2.3.x et sera donc
disponible dans la branche 2.4. Jusqu'à la sortie de
celle-ci, il sera nécessaire de patcher manuellement les
noyaux.</p>
<p>Peut-être esssayerez vous les versions <code>-ac</code> du
noyau proposées par Alan Cox pour disposer du RAID.
<em>Certaines</em> d'entre elles incluent le nouveau système
et vous épargneront donc l'application de patches.</p>
<p>Le HOWTO contient des informations triviales pour ceux qui
maîtrisent déjà les principes des
systèmes RAID. Inutile de vous y attarder.</p>
<h2><a name="ss1.1">1.1 Avertissement</a></h2>
<p>L'avertissement indispensable :</p>
<p>Bien que le fonctionnement du système RAID semble stable
chez moi et chez de nombreuses personnes, cela pourrait ne pas
être le cas pour vous. Si vous perdez vos données,
votre emploi, votre femme ou que vous vous faites écraser
par un camion, ce ne sera ni de ma faute, ni de celle des
développeurs. Vous utilisez les fonctionnalités RAID,
ainsi que toutes les informations contenues dans ce documenti,
à vos risques et périls. Il n'y a pas la moindre
garantie concernant le logiciel ou ce document ni la moindre
assurance que cela puisse servir à quoi que ce soit.
Sauvegardez toutes vos données avant la moindre
manipulation. Il vaut mieux être prudent que
désolé.</p>
<p>Ceci étant, je dois reconnaitre que je n'ai pas eu de
problèmes de stabilité avec le RAID logiciel, que je
l'employe sur quelques machines et que je n'ai entendu personne
évoquer des plantages aléatoires ou des
instabilités avec le RAID.</p>
<h2><a name="ss1.2">1.2 Prérequis</a></h2>
<p>Le HOWTO suppose que vous utilisez un des derniers noyaux 2.2.x
ou 2.0.x modifié par le patch raid0145 adéquat ainsi
que la version 0.90 des raidtools ou que vous vous servez d'un 2.3
postérieur à la > 2.3.46, voire d'un 2.4. Les
patches et les outils se trouvent par exemple à :
<a href=
"ftp://ftp.fi.kernel.org/pub/linux/daemons/raid/alpha">ftp://ftp.fi.kernel.org/pub/linux/daemons/raid/alpha</a>
ou pour certains à l'adresse : <a href=
"http://people.redhat.com/mingo/">http://people.redhat.com/mingo/</a>.
Les patches RAID, le paquetage des raidtools et le noyau doivent
s'accorder autant que possible. Il sera peut-être parfois
nécessaire de se restreindre à des noyaux plus
anciens si les patches ne sont pas disponibles pour le
dernièr noyau sorti.</p>
<h2><a name="s2">2. Motivation du RAID</a></h2>
<p>Il existe différentes bonnes raisons pour se servir du
RAID parmis lesquelles figurent la possibilité de fusionner
plusieurs disques physiques en un périphérique
virtuel plus important, l'amélioration des performances et
la redondance.</p>
<h2><a name="ss2.1">2.1 Aspects techniques</a></h2>
<p>Le RAID Linux est adapté à la majeure partie des
périphériques de type bloc. Peu importe que vous
utilisiez de l'IDE, du SCSI ou un mélange des deux. Certains
ont également obtenu quelques succès en s'en servant
avec des périphériques de type bloc en réseau
(Network Block Device ou NBD).</p>
<p>Vérifiez que les bus d'accès aux
périphériques sont assez rapides. Il n'est pas
conseillé d'installer 14 disques Ultra Wide sur une
même chaine si chacun d'entre eux peut débiter 10 Mo/s
car le bus, lui, ne dépassera pas les 40 Mo/s. Vous avez
également intérêt à ne pas mettre plus
d'un disque par interface IDE sans quoi les performances ne vont
pas être fameuses. L'IDE n'est pas adapté pour
l'accès simultané à plusieurs disques sur une
même interface. Toutes les cartes mères
récentes incluent deux ports et vous pourrez donc configurer
deux disques en RAID sans acheter de contrôleur
supplémentaire.</p>
<p>La couche RAID est indépendante du système de
fichier. Vous pourrez donc y superposer celui de votre choix.</p>
<h2><a name="ss2.2">2.2 Vocabulaire</a></h2>
<p>RAID sera employé pour "RAID logiciel Linux". Le document
ne traite pas du RAID matériel.</p>
<p>Dans la description des configurations, on utilise
fréquemment le nombre de disques et leur taille. <b>N</b>
désignera le nombre de disques dans une matrice RAID, les
disques de secours étant exclus, <b>S</b> sera la taille du
plus petit disque et <b>P</b> le débit d'un disque en Mo/s.
Quand on se servira de P, on supposera que les disques ont tous les
mêmes performances (à vérifier).</p>
<p>Périphérique et disque seront synonymes. En
général, les matrices RAID sont davantage construites
avec des partitions qu'avec des disques complets. La combinaison de
plusieurs partitions appartenant à un même disque ne
présente guère d'intérêt et on entendra
donc par périphérique et disque "des partitions sur
différents disques".</p>
<h2><a name="ss2.3">2.3 Niveaux RAID</a></h2>
<p>Voici une brève description des niveaux de RAID
gérés par Linux. Certaines de ces infos sont basiques
mais j'ai fait mention d'éléments spécifiques
à la mise en oeuvre au sein de Linux. Sautez cette section
si vous savez ce qui se cache derrière le RAID. Vous y
reviendrez quand vous aurez des problèmes :o)</p>
<p>Les patches RAID pour Linux offrent les possibilités
suivantes :</p>
<ul>
<li><b>mode linéaire</b>
<ul>
<li>Deux disques et plus sont combinés par
concaténation. L'écriture sur le disque RAID se fera
donc d'abord sur le premier puis sur le second quand il sera plein
et ainsi de suite. Il n'est pas nécessaire que les disques
soient de la même taille et, pour tout dire, la taille n'est
ici d'aucune importance.</li>
<li>Il n'y a aucune redondance à ce niveau. Si un disque
tombe en panne, vous perdrez surement toutes vos données.
Vous aurez peut être la chance d'en récupérer
une partie si, du point de vue du système de fichiers, il ne
manque qu'un gros bloc consécutif de données.</li>
<li>Les performances en lecture/écriture ne vont pas
s'améliorer automatiquement mais si plusieurs utilisateurs
se servent simultanément du périphérique, il
se peut qu'ils accèdent à des disques
différents et que les performances en soient
augmentées.</li>
</ul>
</li>
<li><b>RAID-0</b>
<ul>
<li>Ou "stripe". Semblable au mode linéaire à ceci
près que les lectures et les écritures ont lieu en
parallèle sur les disques. Les disques doivent avoir
sensiblement la même taille. Les périphériques
se remplissent progressivement de la même façon. Si
l'un des deux est plus grand que l'autre, l'espace
supplémentaire est toujours employé pour la matrice
RAID mais vous n'utiliserez qu'un des deux disques vers la fin. Les
performances en patiront.</li>
<li>Comme en linéaire, il n'y a pas de redondance des
données mais en plus vous ne serez pas capable de
récupérer vos données si un disque tombe en
panne. Au lieu de ce qu'il vous manque un gros bloc de
données, votre système de fichiers comprendra de
nombreux petits trous. e2fsck ne sera vraisemblablement pas en
mesure de reconstituer quoi que ce soit.</li>
<li>Les performances en lecture/écriture augmenteront
puisque les lectures et les écritures auront lieu sur les
deux disque en même temps. C'est souvent ce qui motive
l'emploi du RAID-0. Si les bus sont assez rapides, vous pourrez
flirter avec N*P Mo/s.</li>
</ul>
</li>
<li><b>RAID-1</b>
<ul>
<li>Il s'agit du premier mode redondant. Le RAID-1 s'employe
à partir de deux disques auxquels viennent
éventuellement se greffer des disques de secours. Ce mode
duplique les informations d'un disque sur l(es)'autre(s). Bien
sûr, les disques doivent être de même taille. Si
un disque est plus grand que les autres, la matrice sera de la
taille du plus petit.</li>
<li>Jusqu'à N-1 disques otés (ou défectueux),
les données restent intactes et si le contrôleur
(SCSI, IDE, etc...) survit, la reconstruction sera
immédiatement entamée sur un des disques de secours
après détection de l'anomalie.</li>
<li>Les performances en écriture sont
légèrement inférieures à celles d'un
disque unique vu que les données doivent être
écrites sur chaque disque de la matrice. Les performances en
lecture sont <em>en général</em> bien plus mauvaises
en raison de la mise en oeuvre au sein du code d'une
stratégie d'équilibrage simpliste. Cependant, cette
partie des sources a été revue pour le noyau
2.4.</li>
</ul>
</li>
<li><b>RAID-4</b>
<ul>
<li>Ce niveau RAID n'est pas utilisé très souvent. Il
s'employe à partir de trois disques et plus. Au lieu
d'effectuer une copie des informations, on conserve la
parité sur un disque et on écrit les données
sur les autres comme on le ferait avec une matrice RAID-0. Un
disque étant dédié à la parité,
la taille de la matrice sera (N-1)*S ou S est la taille du plus
petit disque. Comme en RAID-1, les disques doivent avoir la
même taille sans quoi le S précédent
correspondra à celui du plus petit disque.</li>
<li>Si un disque lache, l'information de parité permet de
reconstruire toutes les données. Si deux disques lachent,
toutes les données sont perdues.</li>
<li>On n'utilise pas beaucoup ce niveau en raison du stockage de la
parité sur un disque unique. L'information doit être
mise à jour à <em>chaque</em> fois qu'on écrit
sur un des disques, ce qui constitue un goulot
d'étranglement si le disque de parité n'est pas
nettement plus rapide que les autres. Cependant, si vous avez
beaucoup de petits disques lents et un disque très rapide,
le RAID-4 peut s'avérer très utile.</li>
</ul>
</li>
<li><b>RAID-5</b>
<ul>
<li>Il s'agit surement du mode le plus approprié quand on
souhaite combiner un grand nombre de disques tout en conservant de
la redondance. Le RAID-5 s'employe à partir de trois disques
avec éventuellement des disques de secours. La matrice sera
de taille (N-1)*S, comme en RAID-4. A la différence du
RAID-4, l'information de parité est répartie
équitablement entre les différents disques,
évitant ainsi le goulot d'étranglement du
RAID-4.</li>
<li>Si un des disques tombe en panne les données restent
intactes. La reconstruction peut commencer immédiatement si
des disques de secours sont disponibles. Si deux disques rendent
simultanément l'âme, toutes les données sont
perdues. Le RAID-5 ne survit pas à la défaillance de
plus d'un disque.</li>
<li>Les performances en lecture/écriture s'améliorent
mais il est difficile de prévoir de combien.</li>
</ul>
</li>
</ul>
<h3>Disques de secours</h3>
<p>Les disques de secours ne prenent pas part à la matrice
RAID jusqu'à ce qu'un des disques de celle-ci tombe en
panne. Quand un disque lache, il est marqué
défectueux et la reconstruction est entamée sur le
premier disque de secours disponible.</p>
<p>Les disques de secours renforcent donc la sécurité
de systèmes RAID-5 qui peuvent être difficilement
accessibles. Le système peut fonctionner pendant un certain
temps aec un disque défectueux tant que le disque de secours
assure la redondance.</p>
<p>Vous ne pouvez être sûr de la survie de votre
système en cas de défaillance d'un disque. La couche
RAID peut faire son travail mais les gestionnaires SCSI peuvent
receller des erreurs, les composants IDE peuvent se bloquer et
d'autres phénomènes peuvent se produire.</p>
<h2><a name="ss2.4">2.4 RAID et swap</a></h2>
<p>Il n'y a aucune raison d'employer le RAID au dessus du swap pour
en améliorer les performances. Le noyau se charge
lui-même d'équilibrer le swap sur plusieurs
périphériques si toutes les partitions ont la
même priorité dans la fstab.</p>
<p>Un fichier fstab correct ressemble à ce qui suit
:</p>
<pre>
/dev/sda2 swap swap defaults,pri=1 0 0
/dev/sdb2 swap swap defaults,pri=1 0 0
/dev/sdc2 swap swap defaults,pri=1 0 0
/dev/sdd2 swap swap defaults,pri=1 0 0
/dev/sde2 swap swap defaults,pri=1 0 0
/dev/sdf2 swap swap defaults,pri=1 0 0
/dev/sdg2 swap swap defaults,pri=1 0 0
</pre>
Cette configuration permet à la machine de swaper en
parallèle avec sept périphériques SCSI. Aucun
besoin du RAID pour ça vu qu'il s'agit d'une
fonctionnalité présente dans le noyau de longue date.
<p>Le RAID s'emploie pour le swap à des fins de haute
disponibilité. Si vous configurez un système pour
démarrer sur un périphérique RAID-1, le
système doit être capable de survivre à une
défaillance de disque. Seulement si le système
était en train de swaper sur le périphérique
défectueux, vous allez surement avoir des problèmes.
Swaper sur une matrice RAID-1 aide dans ce genre de situations.</p>
<p>Il y a eu beaucoup de discussions concernant la stabilité
du swap sous une couche RAID logicielle. Le débat continue
car il dépend fortement d'autres aspects du noyau. A la date
de rédaction de ce document, il semble que swaper via le
RAID soit parfaitement stable <em>à l'exception</em> des
phases de reconstruction (i.e. lorsqu'un nouveau disque est
inséré dans une matrice dégradée). La
question ne se posera plus lorsque le noyau 2.4 sortira mais jusque
là, à vous de pousser le système dans ses
retranchements afin de savoir si la stabilité vous satisfait
ou bien si vous ne vous servirez pas du RAID pour le swap.</p>
<p>Vous pouvez utiliser un fichier de swap sur un système de
fichiers au dessus d'une couche RAID, activer le RAID pour le
fichier lui même ou déclarer un
périphérique RAID en tant que swap. A vous de voir.
Comme d'habitude, le disque RAID apparaitra comme un
périphérique de type bloc.</p>
<h2><a name="s3">3. Aspects matériels</a></h2>
<p>Cette section a trait à certaines problèmes
matériels qui se posent lorsqu'on se sert du RAID
logiciel.</p>
<h2><a name="ss3.1">3.1 Configuration IDE</a></h2>
<p>Le RAID fonctionne avec des disques IDE. On peut d'ailleur
obtenir d'excellentes performances. En fait, compte tenu du prix
actuel des disques et des contrôleurs IDE, le choix de ce
matériel est à examiner lors de la mise en place d'un
système RAID.</p>
<ul>
<li><b>Stabilité :</b> les caractéristiques de
tenue des disques IDE ont jusqu'ici été moins bonnes
que celles des disques SCSI. Aujourd'hui encore, la garantie des
disques IDE se cantonne typiquement à un an tandis qu'elle
est de trois à cinq ans pour les disques SCSI. Bien qu'il
soit exagéré d'affirmer que les disques IDE ont une
qualité intrinsèque moindre, il faut reconnaitre que
<em>certains</em> disques auront tendance à tomber en panne
plus souvent que leurs équivalents SCSI. Maintenant, la
mécanique est la même pour le SCSI et l'IDE. Il faut
juste rester conscient de ce que tous les disques lachent, un jour
ou l'autre. Il suffit de s'y préparer.</li>
<li><b>Intégrité des
données :</b>autrefois, il n'y avait aucune garantie
que les données écrites sur le disques fussent bien
celles qui avaient été émises sur le bus (pas
de vérification de parité ni de code d'erreur,
etc...). Les disques durs IDE conformes aux spécifications
Ultra-DMA effectuent un calcul de vérification sur les
données qu'ils reçoivent. Il devient donc fortement
improbable que des données soient corrompues.</li>
<li><b>Performance :</b> je ne vais pas m'étendre sur
cet aspect des disques IDE. En résumé :
<ul>
<li>les disques IDE sont rapides (12 Mo/s et plus)</li>
<li>le système IDE consomme plus de ressources CPU (mais qui
s'en soucie ?)</li>
<li>n'utilisez qu'<b>un</b> disque IDE par adaptateur sans quoi les
performances vont se dégrader.</li>
</ul>
</li>
<li><b>Résistance aux pannes :</b> le gestionnaire IDE
survit généralement à la défaillance
d'un disque IDE. La couche RAID étiquetera le disque comme
défectueux et si vous employez du RAID-1 et au delà,
la machine devrait continuer à fonctionner normalement
jusqu'à ce que vous l'arrêtiez pour les
opérations de maintenance.</li>
</ul>
<p>Il est <b>très</b> important que vous n'utilisiez
<b>qu'un</b> disque IDE par nappe. Outre la question des
performances, la défaillance d'un disque provoque
généralement le blocage de l'interface. Avec une
configuration RAID qui supporte les défaillances (RAID-1, 4,
5), la panne d'un disque est supportée mais l'arrêt
simultané de deux disques bloque la matrice. Un bus, un
disque, telle est la règle.</p>
<p>Les contrôleurs PCI IDE ne manquent pas et vous pourrez
vous procurer deux à quatre bus supplémentaires
autour de 600 FF. Au vu de la différence de prix entre les
disques SCSI et le disques IDE, je dirais qu'un système RAID
IDE est des plus attractifs si on est prêt à se
cantonner à un nombre de disques relativement peu important
(autour de 8 à moins que l'on ne dispose de suffisamment de
connecteurs PCI).</p>
<p>L'IDE est limité par la longueur des cables lorsqu'il
s'agit de mettre en oeuvre des matrices importantes. Même si
votre machine comprend suffisament de connecteurs PCI il est peu
probable que vous puissiez loger plus de huit disques sans vous
heurter à des problèmes de corruption des
données dus à la longueur des cables.</p>
<h2><a name="ss3.2">3.2 Ajout et suppression de disque à
chaud :</a></h2>
<p>Le sujet a effectivement chauffé la liste de diffusion
linux-kernel il y a quelques temps. Bien que la
fonctionnalité soit présente dans une certaine
mesure, il ne s'agit pas de quelque chose de facile.</p>
<h3>Disques IDE</h3>
<p><b>N'essayez pas</b> de manipuler à chaud vos disques IDE
! L'IDE n'est pas prévu pour. Bien sûr, ça se
passera peut-être correctement chez vous si le gestionnaire
IDE est compilé en tant que module (vous utilisez donc un
noyau 2.2 et au delà) et que vous le rechargez une fois le
disque remplacé mais vous pouvez tout aussi bien vous
retrouver avec un controleur IDE grillé. Le temps
d'arrêt du système en cas de problème n'aura
alors pas grand chose à voir avec celui d'une maintenance
programmée.</p>
<p>Outre les aspects purement électriques qui
détruiront joyeusement votre matériel, le
problème réside en ce que l'interface IDE doit
être réexaminée après que des disques
soient échangés. Le gestionnaire IDE actuel ne le
permet pas. Si le nouveau disque est rigoureusement identique
à l'ancien, il se <em>peut</em> que cela fonctionne sans
nouvel examen du bus mais, franchement, vous êtes en train de
tenter le diable.</p>
<h3>Disques SCSI</h3>
<p>Le matériel SCSI n'est pas davantage prévu pour.
Ca <em>peut</em> néanmoins fonctionner. Si votre
contrôleur SCSI est capable de réexaminer le bus,
d'autoriser l'ajout et la suppression de disques, vous y arriverez
peut-être. Je ne vous le conseille vraiment pas mais
ça peut fonctionner. Griller un disque neuf pousse parfois
à revoir ses façons de faire...</p>
<p>La couche SCSI <b>devrait</b> supporter la défaillance
d'un disque mais tous les gestionnaires SCSI n'en sont pas
capables. Si le pilote SCSI accompagne le disque défectueux,
pouvoir échanger ce dernier à chaud est inutile.</p>
<h3>SCA</h3>
<p>L'échange à chaud doit être possible mais je
ne dispose pas du matériel nécessaire pour le
vérifier et personne ne m'a fait part d'expériences
de ce type. Je ne peux donc pas vous en dire plus.</p>
<p>Si vous voulez essayer, il vous faudra connaitre le
fonctionnement interne du SCSI et du RAID. Je ne vais pas
écrire quelque chose que je ne peux pas vérifier mais
juste vous donner quelques indications :</p>
<ul>
<li>partez à la recherche de <b>remove-single-device</b>
dans le fichier <b>linux/drivers/scsi/scsi.c</b></li>
<li>jetez un oeil à <b>raidhotremove</b> et à
<b>raidhotadd</b></li>
</ul>
<p>Tous les gestionnaires SCSI ne permettent pas l'ajout et la
suppression à chaud. Dans la série 2.2.x des noyaux,
les pilotes Adaptec 2940 et Symbios NCR53C8xx en semblent capables.
Toute information concernant les autres pilotes sera la
bienvenue.</p>
<h2><a name="s4">4. Configuration du RAID</a></h2>
<h2><a name="ss4.1">4.1 Configuration
générale</a></h2>
<p>Voici ce que requièrent tous les niveaux de RAID
:</p>
<ul>
<li>Un noyau, de préférence un 2.2.x ou le dernier
2.0.x. Si la branche 2.4.x est disponible quand vous lirez ces
lignes, servez vous en.</li>
<li>Les patches RAID. Ils existent généralement pour
les noyaux récents. Les noyaux 2.4.x ne nécessiteront
pas de patch.</li>
<li>Les utilitaires RAID.</li>
<li>De la patience, des pizzas et des amph^H^H^H^H substances
à la caféine.</li>
</ul>
<p>Tous les logiciels se trouvent sur
<code>ftp://ftp.fi.kernel.org/pub/linux</code> Les outils et les
patches RAID sont dans le répertoire
<code>daemons/raid/alpha</code>. Le noyau se trouve dans le
répertoire <code>kernel</code>.</p>
<p>Patchez le noyau, configurez le de façon à inclure
la gestion du RAID pour les niveaux qui vous intéressent.
Compilez et installez.</p>
<p>Détarrez, configurez, compilez et installez les outils
RAID.</p>
<p>Jusqu'ici, tout va bien. A présent, si vous
redémarrez, vous devriez avoir un fichier appelé
<code>/proc/mdstat</code>. N'oubliez jamais que ce fichier est
votre allié. Examinez son contenu avec un <code>cat</code>
<code>/proc/mdstat</code>. Il devrait vous confirmer que vous
disposez du niveau (personality) RAID voulu et qu'aucun
périphérique RAID n'est actif.</p>
<p>Créez les partitions que vous souhaitez inclure dans
votre matrice RAID.</p>
<p>La suite des opérations dépend à
présent du mode RAID.</p>
<h2><a name="ss4.2">4.2 Mode linéaire</a></h2>
<p>On dispose à présent de deux partitions (ou plus)
qui ne sont pas nécessairement de la même taille et
que l'on va concaténer.</p>
<p>Editez le fichier <code>/etc/raidtab</code> de façon
à correspondre à votre configuration. Pour deux
disques en mode linéaire, voici un fichier type :</p>
<pre>
raiddev /dev/md0
raid-level linear
nr-raid-disks 2
chunk-size 32
persistent-superblock 1
device /dev/sdb6
raid-disk 0
device /dev/sdc5
raid-disk 1
</pre>
On ne peut disposer de disques de secours. Si un disque tombe en
panne, toute la matrice s'effondre. Il n'y a rien à stocker
sur un disque de secours.
<p>Vous vous demanderez peut-être pourquoi on précise
un paramètre <code>chunk-size</code> quand le mode
linéaire ne fait que concaténer les disques en un
disque virtuel plus important sans y accéder en
parallèle. Vous avez tout à fait raison. Mettez y une
valeur quelconque et pensez à autre chose.</p>
<p>On crée la matrice :</p>
<pre>
mkraid /dev/md0
</pre>
<p>La commande initialise la matrice, écrit les superblocs
persistants et active le périphérique.</p>
<p>Jetez un oeil à <code>/proc/mdstat</code>. Vous devriez y
voir que la matrice fonctionne.</p>
<p>A présent créez un système de fichiers
comme sur un périphérique quelconque, montez le,
incluez le dans votre fstab etc...</p>
<h2><a name="ss4.3">4.3 RAID-0</a></h2>
<p>On dispose de deux disques (ou davantage) de taille sensiblement
égale dont on veut additionner les capacités de
stockage tout en en améliorant les performances au moyen
d'accès simultanés.</p>
<p>Editez le fichier <code>/etc/raidtab</code> de façon
à correspondre à votre configuration. Voici un
fichier type :</p>
<pre>
raiddev /dev/md0
raid-level 0
nr-raid-disks 2
persistent-superblock 1
chunk-size 4
device /dev/sdb6
raid-disk 0
device /dev/sdc5
raid-disk 1
</pre>
Comme en mode linéaire, il n'y a pas de disque de secours.
Le RAID-0 n'offre aucune redondance et la défaillance d'un
disque signifie celle de la matrice entière.
<p>On exécute :</p>
<pre>
mkraid /dev/md0
</pre>
La commande initialise la matrice, écrit les superblocs
persistants et active la matrice.
<p>/dev/md0 est prêt à être formaté,
monté et à subir les pires outrages.</p>
<h2><a name="ss4.4">4.4 RAID-1</a></h2>
<p>On dispose de deux disques de taille sensiblement égale
que l'on souhaite mettre en mirroir. On peut avoir des disques
supplémentaires que l'on gardera en attente comme disques de
secours et qui prendront automatiquement place dans la matrice si
un disque actif tombe en panne.</p>
<p>Voici le fichier <code>/etc/raidtab</code> typique :</p>
<pre>
raiddev /dev/md0
raid-level 1
nr-raid-disks 2
nr-spare-disks 0
chunk-size 4
persistent-superblock 1
device /dev/sdb6
raid-disk 0
device /dev/sdc5
raid-disk 1
</pre>
Pour prendre en compte des disques de secours :
<pre>
device /dev/sdd5
spare-disk 0
</pre>
N'oubliez pas d'ajuster la variable nr-spare-disks en
conséquence.
<p>A présent, on peut initialiser la matrice RAID. Son
contenu doit être construit et les contenus des deux disques
(sans importance pour l'instant) synchronisés.</p>
<p>Exécutez :</p>
<pre>
mkraid /dev/md0
</pre>
L'initialisation de la matrice démarrera.
<p>Examinez le fichier <code>/proc/mdstat</code>. On doit y lire
que /dev/md0 a été démarré, que le
mirroir est en cours de reconstruction et y trouver une estimation
de la durée de reconstruction.</p>
<p>La reconstruction a lieu durant les périodes
d'inactivité au niveau des entrées/sorties.
L'interactivité du système ne devrait donc pas en
souffrir. Les LED des disques palpiteront gaiement.</p>
<p>Le processus de reconstruction est transparent et on peut
utiliser le périphérique RAID pendant cette
phase.</p>
<p>Formattez la matrice pendant la reconstruction. On peut
également la monter et s'en servir. Bien sûr, si le
mauvais disque lache à ce moment là, il ne s'agissait
pas d'un jour de chance.</p>
<h2><a name="ss4.5">4.5 RAID-4</a></h2>
<p><b>Remarque :</b> je n'ai pas testé personnellement
cette configuration et ce qui suit correspond à ce qui me
paraît le plus vraisemblable.</p>
<p>On dispose de trois disques ou plus de taille sensiblement
équivalente, l'un d'eux est nettement plus rapide que les
autres et on souhaite les combiner en un périphérique
de taille plus élevée tout en conservant un certain
niveau de redondance. En outre, on peut introduire des disques de
secours.</p>
<p>Fichier /etc/raidtab typique :</p>
<pre>
raiddev /dev/md0
raid-level 4
nr-raid-disks 4
nr-spare-disks 0
persistent-superblock 1
chunk-size 32
device /dev/sdb1
raid-disk 0
device /dev/sdc1
raid-disk 1
device /dev/sdd1
raid-disk 2
device /dev/sde1
raid-disk 3
</pre>
Les disques de secours sont traités par les lignes suivantes
:
<pre>
device /dev/sdf1
spare-disk 0
</pre>
<p>La matrice s'initialise comme d'habitude :</p>
<pre>
mkraid /dev/md0
</pre>
<p>On se reportera aux options particulières de mke2fs avant
de formater le périphérique.</p>
<h2><a name="ss4.6">4.6 RAID-5</a></h2>
<p>On dispose de trois disques ou plus de taille sensiblement
équivalente que l'on veut combiner en un
périphérique de taille plus élevée tout
en assurant la redondance des données. On peut introduire
des disques de secours.</p>
<p>Si on employe N disques dont le plus petit est de taille S, la
taille de la matrice sera (N-1)*S. L'espace manquant sert au
stockage des données de parité (redondance). Si un
disque tombe en panne, les données restent intactes. Si deux
disques lachent, toutes les données sont perdues.</p>
<p>Fichier de configuration /etc/raidtab typique :</p>
<pre>
raiddev /dev/md0
raid-level 5
nr-raid-disks 7
nr-spare-disks 0
persistent-superblock 1
parity-algorithm left-symmetric
chunk-size 32
device /dev/sda3
raid-disk 0
device /dev/sdb1
raid-disk 1
device /dev/sdc1
raid-disk 2
device /dev/sdd1
raid-disk 3
device /dev/sde1
raid-disk 4
device /dev/sdf1
raid-disk 5
device /dev/sdg1
raid-disk 6
</pre>
Les disques de secours sont traités par les lignes suivantes
:
<pre>
device /dev/sdh1
spare-disk 0
</pre>
Et ainsi de suite.
<p>Une taille de bloc (chunk-size) de 32 ko est un bon choix par
défaut pour de nombreux systèmes de fichiers. La
matrice dérivée du fichier de configuration
précédent est de 7 fois 6 Go soit 36 Go (n'oubliez
pas que (n-1)*s = (7-1)*6 = 36). Il contient un système de
fichiers ext2 avec une taille de blocs de 4 ko. Rien
n'empèche d'aller au-delà via les paramètres
de bloc de la matrice et du système de fichiers si ce
dernier est plus grand ou s'il doit contenir des fichiers de grande
taille.</p>
<p>A présent, on exécute :</p>
<pre>
mkraid /dev/md0
</pre>
Normalement les disques devraient s'activer furieusement durant la
construction de la matrice. On examinera le contenu du fichier
<code>/proc/mdstat</code> pour savoir ce qui se passe.
<p>Si le périphérique a été
créé avec succès, la reconstruction est en
cours. La matrice ne sera pas cohérente tant que celle-ci
n'aura pas pris fin. La matrice est cependant parfaitement
opérationnelle (à la gestion des défaillances
près) et on peut déjà la formater et s'en
servir.</p>
<p>On se reportera aux options particulières de mke2fs avant
de formatter le périphérique.</p>
<p>Maintenant que le disque RAID fonctionne, on peut
l'arrêter ou le redémarrer via les commandes
:</p>
<pre>
raidstop /dev/md0
</pre>
et
<pre>
raidstart /dev/md0
</pre>
<p>Au lieu de mettre ces commandes dans les scripts
d'initialisation et de rebooter un milliard de fois pour arriver
à tout faire fonctionner, on lira les paragraphes suivants
qui traitent de l'autodétection.</p>
<h2><a name="ss4.7">4.7 Les superblocs persistants</a></h2>
<p>Autrefois (TM), les utilitaires RAID analysaient le fichier de
configuration et initialisaient la matrice. Il fallait donc que le
système de fichiers sur lequel figurait le fichier
<code>/etc/raidtab</code> soit monté : plutôt
pénible pour démarrer sur un système de
fichiers RAID.</p>
<p>L'ancienne approche conduisait de surcroît à des
complications pour monter des systèmes de fichiers reposant
sur périphériques RAID. Ils ne pouvaient être
simplement mis dans le fichier <code>/etc/fstab</code> habituel et
nécessitaient des interventions chirurgicales dans les
scripts de démarrage.</p>
<p>Les superblocs persistants résolvent ces
problèmes. Lorsqu'une matrice est initialisée avec
l'option <code>persistent-superblock</code> dans le fichier
<code>/etc/raidtab</code>, un superbloc de type particulier est
écrit au début de chaque disque prenant part à
la matrice. Le noyau est alors capable d'obtenir directement la
configuration de la matrice depuis les disques qui la composent au
lieu de devoir analyser un fichier de configuration à la
disponibilité aléatoire.</p>
<p>On gardera quand même cohérent le fichier
<code>/etc/raidtab</code> puisqu'on peut en avoir besoin
ultérieurement en cas de reconstruction de la matrice.</p>
<p>Les superblocs persistants sont obligatoires si on souhaite
bénéficier de l'auto-détection des
périphériques RAID au démarrage du
système. On se reportera à la section
<b>Autodétection</b>.</p>
<h2><a name="ss4.8">4.8 Taille des blocs (chunk size)</a></h2>
<p>Ce paramètre mérite quelques explications. On ne
peut jamais écrire de façon rigoureusement
parallèle sur un ensemble de disques. Dans le cas de deux
disques sur lesquels on devrait écrire un octet, on pourrait
souhaiter que les quatres bits de poids fort aillent toujours sur
le même disque, ceux de poids faible allant sur l'autre. Le
matériel ne le permet pas. On définit donc de
façon plus ou moins arbitraire une taille de bloc
élémentaire qui correspondra à la plus petite
quantité de données "atomique" qui sera écrite
sur les disques. L'écriture de 16 ko avec une taille de bloc
de 4 ko provoquera l'envoi du premier et du troisième bloc
de 4 ko vers le premier disque et celui du deuxième et du
quatrième bloc vers le second disque pour une matrice RAID-0
comportant deux disques. Pour de grosses écritures, la
consommation de ressources sera minimisée par une taille de
blocs importante tandis qu'une matrice composée
essentiellement de petits fichiers profitera davantage d'une taille
de blocs réduite.</p>
<p>Ce paramètre peut être spécifié pour
tous les niveaux de RAID, même le mode linéaire
où il n'a aucun effet.</p>
<p>A vous de modifier ce paramètre, ainsi que la taille de
blocs du système de fichier, pour obtenir les meilleurs
performances possibles.</p>
<p>L'argument de l'option chunk-size dans le fichier
<code>/etc/raidtab</code> précise la taille en ko.</p>
<h3>RAID-0</h3>
<p>Les données sont écrites successivement sur chaque
disque par paquets de <code>chunk-size</code> octets.</p>
<p>Pour une taille de bloc de 4 ko, lors de l'écriture de 16
ko de données sur un système muni de trois disques,
la couche RAID écrira simultanément 4 ko sur chacun
des trois disques puis écrira les 4 ko restant sur le disque
0.</p>
<p>32 ko semble un bon point de départ pour une
majorité de matrices mais la valeur optimale dépend
étroitement du nombre de disques impliqués, du
contenu du système de fichiers et de divers autres facteurs.
A vous d'expérimenter pour trouver la meilleure valeur.</p>
<h3>RAID-1</h3>
<p>Pour les écritures le paramètre importe peu vu que
les données doivent être écrites sur tous les
disques. Cependant, pour les lectures, il fixe la quantité
de données à lire en une fois depuis un disque. Tous
les disques contenant la même information, les lectures
peuvent être équilibrées d'une façon
similaire au RAID-0.</p>
<h3>RAID-4</h3>
<p>Lors d'une écriture dans une matrice RAID-4,
l'information de parité doit être mise à jour
sur le disque dédié. La taille de bloc
spécifie alors la taille des blocs de parité. Si un
octet est écrit dans une matrice RAID-4,
<code>chunk-size</code> octets seront lus depuis N-1 disques, la
parité sera calculée et <code>chunk-size</code>
octets seront écrits sur le disque de parité.</p>
<p>Le paramète affecte les performances de la même
façon que pour le RAID-0 puisque les lectures fonctionnent
de la même façon.</p>
<h3>RAID-5</h3>
<p>Le paramètre a la même signification que pour le
RAID-4.</p>
<p>128 ko est une valeur raisonnable. A vous de l'ajuster.</p>
<p>On se reportera également à la section traitant
des options particulières de mke2fs qui affectent les
performances du RAID-5.</p>
<h2><a name="ss4.9">4.9 Options de mke2fs</a></h2>
<p>L'option <code>-R stride=nn</code> permet à mke2fs
d'optimiser l'emplacement des structures de contrôle
spécifiques à ext2 lors du formatage d'un disque
RAID-4 ou RAID-5.</p>
<p>Si la taille de bloc RAID est de 32 ko, 32 ko de données
consécutives résideront sur un même disque. Si
on souhaite construire un systéme de fichiers ext2 avec une
taille de blocs de 4 ko, il y aura 8 blocs de données
consécutifs dans un bloc du tableau. On fournit
l'information à mke2fs de la manière suivante
:</p>
<pre>
mke2fs -b 4096 -R stride=8 /dev/md0
</pre>
<p>Les performances du RAID-{4,5} dépendent fortement de
cette option. Je ne suis pas sûr de son influence sur les
autres niveaux RAID. Si quelqu'un a des informations à ce
sujet, elles seront les bienvenues.</p>
<p>La taille de bloc ext2 joue <code>très</code> fortement
sur les performances du système de fichier. Dès que
la taille de ce dernier dépasse quelques centaines de Mo,
une taille de bloc de 4 ko est conseillée (à moins
que le système de fichiers ne doivent stocker de très
nombreux petits fichiers).</p>
<h2><a name="ss4.10">4.10 Autodétection</a></h2>
<p>L'autodétection permet une reconnaissance automatique des
périphériques par le noyau au démarrage, jsute
après l'identification des partitions usuelles.</p>
<p>Requis :</p>
<ol>
<li>La gestion de l'autodétection par le noyau.</li>
<li>Les disques RAID doivent avoir été
créés avec l'option de persistance des
superblocs.</li>
<li>Les partitions doivent être de type <b>0xFD</b> (à
positionner avec fdisk).</li>
</ol>
<p>Remarque : on vérifiera que la matrice RAID est
arrêtée avant de changer le type des partitions
(<code>raidstop /dev/md0</code>).</p>
<p>En suivant les trois étapes précédentes,
l'autodétection devrait être en place. Essayez de
redémarrer. Une fois le système initialisé,
<code>/proc/mdstat</code> doit confirmer que la matrice RAID
fonctionne.</p>
<p>Des messages semblables aux suivants apparaitront au
démarrage :</p>
<pre>
Oct 22 00:51:59 malthe kernel: SCSI device sdg: hdwr sector= 512
bytes. Sectors= 12657717 [6180 MB] [6.2 GB]
Oct 22 00:51:59 malthe kernel: Partition check:
Oct 22 00:51:59 malthe kernel: sda: sda1 sda2 sda3 sda4
Oct 22 00:51:59 malthe kernel: sdb: sdb1 sdb2
Oct 22 00:51:59 malthe kernel: sdc: sdc1 sdc2
Oct 22 00:51:59 malthe kernel: sdd: sdd1 sdd2
Oct 22 00:51:59 malthe kernel: sde: sde1 sde2
Oct 22 00:51:59 malthe kernel: sdf: sdf1 sdf2
Oct 22 00:51:59 malthe kernel: sdg: sdg1 sdg2
Oct 22 00:51:59 malthe kernel: autodetecting RAID arrays
Oct 22 00:51:59 malthe kernel: (read) sdb1's sb offset: 6199872
Oct 22 00:51:59 malthe kernel: bind<sdb1,1>
Oct 22 00:51:59 malthe kernel: (read) sdc1's sb offset: 6199872
Oct 22 00:51:59 malthe kernel: bind<sdc1,2>
Oct 22 00:51:59 malthe kernel: (read) sdd1's sb offset: 6199872
Oct 22 00:51:59 malthe kernel: bind<sdd1,3>
Oct 22 00:51:59 malthe kernel: (read) sde1's sb offset: 6199872
Oct 22 00:51:59 malthe kernel: bind<sde1,4>
Oct 22 00:51:59 malthe kernel: (read) sdf1's sb offset: 6205376
Oct 22 00:51:59 malthe kernel: bind<sdf1,5>
Oct 22 00:51:59 malthe kernel: (read) sdg1's sb offset: 6205376
Oct 22 00:51:59 malthe kernel: bind<sdg1,6>
Oct 22 00:51:59 malthe kernel: autorunning md0
Oct 22 00:51:59 malthe kernel: running: <sdg1><sdf1><sde1><sdd1><sdc1><sdb1>
Oct 22 00:51:59 malthe kernel: now!
Oct 22 00:51:59 malthe kernel: md: md0: raid array is not clean --
starting background reconstruction
</pre>
Il s'agit des messages à l'autodétection des
partitions d'une matrice RAID-5 qui n'a pas été
arrêtée correctement (la machine a planté). La
reconstruction a lieu spontanément. Le montage de
l'unité est parfaitement licite puisque la reconstruction
est transparente et que toutes les données sont
cohérentes (seule l'information de parité qui ne sert
qu'en cas de défaillance d'un disque est
incohérente).
<p>Les périphériques reconnus automatiquement sont
stoppés de même quand le système
s'arrête. Oubliez les scripts d'initialisation et servez vous
des disques /dev/md comme s'il s'agissait de /dev/sd ou
/dev/hd.</p>
<p>C'est aussi simple que ça.</p>
<p>Les lignes comportant les commandes raidstart et raidstop dans
les scripts d'initialisation ne servent que pour les matrices RAID
qui reposent sur l'ancienne mouture du code. Elles peuvent
être supprimées sans hésitation dans le cadre
de matrices RAID qui ont recours à
l'autodétection.</p>
<h2><a name="ss4.11">4.11 Démarrage sur un disque
RAID</a></h2>
<p>Il existe plusieurs façons de mettre en place un
système qui monte directement sa partition racine depuis un
périphérique RAID. Pour l'instant, seuls les outils
d'installation graphiques de la RedHat 6.1 permettent
l'installation directe sur une matrice RAID. Il vous faudra donc
surement effectuer quelques manipulations à la main mais il
n'y a là rien d'impossible.</p>
<p>La dernière version officielle de lilo (21) ne
gère pas les disques RAID et le noyau ne peut donc pas
être chargé au démarrage depuis ce genre de
périphériques. Il faudra donc que le
répertoire <code>/boot</code> réside sur un
système de fichier hors RAID. Afin d'être sûr
que le système démarre quel que soit son état,
dupliquez une partition <code>/boot</code> similaire sur chaque
disque. Le BIOS sera ainsi toujours capable de charger les
données depuis, par exemple le premier disque disponible. Il
faudra donc que le système ne démarre pas avec un
disque défectueux.</p>
<p>Avec la RedHat 6.1 est fourni un patch pour lilo 21 qui permet
d'accéder à <code>/boot</code> sur du RAID-1. On
notera que le patch n'est pas adapté aux autres niveaux
RAID. Le patch est disponible dans tous les mirroirs RedHat via
<code>dist/redhat-6.1/SRPMS/SRPMS/lilo-0.21-10.src.rpm</code>. La
version modifiée de lilo acceptera un argument du type
<code>boot=/dev/md0</code> dans le fichier
<code>/etc/lilo.conf</code> et rendra chaque disque du mirroir
utilisable au dénarrage.</p>
<p>On peut également avoir recours à une disquette de
démarrage.</p>
<h2><a name="ss4.12">4.12 Installer le système de fichiers
racine sur une couche RAID</a></h2>
<p>Deux méthodes sont fournies ci-dessous. A ma
connaissance, aucune distribution ne permet l'installation sur un
disque RAID et la méthode que je suggère suppose que
vous installez d'abord le système sur une partition normale
avant de mouvoir les fichiers sur la matrice RAID une fois
l'installation complète.</p>
<h3>Première méthode :</h3>
<p>On dispose d'un disque supplémentaire où on peut
installer le système.</p>
<ul>
<li>Installez un système normal sur le disque
supplémentaire.</li>
<li>Mettez en place un noyau incluant les patches
nécessaires pour le RAID et vérifiez que le
système s'initialise correctement avec ce noyau. Il faudra
veiller à ce que le support RAID soit <b>dans</b> le noyau
et non sous forme de modules.</li>
<li>A présent, configurez et créez la matrice RAID
dont vous comptez vous servir en tant que racine. Il s'agit de la
procédure standard telle que décrite
précédemment dans le document.</li>
<li>Redémarrez le système afin de vérifier que
la matrice est détectée correctement (elle devrait en
tout cas).</li>
<li>Créez un système de fichier sur la nouvelle
matrice avec mke2fs et montez la en /mnt/newroot (par
exemple).</li>
<li>Copiez le contenu de la racine courante sur le disque RAID. Il
existe différentes façons de faire, par exemple
:
<pre>
cd /
find . -xdev | cpio -pm /mnt/newroot
</pre></li>
<li>modifiez le fichier <code>/mnt/newroot/etc/fstab</code> de
façon à ce qu'il pointe vers le
périphérique <code>/dev/md?</code> adéquat
pour la racine.</li>
<li>Démontez le répertoire <code>/boot</code> courant
et montez le à la place en
<code>/mnt/newroot/boot</code>.</li>
<li>Mettez à jour <code>/mnt/newroot/etc/lilo.conf</code> de
façon à pointer vers le bon
périphérique. Le périphérique de boot
doit rester un disque normal (non-RAID) mais le disque racine doit
pointer vers la matrice RAID. Ceci fait, exécutez un
<pre>
lilo -r /mnt/newroot
</pre>
. Lilo ne devrait pas émettre d'erreurs.</li>
<li>Redémarrez le système et admirez avec quel
facilité tout se passe comme on le souhaite :o)</li>
</ul>
<p>Dans le cas de disques IDE, on spécifiera dans le BIOS
les disques comme étant de type ``auto-detect'' pour que la
machine puisse redémarrer même si un disque
manque.</p>
<h3>Seconde méthode :</h3>
<p>Cette méthode nécessite l'emploi d'outils RAID et
du patch qui autorisent la directive failed-disk. Il faut donc
disposer d'un noyau 2.2.10 ou au delà.</p>
<p>Il <b>faut</b> que la matrice soit au moins de type 1.
L'idée consiste à installer le système sur un
disque marqué défectueux du point de vue RAID puis
à copier le système sur la partie restante de la
matrice RAID qui sera considérée comme
dégradée avant de réinsérer le disque
d'installation et de déclencher sa resynchronisation.</p>
<ul>
<li>Installez un système normal sur un des deux disques (qui
fera plus tard partie de la matrice). Il est important que ce
disque ne soit pas le plus petit sans quoi il ne sera pas possible
de l'ajouter à la matrice !</li>
<li>Récupérez le noyau, le patch, les outils, etc...
Redémarrez le système avec le noyau qui est muni de
la gestion RAID.</li>
<li>Créez votre matrice en indiquant le disque qui occupe la
racine actuelle comme <code>failed-disk</code> dans le fichier
<code>raidtab</code> Ne mettez pas ce disque en première
position dans le fichier ou vous aurez du mal à
démarrer la matrice. Activez la matrice et mettez y un
système de fichiers.</li>
<li>Redémarrez et vérifiez que la matrice RAID est
correctement activée.</li>
<li>Copiez les fichiers de la racine et modifiez les fichiers
système du disque RAID de façon à ce qu'il se
référence bien en tant que racine.</li>
<li>Lorsque le système démarre correctement depuis le
disque RAID, modifiez le fichier <code>raidtab</code> en
emplaçant la directive <code>failed-disk</code> par une
directive <code>raid-disk</code>. Ajoutez à présent
ce disque à la matrice avec <code>raidhotadd</code></li>
<li>Le système doit à présent démarrer
depuis une matrice non-dégradée.</li>
</ul>
<h2><a name="ss4.13">4.13 Démarrer le système depuis
le RAID</a></h2>
<p>Pour que le noyau soit capable de monter le système de
fichiers racine, les pilotes des périphériques
nécessaires doivent être présents dans le noyau
(NdT : ou chargés via un initrd qui peut
également contenir les modules RAID).</p>
<p>La façon normale de procéder consiste à
compiler un noyau qui inclut en dur toutes les options RAID
nécessaires (NdT : je proteste !).</p>
<p>La redHat-6.0 étant fournie avec un noyau modulaire qui
gère la nouvelle mouture du RAID, je vais cependant en
décrire l'emploi si on souhaite s'en servir pour
démarrer son systéme depuis un volume RAID.</p>
<h3>Démarrage avec le RAID modularisé</h3>
<p>Il faut préciser à lilo qu'il doit
également charger un équivalent de ramdisk en sus du
noyau au démarrage. La commande <code>mkinitrd</code> permet
de créer un ramdisk (ici un initrd) contenant les modules
nécessaires au montage de la racine. Commande type
:</p>
<pre>
mkinitrd --with=<module> <ramdisk name> <kernel>
</pre>
Par exemple :
<pre>
mkinitrd --with=raid5 raid-ramdisk 2.2.5-22
</pre>
<p>Ceci garantit que le module RAID adéquat sera disponible
au démarrage lorsque le noyau devra monter la racine.</p>
<h2><a name="ss4.14">4.14 Mises en garde</a></h2>
<p>Ne repartitionnez <b>JAMAIS</b> un disque qui appartient
à une matrice RAID. Si vous devez modifier la table des
partitions d'un disque au sein d'une matrice, arrêtez d'abord
la matrice et repartitionnez ensuite.</p>
<p>On a vite fait de saturer un bus. Un bus Fast-Wide SCSI courant
n'offre que 10 Mo/s, ce qui est largement en dessous des
performances des disques actuels. Mettre six disques sur un canal
de ce type n'apportera bien entendu pas le gain en performances
souhaité.</p>
<p>L'ajout de contrôleurs SCSI n'est susceptible
d'améliorer les performances que si les bus
déjà présents sont proches de la saturation.
Vous ne tirerez rien de plus de deux contrôleurs 2940 si vous
n'avez que deux vieux disques SCSI qui ne satureraient même
pas un seul contrôleur.</p>
<p>Si vous omettez l'option de persistance des superblocs votre
matrice ne redémarrera pas spontanément après
un arrêt. Reprenez la création de la matrice avec
l'option correctement positionnée.</p>
<p>Si la resynchronisation d'une matrice RAID-5 échoue
après qu'un disque ait été oté puis
reinséré, l'ordre des disques dans le fichier raidtab
est peut-être le responsable. Essayez de déplacer la
première paire ``device ...'' et ``raid-disk ...'' en
début de description de la matrice.</p>
<p>La plupart des retours d'erreur observés sur la liste de
diffusion linux-kernel proviennent de gens qui ont
procédé à des mélanges douteux entre
les patches et les outils RAID. Si vous utilisez le RAID 0.90,
vérifiez que vous vous servez bien de la bonne version des
utilitaires.</p>
<h2><a name="s5">5. Test de la couche RAID</a></h2>
<p>Si vous utilisez le RAID pour améliorer la
tolérance aux pannes, vous voudrez surement tester votre
installation afin de vérifier son fonctionnement. Comment
simule-t-on donc une défaillance ?</p>
<p>En résumé, on ne peut pas à moins de
titiller un disque au lance-flammes pour "simuler" une
défaillance. On ne peut pas prévoir ce qui va se
passer en cas de perte d'un disque. Il pourrait très bien
verouiller électriquement le bus et rendre tous les disques
sur le bus inaccessibles. Je n'ai néanmoins jamais entendu
d'histoire de ce genre. Le disque signalera peut-être une
erreur de lecture/écriture à la couche IDE ou SCSI
qui permettra à son tour à la couche RAID de
gérer la situation avec élégance.
Heureusement, les choses se passent assez souvent ainsi.</p>
<h2><a name="ss5.1">5.1 Défaillance d'un disque</a></h2>
<p>Débranchez le disque. Ceci n'est à faire qu'avec
le système <b>hors-tension</b> . Inutile de jouer les
aventuriers de l'ajout/suppression à chaud pour
vérifier que les données supportent bien la
disparition d'un disque. Arrêtez le système,
débranchez le disque et redémarrez le de nouveau.</p>
<p>Syslog et <code>/proc/mdstat</code> permettent de
vérifier l'état de la matrice.</p>
<p>N'oubliez pas que vous <b>devez</b> employer du RAID-{1,4,5}
pour que la matrice soit capable de supporter la défaillance
d'un disque. Les modes linéaire et RAID-0 échouent
complètement dans ce genre de situation.</p>
<p>Une fois le disque rebranché (avec le courant
arrêté, merci), on ajoutera le ``nouveau'' disque au
système RAID avec la commande <code>raidhotadd</code>.</p>
<h2><a name="ss5.2">5.2 Corruption de données</a></h2>
<p>Le RAID, qu'il soit matériel ou logiciel, suppose que si
une écriture ne renvoie pas une erreur, alors elle s'est
déroulée normalement. Donc, si un diseue corrompt les
données sans retourner d'erreur, les données
<em>seront</em> corrompues. Bien que ce soit fortement improbable,
on ne peut l'exclure et cela aura pour conséquence la
corruption du système de fichiers.</p>
<p>Le RAID ne peut rien faire face à ce genre de
défaillances et il n'a pas été prévu
pour de toutes façons. Il est donc inutile de
déclencher sciemment des corruptions de données (avec
<code>dd</code> par exemple) pour vérifier le comportement
de la couche RAID. A moins de modifier le superbloc RAID, il est
vraisemblable que la couche RAID ne remarque rien mais que le
système de fichiers soit détruit.</p>
<p>Il s'agit du fonctionnement normal du système. Le RAID ne
garantit pas l'intégrité des données. Il
permet juste de les conserver si un disque tombe en panne (pourvu
qu'on utilise un niveau de RAID supérieur ou égal
à 1).</p>
<h2><a name="s6">6. Reconstruction</a></h2>
<p>Si vous avez lu le reste du document, vous devez
déjà avoir une bonne idée de la
procédure à suivre pour la reconstruction d'une
matrice dégradée. Pour résumer :</p>
<ul>
<li>Arrêtez le système.</li>
<li>Remplacez le disque défectueux.</li>
<li>Redémarrez le système.</li>
<li>Utilisez <code>raidhotadd /dev/mdX /dev/sdX</code> pour
réinsérer le disque dans la matrice.</li>
<li>Allez prendre un café pendant que la reconstruction
s'effectue.</li>
</ul>
C'est tout.
<p>Enfin, c'est généralement tout. Sauf si vous jouez
de malchance et que le système RAID est devenu inutilisable
à cause de la défaillance de plus de disques qu'il
n'y en a de redondant. Ca risque de se produire si plusieurs
disques résident sur un même bus qui est bloqué
par le disque en panne. Bien qu'en état, les autres disques
sur le bus vont être inaccessibles à la couche RAID et
marqués comme défectueux. Pour une matrice RAID5
où on peut utiliser un disque en secours, la perte de deux
disques ou davantage risque de s'avérer fatale.</p>
<p>La section suivante est tirée d'une explication que m'a
donnée Martin Bene et présente une méthode
possible de récupération dans le cas d'un
scénario catastrophe tel que celui décrit. Elle
implique l'emploi de la directive <code>failed-disk</code> dans le
fichier <code>/etc/raidtab</code>. Elle ne pourra donc fonctionner
qu'avec un noyau 2.2.10 et au delà.</p>
<h2><a name="ss6.1">6.1 Rattrapage d'une défaillance de
plusieurs disques</a></h2>
<p>Scénario :</p>
<ul>
<li>un contrôleur rend l'âme et bloque
simultanément l'accès à deux
disques ;</li>
<li>tous les disques d'un même bus SCSI sont bloqués
à cause d'un même disque défectueux ;</li>
<li>un cable s'envole pour le grand centre de traitement
automatisé.</li>
</ul>
En bref : le plus souvent, une panne <em>temporaire</em> se
produit sur plusieurs disques. Les superblocs RAID sont
désynchronisés et la matrice RAID refuse de
s'initialiser.
<p>Une seule chose à faire : reécrire les
superblocs RAID via <code>mkraid --force</code>.</p>
<p>Pour que ça marche, le fichier
<code>/etc/raidtab</code> ; doit être à jour.
S'il ne correspond pas <b>exactement</b> à l'organisation
des disques et à leur ordre, ça ne marchera pas.</p>
<p>Examinez la sortie de syslog produite lors de la tentative de
démarrage de la matrice, vous y releverez le compteur
d'évenements pour chaque superbloc. En
général, il vaut mieux laisser de côté
le disque avec le compteur le plus faible, c'est à dire le
plus ancien.</p>
<p>Si vous exécutez <code>mkraid</code> sans la directive
<code>failed-disk</code>, le thread de récupération
va se mettre à fonctionner immédiatement et commencer
à reconstruire les blocs de parité - ce qui est
surement un peu prématuré.</p>
<p>Avec <code>failed-disk</code>, vous préciserez quels
disques vous souhaitez voir actifs et essaierez peut-être
différentes combinaisons pour obtenir les meilleurs
résultats. Pendant la reconstruction, ne montez le
système de fichier qu'en lecture seule. J'ai
été en contact avec deux personnes qui s'en sont
sorties ainsi.</p>
<h2><a name="s7">7. Performances</a></h2>
<p>Cette partie offre quelques évaluations de performances
issues de tests de systèmes employant le RAID.</p>
<p>Les tests ont été conduits avec
<code>bonnie</code> et à chaque fois sur des fichiers de
taille égale à deux fois ou plus celle de la
mémoire physique de la machine.</p>
<p>Ces tests ne mesurent <em>que</em> la bande passante en
lecture/écriture pour un seul fichier de grande taille. On
ne sait donc rien des performances qu'on observerait avec un
serveur web, un serveur de news, etc... Peu d'applications du monde
réel font la même chose que <code>bonnie</code> et
bien que ce genre de nombres soit agréable à
regarder, il ne s'agit pas d'indicateurs de performances pour de
véritables applications. On en est loin.</p>
<p>Concernant ma machine :</p>
<ul>
<li>Bi-Pentium Pro 150 MHz</li>
<li>256 Mo RAM (60 MHz EDO)</li>
<li>trois IBM UltraStar 9ES 4.5 GB, SCSI U2W</li>
<li>Adaptec 2940U2W</li>
<li>un IBM UltraStar 9ES 4.5 GB, SCSI UW</li>
<li>Adaptec 2940 UW</li>
<li>un noyau 2.2.7 avec les patches RAID</li>
</ul>
<p>Les trois disques U2W sont connectés au contrôleur
U2W et le disque UW au contrôleur UW.</p>
<p>Avec ou sans RAID, il ne semble pas possible de tirer plus de 30
Mo/s du bus SCSI sur cette machine. Je soupçonne que cela
vienne de la vétusté de ce dernier et de la
limitation de la bande passante de la mémoire (Nd :
pardon ?).</p>
<h2><a name="ss7.1">7.1 RAID-0</a></h2>
<p><b>Lecture</b> correspond à <b>Sequential block
input</b>, et <b>Ecriture</b> à <b>Sequential block
output</b>. La taille du fichier était de 1 Go pour tous les
tests. Les test ont eu lieu en mono-utilisateur. Le gestionnaire
SCSI était configuré de façon à ne pas
utiliser la queue de commands SCSI.</p>
<p><br></p>
<center>
<table border>
<tr>
<td>Chunk size</td>
<td>Block size</td>
<td>Lecture ko/s</td>
<td>Ecriture ko/s</td>
</tr>
<tr>
<td></td>
</tr>
<tr>
<td>4k</td>
<td>1k</td>
<td>19712</td>
<td>18035</td>
</tr>
<tr>
<td>4k</td>
<td>4k</td>
<td>34048</td>
<td>27061</td>
</tr>
<tr>
<td>8k</td>
<td>1k</td>
<td>19301</td>
<td>18091</td>
</tr>
<tr>
<td>8k</td>
<td>4k</td>
<td>33920</td>
<td>27118</td>
</tr>
<tr>
<td>16k</td>
<td>1k</td>
<td>19330</td>
<td>18179</td>
</tr>
<tr>
<td>16k</td>
<td>2k</td>
<td>28161</td>
<td>23682</td>
</tr>
<tr>
<td>16k</td>
<td>4k</td>
<td>33990</td>
<td>27229</td>
</tr>
<tr>
<td>32k</td>
<td>1k</td>
<td>19251</td>
<td>18194</td>
</tr>
<tr>
<td>32k</td>
<td>4k</td>
<td>34071</td>
<td>26976</td>
</tr>
</table>
</center>
<br>
<p>A la lecture de ce tableau il semble que le paramètre
chunk-size du RAID n'ait pas un impact important. Néanmoins,
la taille de bloc pour ext2 a intérêt à
être aussi élevée que possible, soit 4 ko (i.e.
la taille d'une page) avec une architecture IA32.</p>
<h2><a name="ss7.2">7.2 RAID-0 avec queue de commandes SCSI
(TCQ)</a></h2>
<p>La queue de commandes est cette fois-ci activée avec une
profondeur égale à 8. Le reste est
inchangé.</p>
<p><br></p>
<center>
<table border>
<tr>
<td>Chunk size</td>
<td>Block size</td>
<td>Lecture ko/s</td>
<td>Ecriture ko/s</td>
</tr>
<tr>
<td></td>
</tr>
<tr>
<td>32k</td>
<td>4k</td>
<td>33617</td>
<td>27215</td>
</tr>
</table>
</center>
<br>
<p>Aucun autre test n'a été mené. L'emploi de
la queue de commandes améliore les performances en
écriture mais la différence n'est pas
énorme.</p>
<h2><a name="ss7.3">7.3 RAID-5</a></h2>
<p>On reprend les mêmes tests.</p>
<p><br></p>
<center>
<table border>
<tr>
<td>Chunk size</td>
<td>Block size</td>
<td>Lecture ko/s</td>
<td>Ecriture ko/s</td>
</tr>
<tr>
<td></td>
</tr>
<tr>
<td>8k</td>
<td>1k</td>
<td>11090</td>
<td>6874</td>
</tr>
<tr>
<td>8k</td>
<td>4k</td>
<td>13474</td>
<td>12229</td>
</tr>
<tr>
<td>32k</td>
<td>1k</td>
<td>11442</td>
<td>8291</td>
</tr>
<tr>
<td>32k</td>
<td>2k</td>
<td>16089</td>
<td>10926</td>
</tr>
<tr>
<td>32k</td>
<td>4k</td>
<td>18724</td>
<td>12627</td>
</tr>
</table>
</center>
<br>
<p>Les deux paramètres semblent jouer.</p>
<h2><a name="ss7.4">7.4 RAID-10</a></h2>
<p>On désigne sous ce terme la mise en mirroir de disques
concaténés ou un RAID-1 au dessus d'un RAID-0. La
taille de bloc est commune à tous les disques RAID. Je n'ai
pas procédé à des tests avec des tailles
différentes bien qu'il s'agisse là d'une
configuration tout à fait licite.</p>
<p><br></p>
<center>
<table border>
<tr>
<td>Chunk size</td>
<td>Block size</td>
<td>Lecture ko/s</td>
<td>Ecriture ko/s</td>
</tr>
<tr>
<td></td>
</tr>
<tr>
<td>32k</td>
<td>1k</td>
<td>13753</td>
<td>11580</td>
</tr>
<tr>
<td>32k</td>
<td>4k</td>
<td>23432</td>
<td>22249</td>
</tr>
</table>
</center>
<br>
<p>Il n'y a pas eu d'autres tests. La taille des fichiers
était de 900 Mo car les partitions n'offraient que 500 Mo
chacune, ce qui ne suffit pas pour un fichier de 1 Go dans cette
configuration (RAID-1 de deux matrices de 1000 Mo).</p>
<h2><a name="s8">8. Remerciements</a></h2>
<p>Les personnes suivantes ont contribué à la
création de ce document :</p>
<ul>
<li>Ingo Molnar</li>
<li>Jim Warren</li>
<li>Louis Mandelstam</li>
<li>Allan Noah</li>
<li>Yasunori Taniike</li>
<li>Martin Bene</li>
<li>Bennett Todd</li>
<li>les abonnés de la liste de diffusion Linux-RAID</li>
<li>ceux que j'ai oublié, désolé :o)</li>
</ul>
<p>Envoyez vos remarques et suggestions à l'auteur de ce
document. Il n'y a pas d'autre façon d'en améliorer
la qualité.</p>
</body>
</html>
|