пятница, 8 июня 2012 г.

Ubuntu 12.04. Переходим на RAID1

Имеется рабочая система на Ubuntu 12.04 desktop. Попытаемся присоединить к ней второй диск и перевести систему на массив RAID1 - то бишь зазеркалить.
Во первых необходимо доустановить пакет mdadm:

sudo apt-get install mdadm

Затем с помощью fdisk создать на втором винте один раздел на весь объем .
И создать raid массив , включив в него наш диск:

mdadm --create /dev/md0 --level=1 --raid-devices=2 misinng /dev/sdb1

посмотрим схему разбиения  первого диска :

fdisk -l /dev/sda
и создадим такую же схему на нашем raid массиве:
fdisk /dev/md0

на первом жестком диске у меня было два раздела sda1(/) и sda2(swap). Соответственно на реид диске я создал 2 раздела : md0p1(/) и md0p2(swap) и отформатируем их:
mkfs.ext4 /dev/md0p1
mkswap /dev/md0p2

примонтируем раздел md0p1 например в каталог /mnt
mount /dev/md0p1 /mnt
 и скопируем содержимое корневой файловой системы на новый раздел:
rsync -axu /  /mnt

теперь примонтируем специальные каталоги в новую корневую систему:
mount --bind /dev /mnt/bind
mount --bind /proc /mnt/proc
mount --bind /sys /mnt/sys
mount --bind /run /mnt/run

сменим окружение root на новую корневую систему:
chroot /mnt

нам необходимо исправить значение uuid для корневой файловой системы и раздела подкачки:
ls -l /dev/disk/by-uuid | grep md >> /etc/fstab
nano /etc/fstab

Теперь нужно обновить конфиг grub и проинсталлировать его на /dev/sdb:
update-grub
grub-install /dev/sdb

Добавим информацию о нашем raid массиве в конфиг mdadm:
mdadm --examine --scan >> /etc/mdadm/mdadm.conf

и обновим конфигурацию mdadm:
dpkg-reconfigure mdadm

и пересоберем initrd:
update-initramfs -u

Напомню, что это мы выполняем в окружении chroot , о чем говорит слеш перед решеткой в командной строке.

Теперь можем выйти из окружения chroot и в основной системе обновить загрузчик grub чтобы при загрузке можно было выбрать вариант загрузки с raid массива:
exit
update-grub

перезагружаемся и выбираем загрузку с раздела md0p1. Увидим, что ругнется на  некорректный массив raid.
 Проверить , что мы загрузились в новый корневой раздел, можно дав команду mount, которая покажет размещение корневого раздела на /dev/md0p1

состояние raid  массива можно смотреть cat /proc/mdstat
Теперь удалим все разделы на первом диске sda, создадим не нем один раздел sda1 на весь объем диска и подключим его в наш raid массив:
fdisk /dev/sda
.
.
.
mdadm --manage /dev/md0 --add /dev/sda1
После этой команды начнет восстанавливаться raid массив. Проконтролировать это можно :
watch -d -n 1 cat /proc/mdstat

По окончании процесса восстановления массива, необходимо прописать загрузчик  на диск sda :
grub-install /dev/sda


Перезагружаемся.Теперь у нас система работает на raid массиве из двух дисков. Это "инструкция" написана для случая , когда два диска одинакового объема, если диски по объемам различаются, тогда надо будет корректировать размер создаваемых разделов sda1 sdb1 перед включением их в raid массив.
В случае выхода из строя одного из дисков в массиве, можно подключить новый, создать на нем раздел и включить его в наш raid массив.

Если при установке пакета mdadm не отказались от получения почтовых сообщений о работе mdadm , не забывайте просматривать почту, в случае проблем с массивом придет сообщение.

Иногда не получается загрузиться со второго диска(при разрушенном первом) - после появления меню grub идет перезагрузка. Чтобы такого не было необходимо раскомментировать строку  GRUB_TERMINAL=console
в файле /etc/default/grub, и пересобрать груб.




1 комментарий: