RAID Ubuntu 16.04

Проверяем тип загрузчика BIOS или UEFI:

[ -d /sys/firmware/efi ] && echo UEFI || echo BIOS
fdisk -l|grep EFI
apt-get install -y nano vim wget mdadm gdisk
apt-get remove -y cryptsetup 

swapoff -a

Если на этапе установки mdadm выбрать none, по перед update initramfs нужно сделать dpkg-reconfigure mdadm и выбрать all

echo -e "o \ny \nn \n1 \n \n+4M \nef02\nn \n2 \n \n+500M \nef00 \nn\n3 \n \n+50G \nfd00 \nn\n4 \n \n+4G \n8200 \nn\n5 \n \n \nfd00 \nw\ny\n" | gdisk /dev/sdb
sgdisk -R /dev/sdc /dev/sdb && sgdisk -G /dev/sdc
sgdisk -R /dev/sdd /dev/sdb && sgdisk -G /dev/sdd

Убиваем предыдущие рейды, если такие были:

 mdadm -S /dev/mdx , x-номер устройства

Обнуление всех разделов нового диска. Чтобы быть уверенным, что на /dev/sdb не осталось никаких следов от возможных предыдущих установок RAID-массивов:

mdadm --zero-superblock /dev/sdb[0-9]

Создаем md девайсы. Если дисков больше двух, то нужно добавить ключ --assume-clean для каждого md. Это предотвратит синхронизацию пустых блоков, т.е. сохранит нам время

mdadm -C /dev/md0 -f -l 1 -b internal --bitmap-chunk=131072 -n 4 missing /dev/sd[bcd]2 -e 0.90
yes | mdadm -C /dev/md1 -f -l 1 -b internal --bitmap-chunk=131072 -n 4 missing /dev/sd[bcd]3
yes | mdadm -C /dev/md2 -f -l 10 -b internal --bitmap-chunk=131072 -n 4 missing /dev/sd[bcd]5 --assume-clean
mkfs.ext2  /dev/md0
mkfs.ext4  /dev/md1
mkfs.ext4  /dev/md2
mkswap /dev/sdb4
mkswap /dev/sdc4
mkswap /dev/sdd4
mount /dev/md1 /mnt
mkdir -p /mnt/home  /mnt/boot /mnt/var/www
mount /dev/md0 /mnt/boot
mount /dev/md2 /mnt/home
mkdir /root/trash && cp -dprx /etc /root/trash && cp -dprx /boot /root/trash
cat << EOF > /etc/fstab
#mdadm fstab
#md devices
/dev/md0        /boot        ext2        defaults        1 2
/dev/md1        /            ext4        defaults        1 1
/dev/md2        /home        ext4        defaults        0 0
tmpfs           /dev/shm     tmpfs       defaults        0 0
devpts          /dev/pts     devpts      gid=5,mode=620  0 0
sysfs           /sys         sysfs       defaults        0 0
proc            /proc        proc        defaults        0 0
#swaps
#/dev/sda4        swap        swap        defaults        0 0
#/dev/sdb4        swap        swap        defaults        0 0
#/dev/sdc4        swap        swap        defaults        0 0
#/dev/sdd4        swap        swap        defaults        0 0
EOF
echo "DEVICE /dev/hd*[0-9] /dev/sd*[0-9] /dev/vd*[0-9] /dev/cciss/*" > /etc/mdadm.conf 
echo "DEVICE /dev/hd*[0-9] /dev/sd*[0-9] /dev/vd*[0-9] /dev/cciss/*" > /etc/mdadm/mdadm.conf 
mdadm --detail --scan >> /etc/mdadm.conf
mdadm --detail --scan >> /etc/mdadm/mdadm.conf
sed -i -e "s/GRUB_CMDLINE_LINUX_DEFAULT=\"/GRUB_CMDLINE_LINUX_DEFAULT=\"rd.auto rd.auto=1 selinux=0 quiet /g" /etc/default/grub
echo "GRUB_DISABLE_LINUX_UUID=\"true\"" >> /etc/default/grub
echo "GRUB_PRELOAD_MODULES=\"part_gpt raid mdraid mdraid09 mdraid1x \"" >> /etc/default/grub
update-initramfs -k all -u
grub-mkconfig -o /boot/grub/grub.cfg 
sed -i -e "s#root=.*#root=/dev/md1 rd.auto rd.auto=1 selinux=0 rootdelay=10 quiet#g" /boot/grub/grub.cfg
grub-install /dev/sdb
grub-install /dev/sdc
grub-install /dev/sdd
cp -dpRxv / /mnt
cp -dpRxv /boot /mnt
reboot
swapoff -a
sgdisk -R /dev/sda /dev/sdb && sgdisk -G /dev/sda
grub-mkconfig -o /boot/grub/grub.cfg 
sed -i -e "s#root=.*#root=/dev/md1 rd.auto rd.auto=1 selinux=0 quiet#g" /boot/grub/grub.cfg 
mdadm --add /dev/md0 /dev/sda2
for((f=1;f>0;))do grep -q idle /sys/block/md0/md/sync_action ; f=$?; sleep 1;done && grub-install /dev/sda        
mdadm --add /dev/md1 /dev/sda3 
mdadm --add /dev/md2 /dev/sda5
mkswap /dev/sda4

Ускорить синхронизацию:

echo 500000 > /proc/sys/dev/raid/speed_limit_max && echo 500000 > /proc/sys/dev/raid/speed_limit_min

Если нужно пропустить синхронизацию устройства md2 и начать синхронизацию следующего по очереди:

echo idle > /sys/block/md2/md/sync_action

results matching ""

    No results matching ""