LINUX.ORG.RU
решено ФорумAdmin

Установка софтового raid на работающую систему

 , ,


0

1

Доброго времени

Камрады прошу помочь с настройкой софтового raid 1 на работающей системе Ubuntu Server 16

делаю так:

устанавливаю пакет mdadm

apt-get install initramfs-tools mdadm

после установки пакета загружаю необходимые модули

modprobe linear
modprobe multipath
modprobe raid1

потом клонирую диск /dev/sda

sfdisk -d /dev/sda | sfdisk --force /dev/sdb

далее на склонированном диске /dev/sdb меняю тип разделов

fdisk /dev/sdb

Welcome to fdisk (util-linux 2.27.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Command (m for help): t
Partition number (1,2,5,6, default 6):1
Partition type (type L to list all types): fd

Changed type of partition 'Linux' to 'Linux raid autodetect'.

Command (m for help): t
Partition number (1,2,5,6, default 6):5
Partition type (type L to list all types): fd

Changed type of partition 'Linux' to 'Linux raid autodetect'.

Command (m for help): t
Partition number (1,2,5,6, default 6):6
Partition type (type L to list all types): fd

Changed type of partition 'Linux' to 'Linux raid autodetect'.

Command (m for help):w

создаю массив RAID1

mdadm --create /dev/md0 --level=1 --raid-disks=2 missing /dev/sdb1     # /boot
mdadm --create /dev/md1 --level=1 --raid-disks=2 missing /dev/sdb5     # /swap
mdadm --create /dev/md2 --level=1 --raid-disks=2 missing /dev/sdb6     # /

потом файловая система

mkfs.ext2 /dev/md0     # /boot
mkswap /dev/md1        # /swap
mkfs.ext4 /dev/md2     # /

копирую

cp /etc/mdadm/mdadm.conf /etc/mdadm/mdadm.conf_orig
mdadm --examine --scan >> /etc/mdadm/mdadm.conf

в файле /etc/fstab прописываю UUID /dev/md0 /dev/md1 /dev/md2

в Ubuntu это выглядит вот так

UUID=cc6b3225-40d3-48eb-b85d-2fcdc9ab830e /      ext4    errors=remount-ro 0       1
UUID=db6d1517-bb48-48d7-8a62-c70534ff6ce8 /boot  ext2    defaults          0       2
UUID=32080587-8ab5-41ed-ad18-40ca392e953e none   swap    sw                0       0

а вот теперь начинается самое интересное

копирую

cp /etc/grub.d/40_custom /etc/grub.d/09_swraid1_setup

и редактирую vim /etc/grub.d/09_swraid1_setup

#!/bin/sh                                                                                                                                                     
exec tail -n +3 $0                                                                                                                                            
# This file provides an easy way to add custom menu entries.  Simply type the                                                                                 
# menu entries you want to add after this comment.  Be careful not to change                                                                                  
# the 'exec tail' line above.                                                                                                                                 
menuentry 'Ubuntu RAID' --class ubuntu --class gnu-linux --class gnu --class os {                                                                             
        recordfail                                                                                                                                            
        insmod raid                                                                                                                                           
        insmod mdraid                                                                                                                                         
        insmod ext2                                                                                                                                           
        set root='md0'                                                                                                                                        
        linux   /vmlinuz-4.4.0-104-generic root=UUID=fb2d9b8e-345f-4f5e-984a-14077adfed9c ro                                                                  
        initrd  /initrd.img-4.4.0-104-generic                                                                                                                 
}

затем обновляю

update-grub
update-initramfs -u 

создаю и монтирую каталоги

mkdir /mnt/md0           #/boot
mkdir /mnt/md2           #/
mount /dev/md0 /mnt/md0
mount /dev/md2 /mnt/md2

копирую содержимое

cp -dpRx / /mnt/md2
cd /boot
cp -dpRx . /mnt/md0

ставлю загрузчик

grub-install /dev/sda
grub-install /dev/sdb

перезагружаю и получаю ошибку

error: file `/grub/i386-pc/raid.mod` not found.
error: file `/grub/i386-pc/mdraid.mod` not found.
error: disk `md0` not found

но насколько мне известно этих файлов там быть и не должно, подскажите пожалуйста какое есть рабочее решение как перенести корень на рейд массив?

ИМХО, я могу быть и неправым со своими пять копеек, но почему бы не замутить LVM поверх software raid ?

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

Насколько я вас правильно понял вы предлагаете на рейд массиве поднять lvm?

Идея хорошая, но в том то и дело, что у меня пока рейд собрать не получается

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

Как-то всё сложно...

Ставишь на хост mdadm. Создаёшь нужную разметку на диске, копируешь данные. Делаешь chroot в диск. Ставишь внутри chroot груб. Всё остальное сделается само.

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

Лучше спрашивать вопросы. Алгоритм написали уже. Разве что «Делаешь chroot на диск» я бы подправил на «Делаешь chroot в однокрылый массив»

Deleted ()

Ты скопировал на рейд старый /boot и только потом сделал grub-install а надо наоборот. И initram стоит делать после того, как система знает, что ей предстоит грузиться с рейда.

Алсо плюсую lvm поверх единственного dm.

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