Перенос работающей OS с одного диска на RAID1

 

В данной статье представлено 3 варианта переноса:

1. Переход на RAID через chroot в Ubuntu вариант №1 (переносим всё на 1 раздел)

2. Переход на RAID через chroot в Ubuntu вариант №2 (оставляем исходные разделы)

3. Переход на RAID через chroot в Centos 7 вариант №1 (переносим всё на 1 раздел)

4. Переход на RAID через chroot в Centos 7 вариант №2 (оставляем исходные разделы)

5. Переход на RAID через chroot в Centos 6.7 (оставляем исходные разделы)

 

Переход на RAID через chroot в Ubuntu вариант №1 (переносим все на 1 раздел)

 

Рассмотрим перенос работающей системы на software-raid1. Очень внимательно и обдумав выполняем каждую команду, не путаем разделы диска и сам диск.

 

/dev/sdY -старый диск, на который установлена система

/dev/sdX -новый диск, с помощью которого создадим RAID

 

-Ставим rsync:

# sudo apt-get -y install rsync

-Ставим mdadm:

# sudo apt-get -y install mdadm

 

-Подключаем второй диск.

 

-Создаем раздел на весь новый диск:

# sudo fdisk /dev/sdX
n
p
1
<enter>
<enter>
w

 -Создаем RAID1 массив с РАЗДЕЛОМ нового диска (без текущего):

# sudo mdadm --create /dev/md0 --level=1 --raid-devices=2 missing /dev/sdX1

 -Далее создаем на массиве разделы под будущую систему. Создаем такие же разделы под корень и своп как на оригинальном диске.

# sudo fdisk /dev/md0

....

или:

Копируем таблицу разделов с основного диска на RAID-массив:

# sudo sfdisk -d /dev/sdY | sudo sfdisk --force /dev/md0

 -Создаем файловые системы на разделах (УКАЗЫВАЕМ АКТУАЛЬНЫЕ НОМЕРА РАЗДЕЛОВ И ФАЙЛОВЫЕ СИСТЕМЫ):

# sudo mkfs.ext2 /dev/md0p1 (boot раздел)
# sudo mkfs.ext4 /dev/md0p5 (раздел с системой)

# #sudo mkswap /dev/md0pX (раздел под SWAP)

 -Монтируем будущий корень и копируем в него текущий корень:

# sudo mount /dev/md0p5 /mnt
# sudo rsync -axu / /mnt/

Таким же образом монтируем все разделы, например /boot если он раздельный:

# sudo mount /dev/md0p1 /mnt/boot

# sudo rsync -axu /boot/ /mnt/boot

# sudo umount /mnt/boot

-После этого прицепляем системные каталоги(df -h) к новому корню, чтобы потом сделать chroot в новый корень. И собственно делаем chroot в новый корень:

# sudo mount --bind /proc /mnt/proc
# sudo mount --bind /dev /mnt/dev
# sudo mount --bind /sys /mnt/sys
# sudo mount --bind /run /mnt/run
# sudo mount --bind /boot /mnt/boot

# sudo chroot /mnt

 Примонтируем отдельные разделы:

# mount /dev/md0p1 /boot

 -Cмотрим UUID-ы разделов на раиде и прописываем их в fstab:

#/ls -l /dev/disk/by-uuid |grep md >> /etc/fstab

#/nano /etc/fstab

(там комментируем старые корень и своп и используя скопированные туда uuid-ы прописываем новый корень и своп по образу и подобию старых, но с uuid-ами раидных разделов)

 

-Сохраняем конфигурацию RAID-массива в конфигурационный файл:

#/mdadm --detail --scan > /etc/mdadm/mdadm.conf

 -Создаем новую конфигурацию GRUB и проверяем, что в его конфиг прописан раидный uuid для корня:

#/update-grub
#/less /boot/grub/grub.cfg

 -Ставим GRUB на второй диск (который несет на себе часть зеркала).

#/grub-install /dev/sdX

 -Запускаем и со всем соглашаемся:

#/dpkg-reconfigure mdadm

-Можно перезагружаться и выбрать в BIOS загрузочным второй диск, или можно вернутся в реальную систему и обновить GRUB - он найдет вторую систему установленную на раиде и включит ее свое меню.

Тут полезно еще раз запустить rsync, чтобы он обновил данные на раиде тем, что успело изменится на реальном корне за время настройки раида. Но сделать это стоит перед перестройкой конфига GRUB, что бы его новый конфиг не был записан на раид.

#/exit  --- выходим из chroot
# sudo rsync -axu / /mnt/
# sudo update-grub
# sudo reboot

 -Перегрузившись в новую систему остается только навесить в RAID первый диск и установить на нем grub:

# sudo fdisk /dev/sdY

(там убиваем старые разделы и создаем один новый - на весь объем)

 

-Добавляем новый РАЗДЕЛ диска в массив:

# sudo mdadm --manage /dev/md0 --add /dev/sdY1

Если ошибка вида:

mdadm: /dev/xvdb1 not large enough to join array

То перезагружаемся.

 

Устанавливаем grub на диск:

# sudo grub-install /dev/sdY

 После чего смотрим через cat /proc/mdstat как перестраивается наш деградированный массив в полноценно рабочий.

 

Если необходимо, то создаем SWAP: http://cp38.ru/index.php/po/53-swap

 

++++++++++++++++++++++++++++++++++++++++++

 

Переход на RAID через chroot в Ubuntu вариант №2 (оставляем исходные разделы)

 

/dev/sdY -старый диск, на который установлена система

/dev/sdX -новый диск, с помощью которого создадим RAID



-Ставим rsync:

# sudo apt-get -y install rsync

-Ставим mdadm:

# sudo apt-get -y install mdadm

 

-Подключаем второй диск.

 

-Копируем таблицу разделов с основного диска на новый:

# sudo sfdisk -d /dev/sdY | sudo sfdisk --force /dev/sdX

 

-Создаем RAID массивы с РАЗДЕЛАМИ нового диска:

# sudo mdadm --create /dev/md0 --level=1 --raid-devices=2 missing /dev/sdX1

# sudo mdadm --create /dev/md1 --level=1 --raid-devices=2 missing /dev/sdX2

# sudo mdadm --create /dev/mdX --level=1 --raid-devices=2 missing /dev/sdX3

 

-Создаем файловые системы на разделах (УКАЗЫВАЕМ АКТУАЛЬНЫЕ НОМЕРА РАЗДЕЛОВ И ФАЙЛОВЫЕ СИСТЕМЫ):

# sudo mkfs.ext2 /dev/md0 (boot раздел)

# sudo mkfs.ext4 /dev/md1 (раздел с системой)

# sudo mkswap /dev/mdX (раздел под SWAP)

 

-Монтируем будущий корень и копируем в него текущий корень:

# sudo mount /dev/md1 /mnt
# sudo rsync -axu / /mnt/

 

Таким же образом монтируем все разделы, например /boot если он раздельный:

# sudo mount /dev/md0 /mnt/boot

# sudo rsync -axu /boot/ /mnt/boot

# sudo umount /mnt/boot

 

-После этого прицепляем системные каталоги(df -h) к новому корню, чтобы потом сделать chroot в новый корень. И собственно делаем chroot в новый корень:

# sudo mount --bind /proc /mnt/proc
# sudo mount --bind /dev /mnt/dev
# sudo mount --bind /sys /mnt/sys
# sudo mount --bind /run /mnt/run
# sudo mount --bind /boot /mnt/boot

# sudo chroot /mnt

 

Примонтируем отдельные разделы:

# mount /dev/md0 /boot

 

-Cмотрим UUID-ы разделов на раиде и прописываем их в fstab:

#/ls -l /dev/disk/by-uuid |grep md >> /etc/fstab

#/nano /etc/fstab
или вручную скопировав:

# blkid /dev/md*

(там комментируем старые корень и своп и используя скопированные туда uuid-ы прописываем новый корень и своп по образу и подобию старых, но с uuid-ами раидных разделов)

 

-Сохраняем конфигурацию RAID-массива в конфигурационный файл:

#/mdadm --detail --scan > /etc/mdadm/mdadm.conf

 

-Создаем новую конфигурацию GRUB и проверяем, что в его конфиг прописан раидный uuid для корня:

#/update-grub
#/less /boot/grub/grub.cfg

 

-Ставим GRUB на новый диск:

#/grub-install /dev/sdX

 

-Запускаем и со всем соглашаемся:

#/dpkg-reconfigure mdadm

 

-Можно перезагружаться и выбрать в BIOS загрузочным второй диск, или можно вернутся в реальную систему и обновить GRUB - он найдет вторую систему установленную на раиде и включит ее свое меню.

Тут полезно еще раз запустить rsync, чтобы он обновил данные на раиде тем, что успело изменится на реальном корне за время настройки раида. Но сделать это стоит перед перестройкой конфига GRUB, что бы его новый конфиг не был записан на раид.

#/exit  --- выходим из chroot
# sudo rsync -axu / /mnt/
# sudo update-grub
# sudo reboot

 

-Перезагрузившись в новую систему остается только навесить в RAID первый диск и установить на нем grub:

# sudo fdisk /dev/sdY

(там убиваем старые разделы)

 

-Копируем таблицу разделов с нового диска на старый:

# sudo sfdisk -d /dev/sdX | sudo sfdisk --force /dev/sdY

 

-Добавляем новыe РАЗДЕЛЫ диска в массивы:

# sudo mdadm --manage /dev/md0 --add /dev/sdY1

# sudo mdadm --manage /dev/md1 --add /dev/sdY2

# sudo mdadm --manage /dev/mdX --add /dev/sdY3

Если ошибка вида:

mdadm: /dev/xvdb1 not large enough to join array

То перезагружаемся.

 

Устанавливаем grub на старый диск:

# sudo grub-install /dev/sdY

После чего смотрим через cat /proc/mdstat как перестраивается наш деградированный массив в полноценно рабочий.

 

 

++++++++++++++++++++++++++++++++++++++++++

Переход на RAID через chroot в Centos 7 вариант №1 (переносим всё на 1 раздел)

 

Рассмотрим перенос работающей системы на software-raid1. Очень внимательно и обдумав выполняем каждую команду, не путаем разделы диска и сам диск.

 

/dev/sdY -старый диск, на который установлена система

/dev/sdX -новый диск, с помощью которого создадим RAID

 

-Ставим rsync:

# sudo yum -y install rsync

-Ставим mdadm:

# sudo yum -y install mdadm

 -Подключаем второй диск.

 

-Создаем раздел на весь новый диск:

# sudo fdisk /dev/sdX
n
p
1
<enter>
<enter>
w

 -Создаем RAID1 массив с РАЗДЕЛОМ нового диска (без текущего):

# sudo mdadm --create /dev/md0 --level=1 --raid-devices=2 missing /dev/sdX1

 -Далее создаем на массиве разделы под будущую систему. Создаем такие же разделы под корень и своп как на оригинальном диске.

# sudo fdisk /dev/md0
....

или:

Копируем таблицу разделов с основного диска на RAID-массив:

# sudo sfdisk -d /dev/sdY | sudo sfdisk --force /dev/md0

-Создаем файловые системы на разделах (УКАЗЫВАЕМ АКТУАЛЬНЫЕ НОМЕРА РАЗДЕЛОВ И ФАЙЛОВЫЕ СИСТЕМЫ):

# sudo mkfs.xfs /dev/md0p1 (boot раздел)
# sudo mkfs.xfs /dev/md0p5 (раздел с системой)

# sudo mkswap /dev/md0pX (раздел под SWAP)

 -Монтируем будущий корень и копируем в него текущий корень:

# sudo mount /dev/md0p5 /mnt
# sudo rsync -axu / /mnt/

Таким же образом монтируем все разделы, например /boot если он раздельный:

# sudo mount /dev/md0p1 /mnt/boot

# sudo rsync -axu /boot/ /mnt/boot

# sudo umount /mnt/boot

 -После этого прицепляем системные каталоги(df -h) к новому корню, чтобы потом сделать chroot в новый корень. И собственно делаем chroot в новый корень:

# sudo mount --bind /proc /mnt/proc
# sudo mount --bind /dev /mnt/dev
# sudo mount --bind /sys /mnt/sys
# sudo mount --bind /run /mnt/run
# sudo mount --bind /boot /mnt/boot

# sudo chroot /mnt

 Примонтируем отдельные разделы:

# mount /dev/md0p1 /boot

 -Cмотрим UUID-ы разделов на раиде и прописываем их в fstab:

#/ls -l /dev/disk/by-uuid |grep md >> /etc/fstab

#/nano /etc/fstab

(там комментируем старые корень и своп и используя скопированные туда uuid-ы прописываем новый корень и своп по образу и подобию старых, но с uuid-ами раидных разделов)

 

-Сохраняем конфигурацию RAID-массива в конфигурационный файл:

#/mdadm --detail --scan > /etc/mdadm.conf

 -Далее делаем новый initramfs, с нужными модулями:

#/cp /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bck

#/dracut --force /boot/initramfs-$(uname -r).img $(uname -r)

 -После чего приводим строку «GRUB_CMDLINE_LINUX» в файле /etc/default/grub к следующему виду:

#/nano /etc/default/grub

GRUB_CMDLINE_LINUX="crashkernel=auto rd.md.uuid=UUID rhgb quiet"

где UUID-это uuid RAIDа из файла /etc/mdadm.conf

 

-Создаем новую конфигурацию GRUB и проверяем, что в его конфиг прописан раидный uuid для корня:

#/grub2-mkconfig -o /boot/grub2/grub.cfg

#/less /boot/grub2/grub.cfg

-Ставим первую стадию GRUB на второй диск (который несет на себе часть зеркала).

#/grub2-install /dev/sdX

 -Можно перезагружаться и выбрать в BIOS загрузочным второй диск, или можно вернутся в реальную систему и обновить GRUB - он найдет вторую систему установленную на раиде и включит ее свое меню.

#/exit  --- выходим из chroot
# sudo reboot

 -Перегрузившись в новую систему остается только навесить в RAID первый диск и установить на нем grub:

# sudo fdisk /dev/sdY

(там убиваем старые разделы и создаем один новый - на весь объем)

 

-Добавляем новый РАЗДЕЛ диска в массив:

# sudo mdadm --manage /dev/md0 --add /dev/sdY1

Если ошибка вида:

mdadm: /dev/xvdb1 not large enough to join array

То перезагружаемся.

 

Устанавливаем grub на диск:

# sudo grub2-install /dev/sdY

 После чего смотрим через cat /proc/mdstat как перестраивается наш деградированный массив в полноценно рабочий.

 

Если необходимо, то создаем SWAP: http://cp38.ru/index.php/po/53-swap

 

++++++++++++++++++++++++++++++++++++++++++

 

Переход на RAID через chroot в Centos 7 вариант №2 (оставляем исходные разделы)

 

Рассмотрим перенос работающей системы на software-raid1. Очень внимательно и обдумав выполняем каждую команду, не путаем разделы диска и сам диск.

 

/dev/sdY -старый диск, на который установлена система

/dev/sdX -новый диск, с помощью которого создадим RAID

 

-Ставим rsync:

# sudo yum -y install rsync

-Ставим mdadm:

# sudo yum -y install mdadm

 -Подключаем второй диск.

 

-Копируем таблицу разделов с основного диска на новый:

# sudo sfdisk -d /dev/sdY | sudo sfdisk --force /dev/sdX

-Создаем RAID массивы с РАЗДЕЛАМИ нового диска (без текущих):

# sudo mdadm --create /dev/md0 --level=1 --raid-devices=2 missing /dev/sdX1

# sudo mdadm --create /dev/md1 --level=1 --raid-devices=2 missing /dev/sdX2

-Создаем файловые системы на разделах (УКАЗЫВАЕМ АКТУАЛЬНЫЕ НОМЕРА РАЗДЕЛОВ И ФАЙЛОВЫЕ СИСТЕМЫ):

# sudo mkfs.xfs /dev/md0 (boot раздел)

# sudo mkfs.xfs /dev/md1 (раздел с системой)

# sudo mkswap /dev/mdX (раздел под SWAP)

 -Монтируем будущий корень и копируем в него текущий корень:

# sudo mount /dev/md1 /mnt
# sudo rsync -axu / /mnt/

Таким же образом монтируем все разделы, например /boot если он раздельный:

# sudo mount /dev/md0 /mnt/boot

# sudo rsync -axu /boot/ /mnt/boot

# sudo umount /mnt/boot

 -После этого прицепляем системные каталоги(df -h) к новому корню, чтобы потом сделать chroot в новый корень. И собственно делаем chroot в новый корень:

# sudo mount --bind /proc /mnt/proc
# sudo mount --bind /dev /mnt/dev
# sudo mount --bind /sys /mnt/sys
# sudo mount --bind /run /mnt/run
# sudo mount --bind /boot /mnt/boot

# sudo chroot /mnt

 Примонтируем отдельные разделы:

# mount /dev/md0 /boot

 -Cмотрим UUID-ы разделов на раиде и прописываем их в fstab:

#/ls -l /dev/disk/by-uuid |grep md >> /etc/fstab

#/nano /etc/fstab

или вручную скопировав:

# blkid /dev/md*

 

(там комментируем старые корень и своп и используя скопированные туда uuid-ы прописываем новый корень и своп по образу и подобию старых, но с uuid-ами раидных разделов)

 

-Сохраняем конфигурацию RAID-массива в конфигурационный файл:

#/mdadm --detail --scan > /etc/mdadm.conf

 -Далее делаем новый initramfs, с нужными модулями:

#/cp /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bck

#/dracut --force /boot/initramfs-$(uname -r).img $(uname -r)

 -После чего приводим строку «GRUB_CMDLINE_LINUX» в файле /etc/default/grub к следующему виду:

#/nano /etc/default/grub

GRUB_CMDLINE_LINUX="crashkernel=auto rd.md.uuid=UUID rd.md.uuid=UUID rhgb quiet"

где UUID-это uuid RAIDов из файла /etc/mdadm.conf

 

-Создаем новую конфигурацию GRUB и проверяем, что в его конфиг прописан раидный uuid для корня:

#/grub2-mkconfig -o /boot/grub2/grub.cfg

#/less /boot/grub2/grub.cfg

-Ставим первую стадию GRUB на второй диск (который несет на себе часть зеркала).

#/grub2-install /dev/sdX

 -Можно перегружаться и выбрать в BIOS загрузочным второй диск, или можно вернутся в реальную систему и обновить GRUB - он найдет вторую систему установленную на раиде и включит ее свое меню.

#/exit  --- выходим из chroot
# sudo reboot

-Перезагрузившись в новую систему остается только навесить в RAID первый диск и установить на нем grub:

Добавляем РАЗДЕЛЫ первого диска в массив:

# sudo mdadm --manage /dev/md0 --add /dev/sdY1

# sudo mdadm --manage /dev/md1 --add /dev/sdY2

Если ошибка вида:

mdadm: /dev/xvdb1 not large enough to join array

То перезагружаемся.

 

Если ошибка вида:

mdadm: Cannot open : Device or resource busy

То выполняем:

# sudo dmsetup remove_all -f

# sudo dmsetup info

Устанавливаем grub на диск:

# sudo grub2-install /dev/sdY

 После чего смотрим через cat /proc/mdstat как перестраивается наш деградированный массив в полноценно рабочий.

 

Если необходимо, то создаем SWAP: http://cp38.ru/index.php/po/53-swap

 

++++++++++++++++++++++++++++++++++++++++++

 

Переход на RAID через chroot в Centos 6.7 (оставляем исходные разделы)

 

/dev/sdY -старый диск, на который установлена система

/dev/sdX -новый диск, с помощью которого создадим RAID

-Ставим rsync:

# sudo apt-get -y install rsync

-Ставим mdadm:

# sudo apt-get -y install mdadm

-Подключаем новый диск /dev/sdX.

 

Удаляем разметку с /dev/sdX и создаем разделы согласно размерам исходного диска, например:

#sudo fdisk /dev/sdb

  1. /boot - 1G (ext4)

  2. / - 50G (ext4)

  3. /home - 400G (ext4)

  4. ex - 6G

  5. p - 6G swap

 

-Создаем RAID1 массивы с РАЗДЕЛАМИ нового диска /dev/sdX (без текущего):

#sudo mdadm --create /dev/md0 --level=1 --raid-devices=2 missing /dev/sdX1

#sudo mdadm --create /dev/md1 --level=1 --raid-devices=2 missing /dev/sdX2

#sudo mdadm --create /dev/md2 --level=1 --raid-devices=2 missing /dev/sdX3

#sudo mdadm --create /dev/md3 --level=1 --raid-devices=2 missing /dev/sdX5

-Создаем файловые системы на разделах (УКАЗЫВАЕМ АКТУАЛЬНЫЕ НОМЕРА РАЗДЕЛОВ И ФАЙЛОВЫЕ СИСТЕМЫ):

#sudo mkfs.ext4 /dev/md0 (boot раздел)

#sudo mkfs.ext4 /dev/md1 (корень)

#sudo mkfs.ext4 /dev/md2 (home раздел)

#sudo mkswap /dev/md3 (раздел под SWAP)

-Монтируем будущий корень и копируем в него текущий корень:

#sudo mkdir /mnt/newhdd

#sudo mount /dev/md1 /mnt/newhdd
#sudo rsync -axu / /mnt/newhdd

-Таким же образом монтируем все разделы, например /boot если он раздельный:

#sudo mount /dev/md0 /mnt/newhdd/boot

#sudo rsync -axu /boot/ /mnt/newhdd/boot

#sudo umount /mnt/newhdd/boot

и  /home:

#sudo mount /dev/md2 /mnt/newhdd/home

#sudo rsync -axu /home/ /mnt/newhdd/home

#sudo umount /mnt/newhdd/home

-После этого прицепляем системные каталоги(df -h) к новому корню, чтобы потом сделать chroot в новый корень. И собственно делаем chroot в новый корень:

#sudo mount --bind /proc /mnt/newhdd/proc
#sudo mount --bind /dev /mnt/newhdd/dev
#sudo mount --bind /sys /mnt/newhdd/sys
#sudo mount --bind /run /mnt/newhdd/run
#sudo mount --bind /boot /mnt/newhdd/boot

#sudo mount --bind /home /mnt/newhdd/home

#sudo chroot /mnt/newhdd

-Примонтируем отдельные разделы:

#mount /dev/md0 /boot

#mount /dev/md2 /home

-Cмотрим UUID-ы разделов на раиде и прописываем их в fstab:

#/ls -l /dev/disk/by-uuid |grep md>> /etc/fstab

#/nano /etc/fstab

или вручную скопировав:

# blkid /dev/md*

(там комментируем старые корень и своп и используя скопированные туда uuid-ы прописываем новый корень и своп по образу и подобию старых, но с uuid-ами раидных разделов)

 

-Сохраняем конфигурацию RAID-массива в конфигурационный файл:

#/mdadm --detail --scan > /etc/mdadm/mdadm.conf

-Далее делаем новый initramfs, с нужными модулями:

#/cp /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bck

#/dracut --force /boot/initramfs-$(uname -r).img $(uname -r)

-После чего приводим строку «kernel /vmlinuz-*» в файле /boot/grub/grub.conf к следующему виду:

#/nano /boot/grub/grub.conf

kernel /vmlinuz-2.6.32-573.3.1.el6.centos.plus.x86_64 ro rd.md.uuid=UUID rd.md.uuid=UUID LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 KEYBOARDTYPE=pc KEYTABLE=us crashkernel=auto rhgb quiet

где UUID-это uuid RAIDов из файла /etc/mdadm.conf

!!ПРОВЕРИТЬ

-Проверяем корректность изменений:

#/less /boot/grub/grub.conf

-Ставим первую стадию GRUB на второй диск (который несет на себе часть зеркала).

#/sbin/grub-install --recheck /dev/sdb

-Можно перегружаться и выбрать в BIOS загрузочным второй диск, или можно вернутся в реальную систему и обновить GRUB - он найдет вторую систему установленную на раиде и включит ее свое меню.

#/exit  --- выходим из chroot

# sudo reboot

-Перезагрузившись в новую систему остается только навесить в RAID первый диск и установить на нем grub:

-Копируем таблицу разделов с нового диска на старый:

# sudo sfdisk -d /dev/sdX | sudo sfdisk --force /dev/sdY

-Добавляем РАЗДЕЛЫ старого диска в массив:

#sudo mdadm --manage /dev/md0 --add /dev/sdY1

#sudo mdadm --manage /dev/md1 --add /dev/sdY2

#sudo mdadm --manage /dev/md2 --add /dev/sdY3

#sudo mdadm --manage /dev/md3 --add /dev/sdY5

Если ошибка вида:

mdadm: /dev/xvdb1 not large enough to join array

То перезагружаемся.

Если ошибка вида:

mdadm: Cannot open : Device or resource busy

То выполняем:

# sudo dmsetup remove_all -f

# sudo dmsetup info

-Устанавливаем grub на старый диск:

# sudo grub-install /dev/sdY

-После чего смотрим через cat /proc/mdstat как перестраивается наш деградированный массив в полноценно рабочий.

 

 

Материалы:

http://help.ubuntu.ru/wiki/migrate-to-raid

https://habrahabr.ru/post/248073/

https://www.cmatthew.net/wiki/Convert_to_raid_1_CentOS_7

Переход на RAID через chroot в Centos 7 вариант №2


Рассмотрим перенос работающей системы на software-raid1. Очень внимательно и обдумав выполняем каждую команду, не путаем разделы диска и сам диск.


/dev/sdY -старый диск, на который установлена система

/dev/sdX -новый диск, с помощью которого создадим RAID


-Ставим rsync:

# sudo yum -y install rsync


-Ставим mdadm:

# sudo yum -y install mdadm


-Подключаем второй диск.


-Копируем таблицу разделов с основного диска на новый:

# sudo sfdisk -d /dev/sdY | sudo sfdisk --force /dev/sdX


-Создаем RAID массивы с РАЗДЕЛАМИ нового диска (без текущих):

# sudo mdadm --create /dev/md0 --level=1 --raid-devices=2 missing /dev/sdX1

# sudo mdadm --create /dev/md1 --level=1 --raid-devices=2 missing /dev/sdX2


-Создаем файловые системы на разделах (УКАЗЫВАЕМ АКТУАЛЬНЫЕ НОМЕРА РАЗДЕЛОВ И ФАЙЛОВЫЕ СИСТЕМЫ):

# sudo mkfs.xfs /dev/md0 (boot раздел)

# sudo mkfs.xfs /dev/md1 (раздел с системой)

# sudo mkswap /dev/mdX (раздел под SWAP)


-Монтируем будущий корень и копируем в него текущий корень:

# sudo mount /dev/md1 /mnt

# sudo rsync -axu / /mnt/

Таким же образом монтируем все разделы, например /boot если он раздельный:

# sudo mount /dev/md0 /mnt/boot

# sudo rsync -axu /boot/ /mnt/boot

# sudo umount /mnt/boot


-После этого прицепляем системные каталоги(df -h) к новому корню, чтобы потом сделать chroot в новый корень. И собственно делаем chroot в новый корень:

# sudo mount --bind /proc /mnt/proc

# sudo mount --bind /dev /mnt/dev

# sudo mount --bind /sys /mnt/sys

# sudo mount --bind /run /mnt/run

# sudo mount --bind /boot /mnt/boot

# sudo chroot /mnt


Примонтируем отдельные разделы:

# mount /dev/md0 /boot


-Cмотрим UUID-ы разделов на раиде и прописываем их в fstab:

#/ls -l /dev/disk/by-uuid |grep md >> /etc/fstab

#/nano /etc/fstab

или вручную скопировав:

# blkid /dev/md*

(там комментируем старые корень и своп и используя скопированные туда uuid-ы прописываем новый корень и своп по образу и подобию старых, но с uuid-ами раидных разделов)


-Сохраняем конфигурацию RAID-массива в конфигурационный файл:

#/mdadm --detail --scan > /etc/mdadm.conf


-Далее делаем новый initramfs, с нужными модулями:

#/cp /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bck

#/dracut --force /boot/initramfs-$(uname -r).img $(uname -r)


-После чего приводим строку «GRUB_CMDLINE_LINUX» в файле /etc/default/grub к следующему виду:

#/nano /etc/default/grub

GRUB_CMDLINE_LINUX="crashkernel=auto rd.md.uuid=UUID rd.md.uuid=UUID rhgb quiet"

где UUID-это uuid RAIDов из файла /etc/mdadm.conf


-Создаем новую конфигурацию GRUB и проверяем, что в его конфиг прописан раидный uuid для корня:

#/grub2-mkconfig -o /boot/grub2/grub.cfg

#/less /boot/grub2/grub.cfg


-Ставим GRUB на второй диск (который несет на себе часть зеркала).

#/grub2-install /dev/sdX


-Можно перегружаться и выбрать в BIOS загрузочным второй диск, или можно вернутся в реальную систему и обновить GRUB - он найдет вторую систему установленную на раиде и включит ее свое меню.

#/exit  --- выходим из chroot

# sudo reboot


-Перегрузившись в новую систему остается только навесить в RAID первый диск и установить на нем grub:

Добавляем РАЗДЕЛЫ первого диска в массив:

# sudo mdadm --manage /dev/md0 --add /dev/sdY1

# sudo mdadm --manage /dev/md1 --add /dev/sdY2


Если ошибка вида:

mdadm: /dev/xvdb1 not large enough to join array

То перезагружаемся.


Если ошибка вида:

mdadm: Cannot open : Device or resource busy

То выполняем:

# sudo dmsetup remove_all -f

# sudo dmsetup info


Устанавливаем grub на диск:

# sudo grub2-install /dev/sdY


После чего смотрим через cat /proc/mdstat как перестраивается наш деградированный массив в полноценно рабочий.


Если необходимо, то создаем SWAP: http://cp38.ru/index.php/po/53-swap