[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