[root@srv2 ~]# cat /etc/redhat-release
CentOS release 5 (Final)
[root@srv2 ~]# uname -r
2.6.18-53.el5
Просмотрим таблицу разделов:
[root@srv2 ~]# fdisk -l
Диск /dev/hda: 80.0 ГБ, 80026361856 байт
255 heads, 63 sectors/track, 9729 cylinders
Единицы = цилиндры по 16065 * 512 = 8225280 байт
Устр-во Загр Начало Конец Блоки Id Система
/dev/hda1 * 1 9663 77618016 83 Linux
/dev/hda2 9664 9728 522112+ 82 Linux своп / Solaris
Диск /dev/hdb: 80.0 ГБ, 80026361856 байт
255 heads, 63 sectors/track, 9729 cylinders
Единицы = цилиндры по 16065 * 512 = 8225280 байт
Устр-во Загр Начало Конец Блоки Id Система
![](http://4.bp.blogspot.com/_OjMKppzQWwA/SI2QAdbDcfI/AAAAAAAAAT8/JK4RRBYLFOs/s320/001.png)
По полученным данным видно, что установлены два идентичных жестких диска объемом 80 Гб. На первом диске создано 2 раздела: корневая файловая система и SWAP-раздел. Второй жесткий диск абсолютно пуст. Диски определены системой как hda и hdb.
Первым делом нам необходимо создать таблицу разделов на втором диске, идентичной первому.
[root@srv2 ~]# sfdisk -d /dev/hda | sfdisk /dev/hdb
Опция -d делает дамп таблицы разделов.
![](http://2.bp.blogspot.com/_OjMKppzQWwA/SI2QAnyAxQI/AAAAAAAAAUE/zaxfEy_kcj0/s320/002.png)
Если Вы получите сообщение об ошибке используйте опцию --force.
Посмотрим теперь, что представляют диски, установленные в системе:
[root@srv2 ~]# fdisk -l
Диск /dev/hda: 80.0 ГБ, 80026361856 байт
255 heads, 63 sectors/track, 9729 cylinders
Единицы = цилиндры по 16065 * 512 = 8225280 байт
Устр-во Загр Начало Конец Блоки Id Система
/dev/hda1 * 1 9663 77618016 83 Linux
/dev/hda2 9664 9728 522112+ 82 Linux своп / Solaris
Диск /dev/hdb: 80.0 ГБ, 80026361856 байт
255 heads, 63 sectors/track, 9729 cylinders
Единицы = цилиндры по 16065 * 512 = 8225280 байт
Устр-во Загр Начало Конец Блоки Id Система
/dev/hdb1 * 1 9663 77618016 83 Linux
/dev/hdb2 9664 9728 522112+ 82 Linux своп / Solaris
![](http://1.bp.blogspot.com/_OjMKppzQWwA/SI2QAxx6ACI/AAAAAAAAAUM/feNjblkAodw/s320/003.png)
Видно, что таблица разделов на втором диске полностью соответствует таблице разделов на первом диске.
Теперь изменим тип таблицы разделов на втором диске на Linux raid autodetect:
[root@srv1 ~]# fdisk /dev/hdb
![](http://3.bp.blogspot.com/_OjMKppzQWwA/SI2QA01whWI/AAAAAAAAAUU/tqcr1NmnD9A/s320/004.png)
На запрос введем t. Пункт t - это изменение id системы раздела.
Выбираем номер раздела (напомню в нашем случае их 2).
Вводим шестнадцатеричный id код. Т.к. нам нужно Linux raid autodetect, то выбираем fd.
![](http://3.bp.blogspot.com/_OjMKppzQWwA/SI2P60g8oBI/AAAAAAAAATU/jectxaUjLyw/s320/005.png)
То же самое повторяем и для второго раздела:
![](http://1.bp.blogspot.com/_OjMKppzQWwA/SI2P65eSgsI/AAAAAAAAATc/zEW6t36QVJg/s320/006.png)
Теперь записываем таблицу разделов на диск и выходим, выбрав опцию w.
![](http://2.bp.blogspot.com/_OjMKppzQWwA/SI2P7CjGqqI/AAAAAAAAATk/4mms4dRJVRU/s320/007.png)
Теперь загоним разделы нашего второго диска в массивы. Статус RAID намеренно выбран degraded.
[root@srv1 ~]# mdadm --create /dev/md0 --level=1 --raid-disks=2 missing /dev/hdb1
Если все успешно, то получаем сообщение:
mdadm: array /dev/md0 started.
![](http://2.bp.blogspot.com/_OjMKppzQWwA/SI2P7BHiGDI/AAAAAAAAATs/gxtwTB5urgY/s320/008.png)
При попытке повторить то же самое для второго раздела:
[root@srv2 ~]# mdadm --create /dev/md1 --level=1 --raid-disks=2 missing /dev/hdb2
Получаем сообщение об ошибке:
mdadm: error opening /dev/md1: No such file or directory
Мы воспользуемся опцией --auto:
[root@srv2 ~]# mdadm --create /dev/md1 --level=1 --raid-disks=2 missing /dev/hdb2 --auto=yes
И получим сообщение, что операция прошла успешно:
mdadm: array /dev/md1 started.
![](http://1.bp.blogspot.com/_OjMKppzQWwA/SI2P7YwQfFI/AAAAAAAAAT0/lT6036dSLKY/s320/009.png)
Теперь выполним команду cat /proc/mdstat и убедимся, что наш деградировавший рейд работает:
[root@srv2 ~]# cat /proc/mdstat
Personalities : [raid1]
md1 : active raid1 hdb2[1]
522048 blocks [2/1] [_U]
md0 : active raid1 hdb1[1]
77617920 blocks [2/1] [_U]
unused devices:
[root@srv2 ~]#
По статусу _U видим, что с первым диском у нас проблемы, что естественно, ведь его в массиве нет, а вот со вторым все ОК.
![](http://3.bp.blogspot.com/_OjMKppzQWwA/SI2P0k8NgeI/AAAAAAAAASs/VjhvOD5wX9o/s320/010.png)
Теперь создадим файловые системы в наших массивах: ext3 в первом массиве и swap по втором:
[root@srv2 ~]# mkswap /dev/md1
![](http://4.bp.blogspot.com/_OjMKppzQWwA/SI2P0pQWWMI/AAAAAAAAAS0/10Z9OJybUws/s320/011.png)
Теперь создадим директорию для монтирования первого массива и смонтируем его туда:
[root@srv2 ~]# mount /dev/md0 /mnt/md0/
![](http://2.bp.blogspot.com/_OjMKppzQWwA/SI2P01kDdeI/AAAAAAAAAS8/9ldKPj21Igc/s320/012.png)
Создаем файл конфигурации mdadm - /etc/mdadm.conf:
[root@srv2 ~]# nano -w /etc/mdadm.conf
![](http://1.bp.blogspot.com/_OjMKppzQWwA/SI2P03MmZNI/AAAAAAAAATE/3ZZu4JHYiS8/s320/013.png)
И вносим в него такую строку: DEVICE partitions
![](http://2.bp.blogspot.com/_OjMKppzQWwA/SI2P1FGuPLI/AAAAAAAAATM/_JP1gD53XEM/s320/014.png)
Теперь заносим информацию о RAID массивах в файл конфигурации mdadm:
[root@srv2 ~]# mdadm --detail --scan >> /etc/mdadm.conf
![](http://1.bp.blogspot.com/_OjMKppzQWwA/SI2Ps06yyMI/AAAAAAAAASE/tAL8LGxjlTw/s320/015.png)
Теперь правим файл /etc/fstab:
[root@srv2 ~]# nano -w /etc/fstab
![](http://2.bp.blogspot.com/_OjMKppzQWwA/SI2Ps3NbqII/AAAAAAAAASM/btctvS_n3y8/s320/016.png)
И приводим в соответствие с подчеркнутыми значениями:
![](http://1.bp.blogspot.com/_OjMKppzQWwA/SI2PtGcB5_I/AAAAAAAAASU/KPoLQF5Wg3o/s320/017.png)
Теперь необходимо отредактировать конфигурационный файл загрузчика GRUB:
[root@srv2 ~]# nano -w /boot/grub/grub.conf
![](http://4.bp.blogspot.com/_OjMKppzQWwA/SI2PtQRDYWI/AAAAAAAAASc/3PoPAgghAIk/s320/018.png)
Делаем две копии конфигурации текущего раздела.
Значения которые подлежат изменению подчеркнуты красным.
![](http://3.bp.blogspot.com/_OjMKppzQWwA/SI2PtmKxQEI/AAAAAAAAASk/53IjdW2N0lM/s320/019.png)
Создаем новый образ initrd командой:
[root@srv2 ~]# mkinitrd /boot/initrd-`uname -r`-raid1.img `uname -r`
![](http://2.bp.blogspot.com/_OjMKppzQWwA/SI2PkARK3eI/AAAAAAAAARc/tzcE4Vx0b0E/s320/020.png)
Теперь переносим данные нашей системы на массив:
[root@srv1 ~]# cp -dpRx / /mnt/md0/
![](http://1.bp.blogspot.com/_OjMKppzQWwA/SI2PkTCUVqI/AAAAAAAAARk/pzFqNdSEz58/s320/021.png)
Теперь настроим загрузчик на второй диск, введя команду grub:
[root@srv2 ~]# grub
![](http://4.bp.blogspot.com/_OjMKppzQWwA/SI2Pkd7PUyI/AAAAAAAAARs/DNbuTs8aGWM/s320/022.png)
Работать будем с меню GRUB:
grub> setup (hd0)
grub> root (hd1,0)
grub> setup (hd1)
grub> quit
![](http://2.bp.blogspot.com/_OjMKppzQWwA/SI2Pkt1ksYI/AAAAAAAAAR0/CU7bzLx6cIY/s320/023.png)
Теперь перезагружаемся и выбираем для загрузки второй ядро:
![](http://2.bp.blogspot.com/_OjMKppzQWwA/SI2Pk9urboI/AAAAAAAAAR8/jlhXlTZvhso/s320/024.png)
![](http://2.bp.blogspot.com/_OjMKppzQWwA/SI2PZqgsuvI/AAAAAAAAAQ0/TT6ubYNocLA/s320/025.png)
Теперь изменим тип таблицы разделов на перовом диске на Linux raid autodetect:
[root@raid1 ~]# fdisk /dev/hda
![](http://3.bp.blogspot.com/_OjMKppzQWwA/SI2PZk2120I/AAAAAAAAAQ8/5lTTq55loQ4/s320/026.png)
На запрос введем t. Пункт t - это изменение id системы раздела.
Выбираем номер раздела (напомню в нашем случае их 2).
Вводим шестнадцатеричный id код. Т.к. нам нужно Linux raid autodetect, то выбираем fd.
![](http://4.bp.blogspot.com/_OjMKppzQWwA/SI2PZrouKcI/AAAAAAAAARE/3f9cfjrz4QU/s320/027.png)
То же самое повторяем и для второго раздела:
![](http://3.bp.blogspot.com/_OjMKppzQWwA/SI2PZ7CEknI/AAAAAAAAARM/XEvTekCrg6M/s320/028.png)
Теперь записываем таблицу разделов на диск и выходим, выбрав опцию w.
![](http://3.bp.blogspot.com/_OjMKppzQWwA/SI2PZ2uUu7I/AAAAAAAAARU/davpXikYJYI/s320/029.png)
Теперь добавляем первый раздел на первом диске в наш первый массив (извините за тавтологию):
[root@raid1 ~]# mdadm --add /dev/md0 /dev/hda1
![](http://3.bp.blogspot.com/_OjMKppzQWwA/SI2PNfka2wI/AAAAAAAAAQM/byIooK0AeEw/s320/030.png)
И второй:
[root@raid1 ~]# mdadm --add /dev/md1 /dev/hda2
![](http://1.bp.blogspot.com/_OjMKppzQWwA/SI2PNqP3rOI/AAAAAAAAAQU/WU8_WageGXs/s320/031.png)
Сейчас начался ребилдинг массива. Процесс достаточно длительный и зависит от емкости диска. За процессом можно наблюдать:
[root@raid1 ~]# watch cat /proc/mdstat
![](http://3.bp.blogspot.com/_OjMKppzQWwA/SI2PNuRh4hI/AAAAAAAAAQc/4Jmf2GNHkXA/s320/032.png)
Теперь выполним команду cat /proc/mdstat и убедимся, что наш первый диск добавлен в массив:
![](http://1.bp.blogspot.com/_OjMKppzQWwA/SI2PN3yOcTI/AAAAAAAAAQk/ZNNa68jnzEg/s320/033.png)
Следующим шагом нам необходимо изменить файл конфигурации mdadm:
[root@raid1 ~]# nano -w /etc/mdadm.conf
![](http://4.bp.blogspot.com/_OjMKppzQWwA/SI2POI2800I/AAAAAAAAAQs/YvVsKpDEExM/s320/034.png)
Нам необходимо либо удалить, либо закомментировать строки с параметрами дисков:
![](http://4.bp.blogspot.com/_OjMKppzQWwA/SI2PBKMEJYI/AAAAAAAAAPk/1FzvrPsXBHQ/s320/035.png)
Сохраняем изменения и выходим.
Теперь соберем новые данные о массивах:
[root@raid1 ~]# mdadm --detail --scan >> /etc/mdadm.conf
![](http://3.bp.blogspot.com/_OjMKppzQWwA/SI2PBVz6XqI/AAAAAAAAAPs/SolyEfYYDBk/s320/036.png)
И пересоберем образ ядра. Обратите внимание на опцию -f, она позволит перезаписать существующие данные.
[root@raid1 ~]# mkinitrd -f /boot/initrd-`uname -r`-raid1.img `uname -r`
![](http://3.bp.blogspot.com/_OjMKppzQWwA/SI2PBkpJq6I/AAAAAAAAAP0/_0d19zW1Boc/s320/037.png)
Перезагружаемся и выбираем первое ядро при загрузке.
![](http://2.bp.blogspot.com/_OjMKppzQWwA/SI2PBid4vHI/AAAAAAAAAP8/fC0wBH-FgM4/s320/038.png)
![](http://4.bp.blogspot.com/_OjMKppzQWwA/SI2PB-Wh0VI/AAAAAAAAAQE/JCrkw_SHNzw/s320/039.png)
Если система загрузилась, то продолжаем работать.
На этом все.
3 комментария:
ужасно нудно, некоторые операции нелепы и бесполезны. Видно что автор проситал кучу мануалов но так и не разобрался в вопросе :).
1. Делать сервак на 1ом разделе глупо. Скорее желателен /boot чем свап. По верх рейда сделай LVM и разбей его по-человечески.
1а. таблица разделов копируется с помощью dd
2. Рэид-1 на свап? о_О Бред. тогда уж рэид-0. Хотя я бы просто оставил 2 раздела со свапом.
3. Можно безо всяких извращений создать реид на работающем корне, а не форматить/копировать фс ...
4. man mdadm, чтобы не использовать опции --force и --auto
всё намного проще чем написано.
# dd if=/dev/sda of=/dev/sdb bs=1K count=1
# mdadm --create /dev/md0 -l1 -n2 /dev/sda2 missing
# mdadm --manage /dev/md0 --add /deb/sdb2
никаких извращений с /etc/mdadm.conf ненужно.
mkinitrd или update-initramfs происходит при установке мдадм и тоже иногда не нужно.
Mike
это единый мануал - который "дружествен" для обычного пользователя который начал работать в Linuxe, так что не надо ля-ля. Написано доступно и грамотно. А хочешь сделать доброе дело - опимизируй, а на автора гнать нефиг
2. Рэид-1 на свап? о_О Бред. тогда уж рэид-0. Хотя я бы просто оставил 2 раздела со свапом.
Датычо? А вот раскажи мне что будет когда у тебя вылетит один из дисков, на котором был кусок свопа? А вот и правильно - система встанет раком. Никогда не делайте так. swap поверх raid это правильно.
Отправить комментарий