]>
Commit | Line | Data |
---|---|---|
56eb10c0 NB |
1 | MD(4) MD(4) |
2 | ||
3 | ||
4 | ||
5 | N\bNA\bAM\bME\bE | |
6 | md - Multiple Device driver aka Linux Software Raid | |
7 | ||
8 | S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS | |
9 | /\b/d\bde\bev\bv/\b/m\bmd\bd_\bn | |
10 | /\b/d\bde\bev\bv/\b/m\bmd\bd/\b/_\bn | |
11 | ||
12 | D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN | |
13 | The m\bmd\bd driver provides virtual devices that are created | |
14 | from one or more independant underlying devices. This | |
15 | array of devices often contains redundancy, and hence the | |
16 | acronym RAID which stands for a Redundant Array of Inde- | |
17 | pendant Devices. | |
18 | ||
19 | m\bmd\bd support RAID levels 1 (mirroring) 4 (striped array with | |
20 | parity device) and 5 (striped array with distributed par- | |
21 | ity information. If a single underlying device fails | |
11a3e71d NB |
22 | while using one of these level, the array will continue to |
23 | function. | |
56eb10c0 NB |
24 | |
25 | m\bmd\bd also supports a number of pseudo RAID (non-redundant) | |
26 | configuations including RAID0 (striped array), LINEAR | |
27 | (catenated array) and MULTIPATH (a set of different inter- | |
28 | faces to the same device). | |
29 | ||
30 | ||
11a3e71d | 31 | M\bMD\bD S\bSU\bUP\bPE\bER\bR B\bBL\bLO\bOC\bCK\bK |
56eb10c0 NB |
32 | With the exception of Legacy Arrays described below, each |
33 | device that is incorportated into an MD array has a _\bs_\bu_\bp_\be_\br | |
34 | _\bb_\bl_\bo_\bc_\bk written towards the end of the device. This | |
35 | superblock records information about the structure and | |
11a3e71d | 36 | state of the array so that the array can be reliably re- |
56eb10c0 NB |
37 | assembled after a shutdown. |
38 | ||
39 | The superblock is 4K long and is written into a 64K | |
11a3e71d | 40 | aligned block that starts at least 64K and less than 128K |
56eb10c0 NB |
41 | from the end of the device (i.e. to get the address of the |
42 | superblock round the size of the device down to a multiple | |
43 | of 64K and then subtract 64K). The available size of each | |
11a3e71d | 44 | device is the amount of space before the super block, so |
56eb10c0 NB |
45 | between 64K and 128K is lost when a device in incorporated |
46 | into an MD array. | |
47 | ||
48 | The superblock contains, among other things: | |
49 | ||
11a3e71d NB |
50 | LEVEL The manner in which the devices are arranged into |
51 | the array (linear, raid0, raid1, raid4, raid5, mul- | |
52 | tipath). | |
56eb10c0 NB |
53 | |
54 | UUID a 128 bit Universally Unique Identifier that iden- | |
55 | tifies the array that this device is part of. | |
56 | ||
57 | ||
11a3e71d NB |
58 | L\bLE\bEG\bGA\bAC\bCY\bY A\bAR\bRR\bRA\bAY\bYS\bS |
59 | Early versions of the m\bmd\bd driver only supported Linear and | |
60 | Raid0 configurations and so did not use an MD superblock | |
61 | (as there is not state that needs to be recorded). While | |
62 | it is strongly recommended that all newly created arrays | |
63 | utilise a superblock to help ensure that they are assem- | |
64 | bled properly, the m\bmd\bd driver still supports legacy linear | |
65 | and raid0 md arrays that do not have a superblock. | |
66 | ||
67 | ||
56eb10c0 | 68 | L\bLI\bIN\bNE\bEA\bAR\bR |
11a3e71d NB |
69 | A linear array simply catenates the available space on |
70 | each drive together to form one large virtual drive. | |
71 | ||
72 | One advantage of this arrangement over the more common | |
73 | RAID0 arrangement is that the array may be reconfigured at | |
74 | a later time with an extra drive and so the array is made | |
75 | bigger without disturbing the data that is on the array. | |
76 | However this cannot be done on a live array. | |
77 | ||
78 | ||
79 | ||
80 | ||
56eb10c0 | 81 | R\bRA\bAI\bID\bD0\b0 |
11a3e71d NB |
82 | A RAID0 array (which has zero redundancy) is also known as |
83 | a striped array. | |
84 | ||
56eb10c0 NB |
85 | R\bRA\bAI\bID\bD1\b1 |
86 | R\bRA\bAI\bID\bD4\b4 | |
87 | R\bRA\bAI\bID\bD5\b5 | |
11a3e71d | 88 | M\bMU\bUT\bTI\bIP\bPA\bAT\bTH\bH |
56eb10c0 NB |
89 | R\bRE\bEB\bBU\bUI\bIL\bLD\bD/\b/R\bRE\bES\bSY\bYN\bNC\bC |
90 | F\bFI\bIL\bLE\bES\bS | |
91 | /\b/p\bpr\bro\boc\bc/\b/m\bmd\bds\bst\bta\bat\bt | |
92 | Contains information about the status of currently | |
93 | running array. | |
94 | ||
95 | /\b/p\bpr\bro\boc\bc/\b/s\bsy\bys\bs/\b/d\bde\bev\bv/\b/r\bra\bai\bid\bd/\b/s\bsp\bpe\bee\bed\bd_\b_l\bli\bim\bmi\bit\bt_\b_m\bmi\bin\bn | |
96 | A readable and writable file that reflects the cur- | |
97 | rent goal rebuild speed for times when non-rebuild | |
98 | activity is current on an array. The speed is in | |
99 | Kibibytes per second, and is a per-device rate, not | |
100 | a per-array rate (which means that an array with | |
101 | more disc will shuffle more data for a given | |
102 | speed). The default is 100. | |
103 | ||
104 | ||
105 | /\b/p\bpr\bro\boc\bc/\b/s\bsy\bys\bs/\b/d\bde\bev\bv/\b/r\bra\bai\bid\bd/\b/s\bsp\bpe\bee\bed\bd_\b_l\bli\bim\bmi\bit\bt_\b_m\bma\bax\bx | |
106 | A readable and writable file that reflects the cur- | |
107 | rent goal rebuild speed for times when no non- | |
108 | rebuild activity is current on an array. The | |
109 | default is 100,000. | |
110 | ||
111 | ||
112 | S\bSE\bEE\bE A\bAL\bLS\bSO\bO | |
113 | m\bmd\bda\bad\bdm\bm(8), m\bmk\bkr\bra\bai\bid\bd(8). | |
114 | ||
115 | ||
116 | ||
117 | MD(4) |