xg-scale
annotate raid.tex @ 2:ae9c8cec3315
Иправлены небольшие опечатки
и ошибки переноса <pre>-блоков,
которые возникли при автоматическом
создании файла из wiki.
и ошибки переноса <pre>-блоков,
которые возникли при автоматическом
создании файла из wiki.
author | Igor Chubin <igor@chub.in> |
---|---|
date | Tue Jul 01 16:49:38 2008 +0300 (2008-07-01) |
parents | |
children |
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 |