rev |
line source |
igor@0
|
1 \section{Программный RAID в Linux}
|
igor@0
|
2
|
igor@0
|
3 Здесь рассматриваются вопросы создания и обслуживания программного RAID-массива в операционной системе Linux.
|
igor@0
|
4
|
igor@0
|
5 \subsection{mdadm}
|
igor@0
|
6 Управление программным RAID-массивом в Linux
|
igor@0
|
7 выполняется с помощью программы \textbf{mdadm}.
|
igor@0
|
8
|
igor@0
|
9 У программы \textbf{mdadm} есть несколько режимов работы.
|
igor@0
|
10
|
igor@0
|
11 \begin{itemize}
|
igor@0
|
12 \item \textbf{Assemble (сборка)} — Собрать компоненты ранее созданного массива в массив. Компоненты можно указывать явно, но можно и не указывать — тогда выполняется их поиск по суперблокам.
|
igor@0
|
13 \item \textbf{Build (построение)} — Собрать массив из компонентов, у которых нет суперблоков. Не выполняются никакие проверки, создание и сборка массива в принципе ничем не отличаются.
|
igor@0
|
14 \item \textbf{Create (создание)} — Созать новый массив на основе указанных устройств. Использовать суперблоки размещённые на каждом устройстве.
|
igor@0
|
15 \item \textbf{Monitor (наблюдение)} — Следить на изменением состояния устройств. Для RAID0 этот режим не имеет смысла.
|
igor@0
|
16 \item \textbf{Grow (расширение или уменьшение)} — Расширение или уменьшение массива, включаются или удаляются новые диски.
|
igor@0
|
17 \item \textbf{Incremental Assembly (инкрементальная сборка)} — Добавление диска в массив.
|
igor@0
|
18 \item \textbf{Manage (управление)} — Разнообразные операции по управлению массивом, такие как замена диска и пометка как сбойного.
|
igor@0
|
19 \item \textbf{Misc (разное)} — Действия, которые не относятся ни к одному из перечисленных выше режимов работы.
|
igor@0
|
20 \item \textbf{Auto-detect (автоообнаружение)} — Активация автоматически обнаруживаемых массивов в ядре Linux.
|
igor@0
|
21 \end{itemize}
|
igor@0
|
22
|
igor@0
|
23 Формат вызова:
|
igor@0
|
24
|
igor@0
|
25 \begin{verbatim}
|
igor@0
|
26 mdadm [mode] [array] [options]
|
igor@0
|
27 \end{verbatim}
|
igor@0
|
28
|
igor@0
|
29 Режимы:
|
igor@0
|
30 \begin{itemize}
|
igor@0
|
31 \item \texttt{-A}, \texttt{--assemble} — режим сборки
|
igor@0
|
32 \item \texttt{-B}, \texttt{--build} — режим построения
|
igor@0
|
33 \item \texttt{-C}, \texttt{--create} — режим создания
|
igor@0
|
34 \item \texttt{-F}, \texttt{--follow}, \texttt{--monitor} — режим наблюдения
|
igor@0
|
35 \item \texttt{-G}, \texttt{--grow} — режим расширения
|
igor@0
|
36 \item \texttt{-I}, \texttt{--incremental} — режим инкрементальной сборки
|
igor@0
|
37 \end{itemize}
|
igor@0
|
38
|
igor@0
|
39 \subsection{Настройка программного RAID-массива}
|
igor@0
|
40 Рассмотрим как выполнить настройку RAID-массива 5 уровня
|
igor@0
|
41 на трёх дисковых разделах.
|
igor@0
|
42 Мы будем использовать разделы:
|
igor@0
|
43 \begin{verbatim}
|
igor@0
|
44 /dev/hde1
|
igor@0
|
45 /dev/hdf2
|
igor@0
|
46 /dev/hdg1
|
igor@0
|
47 \end{verbatim}
|
igor@0
|
48
|
igor@0
|
49 В том случае если разделы иные,
|
igor@0
|
50 не забудьте использовать соответствующие имена файлов.
|
igor@0
|
51
|
igor@0
|
52 \subsubsection{Создание разделов}
|
igor@0
|
53 Нужно определить на каких физических разделах
|
igor@0
|
54 будет создаваться RAID-массив.
|
igor@0
|
55 Если разделы уже есть, нужно найти свободные (\textit{fdisk -l}).
|
igor@0
|
56 Если разделов ещё нет, но есть неразмеченное место,
|
igor@0
|
57 их можно создать с помощью программ \textit{fdisk} или \textit{cfdisk}.
|
igor@0
|
58
|
igor@0
|
59 Просмотреть какие есть разделы:
|
igor@0
|
60
|
igor@0
|
61 \begin{verbatim}
|
igor@0
|
62 %# fdisk -l
|
igor@0
|
63 \end{verbatim}
|
igor@0
|
64
|
igor@0
|
65 \begin{verbatim}
|
igor@0
|
66 Disk /dev/hda: 12.0 GB, 12072517632 bytes
|
igor@0
|
67 255 heads, 63 sectors/track, 1467 cylinders
|
igor@0
|
68 Units = cylinders of 16065 * 512 = 8225280 bytes
|
igor@0
|
69 \end{verbatim}
|
igor@0
|
70
|
igor@0
|
71 \begin{verbatim}
|
igor@0
|
72 Device Boot Start End Blocks Id System
|
igor@0
|
73 /dev/hda1 * 1 13 104391 83 Linux
|
igor@0
|
74 /dev/hda2 14 144 1052257+ 83 Linux
|
igor@0
|
75 /dev/hda3 145 209 522112+ 82 Linux swap
|
igor@0
|
76 /dev/hda4 210 1467 10104885 5 Extended
|
igor@0
|
77 /dev/hda5 210 655 3582463+ 83 Linux
|
igor@0
|
78 ...
|
igor@0
|
79 ...
|
igor@0
|
80 /dev/hda15 1455 1467 104391 83 Linux
|
igor@0
|
81 \end{verbatim}
|
igor@0
|
82
|
igor@0
|
83 Просмотреть, какие разделы куда смонтированы,
|
igor@0
|
84 и сколько свободного места есть на них (размеры в килобайтах):
|
igor@0
|
85
|
igor@0
|
86 \begin{verbatim}
|
igor@0
|
87 %# df -k
|
igor@0
|
88 Filesystem 1K-blocks Used Available Use% Mounted on
|
igor@0
|
89 /dev/hda2 1035692 163916 819164 17% /
|
igor@0
|
90 /dev/hda1 101086 8357 87510 9% /boot
|
igor@0
|
91 /dev/hda15 101086 4127 91740 5% /data1
|
igor@0
|
92 ...
|
igor@0
|
93 ...
|
igor@0
|
94 ...
|
igor@0
|
95 /dev/hda7 5336664 464228 4601344 10% /var
|
igor@0
|
96 \end{verbatim}
|
igor@0
|
97
|
igor@0
|
98 \subsubsection{Размонтирование}
|
igor@0
|
99 Если вы будете использовать созданные ранее разделы,
|
igor@0
|
100 обязательно размонтируйте их. RAID-массив нельзя создавать
|
igor@0
|
101 поверх разделов, на которых находятся смонтированные файловые системы.
|
igor@0
|
102
|
igor@0
|
103 \begin{verbatim}
|
igor@0
|
104 %# umount /dev/hde1
|
igor@0
|
105 %# umount /dev/hdf2
|
igor@0
|
106 %# umount /dev/hdg1
|
igor@0
|
107 \end{verbatim}
|
igor@0
|
108
|
igor@0
|
109 \subsubsection{Изменение типа разделов}
|
igor@0
|
110 Желательно (но не обязательно) изменить тип разделов, которые будут
|
igor@0
|
111 входить в RAID-массив и установить его равным FD (Linux RAID autodetect).
|
igor@0
|
112 Изменить тип раздела можно с помощью fdisk.
|
igor@0
|
113
|
igor@0
|
114 Рассмотрим как это делать на примере раздела \texttt{/dev/hde1}.
|
igor@0
|
115 \begin{verbatim}
|
igor@0
|
116 %# fdisk /dev/hde
|
igor@0
|
117 The number of cylinders for this disk is set to 8355.
|
igor@0
|
118 There is nothing wrong with that, but this is larger than 1024,
|
igor@0
|
119 and could in certain setups cause problems with:
|
igor@0
|
120 1) software that runs at boot time (e.g., old versions of LILO)
|
igor@0
|
121 2) booting and partitioning software from other OSs
|
igor@0
|
122 (e.g., DOS FDISK, OS/2 FDISK)
|
igor@0
|
123
|
igor@0
|
124 Command (m for help):
|
igor@0
|
125
|
igor@0
|
126 Use FDISK Help
|
igor@0
|
127
|
igor@0
|
128 Now use the fdisk m command to get some help:
|
igor@0
|
129
|
igor@0
|
130 Command (m for help): m
|
igor@0
|
131 ...
|
igor@0
|
132 ...
|
igor@0
|
133 p print the partition table
|
igor@0
|
134 q quit without saving changes
|
igor@0
|
135 s create a new empty Sun disklabel
|
igor@0
|
136 t change a partition's system id
|
igor@0
|
137 ...
|
igor@0
|
138 ...
|
igor@0
|
139 Command (m for help):
|
igor@0
|
140
|
igor@0
|
141 Set The ID Type To FD
|
igor@0
|
142
|
igor@0
|
143 Partition /dev/hde1 is the first partition on disk /dev/hde.
|
igor@0
|
144 Modify its type using the t command, and specify the partition number
|
igor@0
|
145 and type code.
|
igor@0
|
146 You also should use the L command to get a full listing
|
igor@0
|
147 of ID types in case you forget.
|
igor@0
|
148
|
igor@0
|
149 Command (m for help): t
|
igor@0
|
150 Partition number (1-5): 1
|
igor@0
|
151 Hex code (type L to list codes): L
|
igor@0
|
152
|
igor@0
|
153 ...
|
igor@0
|
154 ...
|
igor@0
|
155 ...
|
igor@0
|
156 16 Hidden FAT16 61 SpeedStor f2 DOS secondary
|
igor@0
|
157 17 Hidden HPFS/NTF 63 GNU HURD or Sys fd Linux raid auto
|
igor@0
|
158 18 AST SmartSleep 64 Novell Netware fe LANstep
|
igor@0
|
159 1b Hidden Win95 FA 65 Novell Netware ff BBT
|
igor@0
|
160 Hex code (type L to list codes): fd
|
igor@0
|
161 Changed system type of partition 1 to fd (Linux raid autodetect)
|
igor@0
|
162
|
igor@0
|
163 Command (m for help):
|
igor@0
|
164
|
igor@0
|
165
|
igor@0
|
166 Make Sure The Change Occurred
|
igor@0
|
167
|
igor@0
|
168 Use the p command to get the new proposed partition table:
|
igor@0
|
169
|
igor@0
|
170 Command (m for help): p
|
igor@0
|
171
|
igor@0
|
172 Disk /dev/hde: 4311 MB, 4311982080 bytes
|
igor@0
|
173 16 heads, 63 sectors/track, 8355 cylinders
|
igor@0
|
174 Units = cylinders of 1008 * 512 = 516096 bytes
|
igor@0
|
175
|
igor@0
|
176 Device Boot Start End Blocks Id System
|
igor@0
|
177 /dev/hde1 1 4088 2060320+ fd Linux raid autodetect
|
igor@0
|
178 /dev/hde2 4089 5713 819000 83 Linux
|
igor@0
|
179 /dev/hde4 6608 8355 880992 5 Extended
|
igor@0
|
180 /dev/hde5 6608 7500 450040+ 83 Linux
|
igor@0
|
181 /dev/hde6 7501 8355 430888+ 83 Linux
|
igor@0
|
182
|
igor@0
|
183 Command (m for help):
|
igor@0
|
184
|
igor@0
|
185
|
igor@0
|
186 Save The Changes
|
igor@0
|
187
|
igor@0
|
188 Use the w command to permanently save the changes to disk /dev/hde:
|
igor@0
|
189
|
igor@0
|
190 Command (m for help): w
|
igor@0
|
191 The partition table has been altered!
|
igor@0
|
192
|
igor@0
|
193 Calling ioctl() to re-read partition table.
|
igor@0
|
194
|
igor@0
|
195 WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
|
igor@0
|
196 The kernel still uses the old table.
|
igor@0
|
197 The new table will be used at the next reboot.
|
igor@0
|
198 Syncing disks.
|
igor@0
|
199 \end{verbatim}
|
igor@0
|
200
|
igor@0
|
201 Аналогичным образом нужно изменить тип раздела
|
igor@0
|
202 для всех остальных разделов, входящих в RAID-массив.
|
igor@0
|
203
|
igor@0
|
204 \subsubsection{Создание RAID-массива}
|
igor@0
|
205 Создание RAID-массива выполняется с помощью программы \textbf{mdadm} (ключ \verb|--create|).
|
igor@0
|
206 Мы воспользуемся опцией \verb|--level|, для того чтобы создать RAID-массив 5 уровня.
|
igor@0
|
207 С помощью ключа \verb|--raid-devices| укажем устройства, поверх которых будет собираться
|
igor@0
|
208 RAID-массив.
|
igor@0
|
209 \begin{verbatim}
|
igor@0
|
210 %# mdadm --create --verbose /dev/md0 --level=5 \
|
igor@0
|
211 --raid-devices=3 /dev/hde1 /dev/hdf2 /dev/hdg1
|
igor@0
|
212
|
igor@0
|
213 mdadm: layout defaults to left-symmetric
|
igor@0
|
214 mdadm: chunk size defaults to 64K
|
igor@0
|
215 mdadm: /dev/hde1 appears to contain an ext2fs file system
|
igor@0
|
216 size=48160K mtime=Sat Jan 27 23:11:39 2007
|
igor@0
|
217 mdadm: /dev/hdf2 appears to contain an ext2fs file system
|
igor@0
|
218 size=48160K mtime=Sat Jan 27 23:11:39 2007
|
igor@0
|
219 mdadm: /dev/hdg1 appears to contain an ext2fs file system
|
igor@0
|
220 size=48160K mtime=Sat Jan 27 23:11:39 2007
|
igor@0
|
221 mdadm: size set to 48064K
|
igor@0
|
222 Continue creating array? y
|
igor@0
|
223 mdadm: array /dev/md0 started.
|
igor@0
|
224 \end{verbatim}
|
igor@0
|
225
|
igor@0
|
226 Если вы хотите сразу создать массив, где диска не хватает (degraded)
|
igor@0
|
227 просто укажите слово \texttt{missing} вместо имени устройства.
|
igor@0
|
228 Для RAID5 это может быть только один диск; для RAID6 — не более двух;
|
igor@0
|
229 для RAID1 — сколько угодно, но должен быть как минимум один рабочий.
|
igor@0
|
230
|
igor@0
|
231 \subsubsection{Проверка правильности сборки}
|
igor@0
|
232 Убедиться, что RAID-массив проинициализирован корректно
|
igor@0
|
233 можно просмотрев файл \texttt{/proc/mdstat}.
|
igor@0
|
234 В этом файле отражается текущее состояние RAID-массива.
|
igor@0
|
235 \begin{verbatim}
|
igor@0
|
236 %# cat /proc/mdstat
|
igor@0
|
237 Personalities : [raid5]
|
igor@0
|
238 read_ahead 1024 sectors
|
igor@0
|
239 md0 : active raid5 hdg1[2] hde1[1] hdf2[0]
|
igor@0
|
240 4120448 blocks level 5, 32k chunk, algorithm 3 [3/3] [UUU]
|
igor@0
|
241
|
igor@0
|
242 unused devices: <none>
|
igor@0
|
243 \end{verbatim}
|
igor@0
|
244
|
igor@0
|
245 Обратите внимание на то, как называется новый RAID-массив.
|
igor@0
|
246 В нашем случае он называется \texttt{/dev/md0}.
|
igor@0
|
247 Мы будем обращаться к массиву по этому имени.
|
igor@0
|
248
|
igor@0
|
249 \subsubsection{Создание файловой системы поверх RAID-массива}
|
igor@0
|
250 Новый RAID-раздел нужно отформатировать, т.е. создать на нём файловую систему.
|
igor@0
|
251 Сделать это можно при помощи программы из семейства \textbf{mkfs}.
|
igor@0
|
252 Если мы будем создавать файловую систему ext3, воспользуемся программой \textbf{mkfs.ext3}:
|
igor@0
|
253 \begin{verbatim}
|
igor@0
|
254 %# mkfs.ext3 /dev/md0
|
igor@0
|
255 mke2fs 1.39 (29-May-2006)
|
igor@0
|
256 Filesystem label=
|
igor@0
|
257 OS type: Linux
|
igor@0
|
258 Block size=1024 (log=0)
|
igor@0
|
259 Fragment size=1024 (log=0)
|
igor@0
|
260 36144 inodes, 144192 blocks
|
igor@0
|
261 7209 blocks (5.00%) reserved for the super user
|
igor@0
|
262 First data block=1
|
igor@0
|
263 Maximum filesystem blocks=67371008
|
igor@0
|
264 18 block groups
|
igor@0
|
265 8192 blocks per group, 8192 fragments per group
|
igor@0
|
266 2008 inodes per group
|
igor@0
|
267 Superblock backups stored on blocks:
|
igor@0
|
268 8193, 24577, 40961, 57345, 73729
|
igor@0
|
269
|
igor@0
|
270 Writing inode tables: done
|
igor@0
|
271 Creating journal (4096 blocks): done
|
igor@0
|
272 Writing superblocks and filesystem accounting information: done
|
igor@0
|
273
|
igor@0
|
274 This filesystem will be automatically checked every 33 mounts or
|
igor@0
|
275 180 days, whichever comes first. Use tune2fs -c or -i to override.
|
igor@0
|
276 \end{verbatim}
|
igor@0
|
277
|
igor@0
|
278 \subsubsection{Создание конфигурационного файла mdadm.conf}
|
igor@0
|
279 Система сама не запоминает какие RAID-массивы ей нужно создать
|
igor@0
|
280 и какие компоненты в них входят.
|
igor@0
|
281 Эта информация находится в файле \texttt{mdadm.conf}.
|
igor@0
|
282
|
igor@0
|
283 Строки, которые следует добавить в этот файл,
|
igor@0
|
284 можно получить при помощи команды
|
igor@0
|
285 \begin{verbatim}
|
igor@0
|
286 mdadm --detail --scan --verbose
|
igor@0
|
287 \end{verbatim}
|
igor@0
|
288
|
igor@0
|
289 Вот пример её использования:
|
igor@0
|
290
|
igor@0
|
291 \begin{verbatim}
|
igor@0
|
292 %# mdadm --detail --scan --verbose
|
igor@0
|
293 ARRAY /dev/md0 level=raid5 num-devices=4
|
igor@0
|
294 UUID=77b695c4:32e5dd46:63dd7d16:17696e09
|
igor@0
|
295 devices=/dev/hde1,/dev/hdf2,/dev/hdg1
|
igor@0
|
296 \end{verbatim}
|
igor@0
|
297
|
igor@0
|
298 Если файла \texttt{mdadm.conf} ещё нет, можно его создать:
|
igor@0
|
299 \begin{verbatim}
|
igor@0
|
300 %# mdadm --detail --scan --verbose > /etc/mdadm.conf
|
igor@0
|
301 \end{verbatim}
|
igor@0
|
302
|
igor@0
|
303 \subsubsection{Создание точки монтирования для RAID-массива}
|
igor@0
|
304 Поскольку мы создали новую файловую систему, вероятно,
|
igor@0
|
305 нам понадобится и новая точка монтирования.
|
igor@0
|
306 Назовём её \texttt{/raid}.
|
igor@0
|
307 \begin{verbatim}
|
igor@0
|
308 %# mkdir /raid
|
igor@0
|
309 \end{verbatim}
|
igor@0
|
310
|
igor@0
|
311 \subsubsection{Изменение /etc/fstab}
|
igor@0
|
312 Для того чтобы файловая система, созданная на новом RAID-массиве автоматически монтировалась
|
igor@0
|
313 при загрузке, добавим соотвествующую запись в файл \texttt{/etc/fstab}
|
igor@0
|
314 хранящий список автоматически монтируемых при загрузке файловых систем.
|
igor@0
|
315 \begin{verbatim}
|
igor@0
|
316 /dev/md0 /raid ext3 defaults 1 2
|
igor@0
|
317 \end{verbatim}
|
igor@0
|
318
|
igor@0
|
319 Если мы объединяли в RAID-массив разделы, которые использовались раньше,
|
igor@0
|
320 нужно отключить их монтирование: удалить или закомментировать соответствующие строки
|
igor@0
|
321 в файле \texttt{/etc/fstab}.
|
igor@0
|
322 Закомментировать строку можно символом \texttt{\#}.
|
igor@0
|
323 \begin{verbatim}
|
igor@0
|
324 #/dev/hde1 /data1 ext3 defaults 1 2
|
igor@0
|
325 #/dev/hdf2 /data2 ext3 defaults 1 2
|
igor@0
|
326 #/dev/hdg1 /data3 ext3 defaults 1 2
|
igor@0
|
327 \end{verbatim}
|
igor@0
|
328
|
igor@0
|
329 \subsubsection{Монтирование файловой системы нового RAID-массива}
|
igor@0
|
330 Для того чтобы получить доступ к файловой системе, расположенной на новом RAID-массиве,
|
igor@0
|
331 её нужно смонтировать. Монтирование выполняется с помощью команды \textbf{mount}.
|
igor@0
|
332
|
igor@0
|
333 Если новая файловая система добавлена в файл \texttt{/etc/fstab},
|
igor@0
|
334 можно смонтировать её командой \textbf{mount} \texttt{-a}
|
igor@0
|
335 (смонтируются все файловые системы, которые должны монтироваться при загрузке, но сейчас не смонтированы).
|
igor@0
|
336 \begin{verbatim}
|
igor@0
|
337 %# mount -a
|
igor@0
|
338 \end{verbatim}
|
igor@0
|
339 Можно смонтировать только нужный нам раздел (при условии, что он указан в \texttt{/etc/fstsb}).
|
igor@0
|
340 \begin{verbatim}
|
igor@0
|
341 %# mount /raid
|
igor@0
|
342 \end{verbatim}
|
igor@0
|
343 Если раздел в \texttt{/etc/fstab} не указан, то при монтировании мы должны задавать как минимум два параметра:
|
igor@0
|
344 точка монтирования и монтируемое устройство:
|
igor@0
|
345 \begin{verbatim}
|
igor@0
|
346 %# mount /dev/md0 /raid
|
igor@0
|
347 \end{verbatim}
|
igor@0
|
348
|
igor@0
|
349 \subsubsection{Проверка состояния RAID-массива}
|
igor@0
|
350 Информация о состоянии RAID-массива находится в файле \texttt{/proc/mdstat}.
|
igor@0
|
351 \begin{verbatim}
|
igor@0
|
352 %# raidstart /dev/md0
|
igor@0
|
353 %# cat /proc/mdstat
|
igor@0
|
354 Personalities : [raid5]
|
igor@0
|
355 read_ahead 1024 sectors
|
igor@0
|
356 md0 : active raid5 hdg1[2] hde1[1] hdf2[0]
|
igor@0
|
357 4120448 blocks level 5, 32k chunk, algorithm 3 [3/3] [UUU]
|
igor@0
|
358
|
igor@0
|
359 unused devices: <none>
|
igor@0
|
360 \end{verbatim}
|
igor@0
|
361
|
igor@0
|
362 \subsection{Дальнейшая работа с массивом}
|
igor@0
|
363 \subsubsection{Пометка диска как сбойного}
|
igor@0
|
364 Диск в массиве можно условно сделать сбойным, ключ \verb|--fail| (\texttt{-f}):
|
igor@0
|
365 \begin{verbatim}
|
igor@0
|
366 %# mdadm /dev/md0 --fail /dev/hde1
|
igor@0
|
367 %# mdadm /dev/md0 -f /dev/hde1
|
igor@0
|
368 \end{verbatim}
|
igor@0
|
369
|
igor@0
|
370 \subsubsection{Удаление сбойного диска}
|
igor@0
|
371 Сбойный диск можно удалить с помощью ключа \verb|{--remove| (\texttt{-r}):
|
igor@0
|
372 \begin{verbatim}
|
igor@0
|
373 %# mdadm /dev/md0 --remove /dev/hde1
|
igor@0
|
374 %# mdadm /dev/md0 -r /dev/hde1
|
igor@0
|
375 \end{verbatim}
|
igor@0
|
376
|
igor@0
|
377 \subsubsection{Добавление нового диска}
|
igor@0
|
378 Добавить новый диск в массив можно с помощью ключей \verb|--add| (\texttt{-a})
|
igor@0
|
379 и \verb|--re-add|:
|
igor@0
|
380 \begin{verbatim}
|
igor@0
|
381 %# mdadm /dev/md0 --add /dev/hde1
|
igor@0
|
382 %# mdadm /dev/md0 -a /dev/hde1
|
igor@0
|
383 \end{verbatim}
|
igor@0
|
384
|
igor@0
|
385 \subsubsection{Сборка существующего массива}
|
igor@0
|
386 Собрать существующий массив можно с помощью \textbf{mdadm} \texttt{--assemble}.
|
igor@0
|
387 Как дополнительный аргумент указывается,
|
igor@0
|
388 нужно ли выполнять сканирование устройств, и если нет, то
|
igor@0
|
389 какие устройства нужно собирать.
|
igor@0
|
390 \begin{verbatim}
|
igor@0
|
391 %# mdadm --assemble /dev/md0 /dev/hde1 /dev/hdf2 /dev/hdg1
|
igor@0
|
392 %# mdadm --assemble --scan
|
igor@0
|
393 \end{verbatim}
|
igor@0
|
394
|
igor@0
|
395 \subsubsection{Расширение массива}
|
igor@0
|
396 Расширить массив можно с помощью ключа \texttt{--grow} (\texttt{-G}).
|
igor@0
|
397 Сначала добавляется диск, а потом массив расширяется:
|
igor@0
|
398 \begin{verbatim}
|
igor@0
|
399 %# mdadm /dev/md0 --add /dev/hdh2
|
igor@0
|
400 \end{verbatim}
|
igor@0
|
401
|
igor@0
|
402 Проверяем, что диск (раздел) добавился:
|
igor@0
|
403
|
igor@0
|
404 \begin{verbatim}
|
igor@0
|
405 %# mdadm --detail /dev/hdh2
|
igor@0
|
406 %# cat /proc/mdstat
|
igor@0
|
407 \end{verbatim}
|
igor@0
|
408
|
igor@0
|
409 Если раздел действительно добавился,
|
igor@0
|
410 мы можем расширить массив:
|
igor@0
|
411
|
igor@0
|
412 \begin{verbatim}
|
igor@0
|
413 %# mdadm -G /dev/md0 --raid-devices=4
|
igor@0
|
414 \end{verbatim}
|
igor@0
|
415
|
igor@0
|
416 Убедитесь, что массив расширился:
|
igor@0
|
417
|
igor@0
|
418 \begin{verbatim}
|
igor@0
|
419 %# cat /proc/mdstat
|
igor@0
|
420 \end{verbatim}
|
igor@0
|
421
|
igor@0
|
422 Нужно обновить обновить конфигурационный файл с учётом сделанных
|
igor@0
|
423 изменений:
|
igor@0
|
424
|
igor@0
|
425 \begin{verbatim}
|
igor@0
|
426 %# mdadm --detail --scan >> /etc/mdadm/mdadm.conf
|
igor@0
|
427 %# vi /etc/mdadm/mdadm.conf
|
igor@0
|
428 \end{verbatim}
|
igor@0
|
429
|
igor@0
|
430 \subsection{Дополнительная информация}
|
igor@0
|
431 \begin{itemize}
|
igor@0
|
432 \item \htmladdnormallinkfoot{Программный RAID в Linux}{http://xgu.ru/wiki/raid} (рус.)
|
igor@0
|
433 \item \htmladdnormallinkfoot{man mdadm}{http://linux.die.net/man/8/mdadm} (англ.)
|
igor@0
|
434 \item \htmladdnormallinkfoot{man mdadm.conf}{http://linux.die.net/man/5/mdadm.conf} (англ.)
|
igor@0
|
435 \item \htmladdnormallinkfoot{Linux Software RAID}{http://www.linuxhomenetworking.com/wiki/index.php/Quick\_HOWTO\_:\_Ch26\_:\_Linux\_Software\_RAID} (англ.)
|
igor@0
|
436 \item \htmladdnormallinkfoot{HOWTO Gentoo Install on Software RAID}{http://gentoo-wiki.com/HOWTO\_Gentoo\_Install\_on\_Software\_RAID} (англ.)
|
igor@0
|
437 \item \htmladdnormallinkfoot{HOWTO Migrate To RAID}{http://gentoo-wiki.com/HOWTO\_Migrate\_To\_RAID} (англ.)
|
igor@0
|
438 \item \htmladdnormallinkfoot{Remote Conversion to Linux Software RAID-1 for Crazy Sysadmins HOWTO}{http://togami.com/~warren/guides/remoteraidcrazies/} (англ.)
|
igor@0
|
439 \item \htmladdnormallinkfoot{Migrating To RAID1 Mirror on Sarge}{http://www.debian-administration.org/articles/238} (англ.)
|
igor@0
|
440 \end{itemize}
|
igor@0
|
441
|
igor@0
|
442 Производительность программных RAID-массивов:
|
igor@0
|
443 \begin{itemize}
|
igor@0
|
444 \item Adventures With Linux RAID: \htmladdnormallinkfoot{Part 1}{http://opennfo.wordpress.com/2007/09/02/adventures-with-linux-raid-part-1/}, \htmladdnormallinkfoot{Part 2}{http://opennfo.wordpress.com/2007/09/08/adventures-with-linux-raid-part-2/} (англ.)
|
igor@0
|
445 \end{itemize}
|
igor@0
|
446
|