[MLUG] Как я ставил себе RAID1

Renat Sabitov r_sabitov на mail.ru
Пт Май 6 11:55:55 MSD 2005


Поставил себе RAID1. Не без приключений :)

У меня стоит LVM2, поэтому на диске 2 раздела - sda1 (под /boot) и sda2 
(под физический том lvm). Разбил второй диск точно так же, как и первый, 
поставил на разделе sdb2 тип fd - "Linux raid autodetect".

Создал с помощью mdadm массив raid1 из двух дисков в разделе sdb2. 
Вторым диском поставил missing. Назвал его /dev/md1

Далее с помощью pvcreate создал физический том на устройстве /dev/md1 и 
включил его в мою группу томов root_vg с помощью vgextend.

Теперь самое интересное. С помощью команды pvmove начал переносить с 
первого физического тома /dev/sda2 на второй /dev/md1 свои логические 
тома, в которых у меня находятся /root, /home, swap и т.д. 14 штук. 
Выяснилось, что не хватает модуля dm_mirror. Этот модуль отвечает за 
зеркалированные dm устройства, которые образуются при использовании 
pvmove. Загрузил. Добавил этот модуль в mkinitrd.conf (чтобы не остаться 
ни с чем при загрузке). Заодно опознался raid.

Первая попытка выполнить pvmove закончилась умиранием системы. Перенос 
не начался даже. Перезагрузившись, выполнил pvmove еще раз. Пошли 
процентики. Потом в модуле dm_mirror произошла ошибка и процентики 
перестали расти. Надо перезагружаться, подумал я :). Попытался. Меня 
ждал облом. При выполнении проверки диска reiserfsck dm_mirror опять 
умирал, унося с собой и reiserfsck. Сначала я думал что все, приехали. 
Как мне теперь восстанавливать lvm с загрузочных дискеток, тем более 
находящийся в процессе переноса? Да и дискеток никаких нет. В итоге я 
догадался что можно с помощью SysRq добиться перехода в Single User. 
pvmove --abort так же замирал из-за ошибок в dm_mirror. После пары часов 
  мучений выяснил, что нужно выкинуть раздел, из-за которого все 
валится, из fstab, после этого перезагрузиться, сделать pvmove --abort и 
снова pvmove /dev/sdb2. После этого снова пошли процентики, но еще пару 
раз возникала ошибка, которую я уже знал как обходить. Единственное что 
меня радует, так это то что ошибка не возникла на /root и /usr разделах 
:) Иначе я не знаю как пришлось бы выкручиваться.

В итоге я сделал еще один raid md0 и перенес /boot раздел, удалили из 
root_vg пустой /dev/sda2, поставил ему тип fd и добавил в md1. Разделы 
синхронизировались. Еще раз сделал mkinitrd, поставил загрузку с md0, 
перезагрузился, добавил /dev/sda1 в md0, попробовал отключать по одному 
диску и загружаться. Все работает. Ничего не потерял.

Резюме - если делаете pvmove на разделах /root и /usr, желательно иметь 
загрузочный диск с утилитами lvm2. Иначе неприятности очень даже 
возможны. Вообще lvm - это просто супер технология. Я в восторге.

Есть у меня небольшой вопросик. Как при загрузке отменить проверку 
файловой системы?



-- 
Renat Sabitov   e-mail: r_sabitov на mail.ru
                    jid: srr на jabber.ru



Подробная информация о списке рассылки MLUG