Centos6 RAID 1 (UUID)

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

mdadm -S /dev/mdx , x-номер устройства
mdadm --zero-superblock /dev/sdb[0-9]

Копируем разметку с sda на sdb

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

Редактируем скопированную разметку, разделам что будут в рейде нужно поставить Raid autodetect

fdisk /dev/sdb
Command (m for help): t
Partition number (1-5): 1 - номер sdb*, можно посмотреть через fdisk -l
Hex code (type L to list codes): fd
Changed system type of partition 1 to fd (Linux raid autodetect) - для каждого раздела кроме swap
После проставления меток fd, на каждом диске нужно сохранять разметку, вводя команду w.

Создаем RAID 1

mdadm --create /dev/md0 --bitmap=internal --bitmap-chunk=131072 --level 1 --raid-devices=2 missing /dev/sdb2 - md0 для /
mdadm --create /dev/md1 --metadata=0.90 --bitmap=internal --bitmap-chunk=131072 --level 1 --raid-devices=2 missing /dev/sdb1 - md1 для /boot
mdadm --create /dev/md2 --bitmap=internal --bitmap-chunk=131072 --level 1 --raid-devices=2 missing /dev/sdb3 - md2 для /tmp или других

Если дисков больше двух, то нужно добавить ключ --assume-clean для каждого md. Это предотвратит синхронизацию пустых разделов между собой. Если дисков 4 шт. и мы выносим отдельно дополнительные разделы (например, /home или /var/www при соответствующей панели), то для md3 необходимо указать --level 10
Также внимательно указывать --raid-devices=X в зависимости от кол-ва дисков.

Создаем файловую систему на рейдах, на корень, boot и остальное, что создали выше. ФС нужно делать ту, которая на данный момент для корня и бут раздела. Посмотреть df -hT

mkfs.ext4 -m1 -O dir_index /dev/md0
mkfs.ext2 -m1 -O dir_index /dev/md1 - для boot обычно ext2
mkfs.ext4 -m1 -O dir_index /dev/md2

Создаем конфиг mdadm

echo "DEVICE /dev/hd*[0-9] /dev/sd*[0-9] /dev/cciss/c0d[0-3]p[0-9]" > /etc/mdadm.conf
mdadm --detail --scan >> /etc/mdadm.conf

Смотрим

blkid /dev/md0 и т.д. и записываем UUID-ы

Бэкапим текущий fstab и в новом указываем UUID (blkid) для созданных рейдов

cp /etc/fstab /etc/fstab.old
nano /etc/fstab    - замена старых UUID на новые /dev/md* соответственно, кроме swap

Сохраняем оригинальный конфиг груба (загрузчика) и редактируем новый на предмет UUID.

cp /boot/grub/menu.lst /boot/grub/menu.lst.old
nano /boot/grub/menu.lst    - меняем UUID /(корня) на UUID /dev/md0
также rd_NO_MD заменить на selinux=0

В цикле генерим initramfs для ядер:

for i in `ls -d /lib/modules/2.*|xargs -n1 basename`; do echo -e "\E[01;32m $i\E[0m"; mkinitrd -f --with=raid1 --with=ahci --with=ext4 /boot/initramfs-$i.img $i;done

Монтируем рейд устройства, в /mnt монтируем md для корня, копируем данные на него с текущего корня фс

mount /dev/md0 /mnt
cp -dpRx / /mnt

Монтируем boot и копируем в него данные:

mount /dev/md1 /mnt/boot
cp -dpRx /boot/* /mnt/boot/

Монтируем tmp и копируем в него данные:

mount /dev/md2 /mnt/tmp
chmod 1777 /mnt/tmp

Ставим груб на диск что в рейде:

grub
grub> device (hd0) /dev/sdb
grub> root (hd0,0)
grub> setup (hd0)
grub> quit

reboot

После ребута ОС загрузится с созданного рейда без основного диска (в текущем примере рейд будет на sdb и ОС будет работать с md устройств). Остается скопировать разметку с sdb на sda, добавить sda в рейд, после синка поставить груб на /dev/sda (первичный диск) в системе.

Добавление остальных дисков в RAID Проверить что sda нигде не примонтирован (речь о SWAP разделе), если используется, выключить его через swapoff -a

Скопировать разметку с sdb на sda (через sfdisk)

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

Вставить sda в рейд, начинать с /boot раздела, т.к. он маленький и синхронизируется быстрее

mdadm --add /dev/md1 /dev/sda1 - /boot раздел
mdadm --add /dev/md0 /dev/sda2
mdadm --add /dev/md2 /dev/sda3

cat /proc/mdstat - посмотреть синхронизацию

Когда рейд для /boot синхронизируется, нужно поставить загрузчик на sda диск (и на все остальные, если они есть) grub

grub> device (hd0) /dev/sda
grub> root (hd0,0)
grub> setup (hd0)
grub> quit

reboot

Делаем отдельные Swap-ы на каждый диск

swapoff -a Выключаем весь свап для разделов
mkswap /dev/sdb*, c*, d*

Добавляем UUID всех свапов(см blkid /dev/sda*), в (nano /etc/fstab)

swapon -a Вкл свап

reboot

results matching ""

    No results matching ""