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 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 2026 2027 2028 2029 2030 2031 2032 2033 2034 2035 2036 2037 2038 2039 2040 2041 2042 2043 2044 2045 2046 2047 2048 2049 2050 2051 2052 2053 2054 2055 2056 2057 2058 2059 2060 2061 2062 2063 2064 2065 2066 2067 2068 2069 2070 2071 2072 2073 2074 2075 2076 2077 2078 2079 2080 2081 2082 2083 2084 2085 2086 2087 2088 2089 2090 2091 2092 2093 2094 2095 2096 2097 2098 2099 2100 2101 2102 2103 2104 2105 2106 2107 2108 2109 2110 2111 2112 2113 2114 2115 2116 2117 2118 2119 2120 2121 2122 2123 2124 2125 2126 2127 2128 2129 2130 2131 2132 2133 2134 2135 2136 2137 2138 2139 2140 2141 2142 2143 2144 2145 2146 2147 2148 2149 2150 2151 2152 2153 2154 2155 2156 2157 2158 2159 2160 2161 2162 2163 2164 2165 2166 2167 2168 2169 2170 2171 2172 2173 2174 2175 2176 2177 2178 2179 2180 2181 2182 2183 2184 2185 2186 2187 2188 2189 2190 2191 2192 2193 2194 2195 2196 2197 2198 2199 2200 2201 2202 2203 2204 2205 2206 2207 2208 2209 2210 2211 2212 2213 2214 2215 2216 2217 2218 2219 2220 2221 2222 2223 2224 2225 2226 2227 2228 2229 2230 2231 2232 2233 2234 2235 2236 2237 2238 2239 2240 2241 2242 2243 2244 2245 2246 2247 2248 2249 2250 2251 2252 2253 2254 2255 2256 2257 2258 2259 2260 2261 2262 2263 2264 2265 2266 2267 2268 2269 2270 2271 2272 2273 2274 2275 2276 2277 2278 2279 2280 2281 2282 2283 2284 2285 2286 2287 2288 2289 2290 2291 2292 2293 2294 2295 2296 2297 2298 2299 2300 2301 2302 2303 2304 2305 2306 2307 2308 2309 2310 2311 2312 2313 2314 2315 2316 2317 2318 2319 2320 2321 2322 2323 2324 2325 2326 2327 2328 2329 2330 2331 2332 2333 2334 2335 2336 2337 2338 2339 2340 2341 2342 2343 2344 2345 2346 2347 2348 2349 2350 2351 2352 2353 2354 2355 2356 2357 2358 2359 2360 2361 2362 2363 2364 2365 2366 2367 2368 2369 2370 2371 2372 2373 2374 2375 2376 2377 2378 2379 2380 2381 2382 2383 2384 2385 2386 2387 2388 2389 2390 2391 2392 2393 2394 2395 2396 2397 2398 2399 2400 2401 2402 2403 2404 2405 2406 2407 2408 2409 2410 2411 2412 2413 2414 2415 2416 2417 2418 2419 2420 2421 2422 2423 2424 2425 2426 2427 2428 2429 2430 2431 2432 2433 2434 2435 2436 2437 2438 2439 2440 2441 2442 2443 2444 2445 2446 2447 2448 2449 2450 2451 2452 2453 2454 2455 2456 2457 2458 2459 2460 2461 2462 2463 2464 2465 2466 2467 2468 2469 2470 2471 2472 2473 2474 2475 2476 2477 2478 2479 2480 2481 2482 2483 2484 2485 2486 2487 2488 2489 2490 2491 2492 2493 2494 2495 2496 2497 2498 2499 2500 2501 2502 2503 2504 2505 2506 2507 2508 2509 2510 2511 2512 2513 2514 2515 2516 2517 2518 2519 2520 2521 2522 2523 2524 2525 2526 2527 2528 2529 2530 2531 2532 2533 2534 2535 2536 2537 2538 2539 2540 2541 2542 2543 2544 2545 2546 2547 2548 2549 2550 2551 2552 2553 2554 2555 2556 2557 2558 2559 2560 2561 2562 2563 2564 2565 2566 2567 2568 2569 2570 2571 2572 2573 2574 2575 2576 2577 2578 2579 2580 2581 2582 2583 2584 2585 2586 2587 2588 2589 2590 2591 2592 2593 2594 2595 2596 2597 2598 2599 2600 2601 2602 2603 2604 2605 2606 2607 2608 2609 2610 2611 2612 2613 2614 2615 2616 2617 2618 2619 2620 2621 2622 2623 2624 2625 2626 2627 2628 2629 2630 2631 2632 2633 2634 2635 2636 2637 2638 2639 2640 2641 2642 2643 2644 2645 2646 2647 2648 2649 2650 2651 2652 2653 2654 2655 2656 2657 2658 2659 2660 2661 2662 2663 2664 2665 2666 2667 2668 2669 2670 2671 2672 2673 2674 2675 2676 2677 2678 2679 2680 2681 2682 2683 2684 2685 2686 2687 2688 2689 2690 2691 2692 2693 2694 2695 2696 2697 2698 2699 2700 2701 2702 2703 2704 2705 2706 2707 2708 2709 2710 2711 2712 2713 2714 2715 2716 2717 2718 2719 2720 2721 2722 2723 2724 2725 2726 2727 2728 2729 2730 2731 2732 2733 2734 2735 2736 2737 2738 2739 2740 2741 2742 2743 2744 2745 2746 2747 2748 2749 2750 2751 2752 2753 2754 2755 2756 2757 2758 2759 2760 2761 2762 2763 2764 2765 2766 2767 2768 2769 2770 2771 2772 2773 2774 2775 2776 2777 2778 2779 2780 2781 2782 2783 2784 2785 2786 2787 2788 2789 2790 2791 2792 2793 2794 2795 2796 2797 2798 2799 2800 2801 2802 2803 2804 2805 2806 2807 2808 2809 2810 2811 2812 2813 2814 2815 2816 2817 2818 2819 2820 2821 2822 2823 2824 2825 2826 2827 2828 2829 2830 2831 2832 2833 2834 2835 2836 2837 2838 2839 2840 2841 2842 2843 2844 2845 2846 2847 2848 2849 2850 2851 2852 2853 2854 2855 2856 2857 2858 2859 2860 2861 2862 2863 2864 2865 2866 2867 2868 2869 2870 2871 2872 2873 2874 2875 2876 2877 2878 2879 2880 2881 2882 2883 2884 2885 2886 2887 2888 2889 2890 2891 2892 2893 2894 2895 2896 2897 2898 2899 2900 2901 2902 2903 2904 2905 2906 2907 2908 2909 2910 2911 2912 2913 2914 2915 2916 2917 2918 2919 2920 2921 2922 2923 2924 2925 2926 2927 2928 2929 2930 2931 2932 2933 2934 2935 2936 2937 2938 2939 2940 2941 2942 2943 2944 2945 2946 2947 2948 2949 2950 2951 2952 2953 2954 2955 2956 2957 2958 2959 2960 2961 2962 2963 2964 2965 2966 2967 2968 2969 2970 2971 2972 2973 2974 2975 2976 2977 2978 2979 2980 2981 2982 2983 2984 2985 2986 2987 2988 2989 2990 2991 2992 2993 2994 2995 2996 2997 2998 2999 3000 3001 3002 3003 3004 3005 3006 3007 3008 3009 3010 3011 3012 3013 3014 3015 3016 3017 3018 3019 3020 3021 3022 3023 3024 3025 3026 3027 3028 3029 3030 3031 3032 3033 3034 3035 3036 3037 3038 3039 3040 3041 3042 3043 3044 3045 3046 3047 3048 3049 3050 3051 3052 3053 3054 3055 3056 3057 3058 3059 3060 3061 3062 3063 3064 3065 3066 3067 3068 3069 3070 3071 3072 3073 3074 3075 3076 3077 3078 3079 3080 3081 3082 3083 3084 3085 3086 3087 3088 3089 3090 3091 3092 3093 3094 3095 3096 3097 3098 3099 3100 3101 3102 3103 3104 3105 3106 3107 3108 3109 3110 3111 3112 3113 3114 3115 3116 3117 3118 3119 3120 3121 3122 3123 3124 3125 3126 3127 3128 3129 3130 3131 3132 3133 3134 3135 3136 3137 3138 3139 3140 3141 3142 3143 3144 3145 3146 3147 3148 3149 3150 3151 3152 3153 3154 3155 3156 3157 3158 3159 3160 3161 3162 3163 3164 3165 3166 3167 3168
|
Software-RAID HOWTO
Linas Vepstas, linas@linas.org
v0.54 21 Novembre 1998
RAID sta per "Redundant Array of Inexpensive Disks", un modo per
creare un sottosistema di dischi veloce e affidabile da una serie di
dischi singoli. RAID pu proteggere da un malfunzionamento del disco
e pu anche migliorare la situazione di un solo disco in caso di un
malfunzionamento. Questo documento un tutorial/HOWTO/FAQ per gli
utenti delle estensioni MD del kernel di Linux, dei tools ad esse
associati, e del loro uso. Le estensioni MD implementano RAID-0
(striping), RAID-1 (mirroring), RAID-4 e RAID-5 tramite software.
Cos, con le MD, non sono richiesti hardware o controller speciali per
ottenere molti dei benefici della tecnologia RAID. Documentazione
tradotta da Marco Meloni - eventuali suggerimenti o correzioni della
traduzione italiana e contributi in italiano per l'autore possono
essere inviati al traduttore: ( tonno@stud.unipg.it )
Preambolo
(la licenza viene riportata anche in inglese. ndt)
Questo documento copyright di Linas Vepstas (linas@linas.org)
e viene distribuito nei termini della licenza GPL. Il permesso
di usare, copiare, distribuire questo documento per qualsiasi
utilizzo concesso a patto che il nome dell'autore e
dell'editore e questo preambolo appaiano in ogni copia e/o
documento, e che una versione non modificata di questo documento
sia resa liberamente disponibile. Questo documento
distribuito nella speranza che sia utile ma SENZA ALCUNA
GARANZIA n espressa n implicita. Anche se ogni sforzo stato
fatto per assicurare la accuratezza delle informazioni
documentate qui di seguito, l'autore / editore / curatore NON SI
ASSUME RESPONSABILIT per qualsiasi errore, o per qualsivoglia
danno, diretto o consequenziale risultante dall'uso delle
informazioni contenute in questo documento.
This document is GPL'ed by Linas Vepstas (linas@linas.org).
Permission to use, copy, distribute this document for any
purpose is hereby granted, provided that the author's / editor's
name and this notice appear in all copies and/or supporting
documents; and that an unmodified version of this document is
made freely available. This document is distributed in the hope
that it will be useful, but WITHOUT ANY WARRANTY, either
expressed or implied. While every effort has been taken to
ensure the accuracy of the information documented herein, the
author / editor / maintainer assumes NO RESPONSIBILITY for any
errors, or for any damages, direct or consequential, as a result
of the use of the information documented herein.
RAID, anche se concepito per aumentare l'affidabilit del
sistema tramite la ridondanza, pu anche portare ad un falso
senso di sicurezza e confidenza quando usato impropriamente.
Questa falsa confidenza pu portare a disastri ancora maggiori.
Si noti in particolare che RAID progettato per proteggere in
caso di un funzionamento anomalo *del disco*, non in caso di un
calo di tensione o di un errore dell'operatore. Cali di
tensione, kernel di sviluppo contenenti errori o
operatori/amministratori di sistema possono portare ad un
danneggiamento non recuperabile dei dati! RAID *non*
sostituisce il normale backup del sistema. Quindi sappiate cosa
state facendo, fate sempre delle prove, state sul chi vive!
1. Introduzione
1. D: Cosa RAID?
R: RAID sta per "Redundant Array of Inexpensive Disks", un
modo per creare un sottosistema di dischi veloce e affid
abile da una serie di dischi singoli. Nel mondo dei PC "I"
diventata iniziale di "Indipendent", mentre il mercato
continua a differenziare IDE e SCSI. Nel suo significato
originale "I" significava "Inexpensive" (a basso costo. ndt)
se comparato ad un mainframe 3380 DASD grande quanto un
refrigeratore, dei drive mostruosi che facevano sembrare
economiche le belle case e robetta gli anelli di diamante.
2. D: Cos' questo documento?
R: Questo documento un tutorial/HOWTO/FAQ per gli utenti
delle estensioni MD del kernel di Linux, dei tools ad esse
associati e sul loro uso. Le estensioni MD implementano
RAID-0 (striping), RAID-1 (mirroring), RAID-4 e RAID-5
tramite software. Con le MD, non sono cos richiesti hard
ware o controller speciali per ottenere molti dei benefici
della tecnologia RAID.
Questo documento NON un'introduzione alla tecnologia RAID;
questa dovrete cercarla da qualche altra parte.
3. D: Quali livelli di RAID implementa il kernel di Linux?
R: Striping (RAID-0) e la concatenazione lineare sono parte
dei kernel della serie 2.x. La qualit di questo codice
buona (production quality); ben compreso e ben aggiornato.
usato in diversi grandi USENET news server.
RAID-1, RAID-4 e RAID-5 sono parte del kernel dalla versione
2.1.63 in poi. Per i kernel delle serie 2.0.x e 2.1.x , vi
sono patch che forniscono questa funzione. Non sentitevi
obbligati ad aggiornare il kernel alla versione 2.1.63;
l'aggiornamento del kernel difficile; *molto* pi facile
applicare una patch ad un kernel precedente. La maggioranza
degli utenti di RAID utilizza kernel 2.0.x, ed su queste
versioni che si focalizzato lo sviluppo storico della
tecnologia RAID. Al momento queste implementazioni sono da
considerarsi in stadio di codice "quasi di buona qualit";
non ci sono bug noti ma ci sono dei lati poco sofisticati e
dei setup di sistema non testati. Sono comunque molti gli
utenti che usano il Software RAID in un ambiente di lavoro.
La funzionalit RAID-1 "hot reconstruction" stata
recentemente introdotta (Agosto 1997) e deve essere
considerata in stadio di alfa testing. La funzionalit
RAID-5 "hot reconstruction" sar in alfa test prima o poi.
Una parola va spesa sulla prudenza da usare con i kernel di
sviluppo della serie 2.1.x: questi sono meno stabili per
molteplici ragioni. I nuovi controller di dischi (ad es.
Ultra Promise) sono supportati solo nei kernel 2.1.x.
Tuttavia i kernel della serie 2.1.x hanno subito molti
cambiamenti del driver per i dispositivi a blocchi, nel
codice DMA e interrupt, in quello per le interfacce PCI,
IDE, SCSI e nel driver dei controller di dischi. La
combinazione di questi fattori, abbinata ad hard disk a
basso prezzo e/o a cavi di scarsa qualit pu portare a
discreti disastri. Il tool ckraid, come fsck e mount mette
sotto stress il sistema RAID. Tutto questo pu portare
all'impossibilit di fare il boot del sistema, una
situazione dove anche la combinazione magica alt-SysReq non
ci salver. Siate prudenti con i kernel 2.1.x e aspettatemi
problemi. Oppure utilizzate ancora il kernel 2.0.34.
4. D: Utilizzo un vecchio kernel. Dove posso trovare le patch?
R: La funzionalit RAID-0 Software e quella "linear mode"
fanno parte di tutti i nuovi kernel di Linux. Le patch per
le funzionalit Software RAID-1,4,5 sono disponibili su
<http://luthien.nuclecu.unam.mx/~miguel/raid>. e sul quasi
mirror <ftp://linux.kernel.org/pub/linux/daemons/raid/> per
patch, tool e varie..
5. D: Dove posso trovare del materiale sulla tecnologia RAID per
Linux?
R:
Panoramica generale su RAID:
<http://www.dpt.com/uraiddoc.html>.
Opzioni di RAID per Linux:
<http://linas.org/linux/raid.html>.
Ultima versione di questo documento:
<http://linas.org/linux/Software-RAID/Software-
RAID.html>.
Archivio della mailing-list Linux-RAID:
<http://www.linuxhq.com/lnxlists/>.
Linux Software RAID Home Page:
<http://luthien.nuclecu.unam.mx/~miguel/raid>.
Linux Software RAID tools:
<ftp://linux.kernel.org/pub/linux/daemons/raid/>.
Come configurare linear/stripped Software RAID:
<http://www.ssc.com/lg/issue17/raid.html>.
Bootable RAID mini-HOWTO:
<ftp://ftp.bizsystems.com/pub/raid/bootable-raid>.
Root RAID HOWTO: <ftp://ftp.bizsystems.com/pub/raid/Root-
RAID-HOWTO>.
Linux RAID-Geschichten:
<http://www.infodrom.north.de/~joey/Linux/raid/>.
6. D: Chi posso accusare di aver scritto questo documento?
R: Questo documento stato messo insieme da Linas Vepstas.
Comunque molte informazioni e anche qualche parola sono
state fornite da:
Bradley Ward Allen <ulmo@Q.Net>
Luca Berra <bluca@comedia.it>
Brian Candler <B.Candler@pobox.com>
Bohumil Chalupa <bochal@apollo.karlov.mff.cuni.cz>
Rob Hagopian <hagopiar@vu.union.edu>
Anton Hristozov <anton@intransco.com>
Miguel de Icaza <miguel@luthien.nuclecu.unam.mx>
Marco Meloni <tonno@stud.unipg.it>
Ingo Molnar <mingo@pc7537.hil.siemens.at>
Alvin Oga <alvin@planet.fef.com>
Gadi Oxman <gadio@netvision.net.il>
Vaughan Pratt <pratt@cs.Stanford.EDU>
Steven A. Reisman <sar@pressenter.com>
Michael Robinton <michael@bzs.org>
Martin Schulze <joey@finlandia.infodrom.north.de>
Geoff Thompson <geofft@cs.waikato.ac.nz>
Edward Welbon <welbon@bga.com>
Rod Wilkens <rwilkens@border.net>
Johan Wiltink <j.m.wiltink@pi.net>
Leonard N. Zubkoff <lnz@dandelion.com>
Marc ZYNGIER <zyngier@ufr-info-p7.ibp.fr>
Copyright
Copyright (C) 1994-96 Marc ZYNGIER
Copyright (C) 1997 Gadi Oxman, Ingo Molnar, Miguel de
Icaza
Copyright (C) 1997, 1998 Linas Vepstas
Secondo le leggi sul copyright, i copyright sulle
rimanenti parti sono implicitamente di coloro che hanno
contribuito a questo documento e che sono stati
precedentemente menzionati.
Grazie a tutti di essere qui!
2. Considerazioni su RAID
1. D: Cosa RAID? Perch mai dovrei usarlo?
R: RAID una maniera per combinare diversi disk drive in
una singola unit, in modo da aumentare le prestazioni e/o
l'affidabilit. Vi sono diversi tipi e implementazioni di
RAID, ognuna con i suoi vantaggi e svantaggi. Per esempio,
mettendo una copia degli stessi dati su due dischi (cosa
chiamata disk mirroring, o RAID livello 1), le prestazioni
in lettura possono essere migliorate leggendo alternativa
mente da ogni disco nel sistema di mirror. In media ogni
disco meno occupato poich effettua solo 1/2 (nel caso di
2 dischi) o 1/3 (nel caso di tre dischi e cos via) delle
letture richieste. In pi un sistema di mirror pu aumentare
l'affidabilit: se un disco si rompe, gli altri dischi con
tengono una copia dei dati. Differenti maniere di combinare
pi dischi in uno, dette livelli RAID, possono fornire una
superiore capacit di immagazzinamento dei dati del semplice
mirroring, o possono alterare i tempi di attesa (tempi di
accesso), o il throughput (transfer rate), nella lettura o
scrittura, offrendo comunque la ridondanza che risulta utile
in caso di malfunzionamenti.
Anche se RAID pu proteggere da eventuali malfunzionamenti
del disco, non protegge da errori dell'operatore e dell'
amministratore (errori umani), o da errori dovuti a bug di
programmazione (forse dovuti anche ad errori nello stesso
software RAID). La rete abbonda di storie tragiche di
amministratori di sistema che hanno installato RAID e hanno
perso tutti i loro dati. RAID non sostituisce un backup
frequente e regolarmente programmato.
RAID pu essere implementato via hardware, attraverso
speciali controller di dischi, o via software, come un
modulo del kernel che si interpone tra i driver di basso
livello dei dischi e il file system. L'hardware RAID
consiste comunque di un "controller di dischi", una
periferica alla quale si possono collegare i disk drive.
Usualmente si presenta come una scheda che si pu connettere
su uno slot ISA/EISA/PCI/S-Bus/MicroChannel. Tuttavia
qualche controller RAID fatto per connettersi a met del
cavo che collega il normale controller ai dischi. Quelli
piccoli possono entrare nell'alloggiamento di un drive;
quelli grandi possono essere installati in un loro cabinet
con i loro alloggiamenti per dischi e una loro
alimentazione. Il pi recente hardware RAID usato con le
ultime e pi veloci CPU fornir probabilmente la migliore
performance, ad un prezzo comunque abbastanza alto. Questo
perch molti controller RAID contengono un DSP e della
memoria cache che permette di togliere una fetta
considerevole di carico alla CPU, e permettono un alto
transfer rate grazie alla ampia memoria cache del
controller. Il vecchio hardware RAID pu agire come "freno"
del sistema se usato con le nuove CPU: i vecchi DSP e
memorie cache fanno da collo di bottiglia e la performance
globale spesso superata da quella del semplice RAID
software e dai nuovi, normalissimi, controller. Il RAID
implementato via hardware pu essere vantaggioso rispetto a
quello via software se pu far uso della sincronizzazione
dei dischi e pu sapere la posizione della testina del disco
rispetto al blocco del disco desiderato. vero per che
molti dischi moderni (a basso costo) non offrono questi
livelli di informazione e controllo sulla loro attivit e
quindi molto hardware RAID non ne trae vantaggio.
L'hardware RAID di diverse marche, versioni e modelli
normalmente incompatibile. Se un controller RAID si rompe,
deve essere rimpiazzato da un altro controller dello stesso
tipo. Al momento della stesura di questo documento (giugno
1998) un'ampia gamma di controller hardware funzioner sotto
Linux; in ogni caso nessuno di questi viene venduto con
delle utilit di configurazione e gestione che funzionino
sotto Linux.
Software-RAID formato da un set di moduli del kernel,
combinato con delle utilit di gestione che implementano
RAID solamente tramite software e non richiedono hardware
speciale. Il sottosistema RAID di Linux implementato come
strato del kernel che si pone tra i driver a basso livello
dei dischi (per dischi IDE, SCSI e Paraport) e l'interfaccia
del dispositivo a blocchi. Il file system, sia esso ext2fs,
DOS-FAT o altro, rimane sopra l'interfaccia del dispositivo
a blocchi. Software-RAID, grazie alla sua natura software,
risulta essere pi flessibile di una soluzione hardware. Il
lato negativo che richiede un maggiore utilizzo della CPU
per poter girare bene rispetto ad una uguale implementazione
hardware. Naturalmente sul costo non pu essere battuto.
Software-Raid ha una ulteriore importante caratteristica
distintiva: opera su partizioni, perci la partizione RAID
formata da un certo numero di partizioni di dischi. Questo
contrasta con le soluzioni adottate da gran parte dell'
hardware RAID, che uniscono assieme interi dischi per
formarne una serie. Fatto sta che utilizzando l'hardware si
ha una sottosistema RAID trasparente rispetto al sistema
operativo, cosa che tende a semplificare la gestione. Con il
software, ci sono molte pi opzioni di configurazione e
scelte, che tendono a complicare la faccenda.
Al momento della stesura di questo testo (giugno 1998) la
gestione del RAID sotto Linux non affatto banale, ed una
buona prova anche per degli esperti amministratori di
sistema. La teoria delle operazioni complessa. I tool di
sistema richiedono modifiche agli script di avvio.
Riprendere il controllo della situazione dopo un
malfunzionamento del disco un'operazione complessa che
agevola l'errore umano. RAID non per i novizi, ed ogni
beneficio che pu apportare all'affidabilit e alle
prestazioni pu essere facilmente controbilanciato da una
maggiore complessit. In realt i moderni dischi sono
incredibilmente affidabili e le moderne CPU e i controller
sono veramente potenti. Si possono ottenere pi facilmente i
livelli di prestazione e l'affidabilit desiderate
acquistando hardware di alta qualit e/o pi veloce
2. D: Cosa sono i livelli RAID? Perch cos tanti? Cosa li distingue?
R: Differenti livelli RAID hanno prestazioni, ridondanza,
capacit di immagazzinamento, affidabilit e costi differ
enti. Molti, ma non tutti, i livelli RAID offrono ridondanza
per cautelarsi contro i malfunzionamenti dei dischi. Di
quelli che implementano la ridondanza RAID-1 e RAID-5 sono i
pi popolari. RAID-1 offre migliori prestazioni mentre
RAID-5 un uso pi efficiente dello spazio disco a dispo
sizione. Comunque cercare la migliore prestazione una cosa
completamente differente poich la performance dipende
fortemente da un'ampia gamma di fattori, dal tipo di appli
cazione alle dimensioni delle strisce, dei blocchi e dei
file. Gli aspetti pi difficoltosi della ricerca della
migliore performance sono rimandati ad una sezione di questo
HOWTO che vedremo dopo.
Quanto segue descrive i differenti livelli RAID nel contesto
dell'implementazione su Linux del Software RAID.
RAID-linear una semplice concatenazione di partizioni
che creano una pi ampia partizione virtuale. utile se
si ha un certo numero di piccoli dischi e si vuole creare
una unica, grande partizione. Questa concatenazione non
offre ridondanza ed in effetti diminuisce l'affidabilit
globale; la partizione cos creata smetter di funzionare
non appena un solo disco si rovina.
RAID-1 chiamato anche "mirroring". Due (o pi)
partizioni, tutte della stessa grandezza, contengono
ciascuna una copia degli stessi dati che risultano
disposti nella stessa maniera sulle due partizioni (in
inglese "disk-block by disk-block". ndt). Il mirroring
offre una forte protezione contro i malfunzionamenti dei
dischi: se un disco si rompe se ne ha un altro con gli
stessi dati. Il mirroring pu anche migliorare le
prestazioni in sistemi "I/O laden" (con grossi carichi di
input-output. ndt) poich le richieste di lettura possono
essere divise su pi dischi. Sfortunatamente il mirroring
il meno efficiente in materia di capacit di
immagazzinamento: due partizioni in mirroring posso
immagazzinare gli stessi dati di una.
"Striping" l'idea che sta dietro a tutti gli altri
livelli RAID. Una striscia (in inglese "stripe" da cui il
nome di "striping". ndt) una sequenza continua di
blocchi del disco. Una striscia pu essere cos corta da
contenere un solo blocco disco o pu contenerne
centinaia. I driver RAID dividono le partizioni in
strisce; i vari livelli RAID differiscono nella maniera
di organizzare le strisce e nei dati che vi memorizzano.
Il rapporto tra le dimensioni delle strisce, la grandezza
pi ricorrente dei file nel file system e la loro
disposizione nel disco quello che determina le
prestazioni globali di un sottosistema RAID.
RAID-0 molto simile a RAID-linear, tranne per il fatto
che le partizioni che lo compongono vengono divise in
strisce e quindi suddivise. Come nel caso del RAID-linear
il risultato una singola partizione virtuale. Ancora
come RAID-linear, RAID-0 non offre ridondanza diminuendo
quindi l'affidabilit globale: il malfunzionamento di un
solo disco mette fuori uso tutto. Spesso si crede che
RAID-0 abbia prestazioni migliori rispetto a RAID-linear.
Questo pu essere o non essere vero, dipendendo dalle
caratteristiche del file system, dalla grandezza pi
frequente dei file comparata con la dimensione delle
strisce e dal tipo di carico a cui sottoposto. Il file
system ext2fs dispone i file in una partizione in modo da
diminuire la frammentazione. Cos, per semplicit, ogni
dato accesso pu essere indirizzato ad uno o pi dischi e
quindi la suddivisione delle strisce su pi dischi non
offre un vantaggio apparente. Comunque sia vi sono delle
differenze nelle prestazioni, dipendenti dai dati, dal
carico di lavoro e dalla dimensione delle strisce.
RAID-4 suddivide in strisce come RAID-0, ma richiede una
partizione aggiuntiva per memorizzare le informazioni
sulla parit. La parit usata per offrire ridondanza
sui dati: se un disco si rovina i dati sui dischi
rimanenti possono essere usati per ricostruire quelli che
erano sul disco rotto. Dati N dischi di dati e un disco
di parit, la striscia di parit computata prendendo
una striscia da ognuno dei dischi di dati ed effettuando
un XOR tra di esse. Quindi la capacit di memorizzazione
di una serie di (N+1) dischi RAID-4 N, molto meglio del
mirroring di (N+1) dischi e buona come un setup RAID-0,
per N grande. Da notare che per N=1 vi un disco di dati
e un disco di parit e RAID-4 somiglia molto al
mirroring, nel quale ognuno dei due dischi la copia
dell'altro. RAID-4 NON offre le prestazioni in
lettura/scrittura del mirroring ed anzi la sua
performance in scrittura considerevolmente peggiore.
In breve questo accade a causa del fatto che
l'aggiornamento della parit richiede la lettura della
vecchia parit prima che la nuova parit venga calcolata
e scritta. In ambienti con un grosso carico di scrittura
il disco di parit pu diventare un collo di bottiglia
poich ogni processo di scrittura deve accedere al disco
di parit.
RAID-5 evita il collo di bottiglia in scrittura di RAID-4
memorizzando la striscia di parit su ognuno dei dischi.
Ovviamente la prestazione in scrittura non ancora buona
come quella del mirroring, visto che la striscia di
parit deve anche qui essere letta e deve esservi
effettuato lo XOR prima che sia scritta. Anche la
prestazione in lettura non buona come quella del
mirroring poich, dopo tutto, vi una sola copia dei
dati e non due o pi. Il vantaggio principale di RAID-5
sul mirroring che offre ridondanza e protezione nel
caso di malfunzionamento di un solo disco, e allo stesso
tempo ha una capacit di memorizzazione molto pi alta
quando usato con tre o pi drive.
RAID-2 e RAID-3 sono usati raramente, e sono stati in
qualche maniera resi obsoleti dalla moderna tecnologia
dei dischi. RAID-2 simile a RAID-4, ma memorizza
informazioni ECC al posto della parit. Poich tutti i
dischi moderni incorporano sotto sotto un controllo ECC,
il vantaggio minimo. RAID-2 pu dare una maggiore
coerenza ai dati se viene a mancare la corrente mentre
in corso un'operazione di scrittura; per un gruppo di
continuit e uno shutdown pulito danno gli stessi
vantaggi. RAID-3 simile a RAID-4 tranne per il fatto
che usa la minore grandezza possibile per le strisce. Il
risultato che ogni operazione di lettura interessa
tutti i dischi, facendo diventare difficile/impossibile
soddisfare richieste di I/O contemporanee. Per evitare il
ritardo dovuto alla latenza rotazionale RAID-3 richiede
che la rotazione di tutti i dischi possa essere
sincronizzata. Molto hardware moderno non dispone della
capacit di sincronizzazione o, se ne dispone, mancano i
connettori necessari, i cavi e la documentazione di chi
lo ha prodotto. N RAID-2 n RAID-3 sono livelli RAID
supportati dai driver di Software RAID per Linux.
Altri livelli RAID sono stati definiti da vari
ricercatori e produttori. Molti di questi non sono altro
che la sovrapposizione di un tipo di raid su un altro.
Qualcuno richiede dell'hardware speciale e altri sono
protetti da brevetto. Non vi una nomenclatura
universalmente accettata per questi altri livelli. A
volte i vantaggi di questi altri sistemi sono piccoli o
almeno non appaiono finch il sistema non sottoposto ad
un alto livello di stress. Eccettuata la sovrapposizione
di RAID-1 su RAID-0/linear, il Software RAID per Linux
non consente nessuna di queste altre variazioni.
3. Considerazioni sul setup e sull'installazione
1. D: Quale il modo migliore di configurare Software RAID?
R: Continuamente riscopro il fatto che la pianificazione del
file-system uno dei lavori pi difficili sotto Unix. Per
rispondere alla domanda, posso descrivere cosa si pu fare.
Supponiamo il setup che segue:
2 dischi EIDE, da 2.1 Gb ciascuno.
disco partizione montata su dimensione dispositivo
1 1 / 300M /dev/hda1
1 2 swap 64M /dev/hda2
1 3 /home 800M /dev/hda3
1 4 /var 900M /dev/hda4
2 1 /root 300M /dev/hdc1
2 2 swap 64M /dev/hdc2
2 3 /home 800M /dev/hdc3
2 4 /var 900M /dev/hdc4
Ogni disco su un controller (e cavo) separato. La mia
teoria che un guasto al controller o al cavo non
mander in tilt tutti e due i dischi. Questo permette un
miglioramento delle performance rispetto alla gestione di
operazioni parallele
Installare Linux su (/) della partizione /dev/hda1.
Marcare questa partizione come avviabile.
/dev/hdc1 conterr una copia ``fredda'' di /dev/hda1.
Questa non una copia RAID, proprio una semplice
copia. Serve solamente nel caso che il primo disco si
rompa; si pu usare un disco, di recupero, marcare
/dev/hdc1 come avviabile, e usare questa partizione per
continuare a lavorare senza dover reinstallare il
sistema. Pu anche essere utile mettere una copia del
kernel di /dev/hdc1 su LILO per semplificare il boot in
caso di malfunzionamento.
Qui si suppone che nel caso di un grave malfunzionamento
si possa ancora far partire il sistema senza
preoccupazioni riguardanti la corruzione dei superblock
raid o di altri errori del raid che non si capiscono.
/dev/hda3 e /dev/hdc3 saranno il mirror /dev/md0.
/dev/hda4 e /dev/hdc4 saranno il mirror /dev/md1.
abbiamo scelto/var e /home per essere mirrorate in
partizioni separate, seguendo questa logica
/ (la partizione root) conterr dati relativamente
statici, non soggetti a cambiamenti. Ad ogni effetto sar
si sola lettura anche se non sar impostata e montata
veramente in sola lettura
/home conterr i dati che cambiano "lentamente".
/var conterr i dati che cambiano rapidamente, inclusi i
mail spool, i database ed i log del web server.
L'idea che sta dietro all'uso di pi partizioni separate
che se, per qualche bizzarra, ragione che sia un errore
umano, un calo di tensione, o altro il sistema operativo
impazzisce, il danno limitato ad una sola partizione.
In un caso tipico vi un calo di tensione mentre il
sistema sta scrivendo sul disco. Questo lascer
sicuramente il file system in uno stato di
inutilizzabilit, a cui sar posto rimedio da fsck nel
boot seguente. Anche se fsck far del suo meglio per
rimettere a posto la situazione evitando di fare
ulteriori danni, confortante sapere che ogni danno
stato limitato ad una sola partizione. In un altro caso
tipico l'amministratore di sistema fa un errore durante
le operazioni di recupero del file system, cosa che porta
alla cancellazione o alla distruzione dei dati. L'uso
delle partizioni pu aiutare a contenere le ripercussioni
degli errori dell'operatore.
Un'altra scelta ragionevole per la disposizione delle
partizioni potrebbe essere quella di /usr o di /opt. In
effetti, /opt e /home sono una buona scelta come
partizioni RAID-5, se si hanno pi hard disk. Una parola
sulla prudenza da utilizzare: NON mettere /usr in una
partizione RAID-5. Se si avesse un grave malfunzionamento
si potrebbe scoprire che non si pu montare /usr, e che
si ha bisogno di qualche strumento che vi risiede (ad es.
i programmi per la rete, o il compilatore.) Con RAID-1,
se si ha un malfunzionamento e RAID smette di funzionare,
si pu almeno montare uno dei due mirror. La stessa cosa
non si pu fare con ogni altro livello RAID (RAID-5,
striping, linear RAID).
Cos, per rispondere alla domanda:
installare il S.O. sul disco 1, partizione 1. NON
montare altre partizioni.
installare RAID seguendo le istruzioni.
configurare md0 e md1.
convincersi del fatto che si sa che cosa fare in caso di
malfunzionamento del disco! Si scoprano gli errori
dell'amministratore di sistema adesso, non non durante
una vera crisi! Sperimentate! (noi abbiamo tolto
corrente durante l'attivit del disco, poco ortodosso ma
fa imparare molto).
effettuate una successione di
mount/copy/unmount/rename/reboot per muovere /var su
/dev/md1. Fatelo attentamente, non pericoloso.
godetevi il tutto!
2. D: Quale la differenza tra i comandi mdadd, mdrun, etc. e quelli
raidadd, raidrun?
R: I nomi dei tool sono stati cambiati dalla versione 0.5
del pacchetto raidtools. La convenzione che voleva che i
comandi iniziassero per md era usata nella versione 0.43 e
precedenti, mentre quella nuova che fa iniziare i comandi
per raid viene usata nella versione 0.5 e successive.
3. D: Vorrei utilizzare RAID-Linear/RAID-0 presente nel kernel 2.0.34.
Vorrei non applicare la patch raid, poich non sono richieste per
RAID-0/Linear. Dove posso procurarmi i tool RAID per gestire il
sistema?
R: Questa una bella domanda, poich i pi nuovi tool raid
abbisognano che le patch RAID-1,4,5 siano state applicate al
kernel per compilarsi. Non conosco versioni binarie, precom
pilate dei tool raid disponibili in questo momento. Comunque
sia, esperimenti hanno dimostrato che i file binari dei tool
raid, compilati su un kernel 2.1.100, sembrano funzionare
abbastanza bene nella creazione di una partizione
RAID-0/linear sotto 2.0.34. Un'anima impavida me li ha chi
esti ed io ho temporaneamente reso disponibili i binari di
mdadd, mdcreate, ecc, su http://linas.org/linux/Software-
RAID/ Avrete bisogno delle pagine di manuale, ecc. che si
trovano nel pacchetto standard dei raid-tools.
4. D: Posso mettere in strip/mirror la partizione di root (/)? Perch
non posso far partire Linux direttamente dai dischi md?
R: Sia LILO che Loadlin hanno bisogno di una partizione che
non sia in strip/mirror per potervi leggere l'immagine del
kernel. Se volete mettere in strip/mirror la partizione di
root (/), avrete bisogno di creare una partizione che non
sia in strip/mirror dove poter mettere il kernel. Tipica
mente questa partizione viene chiamata /boot. Fatto questo
si pu quindi usare o il supporto per il ramdisk iniziale
(initrd) o le patch di Harald Hoyer <HarryH@Royal.Net> che
consentono ad una partizione in strip/mirror di essere usata
come root. (Adesso queste patch sono una parte standard dei
recenti kernel 2.1.x)
Si possono usare approcci diversi. Uno documentato
dettagliatamente nel Bootable RAID mini-HOWTO:
<ftp://ftp.bizsystems.com/pub/raid/bootable-raid>.
In alternativa, si pu usare mkinitrd per costruire
un'immagine per il ramdisk, vedere di seguito.
Edward Welbon <welbon@bga.com> ha scritto:
... tutto quello che serve uno script che gestisca il
setup di boot. Per montare un file system md come root,
la cosa principale da fare costruire un'immagine
iniziale del file system che abbia i moduli e i tool md
necessari per far partire md. Io ho un semplice script
che fa tutto ci.
Come supporto per il boot utilizzo un piccolo ed
economico disco SCSI (170MB lo ho preso usato per $20).
Il disco collegato ad un AHA1452, ma avrebbe potuto
essere un disco IDE a buon prezzo sull'interfaccia nativa
IDE. Non c' bisogno che sia un disco molto veloce
poich serve solamente per il boot.
Questo disco contiene un piccolo file system dove trova
posto il kernel e l'immagine del file system per initrd.
L'immagine iniziale del file system contiene abbastanza
roba da permettermi di caricare il modulo driver per il
dispositivo raid SCSI e poter accedere alla partizione
che diverr root. Poi eseguo un
echo 0x900 > /proc/sys/kernel/real-root-dev
(0x900 per /dev/md0) e esco da linuxrc. Il boot procede
normalmente da qui in poi.
Ho compilato molti driver come moduli eccetto quello per
l'AHA1452 che serve per il file system initrd. Il kernel
che uso cos molto piccolo. Il metodo perfettamente
affidabile, lo sto usando sin da prima della versione
2.1.26 e non ho mai avuto un problema che non sia
riuscito a risolvere facilmente. Il file system
addirittura sopravvissuto a diversi crash dei kernel
2.1.4[45] senza reali difficolt.
Una volta avevo partizionato i dischi raid in maniera
tale che i cilindri iniziali del primo disco raid
contenevano il kernel e i cilindri iniziali del secondo
disco raid contenevano l'immagine iniziale del file
system, adesso invece ho messo la swap nei primi cilindri
dei dischi raid poich questi sono i pi veloci (perch
sprecarli nel boot?).
La cosa bella dell'avere un dispositivo che costa poco
dedicato al boot che facile effettuarne il boot e che
risulta utile come disco di recupero se necessario. Se
siete interessati, potete dare un'occhiata allo script
che genera l'immagine iniziale per il ram disk e che
quindi fa partire LILO.
<http://www.realtime.net/~welbon/initrd.md.tar.gz>
Per adesso abbastanza per fare quello che serve. Non
specificamente bello e potrebbe sicuramente costruire
un'immagine del file system molto pi piccola per il ram
disk iniziale. Dovrebbe essere facile renderlo pi effi
ciente. Ma del resto usa LILO cos com'. Se gli apportate
dei miglioramenti vi prego di mandarmene una copia. 8-)
5. D: Ho sentito dire che si pu usare il mirroring sullo striping
RAID. vero? Posso usare il mirroring sul dispositivo di
loopback?
R: Si, ma non il contrario. Si pu mettere una striscia su
pi dischi e poi effettuarne il mirroring. Comunque sia lo
striping non pu essere messo al di sopra del mirroring.
Per darne una breve spiegazione tecnica si pu dire che le
personality linear e stripe usano la routine ll_rw_blk per
gli accessi. La routine ll_rw_blk mappa dispositivi di
dischi e settori, non blocchi. I dispositivi a blocchi
possono essere stratificati uno sull'altro; ma i dispositivi
che effettuano un accesso al disco diretto, a basso livello,
come fa ll_rw_blk non possono essere sovrapposti.
In questo momento (Novembre 1997) RAID non pu funzionare
sui dispositivi di loopback, anche se questo dovrebbe essere
possibile a breve.
6. D: Ho due piccoli dischi e tre dischi pi grandi. Posso concatenare
i due dischi piccoli con RAID-0 e quindi creare una partizione
RAID-5 con questi e quelli pi grandi?
R: In questo momento (Novembre 1997), non si pu creare una
partizione RAID-5 in questa maniera. Si pu farlo solo con
RAID-1 al di sopra della concatenazione dei drive.
7. D: Quale la differenza tra RAID-1 e RAID-5 per una configurazione
che prevede due dischi (cio la differenza tra una serie di due
dischi RAID-1 e una serie di due dischi RAID-5)?
R: Non c' differenza nella capacit di immagazzinamento.
Non si possono aggiungere dischi a nessuno dei due sottosis
temi per aumentarne la capacit (vedi la domanda qui di
seguito per i dettagli).
RAID-1 offre un vantaggio nella prestazione in lettura: il
driver RAID-1 usa la tecnologia distributed-read (lettura
distribuita. ndt) per leggere contemporaneamente due
settori, uno da ogni disco, raddoppiando la performance in
lettura.
Il driver RAID-5, anche se fortemente ottimizzato,
attualmente (Settembre 1997) non considera il fatto che il
disco di parit una copia del disco dati. Quindi le
letture avvengono in maniera seriale.
8. D: Come posso proteggermi dal malfunzionamento di due dischi?
A: Qualcuno degli algoritmi RAID protegge da un malfunziona
mento multiplo dei dischi, ma nessuno di questi algoritmi
attualmente implementato da Linux. Detto ci il Software
RAID per Linux pu essere utilizzato per proteggersi da un
malfunzionamento di pi dischi stratificando serie su serie
di dischi. Per esempio, nove dischi possono essere utiliz
zati per creare tre serie raid-5. Quindi queste tre serie
possono a loro volta essere legate assieme in una singola
serie di dischi RAID-5. In effetti questo tipo di configu
razione arriva a proteggere da un malfunzionamento di tre
dischi. Va notato il fatto che una grande quantit di spazio
disco va ''persa'' per la ridondanza delle informazioni.
Per una serie di NxN dischi raid-5
N=3, 5 dischi su 9 sono usati per la parit (=55%)
N=4, 7 dischi su 16
N=5, 9 dischi su 25
...
N=9, 17 dischi su 81 (=~20%)
In generale, una serie di MxN dischi user MxN-1 dischi per
la parit. Lo spazio "perso" minimo quando M=N.
Un'altra alternativa quella di creare una serie RAID-1 con
tre dischi. Va notato il fatto che poich tutti e tre i
dischi contengono dati identici, 2/3 dello spazio vanno
``sprecati''.
9. D: Mi piacerebbe capire come possibile che ci sia un programma
tipo fsck: se la partizione non stata smontata in maniera
ortodossa, fsck interviene e riaggiusta il filesystem da solo in
pi del 90% dei casi. Poich la macchina capace di porsi rimedio
da sola con ckraid --fix, perch non farlo diventare automatico?
R: Si pu ottenere ci aggiungendo linee come le seguenti a
/etc/rc.d/rc.sysinit:
mdadd /dev/md0 /dev/hda1 /dev/hdc1 || {
ckraid --fix /etc/raid.usr.conf
mdadd /dev/md0 /dev/hda1 /dev/hdc1
}
o
mdrun -p1 /dev/md0
if [ $? -gt 0 ] ; then
ckraid --fix /etc/raid1.conf
mdrun -p1 /dev/md0
fi
Prima di presentare uno script pi completo e affidabile,
rivediamo la teoria delle operazioni.
Gadi Oxman ha scritto: In uno shutdown sporco, Linux pu
rimanere in uno degli stati seguenti:
Il dischi RAID erano stati aggiornati con i dati
contenuti nella memoria cache a loro destinata quando
avvenuto lo shutdown; non sono andati persi dati.
La memoria cache dei dischi RAID conteneva informazioni
non scritte sui dischi quando avvenuto il blocco del
sistema; questo ha portato ad un filesystem danneggiato e
potenzialmente alla perdita di dati.
Quest'ultimo stato pu essere ulteriormente suddiviso in
altri due stati:
Linux era in fase di scrittura dati quando si avuto lo
shutdown.
Linux non era in fase di scrittura dati quando si
verificato il blocco.
Supponiamo che stavamo usando una serie di dischi RAID-1.
Nel caso (2a) potrebbe accadere che, prima del blocco, un
piccolo numero di blocchi dati sia stato scritto con
successo su solo alcuni dei dischi di mirror e al
prossimo boot i mirror non conterranno pi` gli stessi
dati.
Se si ignorassero le differenze dei mirror, il codice di
bilanciamento della lettura dei raidtools-0.36.3 potrebbe
scegliere di leggere i suddetti dati da uno qualsiasi dei
dischi di mirror, cosa che porterebbe ad un comportamento
incoerente (per esempio, l`output di e2fsck -n /dev/md0
potrebbe essere differente di volta in volta).
Poich RAID non protegge dagli shutdown sporchi,
usualmente non c`e` un modo ''sicuramente corretto'' di
correggere le differenze nei dischi di mirror e il
danneggiamento del filesystem.
Per esempio il comportamento predefinito di ckraid --fix
sar quello di scegliere il primo disco di mirror
operativo e aggiornare gli altri dischi di mirror con il
suo contenuto. Tuttavia, a seconda della situazione dei
dischi al momento del blocco, i dati negli altri dischi
di mirror potrebbero essere pi recenti e si potrebbe
scegliere di copiare i dati da quei dischi o forse di
usare un metodo differente per riparare le cose.
Lo script che segue definisce una delle pi robuste
sequenze di boot. In particolare si cautela dalle lunghe
ripetizioni dell`esecuzione di ckraid quando si ha a che
fare con dischi, controller o driver dei controller che
non cooperano. Lo si modifichi in modo da adeguarlo alla
propria configurazione, e lo si copi su rc.raid.init.
Quindi si esegua rc.raid.init dopo che la partizione di
root stata controllata da fsck e montata in
lettura/scrittura ma prima che le rimanenti partizioni
siano controllate da fsck. Assicurarsi che la directory
attuale sia nel percorso di ricerca.
mdadd /dev/md0 /dev/hda1 /dev/hdc1 || {
rm -f /fastboot # forza l`esecuzione di fsck
ckraid --fix /etc/raid.usr.conf
mdadd /dev/md0 /dev/hda1 /dev/hdc1
}
# se il sistema si bloccasse pi avanti durante questo processo di boot
# vorremmo che almeno questo dispositivo md non ne risentisse.
/sbin/mdstop /dev/md0
mdadd /dev/md1 /dev/hda2 /dev/hdc2 || {
rm -f /fastboot # forza l`esecuzione di fsck
ckraid --fix /etc/raid.home.conf
mdadd /dev/md1 /dev/hda2 /dev/hdc2
}
# se il sistema si bloccasse pi avanti durante questo processo di boot
# vorremmo che almeno questo dispositivo md non ne risentisse.
/sbin/mdstop /dev/md1
mdadd /dev/md0 /dev/hda1 /dev/hdc1
mdrun -p1 /dev/md0
if [ $? -gt 0 ] ; then
rm -f /fastboot # forza l`esecuzione di fsck
ckraid --fix /etc/raid.usr.conf
mdrun -p1 /dev/md0
fi
# se il sistema si bloccasse pi avanti durante questo processo di boot
# vorremmo che almeno questo dispositivo md non ne risentisse.
/sbin/mdstop /dev/md0
mdadd /dev/md1 /dev/hda2 /dev/hdc2
mdrun -p1 /dev/md1
if [ $? -gt 0 ] ; then
rm -f /fastboot # forza l`esecuzione di fsck
ckraid --fix /etc/raid.home.conf
mdrun -p1 /dev/md1
fi
# se il sistema si bloccasse pi avanti durante questo processo di boot
# vorremmo che almeno questo dispositivo md non ne risentisse.
/sbin/mdstop /dev/md1
# OK, adesso con i soli comandi md. Se ci fossero stati errori
# i controlli precedenti dovrebbero aver rimesso tutto a posto.
/sbin/mdadd /dev/md0 /dev/hda1 /dev/hdc1
/sbin/mdrun -p1 /dev/md0
/sbin/mdadd /dev/md12 /dev/hda2 /dev/hdc2
/sbin/mdrun -p1 /dev/md1
In aggiunta a questo si dovr creare un file rc.raid.halt
che dovrebbe apparire come questo:
/sbin/mdstop /dev/md0
/sbin/mdstop /dev/md1
Assicuratevi di aver modificato sia rc.sysinit che
init.d/halt per far eseguire questa procedura da qualsiasi
parte il filesystem venga smontato prima di un halt/reboot.
(Si noti che rc.sysinit smonta ed effettua un reboot se fsck
termina l`esecuzione con un errore.)
10.
D: Posso configurare met di un mirror RAID-1 con il solo disco che
ho adesso e poi dopo aggiungervi semplicemente un altro disco?
R: Con gli strumenti di adesso no, almeno non in maniera
semplice. In particolare non si pu solamente copiare il
contenuto di un disco su un altro e poi appaiarli. Questo a
causa del fatto che i driver RAID usano un poco di spazio
alla fine della partizione per memorizzare i superblock.
Questo diminuisce leggermente lo spazio disponibile per il
filesystem; ma se si provasse a forzare una partizione
RAID-1 su una partizione con un filesystem preesistente, i
superblock sovrascriverebbero una parte del filesystem con
fondendo i dati. Poich il filesystem ext2fs distribuisce i
file in maniera casuale su una partizione (per evitarne la
frammentazione), con grossa probabilit qualche file
risieder alla fine della partizione anche se il disco non
pieno.
Se siete abili, suppongo che possiate calcolarvi quanto
spazio il superblock RAID occuper e quindi rendere il
filesystem leggermente pi piccolo, in modo da lasciare lo
spazio di cui la memorizzazione del superblock RAID avr
bisogno in seguito. Ma, se siete cos abili, sarete quindi
abbastanza bravi da modificare i tool in modo tale che lo
facciano automaticamente (i tool non sono terribilmente
complessi).
Nota: il lettore attento avr pensato che il trucco seguente
potrebbe funzionare; non l'ho provato n verificato:
Eseguite mkraid con /dev/null come uno dei dispositivi.
Quindi eseguite mdadd -r sul solo vero disco (non eseguite
mdadd /dev/null). Il comando mkraid dovrebbe aver
configurato con successo il sistema raid, e il comando mdadd
serve solo a forzare il funzionamento del sistema in
modalit "degradata" (in inglese "degraded mode". ndt), come
se uno dei due dischi fosse rotto.
4. Riparare gli errori
1. D: Lavoro con un dispositivo RAID-1 (mirroring) e la corrente
andata via mentre il disco era in attivit. Cosa devo fare?
R: La ridondanza che i livelli RAID offrono serve a pro
teggere nei confronti di un malfunzionamento del disco, non
contro un difetto di alimentazione.
Vi sono diversi modi di rimettere le cose a posto in questa
situazione.
Metodo (1): Usare i tool raid. Questi possono essere
usati per rimettere in sincronia il sistema raid. I danni
al filesystem non vengono corretti; dopo che il sistema
raid stato rimesso in sincronia, il filesystem deve
ancora essere riparato con fsck. I sistemi RAID possono
essere controllati con ckraid /etc/raid1.conf (per
RAID-1, altrimenti /etc/raid5.conf, etc.)
Eseguendo ckraid /etc/raid1.conf --fix il programma
sceglier uno dei dischi della serie (usualmente il
primo), e user questo come copia master, copiando i suoi
blocchi su quelli degli altri dischi nel mirror. Per
designare un disco da utilizzare come copia master si pu
usare l'opzione --force-source: per esempio, ckraid
/etc/raid1.conf --fix --force-source /dev/hdc3 . Il
comando ckraid pu essere lanciato senza l'opzione --fix
per verificare il sistema RAID inattivo senza apportargli
modifiche. Quando vi sentirete a vostro agio con le
modifiche proposte, potrete aggiungere l'opzione --fix.
Metodo (2): Paranoico, spenditempo, non molto migliore
del primo metodo. Assumiamo che la serie di dischi RAID
sia formata da due dischi, e consista delle partizioni
/dev/hda3 e /dev/hdc3. Potete provare ci che segue:
a. fsck /dev/hda3
b. fsck /dev/hdc3
c. si decida quale delle due partizioni ha meno errori o
dove si possano aggiustare meglio o dove sono i dati
che vi interessano. Scegliete l'una o l'altra come
nuova copia ``master''. Diciamo che avete scelto
/dev/hdc3.
d. dd if=/dev/hdc3 of=/dev/hda3
e. mkraid raid1.conf -f --only-superblock
Al posto degli ultimi due passi, potete eseguire ckraid
/etc/raid1.conf --fix --force-source /dev/hdc3 che
dovrebbe essere leggermente pi veloce.
Metodo (3): Versione del metodo precedente per pigri. Se
non avete voglia di aspettare che il lungo controllo di
fsck venga completato, va bene anche saltare i primi tre
passi illustrati sopra e andare direttamente agli ultimi
due. Assicuratevi solamente che venga eseguito fsck
/dev/md0 dopo che avete fatto. Il metodo (3) solo il
metodo (1) travestito.
In ogni caso i passi precedenti serviranno solo a
sincronizzare i sistemi raid. Il filesystem probabilmente
avr ancora bisogno di riparazioni: perci fsck dovr
essere eseguito sul dispositivo md quando esso attivo e
non stato montato.
Con una serie di tre dischi RAID-1, vi sono pi
possibilit come quella di usare due dischi per
''votare'' una risposta a maggioranza. I tool per
automatizzare questa procedura attualmente (Settembre 97)
non esistono.
2. D: Ho un sistema RAID-4 o RAID-5 (parit) e la corrente andata
via mentre i dischi erano in attivit. Cosa devo fare adesso?
R: La ridondanza che i livelli RAID offrono serve a pro
teggere nei confronti di un malfunzionamento del disco, non
contro un difetto di alimentazione.
Poich i dischi formanti una serie RAID-4 o RAID-5 non con
tengono un filesystem che fsck pu leggere vi sono meno
scelte nella riparazione. Non si pu usare fsck per un con
trollo o una riparazione preliminare; si deve usare prima
ckraid.
Il comando ckraid pu essere eseguito in modalit "sicura"
senza l'opzione --fix per verificare il sistema RAID senza
apportargli cambiamenti. Quando vi sentirete a vostro agio
con i cambiamenti proposti baster aggiungere l'opzione
--fix.
Se si vuole si pu provare designando uno dei dei dischi
come ``disco rotto''. Fatelo con l'opzione --suggest-failed-
disk-mask (in inglese suona come "suggerisci-maschera-disco-
rotto". ndt).
Un solo bit dovr essere indicato nell'opzione: RAID-5 non
pu recuperare due dischi non funzionanti. La maschera
una maschera binaria: quindi:
0x1 == primo disco
0x2 == secondo disco
0x4 == terzo disco
0x8 == quarto disco, etc.
In alternativa si pu scegliere di modificare i settori di
parit usando l'opzione --suggest-fix-parity. Questa far si
che la parit venga ricalcolata dagli altri settori.
Le opzioni --suggest-failed-disk-mask e --suggest-fix-parity
possono essere usate senza problemi per la sola verifica.
Non vengono apportati cambiamenti se l'opzione --fix non
stata specificata. Quindi potete sperimentare schemi
differenti di riparazione.
3. D: Il mio dispositivo RAID-1, /dev/md0 formato da due partizioni
di hard disk: /dev/hda3 e /dev/hdc3. Recentemente, il disco che
conteneva /dev/hdc3 si rotto, ed stato rimpiazzato da un nuovo
disco. Il mio migliore amico, che non conosce RAID, dice che la
cosa corretta da fare adesso ''dd if=/dev/hda3 of=/dev/hdc3''.
Ho provato a farlo, ma le cose continuano a non funzionare.
R: Il tuo migliore amico dovrebbe rimanere alla larga dal
tuo computer. Fortunatamente non vi sono stati danni gravi.
Si pu riaggiustare il tutto eseguendo:
mkraid raid1.conf -f --only-superblock
Usando dd, sono state create due copie identiche della par
tizione. Questo va quasi bene, tranne per il fatto che le
estensioni RAID-1 del kernel si aspettano che i superblock
RAID siano differenti. Cos, quando si prova a riattivare
RAID, il software nota il problema e disattiva una delle due
partizioni. Ricreando i superblock, si dovrebbe avere un
sistema perfettamente funzionante.
4. D: La mia versione di mkraid non ha un'opzione --only-superblock .
Che devo fare?
R: I nuovi tool non supportano questa opzione, che stata
rimpiazzata da --force-resync. stato riferito che la
seguente sequenza di comandi funziona con gli ultimi tool e
software:
umount /web (dove /dev/md0 stata montata)
raidstop /dev/md0
mkraid /dev/md0 --force-resync --really-force
raidstart /dev/md0
Dopo questo, un cat /proc/mdstat dovrebbe dare resync in
progress, e a questo punto dovrebbe essere possibile effet
tuare un mount /dev/md0.
5. D: Il mio dispositivo RAID-1, /dev/md0 formato da due partizioni:
/dev/hda3 e /dev/hdc3. Il mio migliore amico/a (in inglese "My
best (girl)friend" NdT), che non conosce RAID, ha eseguito fsck su
/dev/hda3 mentre io non guardavo e adesso RAID ha smesso di
funzionare. Cosa devo fare?
R: Il concetto di "migliore amico" andrebbe riesaminato. In
generale, fsck non dovrebbe essere mai eseguito su una sin
gola partizione facente parte di un sistema RAID. Pre
sumendo che nessuna partizione sia stata fortemente danneg
giata non sono andati persi dati e il dispositivo RAID-1 pu
essere recuperato come segue:
a. effettuare un backup del filesystem di /dev/hda3
b. dd if=/dev/hda3 of=/dev/hdc3
c. mkraid raid1.conf -f --only-superblock
Questo dovrebbe riportare al funzionamento il dispositivo di
mirror.
6. D: Perch la procedura precedente funziona?
R: Perch ogni partizione componente un mirror RAID-1 una
copia perfettamente valida del filesystem. Addirittura il
mirroring pu essere disabilitato e una delle partizioni pu
venire montata e funzioner senza problemi come un filesys
tem normale, senza RAID. Quando si pronti a ripartire con
RAID-1, si smonti la partizione e si seguano le istruzioni
sopracitate per far ripartire il mirror. Si noti che le
istruzioni di cui sopra valgono SOLO per RAID-1 e per nessun
altro livello.
Vi potrebbe far sentire pi a vostro agio l'invertire la
direzione della copia di cui sopra: copiare dal disco che
non stato toccato a quello che lo stato. Solo
assicuratevi che alla fine venga eseguito fsck sul
risultante dispositivo md.
7. D: Mi sento un po' confuso dalle domande riportate sopra, ma ancora
non mollo. Ma sicuro eseguire fsck /dev/md0 ?
R: Si, una cosa sicura l'esecuzione di fsck sui disposi
tivi md. In effetti questo l'unico posto sicuro dove
eseguire fsck.
8. D: Se un disco si sta deteriorando lentamente, sar ovvio scoprire
quale sia? Sono preoccupato dal fatto che non lo sia, e questa
confusione potrebbe portare a qualche decisione pericolosa da parte
di un amministratore di sistema.
R: Una volta che un disco si rompe, un codice di errore
viene trasmesso dal driver a basso livello al driver RAID.
Il driver RAID marcher questo disco come ``cattivo'' nei
superblock dei dischi ``buoni'' (in questa maniera pi
avanti sapremo quale dei dischi di mirror sia buono e quale
non) e continuer le operazioni RAID sui rimasti dischi fun
zionanti.
Questo, va da s, d per certo che il disco ed i driver di
basso livello possano accorgersi di un errore in
lettura/scrittura e che, per esempio, non continuino a
danneggiare i dati in silenzio. Questo vero per i driver
attuali (schemi di rilevazione dell'errore sono usati
internamente) ed base delle operazioni RAID.
9. D: E sulla riparazione a caldo?
R: Si sta lavorando per completare la ``ricostruzione a
caldo''. Con questa funzionalit, si possono aggiungere dei
dischi ``spare'' al set RAID (sia esso di livello 1 o 4/5),
e quando un disco smette di funzionare i dati contenuti in
esso saranno ricostruiti su uno dei dischi spare durante
l'attivit, senza nemmeno aver bisogno di fermare il set
RAID.
Tuttavia, per usare questa funzionalit, il disco spare deve
essere stato dichiarato durante il boot, o esso dovr essere
aggiunto ``a caldo'', cosa che richiede l'uso di connettori
e cabinet speciali che consentano di aggiungere un disco
senza togliere corrente.
Da Ottobre 97 esiste una versione beta di MD che consente:
la ricostruzione dei livelli RAID 1 e 5 su dischi spare
la ricostruzione della parit di RAID-5 dopo uno shutdown
sporco
l'aggiunta ``a caldo'' di dischi spare ad una serie gi
in funzione di dischi RAID 1 o 4/5.
Come predefinizione, la ricostruzione automatica in
questo momento (Dicembre 97) disabilitata a causa della
natura ancora sperimentale di questo lavoro. Pu comunque
essere abilitata cambiando il valore di
SUPPORT_RECONSTRUCTION in include/linux/md.h.
Se i drive spare sono stati configurati su un sistema
raid quando esso stato creato e la ricostruzione
stata attivata nel kernel, i drive spare conterranno da
subito il superblock RAID (scritto da mkraid), e il
kernel sar capace di ricostruire il contenuto in maniera
automatica (senza bisogno degli usuali passi mdstop,
cambia il drive,ckraid, mdrun).
Se non avete configurato la ricostruzione automatica e
non avete configurato un disco spare, la procedura
descritta da Gadi Oxman <gadio@netvision.net.il> quella
raccomandata:
Per adesso, una volta che il primo disco stato rimosso,
il sistema RAID continuer a funzionare in modalit
``degradata''. Per riportarlo alla piena funzionalit
avrete bisogno di:
fermare il sottosistema RAID (mdstop /dev/md0)
rimpiazzare il disco rotto
eseguire ckraid raid.conf per ricostruire il suo
contenuto
far ripartire RAID (mdadd, mdrun).
A questo punto, nel sistema funzioneranno di nuovo tutti
i dischi, garantendoci dal malfunzionamento di uno di
essi.
Per adesso non possibile assegnare singoli dischi spare
a diverse serie RAID. Ogni sottosistema richieder il
proprio disco spare.
10.
D: Vorrei che ci fosse un allarme udibile per ``ehi tu, si rotto
un disco nel mirror'' in modo tale che anche il novello
amministratore di sistema possa sapere che c' un problema.
R: Un evento come questo viene segnalato nei log di sistema
dal kernel con la priorit ``KERN_ALERT''. Vi sono diversi
pacchetti software che controllano i file log di sistema e
fanno emettere un bip allo speaker del PC, eseguono un
pager, mandano e-mail ecc. automaticamente.
11.
D: Come posso fare a far partire RAID-5 in modalit degradata (con
un disco rotto e non ancora rimpiazzato)?
R: Gadi Oxman <gadio@netvision.net.il> ha scritto: Normal
mente, per far funzionare un set di n dischi RAID-5 si deve
eseguire:
mdadd /dev/md0 /dev/disk1 ... /dev/disk(n)
mdrun -p5 /dev/md0
Anche se uno dei dischi rotto, si deve comunque eseguire
mdadd su quel disco, come se tutto fosse normale. (??
provare a usare /dev/null al posto del disco rotto ???
occhio)
Quindi,
Il sistema RAID funzioner in modalit degradata con (n - 1)
dischi. Se l'esecuzione di ``mdrun'' non va a buon fine, il
kernel ha notato un errore (per esempio diversi dischi rotti
o uno shutdown sporco). Si usi ``dmesg'' per visionare i
messaggi di errore del kernel generati dall'esecuzione di
``mdrun''. Se il set raid-5 rovinato a causa di un calo
di tensione, e non a causa della rottura di un disco, si pu
tentare di recuperare il tutto creando un nuovo superblock
RAID:
mkraid -f --only-superblock raid5.conf
Una serie di dischi RAID non fornisce protezione alcuna con
tro i difetti dell'alimentazione o contro un blocco del ker
nel e quindi non pu nemmeno garantire un corretto recupero
dei dati. La ricostruzione del superblock servir solo a
far ignorare al sistema la condizione in cui si trova mar
cando tutti i drive come ``OK'' come se niente fosse
accaduto.
12.
D: Come funziona RAID-5 nel caso che un disco smetta di funzionare?
R: Uno scenario tipico il seguente:
Una serie di dischi RAID-5 attiva.
Un disco si rompe mentre la serie attiva.
Il firmware del disco e i driver di basso livello del
disco/controller si accorgono del malfunzionamento e
inviano un messaggio di errore al driver MD.
Il driver MD continua a fornire un dispositivo /dev/md0
privo di errori ai driver di livello pi alto (anche se
con performance ridotte) usando i rimanenti drive
operativi.
L'amministratore di sistema pu quindi eseguire umount
/dev/md0 e mdstop /dev/md0 come al solito.
Se il disco rotto non viene rimpiazzato, l'amministratore
di sistema pu comunque far partire il sistema raid in
modalit degradata come al solito eseguendo mdadd e
mdrun.
13.
D: Ho appena sostituito un disco rotto in un sistema RAID-5. Dopo
aver ricostruito il sistema, l'esecuzione di fsck mi d molti,
molti errori. normale?
R: No. E, a meno che fsck non sia stato eseguito in modalit
"verify only; do not update" ("verifica solamente; non
aggiornare". ndt), del tutto possibile che abbiate rov
inato i vostri dati. Sfortunatamente, uno scenario non poco
raro quello nel quale si cambia accidentalmente l'ordine
dei dischi in una serie di dischi RAID-5, dopo averne
rimpiazzato uno. Anche se il superblock RAID memorizza
l'ordine corretto, non tutti i tool tengono conto di questa
informazione. In particolare, la versione attuale di ckraid
user le informazioni specificate nell'opzione -f (usual
mente il file /etc/raid5.conf) al posto di quelle contenute
nel superblock. Se l'ordine specificato non quello cor
retto il disco rimpiazzato sar ricostruito in maniera
errata. Sintomo di questo tipo di sbaglio sembrano essere i
pesanti e numerosi errori di fsck.
E, nel caso siate meravigliati, s, qualcuno ha perso tutti
i suoi dati commettendo questo sbaglio. fortemente
raccomandato un backup su nastro di tutti i dati prima di
riconfigurare una serie di dischi RAID.
14.
D:
R:
15.
D: Perch non vi una domanda numero 13?
A: Se siete scettici sul RAID, sull'Alta Affidabilit e UPS
probabilmente una buona idea l'essere anche superstiziosi.
Male non pu fare, no?
16.
D: Il QuickStart dice che mdstop serve solo ad essere sicuri che i
dischi siano in sincronia. REALMENTE necessario? Non abbastanza
smontare il filesystem?
R: Il comando mdstop /dev/md0:
lo marcher come ''pulito''. Questo ci consente di
rilevare gli shutdown sporchi dovuti, per esempio, ad un
blocco del kernel o ad un malfunzionamento
nell'alimentazione.
metter in sincronia i dischi del dispositivo. Questa
una cosa meno importante dello smontare il filesystem ma
importante se l'accesso a /dev/md0 avviene direttamente
invece che attraverso un filesystem (ad esempio come nel
caso di e2fsck).
5. Risoluzione dei problemi di installazione
1. D: Quale attualmente la patch pi stabile e conosciuta per RAID
nei kernel della serie 2.0.x?
R: Al 28 Settembre 1997 (riporto letteralmente. ndt)
"2.0.30 + pre-9 2.0.31 + Werner Fink's swapping patch + the
alpha RAID patch". A Novembre 1997, 2.0.31 + ... !?
2. D Le patch per il RAID non vengono correttamente installate. Dov'
l'errore?
R: Assicuratevi che /usr/include/linux sia un link simbolico
a /usr/src/linux/include/linux.
Assicuratevi che i nuovi files raid5.c, etc. siano stati
copiati nei posti giusti. A volte il comando patch non crea
nuovi files. Provate con l'opzione -f del comando patch.
3. D: Durante la compilazione di raidtools 0.42, il compilatore si
blocca mentre cerca di includere <pthread.h> ma questo file non
esiste nel mio sistema. Come posso correggere questo errore?
R: raidtools-0.42 richiede linuxthreads-0.6 da:
<ftp://ftp.inria.fr/INRIA/Projects/cristal/Xavier.Leroy> In
alternativa si possono usare le glibc v2.0.
4. D: Ottengo il messaggio: mdrun -a /dev/md0: Invalid argument
R: Si deve usare mkraid per inizializzare il set RAID prima
che venga usato per la prima volta. mkraid si assicura del
fatto che il sistema RAID sia inizialmente in uno stato di
coerenza cancellando le partizioni RAID. In aggiunta,mkraid
si occuper di creare i superblock RAID.
5. D: Ottengo il messaggio: mdrun -a /dev/md0: Invalid argument La
procedura di setup stata:
compilazione di raid come modulo del kernel
stata seguita la normale procedura di installazione ...
mdcreate, mdadd, etc.
il comando cat /proc/mdstat produce questo output:
Personalities :
read_ahead not set
md0 : inactive sda1 sdb1 6313482 blocks
md1 : inactive
md2 : inactive
md3 : inactive
mdrun -a genera il messaggio di errore /dev/md0: Invalid argument
R: Si provi ad eseguire lsmod (o, in alternativa, cat
/proc/modules) per vedere se i moduli raid sono stati cari
cati. Se non lo sono stati, possono essere caricati in
maniera esplicita con i comandi modprobe raid1 o modprobe
raid5. In alternativa, se usate l'autoloader e se credete
che kerneld debba caricarli e non lo fa, potrebbe essere a
causa del fatto che il loader manca delle informazioni che
servono per caricare i moduli. Modificate /etc/conf.modules
aggiungendo le linee seguenti:
alias md-personality-3 raid1
alias md-personality-4 raid5
6. D: Durante l'esecuzione del comando mdadd -a si ha l'errore:
/dev/md0: No such file or directory. Sembra per che non vi siano
/dev/md0 da nessuna parte. E adesso?
R: Il package raid-tools crea questi dispositivi quando
viene eseguito il comando make install come utente root. In
alternativa, si pu fare cos:
cd /dev
./MAKEDEV md
7. D: Dopo aver creato un sistema raid su /dev/md0, provo a montarlo
ma ottengo il seguente errore: mount: wrong fs type, bad option,
bad superblock on /dev/md0, or too many mounted file systems. Cosa
c' che non va?
R: Si deve creare un file system su /dev/md0 prima che sia
possibile montarlo. Usare mke2fs.
8. D: Truxton Fulton ha scritto:
Sul mio sistema Linux 2.0.30, mentre eseguivo mkraid su un
dispositivo RAID-1, durante la pulizia delle due distinte
partizioni ho visto apparire sulla console gli errori "Can
not allocate free page" e altri errori "Unable to handle
kernel paging request at virtual address ..." risultavano
nel log di sistema. A questo punto il sistema diventato
pressoch inutilizzabile, ma si poi ristabilito dopo un
po'. L'operazione sembra essersi conclusa senza errori e
adesso utilizzo senza problemi il mio dispositivo RAID-1.
Comunque quegli errori continuano a sconcertarmi. Qualche
idea?
R: Questo era un bug ben conosciuto nei kernel 2.0.30.
stato corretto nel kernel 2.0.31; in alternativa si pu
tornare al 2.0.29.
9. D: Non riesco ad eseguire mdrun su un dispositivo RAID-1, RAID-4 o
RAID-5. Se provo ad eseguire mdrun su un dispositivo aggiunto con
mdadd mi viene dato il messaggio ''invalid raid superblock magic''.
R: Assicurarsi che sia stata seguita la parte della proce
dura di installazione dove viene utilizzato mkraid.
10.
D: Quando accedo a /dev/md0 il kernel se ne esce con molti errori
tipo md0: device not running, giving up ! e I/O error.... Ho
aggiunto con successo i miei dispositivi al dispositivo virtuale.
R: Per essere utilizzabile un dispositivo deve essere in
funzione. Si usi il comando mdrun -px /dev/md0 dove x 1
per linear, 0 per RAID-0 o 1 per RAID-1, etc.
11.
D: Ho creato un dispositivo md lineare con 2 dispositivi. cat
/proc/mdstat mi dice la grandezza totale del dispositivo ma df mi
fa vedere solo le dimensioni del primo dispositivo fisico
R: Si deve eseguire mkfs su un nuovo dispositivo md prima di
usarlo per la prima volta, in modo tale che il filesystem
copra tutto il dispositivo.
12.
D: Ho configurato /etc/mdtab usando mdcreate, ho poi eseguito
mdadd, mdrun e fsck sulle mie due partizioni /dev/mdX. Prima del
reboot sembra tutto a posto. Appena effettuo il reboot fsck mi d
errori su tutte e due le partizioni: fsck.ext2: Attempt to read
block from filesystem resulted in short read while trying too open
/dev/md0. Perch?! Come posso fare a correggerlo?!
R: Durante il processo di boot, le partizioni RAID devono
essere messe in funzione prima che vengano controllate da
fsck. Questo deve essere fatto in uno degli script di boot.
In qualche distribuzione fsck eseguito da /etc/rc.d/rc.S,
in altre eseguito da /etc/rc.d/rc.sysinit. Si modifichino
questi file in modo da eseguire mdadd -ar *prima* di fsck
-A. Ancora meglio, suggerisco che venga eseguito ckraid se
mdadd restituisce un codice di errore. Come fare ci dis
cusso in maggiore dettaglio nella domanda 14 della sezione
''Riparare gli errori''. (Qui l'originale inglese sembra
incoerente, in quanto la domanda 14 della sezione menzionata
non attinente. La domanda pi attinente sembra essere la
7 della sezione "Considerazioni sul setup e sull'instal
lazione". ndt)
13.
D: Quando provo a far funzionare un serie di partizioni pi grandi
di 4 GB mi viene dato il seguente messaggio: invalid raid
superblock magic
R: Questo bug stato corretto. (Settembre 97) Assicuratevi
di avere l'ultima versione del codice RAID.
14.
D: Quando provo ad eseguire mke2fs su una partizione pi grande di
2 GB mi viene dato il messaggio Warning: could not write 8 blocks
in inode table starting at 2097175
R: Questo sembra essere un problema con mke2fs (Novembre 97)
Un rimedio temporaneo consiste nel procurarsi il codice di
mke2fs e aggiungere #undef HAVE_LLSEEK a
e2fsprogs-1.10/lib/ext2fs/llseek.c subito prima del primo
#ifdef HAVE_LLSEEK e quindi ricompilare mke2fs.
15.
D: ckraid non riesce a leggere /etc/mdtab
R: Il formato del file di configurazione usato per
RAID0/linear in /etc/mdtab obsoleto, anche se sar suppor
tato ancora per un po'. I file di configurazione usati
attualmente sono chiamati /etc/raid1.conf, etc.
16.
D: I moduli delle personality (raid1.o) non vengono caricati
automaticamente; si deve eseguire modprobe manualmente prima di
eseguire mdrun. Come posso ovviare all'inconveniente?
R: Per il caricamento automatico dei moduli, si possono
aggiungere le seguenti linee a /etc/conf.modules:
alias md-personality-3 raid1
alias md-personality-4 raid5
17.
D: Ho aggiunto con mdadd 13 dispositivi e adesso sto cercando di
eseguire mdrun -p5 /dev/md0, ma mi viene dato il messaggio:
/dev/md0: Invalid argument
R: La configurazione predefinita di software RAID prevede 8
dispositivi reali. Editare linux/md.h, modificare #define
MAX_REAL=8 con un numero pi alto e ricompilare il kernel.
18.
D: Non riesco a far funzionare md su delle partizioni nella nostra
ultima SPARCstation 5. Sospetto che sia qualcosa che ha a che fare
con le etichette di volume.
R: Le etichette di volume Sun risiedono nel primo 1K di una
partizione. Per RAID-1 le etichette di volume Sun non sono
un problema poich ext2fs salter l'etichetta di ogni mir
ror. Per gli altri livelli RAID (0, linear e 4/5) questo
sembra essere un problema; non si arrivati ancora ad una
causa certa (Dicembre 97).
6. Hardware & Software Supportato
1. D: Ho un adattatore SCSI della marca XYZ (con o senza diversi
canali) e dischi di marche PQR e LMN, funzioneranno con md per
creare una personality linear/stripped/mirrored?
R: Si! Software RAID funzioner con ogni controller di dis
chi (IDE o SCSI) e con ogni disco. Non c' bisogno che i
dischi siano identici e nemmeno i controller. Per esempio un
mirror RAID pu essere creato una met con dischi SCSI e
l'altra met con dischi IDE. I dischi non devono neppure
essere delle stesse dimensioni. Non ci sono restrizioni
nella scelta e disposizione dei dischi e dei controller.
Questo a causa del fatto che Software RAID lavora con le
partizioni e non direttamente con il disco. La sola
raccomandazione da fare per il RAID livelli 1 e 5 che le
partizioni dei dischi che dovranno essere usate insieme
siano delle stesse dimensioni. Se le partizioni che
compongono una serie di dischi RAID 1 o 5 non sono delle
stesse dimensioni lo spazio in eccesso nella partizione pi
grande andr perduto.
2. D: Ho un BT-952 a doppio canale, e la confezione asserisce che
supporta il RAID hardware livelli 0, 1 e 0+1. Ho messo su un set
RAID con due dischi, la scheda sembra riconoscerli durante
l'esecuzione delle routine di avvio del suo BIOS. Ho letto il
codice sorgente del driver ma non ho trovato riferimenti ad un
supporto per il RAID hardware. Qualcuno ci sta lavorando?
R: Le schede Mylex/BusLogic FlashPoint con RAIDPlus sono in
effetti RAID software e per nulla RAID hardware. RAIDPlus
supportato solo su Windows 95 e Windows NT, non su Netware o
su piattaforma Unix. Esclusi il boot e la configurazione la
gestione del RAID avviene tramite driver del S.O.
Anche se in teoria il supporto per RAIDPlus sia possibile in
Linux, l'implementazione del RAID-0/1/4/5 nel kernel di
Linux molto pi flessibile e dovrebbe avere performance
superiori, quindi ci sono poche ragioni per decidere di
supportare direttamente RAIDPlus.
3. D: Voglio installare RAID su un computer SMP. RAID adatto a SMP?
R: "Penso di si" la migliore risposta disponibile al
momento (Aprile 98). Diversi utenti dicono di aver usato
RAID con SMP per circa un anno senza problemi. Comunque
alla data di Aprile 98 (circa kernel 2.1.9x), i seguenti
problemi sono stati notati sulla mailing list:
I driver Adaptec AIC7xxx SCSI non sono del tutto adatti a
SMP (nota generica: gli adattatori Adaptec hanno una
lunga storia di problemi e disfunzionamenti. Anche se
sembrano essere gli adattatori SCSI pi disponibili,
diffusi e a buon mercato gli Adaptec andrebbero evitati.
Dopo aver calcolato il tempo perso, le frustrazioni e i
dati andati perduti capirete che gli Adaptec sono il pi
costoso errore che abbiate mai fatto. Detto questo, se
avete problemi legati a SMP con il kernel 2.1.88, provate
la patch su ftp://ftp.bero-
online.ml.org/pub/linux/aic7xxx-5.0.7-linux21.tar.gz Non
sono sicuro del fatto che questa patch sia stata inclusa
negli ultimi kernel 2.1.x. Per altre informazioni date
un'occhiata agli archivi di mail del Marzo 98 su
http://www.linuxhq.com/lnxlists/linux-raid/lr_9803_01/
Come sempre, dato il fatto che i kernel sperimentali
della serie 2.1.x sono soggetti a continui cambiamenti, i
problemi descritti in queste mailing list potrebbero o
non potrebbero essere stati risolti nel frattempo.
Caveat Emptor.)
stato riferito che IO-APIC con RAID-0 su SMP non
funziona su 2.1.90
7. Modificare una installazione preesistente
1. D: I dispositivi MD linear sono espandibili? Si pu aggiungere un
nuovo drive/partizione e vedere cos aumentata la capienza del
filesystem preesistente?
D: Miguel de Icaza <miguel@luthien.nuclecu.unam.mx> ha
scritto:
Ho cambiato il codice di ext2fs per renderlo capace di
trattare dispositivi multipli, modificando l'assunzione
precedente che assegnava ad un filesystem un solo disposi
tivo.
Cos quando si vuole espandere un filesystem basta eseguire
un'utilit che apporta le modifiche appropriate sul nuovo
dispositivo (la partizione extra) e poi basta solo far
sapere al sistema di estendere il fs usando il dispositivo
specificato.
Il filesystem pu essere esteso con dei nuovi dispositivi
mentre il sistema sta funzionando, senza bisogno di doverlo
arrestare (e quando avr altro tempo potrete rimuovere dei
dispositivi da un volume ext2, ancora senza nemmeno dover
andare in modalit single-user o fare altre cose come
questa).
Potete procurarvi la patch per il kernel 2.1.x sulla mia web
page:
<http://www.nuclecu.unam.mx/~miguel/ext2-volume>
2. D: Posso aggiungere dei dischi ad un sistema RAID-5?
R: Attualmente, (Settembre 1997), no, non senza cancellare
tutti i dati. Una utilit di conversione che lo permetta
ancora non esiste. Il problema che la struttura e l'effet
tiva disposizione in un sistema RAID-5 dipende dal numero
dei dischi che ne fanno parte.
Ovviamente si possono aggiungere dei dischi facendo un
backup del sistema su nastro, cancellando tutti i dati, cre
ando un nuovo sistema e recuperando i dati dal nastro.
3. D: Cosa potrebbe succedere al mio set RAID1/RAID0 se sposto uno dei
drive facendo diventare da /dev/hdb a /dev/hdc?
A causa dei problemi di grandezza/stupidit con i cablaggi/cabinet
devo mettere i miei set RAID sullo stesso controller IDE (/dev/hda
e /dev/hdb). Adesso che ho messo a posto un po' di cose vorrei
muovere /dev/hdb in /dev/hdc.
Cosa potrebbe succedere se mi limito a cambiare i files /etc/mdtab
e /etc/raid1.conf in modo che riflettano la nuova posizione?
R: Nel caso del RAID-0/linear, si deve stare attenti nello
specificare i drive esattamente nello stesso ordine. Quindi
nell'esempio di cui sopra il file di configurazione origi
nale era:
mdadd /dev/md0 /dev/hda /dev/hdb
E il nuovo file di configurazione *deve* essere
mdadd /dev/md0 /dev/hda /dev/hdc
Per quanto riguarda RAID-1/4/5, il ''numero RAID'' del drive
viene memorizzato nel suo superblock RAID e quindi l'ordine
nel quale vengono indicati i dischi non importante.
Il RAID-0/linear non ha un superblock a causa del suo vec
chio design e del desiderio di mantenere la compatibilit
con questo vecchio design.
4. D: Posso convertire un mirror RAID-1 formato da due dischi in una
serie di tre dischi RAID-5?
R: Si. Micheal della BizSystems ha trovato un modo per farlo
abilmente e astutamente. Per, come virtualmente tutte le
manipolazioni di sistemi RAID una volta che essi contengono
dati, pericoloso e soggetto ad errore umano. Fate un
backup prima di cominciare.
Ipotizzo la seguente configurazione:
---------------------------------------------
dischi
originale: hda - hdc
partizioni raid1 hda3 - hdc3
nome dispositivo raid /dev/md0
nuovo hda - hdc - hdd
partizioni raid5 hda3 - hdc3 - hdd3
nome dispositivo raid: /dev/md1
Si sostituiscano i nomi dei dischi e delle partizioni in modo
da riflettere la propria configurazione di sistema.
Questo vale anche per tutti gli esempi di file di configurazione.
--------------------------------------------
FATE UN BACKUP PRIMA DI FARE QUALSIASI ALTRA COSA
1) ricompilare il kernel per includere sia il supporto raid1 che quello raid5
2) installare il nuovo kernel e accertarsi che siano presenti le
personality raid
3) disabilitare la partizione ridondante sul sistema raid 1. Se questa
la partizione di root (la mia lo era) dovrete stare pi attenti.
Fare il reboot del sistema senza mettere in funzione i dispositivi raid
o fate ripartire il sistema da uno di recupero (i tool raid dovranno essere
disponibili)
fate partire raid1 in modalit non ridondante
mdadd -r -p1 /dev/md0 /dev/hda3
4) configurate raid5 con un 'buffo' file di configurazione, si noti che
non viene nominato hda3 e che hdc3 ripetuto. Questo serve poich
i tool raid non accettano una simile impostazione.
-------------------------------
# configurazione raid-5
raiddev /dev/md1
raid-level 5
nr-raid-disks 3
chunk-size 32
# disposizione algoritmo di parit
parity-algorithm left-symmetric
# dischi spare per ricostruzione a caldo
nr-spare-disks 0
device /dev/hdc3
raid-disk 0
device /dev/hdc3
raid-disk 1
device /dev/hdd3
raid-disk 2
---------------------------------------
mkraid /etc/raid5.conf
5) attivare il sistema raid5 in modalit non ridondante
mdadd -r -p5 -c32k /dev/md1 /dev/hdc3 /dev/hdd3
6) create un filesystem sul dispositivo raid5
mke2fs -b {blocksize} /dev/md1
la dimensione del blocco raccomandata da alcuni di 4096 al posto della
predefinita 1024. Questo migliora l'utilizzazione della memoria da parte
del kernel e delle routine raid facendo coincidere la grandezza del blocco
con quella della pagina. Io ho trovato un compromesso su 2048 a causa del
fatto che ho un numero relativamente alto di file piccoli nel mio sistema.
7) montate da qualche parte i due dispositivi raid
mount -t ext2 /dev/md0 mnt0
mount -t ext2 /dev/md1 mnt1
8) spostate i dati
cp -a mnt0 mnt1
9) verificate che i due set di dati siano identici
10) fermate ambedue i dispositivi raid
11) correggete le informazioni contenute nel file raid5.conf
cambiate /dev/md1 in /dev/md0
cambiate il primo disco da leggere in /dev/hda3
12) portare il nuovo sistema in modalit ridondante
(QUESTO DISTRUGGE LE RIMANENTI INFORMAZIONI raid1)
ckraid --fix /etc/raid5.conf
8. Domande sulle performance, sui tool e domande stupide in genere
1. D: Ho creato un dispositivo RAID-0 con /dev/sda2 e /dev/sda3. Il
dispositivo molto pi lento di una singola partizione. Ma allora
md un ammasso di robaccia?
R: Per usufruire di un dispositivo RAID-0 che funzioni alla
massima velocit, si devono utilizzare partizioni di dischi
differenti. Oltretutto, mettendo le due met di un mirror su
di un solo disco non ci si cautela da nessun tipo di malfun
zionamento del disco.
2. D: Dove la necessit di avere RAID-linear quando RAID-0 fa le
stesse cose con migliore efficienza?
R: Il fatto che RAID-0 abbia sempre una performance migliore
non cosa ovvia; in effetti, in qualche caso, le cose
potrebbero andare peggio. Il filesystem ext2fs distribuisce
i file su tutta la partizione, e cerca di mantenere contigui
tutti i blocchi di un file, nel tentativo di impedirne la
frammentazione. Quindi ext2fs si comporta "come se" ci fosse
una striscia (di dimensioni variabili) per ogni file. Se
diversi dischi vengono concatenati in un dispositivo RAID-
linear, statisticamente i file verranno distribuiti su ogni
disco. Quindi, almeno per ext2fs, RAID-linear si comporta in
maniera molto simile a un RAID-0 con delle ampie strisce. Al
contrario RAID-0 con strisce piccole pu causare un'ecces
siva attivit del disco che pu portare ad un forte degrado
delle prestazioni se si accede contemporaneamente a diversi
grandi file.
In molti casi RAID-0 pu risultare facile vincitore. Si
immagini, per esempio un grande file di database. Poich
ext2fs cerca di raggruppare insieme tutti i blocchi di un
file, vi sono buone possibilit che esso finisca in un solo
disco se si utilizza RAID-linear o finisca diviso in
molteplici strisce se si usa RAID-0. Si immaginino adesso un
certo numero di thread (del kernel) che stanno tentando di
accedere al database in maniera casuale. Sotto RAID-linear
tutti gli accessi finirebbero con il dover essere
soddisfatti da un solo disco che finirebbe con l'essere
inefficiente se paragonato alla possibilit di accessi
multipli paralleli che RAID-0 consente.
3. D: Come si comporta RAID-0 in una situazione nella quale le diverse
partizioni di stripe hanno dimensioni diverse? Le strisce vengono
distribuite uniformemente?
R: Per comprendere meglio aiutiamoci con un esempio che
coinvolge tre partizioni; una da 50Mb, una da 90Mb e una da
125Mb.
Chiamiamo D0 il disco da 50Mb, D1 il disco da 90Mb e D2
quello da 125Mb. Quando si fa partire il dispositivo, il
driver calcola le 'strip zones' (letteralmente "zone di
striscia". ndt). In questo caso vengono individuate 3 zone,
cos definite:
Z0 : (D0/D1/D2) 3 x 50 = 150MB totali in questa zona
Z1 : (D1/D2) 2 x 40 = 80MB totali in questa zona
Z2 : (D2) 125-50-40 = 35MB totali in questa zona.
Si pu notare come la dimensione totale delle zone sia la
dimensione del dispositivo virtuale, ma la distribuzione
delle strisce varia in funzione della zona. Z2 ineffi
ciente, poich contenuta in un solo disco.
Poich ext2fs e molti altri filesystem di Unix distribuis
cono i file su tutto il disco, si ha il 35/265 = 13% di
probabilit che i dati finiscano su Z2, e quindi non benefi
cino dello striping.
(DOS cerca di riempire un disco partendo dall'inizio e
andando verso la fine e quindi i file pi vecchi finirebbero
in Z0. Questo tipo di approccio porta per ad una pesante
frammentazione, e questo il perch nessun altro oltre a
DOS gestisce il disco in questa maniera).
4. D: Ho dei dischi di marca X e un controller di marca Y, sto
considerando se usare md. Ma il throughput aumenta sensibilmente?
Le prestazioni sono notevolmente migliori?
R: La risposta dipende dalla configurazione che si usa.
Prestazioni di Linux MD RAID-0 e RAID-linear:
Se il sistema deve sopperire ad un alto numero di
richieste di I/O, statisticamente qualcuna andr su un
disco e qualcun'altra su un altro. Quindi le
prestazioni migliorano rispetto ad un singolo disco.
Ma il miglioramento effettivo dipende molto dai dati,
dalla dimensione delle strisce e da altri fattori. In
un sistema con basso carico di I/O le prestazioni sono
uguali a quelle di un singolo disco.
Prestazioni in lettura di Linux MD RAID-1(mirroring):
MD implementa il bilanciamento in lettura. Quindi il
codice RAID-1 distribuir il carico su ognuno dei
dischi nel mirror (due o pi), effettuando operazioni
alternate di lettura da ognuno di essi. In una
situazione con basso carico di I/O questo non
influisce per niente sulle prestazioni: dovrete
aspettare che un disco abbia finito di leggere. Ma con
due dischi in una situazioni di alto carico di I/O la
performance in lettura pu raddoppiare visto che le
letture possono essere effettuate in parallelo da
ciascuno dei due dischi. Per N dischi nel mirror, la
prestazione pu essere N volte migliore.
Prestazioni in scrittura di Linux MD RAID-1 (mirroring):
Si deve attendere che la scrittura sia stata
effettuata su tutti i dischi del mirror. Questo a
causa del fatto che una copia dei dati deve essere
scritta su ogni disco del mirror. Quindi le
prestazioni saranno quasi uguali a quelle di un
singolo disco in scrittura.
Prestazioni in lettura di Linux MD RAID-4/5:
Statisticamente un dato blocco pu trovarsi in un
qualsiasi disco di una serie, e quindi le prestazioni
in lettura di RAID-4/5 somigliano molto a quelle di
RAID-0. Esse variano in funzione dei dati, della
dimensione delle strisce e del tipo di utilizzo. Le
prestazioni in lettura non saranno buone quanto quelle
di una serie di dischi in mirror.
Prestazioni in scrittura di Linux MD RAID-4/5:
Questo sistema in genere considerevolmente pi lento
di un disco singolo. Questo a causa del fatto che la
parit dovr essere scritta su un disco e i dati su un
altro. E per poter calcolare la nuova parit quella
vecchia e i vecchi dati devono prima essere letti.
Viene quindi effettuato un XOR fra i vecchi dati, i
nuovi dati e la vecchia parit: questo richiede
numerosi cicli di CPU e diversi accessi al disco.
5. D: Quale configurazione ottimizza le prestazioni di RAID?
R: Interessa pi massimizzare il throughput o diminuire la
latenza? Non vi una facile risposta dato il grande numero
di fattori che influenzano la performance:
sistema operativo - l'accesso al disco effettuato da un
solo processo o da pi thread?
applicazioni - accedono ai dati in maniera
sequenziale o in maniera casuale?
file system - raggruppa i file o li
distribuisce (ext2fs raggruppa insieme i blocchi di un
file e distribuisce i file)
driver del disco - numero di blocchi di read ahead (
un parametro impostabile)
hardware CEC - un drive controller o pi?
hd controller - gestisce la coda di richieste
multiple? Ha una cache?
hard drive - dimensioni del buffer della
memoria cache -- abbastanza ampia da gestire la
quantit e la velocit degli accessi in scrittura di cui
si ha bisogno?
caratteristiche fisiche del disco - blocchi per cilindro
-- accedere a blocchi su differenti cilindri porta il
disco ad effettuare molte operazioni di seek.
6. D: Quale la configurazione di RAID-5 che ottimizza la
performance?
R: Poich RAID-5 genera un carico di I/O che uniformemente
distribuito su diversi dischi, le prestazioni migliori si
otterranno quando il set RAID viene bilanciato usando drive
identici, controller identici e lo stesso (basso) numero di
drive su ciascun controller.
Si noti comunque che l'uso di componenti identici alzer la
probabilit di malfunzionamenti multipli e simultanei
dovuti, per esempio a degli sbalzi repentini, al surriscal
damento o a problemi di alimentazione durante un temporale.
Questo tipo di rischio pu essere ridotto utilizzando dis
positivi di marca e modello differenti.
7. D: Quale la dimensione ottimale di un blocco per un sistema
RAID-4/5?
R: Nell'uso dell'implementazione attuale (Novembre 1997) di
RAID-4/5 fortemente raccomandato che il filesystem venga
creato con mke2fs -b 4096 al posto della dimensione pre
definita del blocco che di 1024 byte.
Questo perch l'attuale implementazione di RAID-5 alloca una
pagina di memoria di 4K per ogni blocco del disco; se un
blocco del disco fosse grande solo 1K il 75% della memoria
allocata da RAID-5 per l'I/O non verrebbe usata. Se la
grandezza del blocco del disco uguale a quella della
pagina di memoria il driver pu (potenzialmente) usare tutta
la pagina. Quindi, su un filesystem con dei blocchi da 4096
invece che da 1024, il driver RAID potr potenzialmente
gestire una coda di richieste di I/O quattro volte pi
grande senza usare memoria aggiuntiva.
Nota: le considerazioni precedenti non si applicano ai
driver Software RAID-0/1/linear.
Nota: le considerazioni sulla pagina di memoria da 4K sono
da applicare all'architettura Intel x86. Le dimensioni della
pagina di memoria su Alpha, Sparc e altre CPU sono
differenti; credo che siano 8k su Alpha/Sparc (????).
Aggiustate le asserzioni precedenti in maniera da tenerne
conto.
Nota: se il vostro filesystem contiene un grande numero di
piccoli file (file pi piccoli di 10KBytes), una frazione
considerevole di spazio disco andr perduta. Questo a causa
del fatto che la dimensione dello spazio disco allocata dal
filesystem un multiplo della dimensione del blocco.
Allocare dei blocchi di grosse dimensioni per dei piccoli
file porta chiaramente ad uno spreco di spazio disco; quindi
si potrebbe voler continuare ad utilizzare blocchi di
piccole dimensioni, avere una una capacit di
immagazzinamento maggiore e non preoccuparsi della memoria
"persa" a causa del fato che le dimensioni della pagina e
del blocco non combaciano.
Nota: molti sistemi ''tipici'' non contengono cos tanti
piccoli file. Comunque, anche se ci fossero centinaia di
piccoli file, questo potrebbe portare alla perdita di 10 -
100 MB di spazio disco, che probabilmente un compromesso
accettabile per avere buone prestazioni se si usano hard
disk multi-gigabyte.
Nel caso dei news server, ci potrebbero essere decine o
centinaia di migliaia di piccoli file. In questi casi i
blocchi di dimensioni minori, e quindi una maggiore capacit
di immagazzinamento, potrebbero essere pi importanti
dell'efficienza dello scheduling di I/O.
Nota: esiste un filesystem sperimentale per Linux che
memorizza piccoli file e pezzi di file in un solo blocco.
Apparentemente questo influisce in maniera positiva sulla
performance quando la dimensione media dei file molto pi
piccola della dimensione del blocco.
Nota: Le prossime versioni potrebbero implementare dei
dispositivi che renderanno obsolete queste discussioni.
Comunque sia la loro implementazione difficoltosa a causa
del fatto che la allocazione dinamica a tempo di esecuzione
pu portare a dei blocchi; l'implementazione attuale
effettua una pre-allocazione statica.
8. D: Quanto influenza la velocit del mio dispositivo RAID-0, RAID-4
o RAID-5 la grandezza del chunk (grandezza della striscia)?
R: La grandezza del chunk la quantit di dati contigui nel
dispositivo virtuale che sono contigui anche nel dispositivo
fisico. In questo HOWTO "chunk" e "striscia" sono la stessa
cosa: quella che comunemente chiamata "striscia" in altre
documentazioni su RAID, nelle pagine del manuale di MD
chiamata "chunk". Si parla di strisce o chunk solo per RAID
0, 4 e 5 poich le strisce non vengono utilizzate nel mir
roring (RAID-1) e nella semplice concatenazione (RAID-lin
ear). Le dimensioni della striscia influenzano il tempo di
latenza (ritardo) nella lettura e nella scrittura, il
throughput (larghezza di banda) e la gestione di operazioni
indipendenti (l'abilit di provvedere a richieste di I/O
simultanee che si accavallano)
Posto che si usino il filesystem ext2fs e le impostazioni
attuali del kernel che regolano il read-ahead, le strisce di
grosse dimensioni risultano quasi sempre essere una scelta
migliore rispetto a quelle di piccole dimensioni, e strisce
di dimensioni confrontabili con la grandezza di un quarto di
cilindro del disco potrebbero essere ancora migliori. Per
capire questa affermazione, consideriamo gli effetti delle
strisce grandi su file piccoli, e delle strisce piccole sui
file grandi. La dimensione delle strisce non influenza le
prestazioni durante la lettura di piccoli file: per una
serie di N dischi il file ha 1/N probabilit di essere
interamente contenuto in una striscia in uno dei dischi.
Quindi sia la larghezza di banda che la latenza in lettura
sono comparabili a quelle di un singolo disco. Ipotizzando
il fatto che i file piccoli siano distribuiti in maniera
statisticamente uniforme nel filesystem (e, se si usa il
filesystem ext2fs, questo dovrebbe essere vero) il numero
delle letture simultanee sovrapposte pu essere circa N
volte maggiore, senza collisioni significanti. Al contrario,
se vengono utilizzate strisce di dimensioni molto ridotte e
un file grande viene letto sequenzialmente, vi sar un
accesso in lettura da ogni disco del sottosistema. Nella
lettura di un singolo file di grandi dimensioni, la latenza
sar almeno raddoppiata, e la probabilit che un blocco si
trovi molto distaccato dagli altri aumenter. Si noti
comunque ci che si ottiene: la larghezza di banda pu
aumentare di al pi N volte nella lettura di un singolo file
di grandi dimensioni, poich N dischi lo leggono
simultaneamente (se viene usato il read-ahead per mantenere
attivi tutti i dischi). Ma vi anche un effetto secondario
controproducente: se tutti i drive sono occupati nella
lettura di un singolo, grande file, il tentativo di leggere
un secondo, un terzo file allo stesso tempo causer un grave
contenzioso, e degrader le prestazioni a causa del fatto
che gli algoritmi del disco lo porteranno ad effettuare
numerosi seek. Quindi, strisce di grosse dimensioni danno
quasi sempre i risultati migliori. L'unica eccezione
costituita dalla situazione nella quale si accede ad un
singolo file di grandi dimensioni e si richiede la maggiore
larghezza di banda possibile e si usa anche un buon
algoritmo di read-ahead, in questo caso sarebbero
desiderabili strisce di piccole dimensioni.
Si noti che in precedenza questo HOWTO ha raccomandato
strisce di piccole dimensioni per i news spool o per altri
sistemi con un gran numero di piccoli file. Questo stato
un cattivo consiglio, ed ecco perch: i news spool
contengono non solo molti piccoli file ma anche file
sommario di grandi dimensioni e grandi directory. Se il file
sommario pi grande della striscia, la sua lettura
comporter un accesso su pi dischi, rallentando il tutto
come se ogni disco effettuasse un seek. Similmente,
l'attuale filesystem ext2fs ricerca nelle directory in
maniera lineare e sequenziale. Quindi, per trovare un dato
file o inode, in media met della directory verr letta. Se
la directory distribuita su pi strisce (su pi dischi),
la lettura della directory (per es. a causa del comando ls)
potrebbe rallentare notevolmente. Un grazie a Steven A.
Reisman <sar@pressenter.com> per questa correzione. Steve
ha anche aggiunto:
Ho scoperto che l'uso di una striscia da 256k d performance
molto migliori. Sospetto che la dimensione ottimale sia
quella di un cilindro del disco (o forse la dimensione della
cache dei settori del disco). Comunque sia, oggi i dischi
hanno zone di memorizzazione con un numero di settori vari
abile (e le cache dei settori variano anche fra differenti
modelli). Non c' un metodo per assicurarsi che le strisce
non oltrepassino i confini del cilindro.
I tool accettano le dimensioni delle strisce in KBytes. Conviene
specificare un multiplo della dimensione della pagina per la CPU che
si usa (4KB su x86).
9. D: Quale il corretto fattore di stride da usare nella creazione
di un filesystem ext2fs sulla partizione RAID? Per stride intendo
l'opzione -R nel comando mke2fs:
mke2fs -b 4096 -R stride=nnn ...
Cosa devo mettere al posto di nnn?
R: L'opzione -R stride viene usata per comunicare al
filesystem le dimensioni delle strisce RAID. Poich solo
RAID-0,4 e 5 usano le strisce, e RAID-1 (mirroring) e RAID-
linear non le usano, questa opzione ha senso solo per
RAID-0,4,5.
La conoscenza delle dimensioni delle strisce consente a
mke2fs di dimensionare i blocchi e i bitmap degli inode in
modo tale che non vengano a trovarsi tutti sullo stesso dis
positivo fisico. Uno sconosciuto ha contribuito alla discus
sione scrivendo:
L'ultima primavera ho notato che in una coppia di dischi uno
aveva sempre un I/O maggiore e ho attribuito la cosa a
questi blocchi di meta-dati. Ted ha aggiunto l'opzione -R
stride= in risposta alle mie spiegazioni e alla richiesta di
una soluzione.
Per un filesystem con blocchi da 4Kb e strisce da 256Kb, si potrebbe
usare -R stride=64.
Se non volete affidarvi all'opzione -R, potete ottenere un effetto
simile in modo differente. Steven A. Reisman <sar@pressenter.com>
scrive:
Un'altra questione l'uso del filesystem su un dispositivo
RAID-0. Il filesystem ext2 alloca 8192 blocchi per ogni
gruppo. Ogni gruppo ha il proprio set di inode. Se ci sono
2, 4, o 8 dischi questi blocchi si accumulano nel primo
disco. Ho distribuito gli inode su tutti i drive impostando
mke2fs in modo da allocare solo 7932 blocchi per gruppo.
Qualche pagina di mke2fs non descrive l'opzione [-g blocks-per-group]
usata in questa operazione
10.
D: Dove posso mettere i comandi md negli script di avvio, in modo
tale che tutto parta automaticamente al boot?
R: Rod Wilkens <rwilkens@border.net> scrive:
Quello che ho fatto stato mettere ``mdadd -ar'' nel
``/etc/rc.d/rc.sysinit'' subito dopo il punto nel quale il
kernel carica i moduli, e prima del controllo dischi di
``fsck''. In questa maniera si pu mettere il dispositivo
``/dev/md?'' in ``/etc/fstab''. Quindi ho messo il comando
``mdstop -a'' subito dopo il comando ``umount -a'' nel file
``/etc/rc.d/init.d/halt''.
Nel caso si usi raid-5 si dovr fare attenzione al codice di uscita di
mdadd e, nel caso indichi un errore, eseguire
ckraid --fix /etc/raid5.conf
per riparare i danni.
11.
D: Mi chiedo se sia possibile configurare lo striping su pi di 2
dispositivi in md0? Questo per un news server, e io ho 9 dischi...
Non c' bisogno che dica che ne servono molti pi di due.
possibile?
A: Si. (descrivere come)
12.
D: Quando Software RAID superiore al RAID Hardware?
R: Normalmente il RAID hardware considerato superiore al
RAID Software, poich i controller hardware dispongono
spesso di una capiente cache e possono effettuare una pro
grammazione migliore delle operazioni in parallelo. Comunque
il software RAID integrato pu (e lo fa) avvantaggiarsi
della sua integrazione con il sistema operativo.
Per esempio, ... ummm. Oscura descrizione del caching dei
blocchi ricostruiti nella cache del buffer tralasciata ...
stato riferito che, su un sistema SMP con doppio PPro,
software RAID supera le prestazioni di un hardware RAID di
ben nota marca di un fattore variabile da 2 a 5.
Software RAID anche un'opzione molto interessante per
sistemi server ridondanti ad altro gradi di affidabilit.
In questa configurazione due CPU sono collegate ad un set di
dischi SCSI. Se un server si blocca o non risponde pi
l'altro server pu eseguire mdadd, mdrun e mount per montare
la serie di dischi RAID, e continuare le operazioni. Questo
tipo di operazione a doppio controllo non sempre possibile
con molti controller RAID, a causa del fatto che il
controller hardware mantiene la stessa configurazione.
13.
D: Se aggiorno la mia versione di raidtools, posso avere problemi
nella gestione di vecchi sistemi? In breve, devo ricreare i miei
sistemi RAID ogni volta che aggiorno i programmi di utilit raid?
R: No, a meno che non cambi il numero primario di versione.
Una versione di MD x.y.z consiste di tre sottoversioni:
x: Versione primaria.
y: Versione secondaria.
z: Livello di patch.
La versione x1.y1.z1 del driver RAID supporta un sistema
RAID con versione x2.y2.z2 nel caso (x1 == x2) e (y1 >= y2).
Le versioni che differiscono per il solo livello di patch
(z) sono concepite in modo da essere compatibili.
Il numero di versione secondario viene incrementato quando
la struttura del sistema RAID viene modificata in modo tale
da renderla incompatibile con le vecchie versioni del
driver. Le nuove versioni del driver manterranno la
compatibilit con i vecchi sistemi RAID.
Il numero primario di versione viene incrementato quando non
vi sono pi ragioni per continuare a supportare i vecchi
sistemi RAID nel nuovo codice del kernel.
Per quanto riguarda RAID-1, improbabile che la struttura
del disco o dei superblock venga alterata entro breve
termine. Le ottimizzazioni e le nuove funzioni
(ricostruzione, tool che implementino il multithread, hot-
plug ecc.) non vanno a modificare la struttura fisica.
14.
D: Il comando mdstop /dev/md0 dice che il dispositivo occupato.
R: C' un processo che ha un file aperto su /dev/md0 o
/dev/md0 ancora montato. Chiudere il processo o eseguire
umount /dev/md0.
15.
D: Vi sono dei tool per l'analisi delle prestazioni?
R: Vi anche un nuovo programma di utilit chiamato iotrace
nella directory linux/iotrace. Esso legge /proc/io-trace e
analizza/riporta il suo output. Se credete che le
prestazioni dei vostri dispositivi a blocchi siano poco con
vincenti, date un'occhiata all'output di iotrace.
16.
D: Leggendo i sorgenti di RAID ho visto il valore SPEED_LIMIT
impostato a 1024K/sec. Che significa? Questo rallenta le
prestazioni?
R: SPEED_LIMIT viene usato per regolare la ricostruzione
RAID quando essa avviene in automatico. Semplificando, la
ricostruzione automatica permette di effettuare e2fsck e
mount subito dopo uno shutdown sporco, senza prima dover
eseguire ckraid. La ricostruzione automatica viene usata
anche dopo la sostituzione di un disco rotto.
Per evitare un sovraccarico del sistema mentre la
ricostruzione in corso, il processo di ricostruzione
controlla la velocit alla quale essa avviene e la rallenta
se troppo veloce. Il limite di 1M/sec stato scelto
arbitrariamente come ragionevole velocit che consente alla
ricostruzione di finire in un tempo accettabile, con solo un
leggero carico del sistema, in modo tale che gli altri
processi non vengano disturbati.
17.
D: E riguardo la ''spindle synchronization'' o ''disk
synchronization'' ("sincronizzazione dei dischi". ndt)?
R: La sincronizzazione dei dischi viene usata per far girare
pi hard disk esattamente alla stessa velocit, in modo tale
che le loro superfici siano sempre perfettamente allineate.
Questo metodo viene usato da qualche controller hardware per
migliorare l'organizzazione degli accessi in scrittura.
Tuttavia, per quanto riguarda Software RAID, questa infor
mazione non viene usata e la sincronizzazione dei dischi pu
addirittura influire negativamente sulle prestazioni.
18.
D: Come posso creare degli spazi di swap usando raid 0? Lo stripe
delle aree di swap su pi di 4 dischi realmente veloce?
R: Leonard N. Zubkoff risponde: veramente veloce, ma non
c' necessit di usare MD per mettere in strip le aree di
swap. Il kernel usa automaticamente le strisce su diverse
aree di swap a priorit uguale. Per esempio, la seguente
configurazione di /etc/fstab mette in stripe le aree di swap
su cinque drive suddivisi in tre gruppi:
/dev/sdg1 swap swap pri=3
/dev/sdk1 swap swap pri=3
/dev/sdd1 swap swap pri=3
/dev/sdh1 swap swap pri=3
/dev/sdl1 swap swap pri=3
/dev/sdg2 swap swap pri=2
/dev/sdk2 swap swap pri=2
/dev/sdd2 swap swap pri=2
/dev/sdh2 swap swap pri=2
/dev/sdl2 swap swap pri=2
/dev/sdg3 swap swap pri=1
/dev/sdk3 swap swap pri=1
/dev/sdd3 swap swap pri=1
/dev/sdh3 swap swap pri=1
/dev/sdl3 swap swap pri=1
19.
D: Voglio ottimizzare le prestazioni. Devo usare controller
multipli?
R: In molti casi la risposta si. L'uso di controller mul
tipli per accedere in parallelo al disco consentir un
incremento delle prestazioni. Ovviamente il miglioramento
effettivo dipender dalla vostra particolare configurazione.
Per esempio stato riferito (Vaughan Pratt, gennaio 98) che
un singolo Cheetah da 4.3Gb collegato ad un Adaptec 2940UW
pu arrivare ad un trasferimento di 14Mb/sec (senza l'uso di
RAID). Installando due dischi su un controller e usando una
configurazione RAID-0 si arriva ad una prestazione di
27Mb/sec.
Si noti che il controller 2940UW un controller SCSI
"Ultra-Wide", capace di un trasferimento teorico di
40Mb/sec. quindi la velocit di trasferimento misurata non
sorprende. Tuttavia un controller pi lento collegato a due
dischi veloci potrebbe fare da collo di bottiglia. Si noti
anche che molte periferiche SCSI out-board (ad es. i tipi
con le connessioni utilizzabili "a caldo") non possono
arrivare a 40Mb/sec a causa del rumore elettrico e di quello
dovuto al cablaggio.
Se state progettando un sistema a controller multipli tenete
a mente il fatto che molti dischi e molti controller
funzionano normalmente al 70-85% della loro velocit
massima.
Si noti anche che l'uso di un controller per disco pu
ridurre la probabilit che il sistema si blocchi a causa di
un malfunzionamento dei cavi o del controller (Teoricamente
-- questo accade solo nel caso in cui il driver del
controller riesca a gestire ordinatamente un controller
rotto. Non tutti i device driver SCSI sembrano riuscire a
gestire una simile situazione senza andare in panico o
bloccarsi in altra maniera).
9. RAID ad Alta Affidabilit
1. D: RAID mi aiuta a cautelarmi dalla perdita di dati. Ma come posso
anche assicurarmi che il sistema resti funzionante il maggior tempo
possibile, e non sia soggetto a dei blocchi? Idealmente, vorrei un
sistema che funzioni 24 ore al giorno, 7 giorni alla settimana, 365
giorni all'anno.
R: Raggiungere l'Alta Affidabilit difficile e dis
pendioso. Pi si cerca di rendere indipendente dai guasti
il sistema, pi il sistema diventa difficile e costoso. I
seguenti trucchi, consigli, idee e voci non confermate forse
possono aiutarvi nella vostra ricerca.
I dischi IDE si possono rompere in maniera tale che il
disco rotto su un cavo IDE pu impedire al disco
funzionante sullo stesso cavo di rispondere, facendo
apparire la cosa come se tutti e due i dischi fossero
rotti. Poich RAID non protegge dal malfunzionamento di
due dischi si dovr o mettere un solo disco su un cavo
IDE o, se ci sono due dischi sullo stesso cavo, essi
devono fare parte di set RAID differenti.
I dischi SCSI si possono rompere in maniera tale da
impedire l'accesso alle altre unit SCSI collegate in
cascata. La modalit di malfunzionamento implica un
cortocircuito del pin (condiviso dalle altre unit)
attraverso il quale viene segnalato che il dispositivo
pronto; poich questo collegamento condiviso, non si
possono effettuare operazioni finch il cortocircito non
sia rimosso. Quindi, due dischi SCSI sulla stessa catena
non devono appartenere allo stesso set RAID.
Simili considerazioni valgono anche per i controller.
Non usate tutti i canali di un controller; usate diversi
controller.
Non usate la stessa marca o modello per tutti i dischi.
Non improbabile che dei forti temporali ve ne possano
rompere due o pi (s, tutti usiamo degli stabilizzatori
di corrente, ma questi non sono macchine perfette). Il
caldo e l'insufficiente ventilazione del disco sono altri
killer di dischi. I dischi a buon prezzo spesso si
surriscaldano. L'uso di modelli differenti di dischi e
controller diminuisce la probabilit che qualsiasi cosa
succeda ad un disco (il caldo, uno shock fisico,
vibrazioni, sovratensioni) possa succedere anche agli
altri nello stesso modo.
Per cautelarsi da malfunzionamenti del controller o del
PC, potrebbe essere possibile costruire un set di dischi
SCSI che sia "twin-tailed"; collegato cio a due
computer. Un computer monta il filesystem in lettura-
scrittura, mentre il secondo computer lo monta in sola
lettura, e agisce da "hot spare" (ricambio a caldo ndt).
Quando il computer che agisce da "hot spare" viene
informato del fatto che il computer principale si rotto
(ad es. attraverso un watchdog), toglie tensione al
computer principale (per essere sicuri che sia realmente
spento) e quindi effettua un fsck e rimonta il filesystem
in lettura-scrittura. Se qualcuno riesce a far funzionare
questa configurazione lo prego di farmi sapere.
Usare sempre un UPS ed effettuare shutdown puliti. Anche
se uno shutdown sporco pu non danneggiare i dischi,
l'esecuzione di ckraid su un sistema di dischi anche
piccolo estremamente lenta. Oppure potete hackerare il
kernel e fare un debug del codice che riguarda la
ricostruzione a caldo...
I cavi SCSI sono famosi per essere delle creature dal
comportamento variabile, soggette ad ogni sorta di
accidenti. Usate i migliori cavi che possiate rimediare.
Si usi il bubble-wrap per assicurarsi che i cavi non
stiano troppo vicino l'uno all'altro generando mutue
interferenze. Si osservino rigorosamente le restrizioni
sulla lunghezza dei cavi.
Date un'occhiata a SSI (Serial Storage Architecture).
Anche se dispendiosa, si dice che sia pi affidabile
della tecnologia SCSI.
Divertitevi, pi tardi di quanto immaginiate.
10. Domande che attendono risposta
1. D: Se, per ragioni di prezzo, metto in mirror un disco lento con
uno veloce, il software sar abbastanza scaltro da bilanciare le
richieste di lettura tenendo conto della velocit dei dischi o far
rallentare il tutto alla velocit del disco pi lento?
2. D: Per testare il thru-put del disco... c' un dispositivo a
caratteri cui si possa accedere direttamente al posto di /dev/sdaxx
che si possa usare per valutare le prestazioni dei dischi raid??
c' un programma GUI che si possa usare per controllare il thru-put
del disco??
11. Desiderata di MD e del relativo software
Bradley Ward Allen <ulmo@Q.Net> ha scritto:
Le idee includono:
Parametri di boot per dire al kernel quali dispositivi
dovranno essere dispositivi MD (niente pi ``mdadd'')
Rendere MD trasparente a ``mount''/``umount'' in modo
tale che non vi siano pi ``mdrun'' e ``mdstop''
Completa integrazione nel kernel di ``ckraid'' e sua
esecuzione automatica in caso di bisogno.
(Ho gi suggerito di smetterla di usare i tool e di
integrarli nel kernel; io la penso cos, si parla di un
filesystem, non di un giocattolo.)
Trattare sistemi che possano facilmente sopravvivere al
malfunzionamento (simultaneo o in momenti separati) di N
dischi, con N intero > 0 definito dall'amministratore di
sistema.
Migliorarne il comportamento in caso di blocco del
kernel, problemi con l'alimentazione e altri shutdown
improvvisi.
Non disabilitare l'intero disco se solo una parte di esso
si rovinata, ad es. se gli errori di lettura sono meno
del 50% su 20 diverse richieste di accesso, si continua
ad usare il disco ignorando i settori che hanno dato
problemi.
Settori danneggiati:
Un meccanismo che consenta di memorizzare da qualche
parte nel disco quali settori sono danneggiati.
Se esiste gi una convenzione riconoscibile dai
filesystem di livello pi alto per marcare i settori
danneggiati, questa deve essere usata. Programmarne una
se non ne esiste una riconoscibile.
Forse in alternativa un meccanismo per fare sapere allo
strato superiore che le dimensioni del disco si sono
ridotte, magari implementando una automazione che
consenta allo strato superiore di spostare i dati dalle
aree che vengono eliminate. Questo potrebbe anche andare
bene per trattare i blocchi danneggiati.
Nel caso non si possano realizzare le idee di cui sopra,
lasciare una piccola parte del disco (definibile
dall'amministratore di sistema) da parte per i blocchi
danneggiati (magari distribuita su tutto il disco?) e
usare questa area (la pi vicina) al posto dei blocchi
danneggiati quando questi vengono scoperti. Ovviamente
questa soluzione inefficiente. Oltretutto il kernel
dovrebbe mettere nei log, ogni volta che il sistema RAID
viene avviato, tutti i settori danneggiati e i
provvedimenti adottati nei loro riguardi con priorit
``crit'', solo per far sapere all'amministratore che il
suo disco impolverato internamente (o ha una testina
malata).
Dischi (dis)attivabili via software:
``disattiva questo disco''
si blocca fino a che il kernel non si assicurato che
non vi siano dati che possono servire sul disco che
sta per essere disattivato (ad es. per completare uno
XOR/ECC/ o altra correzione di errore), quindi cessa
l'utilizzo del disco (in modo che possa essere
rimosso, ecc.)
``attiva questo disco''
esegue, se necessario, mkraid su un nuovo disco e
quindi lo utilizza per le operazioni ECC/qualsiasi,
ampliando quindi il sistema RAID5;
``ridimensiona il sistema''
reimposta il numero totale di dischi e il numero di
dischi ridondanti, spesso con il risultato di
aumentare le dimensioni del sistema RAID; sarebbe
bello poter usare questa opzione, quando serve, senza
perdere dati, ma mi viene difficile immaginare come
possa funzionare effettivamente; in ogni caso, un modo
per sospendere (possibilmente per delle ore (il kernel
dovrebbe scrivere qualcosa nei log ogni dieci secondi
in questo caso)) potrebbe essere necessario;
``attiva questo disco mentre salvi i dati''
che salvi i dati su un disco cos com' e lo inserisca
in un sistema RAID5, in modo tale che l'orrendo "salva
e ripristina" non debba essere eseguito ogni volta che
qualcuno configuri un sistema RAID5 (oppure, potrebbe
essere pi semplice salvare una partizione al posto di
due, potrebbe addirittura entrare nella prima come
file compresso con gzip); infine,
``riattiva disco''
potrebbe essere un modo grazie al quale l'operatore
scavalca il SO per provare un disco che in precedenza
era risultato non funzionante (potrebbe semplicemente
chiamare "disattiva" e quindi "attiva", penso).
Altre idee dalla rete:
rendere finalrd simile a initrd, per semplificare il boot
da raid.
una modalit raid di sola scrittura, per rendere pi
semplice quanto sopra
Contrassegnare il sistema RAID come "pulito" quando non
siano state effettuate "mezze scritture". -- Sarebbe come
dire che non vi sono operazioni di scrittura finite su un
disco e ancora da ultimare su un altro disco.
Aggiungere un timeout che segnali "inattivit in
scrittura" (per evitare seek frequenti al superblock RAID
quando il sistema RAID relativamente occupato.)
|