Настройка программного RAID1 в работающей операционной системе Debian Squeeze Linux.

RAID1 — зеркалирование (дублирование данных) такой рейд используется чаще всего на серверах.
Mdadm — утилита для управления программными RAID массивами в Linux.

Что имеем и задачи:

Работающую машинку под управлением ос Debian squeeze, система стоит на 1 диске размером 320G без какого либо рейда и вдруг мы захотели поставить еще 1 такой же по объему диск и создать зеркальный raid1 при условии что все файлы будут сохранены и перенесены в массив с минимальным даунтамом. Можно конечно установить ос на новый диск а потом все скопировать в новую систему после чего форматнуть старый диск и добавить его в массив, но ведь мы хотим с минимальным даунтамом поэтому выберем путь посложнее, все будем делать через рабочую систему в режиме онлайн.

Нужно создать 3 массива уровня RAID1 на новом диске и перенести рабочую систему на массивы и установить загрузчик что бы ОС грузилась с нового диска тоесть уже с рейд массива.

Ставим необходимые пакеты если их нету

Смотрим как разбит диск

/dev/sda1 — /boot
/dev/sda2 — swap
/dev/sda3 — /

Хотим получить:

/dev/md0 (/dev/sda1 и /dev/sdb1) — /boot
/dev/md1 (/dev/sda2 и /dev/sdb2) — swap
/dev/md2 (/dev/sda3 и /dev/sdb3) — /

Новый диск еще не размечен, разметим его (тип указываем raid это FD)

проверяем

Device Boot Start End Blocks Id System
/dev/sdb1 * 1 122 979933+ fd Linux raid autodetect
/dev/sdb2 123 608 3903795 fd Linux raid autodetect
/dev/sdb3 609 38913 307684912+ fd Linux raid autodetect

что бы убедится что не осталось никаких следов от возможных предыдущих установок RAID

проверяем доступна ли работа с массивами (если нет подгрузите модули или reboot)

если все ок, то создаем три массива уровня RAID1

мы создали 3 массива в которых один из дисков missing, на это место мы потом подсуним диск sda с которого переносим существующую систему.

формотируем, монтируем и копируем все файлы

и отредактируем конфигурационный файл /etc/mdadm/mdadm.conf

вот такой вид он принял, тоесть дописались uuid массивов.

смонтировали будущий корень / в /mnt и /boot в /mnt/boot, теперь нужно скопировать работающию систему в массивы на новом жестком диске с будущей системой.

теперь самые важные моменты, нужно отредактировать /mnt/etc/fstab который в новом массиве что бы система при загрузке смогла найти массивы/разделы и смогла примонтировать их, сейчас там прописаны разделы от текущего диска существующей системы.

было

стало

логика думаю ясна (заметьте мы изменили так же фс в строке с /dev/md0 на ext2)
завершающий этап — нужно установить grub на новый диск и обновить конфиг grub /boot/grub/grub.cfg

Важно! нужно раскоментировать

GRUB_TERMINAL=console

в /etc/default/grub (если вы вышли из chroot /mnt то /mnt/etc/default/grub)

иначе вы не загрузитесь с массива это позволит отключить графический терминал, с ним проблемы
потом снова сделайте (вы должны быть в chroot /mnt) для пересоздания конфигурационного файла grub

проверяем

на всякий… проверим uuid

md0 прописан на месте, массив с файлами для загрузки.
root=UUID=dd2bff48-6b57-4765-a967-9676bf71047e соответствует /md2 тоесть корень.

Уходим на ребут и меняем порядок загрузки дисков, тоесть грузимся с нового диска с которым работали.
Если все сделали правильно то ваша система загрузится успешно с нового диска и вам только останется переразбить 1 диск и добавить его в рейд массив.

копируем таблицу разделов с sdb на sda

проверяем

добавляем новые разделы в массивы

проверяем

Удачной установки raid1 в работающей системе  ^_^

 

  9 комментариев в “Установка raid1 на работающую систему Debian Squeeze”

  1. Спасибо мил-человек. Делал в точности по инструкции и (почти) всё работало именно так, как описано в статье. Вместо ‘grub-install /dev/sdb’ пришлось сделать dpkg-reconfigure grub-pc, т.к. на команду, описанную в статье граб ругался, говорил, что не может найти /dev/md0. В остальном полный порядок.

     
    • Для того что бы не сталкиваться с этой проблемой флаг «boot» надо выставлять и у диска /dev/sdb при его разметке. После чего он копируется на диска /dev/sdc и /dev/sdd при копировании структуры диска /dev/sdb

       
  2. Добрый день!
    В данной статье /boot на отдельном разделе. Возможно ли будет таким образом установить raid, если /boot находиться в корневом разделе?

    user@debian:~$ df
    Filesystem 1K-blocks Used Available Use% Mounted on
    /dev/sda1 4804736 598184 3962484 14% /
    tmpfs 2026020 0 2026020 0% /lib/init/rw
    udev 2021188 136 2021052 1% /dev
    tmpfs 2026020 0 2026020 0% /dev/shm
    /dev/sda6 4804736 437960 4122708 10% /home
    /dev/sda7 4804736 698464 3862204 16% /usr
    /dev/sda5 4804736 961184 3599484 22% /var
    /dev/sda9 457651448 41784208 392619832 10% /vol1

     
  3. делаю точь в точь по инструкции но при смене загрузки на sdb грузится только «инитфсрам» не видит типа md2 голову сломал, не могу найти где поправить… кто может помогите плз)
    P.S. контакт для связи ася 240551076 или по майлу

     
    • После того, как сделали chroot /mnt нужно обязательно сделать update-initramfs -u. Тоже долго боролся с этой проблемой)

       
  4. Большое спасибо за статью!o:)

     
  5. В конце еще нужно установить grub на sda «grub-install /dev/sda»

     

 Оставить комментарий

(обязательно)

(обязательно)

   
Copyright © 2012. Linuxguru.ru