LINUX.ORG.RU

Fedora9 boot-raid1-lvm


0

0

Переношу Fedora9 с Adaptec 1220SA на Linux Software RAID1. (Не ожидали, что Adaptec за 100$ подсунет дешевый программный контроллер, который бесплатно ставят на матплаты.)

Переткнул харды на бортовые SATA, собрал RAID1 /dev/md1 из /dev/sda1 и /dev/sdb1 (/boot) Вылезли ошибки файловой системы (почему-то чуть уменьшился размер партиции), что было поправлено при помощи resize2fs и e2fsck. Далее, чтобы стартовые скрипты не сходили с ума на монтировании /boot, в fstab пришлось поправить UUID=##### /boot … на /dev/md1 /boot… – и оно заработало.

Далее решил воспользоваться Ubuntu LiveDVD, поскольку оказалось, что сделать /dev/md2 из /dev/sda2 и /dev/sdb2 (где LVM со всей системой) на рабочей системе более проблематично.

RAID1 /dev/md2 создался, однако загрузка затыкается на невозможность найти LVM группу. Загрузился с LiveDVD, сделал modprobe dm-crypt (без него LVM не хотел работать) подцепил /dev/md2, смонтировал /dev/VolGroup01/LogVol01/ слава богу все на месте, однако не работает…

Пересоздал initrd, но оно не заработало из-за кривых рук. Во первых оказалось, что вместо mkinitrd в ubuntu используется mkinitramfs. Во вторых, похоже mkinitramfs так и не понял где брать модули для ядра Fedora. (обычно я делал симлинк в /lib/modules/ но на DVD его не получается создать)

Плеез подскажите: 1. Как победить initrd. 2. Что правильно писать fstab. Когда /dev/md1 /boot… нормально грузиться с 2-я хардами, но не грузится с одним. Когда UUID=##### /boot … грузится с одним, но не грузится с 2-мя.


По первому пункту пологаю надо сделать, что-то типа mkinitrd --with=raid1 /boot/initrd-`uname -r` `uname -r` -f но как это сделать, если грузишься с UBNTU, где mkinitramfs и как ей объяснить где брать федоровы модули ядра?!

Saalan
() автор топика
Ответ на: комментарий от Saalan

чрутнутся, чтобы раздел с федоркой стал корневым?

annoynimous ★★★★★
()
Ответ на: комментарий от dimon555

grub грузит initrd, initrd грузит ядро. Пробоема на участке initrd-ядро, похоже в initrd нету модуля raid1 вопрос в том, как собрать initrd загрузившись с LiveDVD причем в ubuntu вместо mkinitrd - mkinitramfs

Saalan
() автор топика
Ответ на: комментарий от Saalan

в ручную пересобрал initrd прописав в нем подгрузку raid1.ko инициализацию RAID-а и даже команды mdadm --detail /dev/md1 засунул, чтобы убедится что работает. RAID инициализируется, однако LVM не находиться... Что ему не хватает, что не так?!

Saalan
() автор топика

> Переношу Fedora9 с Adaptec 1220SA на Linux Software RAID1. (Не ожидали, что Adaptec за 100$ подсунет дешевый программный контроллер, который бесплатно ставят на матплаты.)

Надо греповать по мануалке хотябельного контроллера. Если там присутствует слово hostraid - сразу в топку.

Deleted
()
Ответ на: комментарий от Deleted

Да про Adaptec 1220SA можно забыть, после того как поняли, что он софтварный - он полетел в пыльный угол. Винты переключили на бортовые SATA и после небольшого шаманства система грузилась.

Задача собрать RAID1 (зеркало) системы на ядре Linux. C разделом /boot прокатило (после перезагрузки он был смонтирован как /dev/md1 и все работало)

А вот с /dev/md2 все оказалось сложнее... На данный момент на этапе работы initrd, raid поднимается, но LVM упорно не хочет. (с LVM все впорядке, через LiveDVD я его цепляю - там все на месте)

Вопорос чего не хватает в initrd как продигностировать, что ему не нравится.

Saalan
() автор топика

Вопрос на засыпку - зачем делать RAID1 если LVM сам умеет зеркалить, при этом не имеет проблем с ресайзом зеркала ?

anonymous
()
Ответ на: комментарий от anonymous

LVM - умеет зеркалить?!

Читал подобные утверждения в анологичных топиках. На просьбу указать, где это написано (у лучше FAQ) ответов небыло... Лично сам перелопатил мануалы, упоминается все тот-же RAID1+LVM

Плеез если LVM умеет зеркало, укажите где об этом написано (какая команда lvm этим занимается?)

Saalan
() автор топика
Ответ на: комментарий от Saalan

да, он умеет зеркалить.
lvcreate - если создавать новый раздел, но можно на лету любой раздел сделать зеркалящимся с помощью lvconvert. Ключ -mX, где X кол-во зеркал. По умолчанию нужно X+1 физических разделов (один под лог, 4МБ минимум), либо указать что лог будет в памяти с помощью --core-log, но если в памяти то при каждой перезагрузке будет пересинхронизация.
Ключ -m0 убирает зеркало и делает раздел линейным.

Пример из жизни:
# pvs
PV VG Fmt Attr PSize PFree
/dev/sda1 storage lvm2 a- 465.70G 0
/dev/sdb1 storage lvm2 a- 922.20G 513.43G
/dev/sdb2 storage lvm2 a- 9.31G 9.31G

# lvs
LV VG Attr LSize Origin Snap% Move Log Copy%
data storage mwi-ao 100.00G data_mlog 100.00
media storage -wi-ao 658.46G
u606 storage -wi-a- 8.00G
u804 storage -wi-ao 8.00G

Раздел data был сделан зеркальным с помощью комманды:
# lvconvert storage/data -m1 /dev/sda1 /dev/sdb1 /dev/sdb2
/dev/sda1 - основная копия
/dev/sdb1 - дополнительная копия
/dev/sdb2 - лог

Возможно придется сместить раздел, так чтобы он лежал на одном диске если вруг размазался с помощью pvmove и опции -n. А может и не придется, точно не скажу.

anonymous
()
Ответ на: комментарий от Saalan

Да, еще немного информации - md и lvm используют один и тот-же device mapper. Вроде все ничего, но он не поддерживает важную функцию - barriers. Грубо говоря система думает что данные на диске и транзакция закончена, а они только в кеше винта. Свет пропадает и хана.
Есть несколько решений:
1. ставить бесперебойник и настраивать чтобы корректно отключалась система;
2. отключить write cache на дисках и тормозить все по взрослому;
3. использовать менеджер разделов, поддерживающий barriers, например ZFS (придется валить с GNU/Linux);
4. качественный аппаратный рейд контроллер.

anonymous
()
Ответ на: комментарий от anonymous

Спасибо информацию почитаю.

Однако всетаки запустил RAID+LVM. В menu.lst выключил "тихий режим" и получил лог загрузки initrd с причиной: Module raid1 not found (проглядел mdadm --detail оказывается писал что-то с raid все ок, но он не активен)

Я не знаю как сделать depmod -a для не активного initrd-шного ядра. Поэтому просто дописал описание модуля raid1.ko в /lib/modules/2.6.26..../modules.dep пересобрал initrd и все завелось...

Saalan
() автор топика
Ответ на: комментарий от Saalan

> По первому пункту пологаю надо сделать, что-то типа mkinitrd --with=raid1 /boot/initrd-`uname -r` `uname -r` -f но как это сделать, если грузишься с UBNTU, где mkinitramfs и как ей объяснить где брать федоровы модули ядра?!

Смонтируй федорин корень, сделай mount -t sysfs в его /sys, chroot, можно mkinitrd вызывать.

mv ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.