LINUX.ORG.RU
ФорумAdmin

Програмный рейд на работающей системе Centos 7

 


0

1

Приветствую. Добавили на сервер второй диск sdb, подскажите пожалуйста как с помощью mdadm сделать программный RAID1 на работающей системе. Заранее спасибо.

[root@s200787 ~]# lsblk
NAME        MAJ:MIN RM  SIZE RO TYPE  MOUNTPOINT
sda           8:0    0  1.8T  0 disk
├─sda1        8:1    0    1M  0 part
├─sda2        8:2    0    1G  0 part  /boot
└─sda3        8:3    0  1.8T  0 part
  ├─vg-root 253:0    0  1.8T  0 lvm   /
  ├─vg-swap 253:1    0    4G  0 lvm   [SWAP]
  └─vg-tmp  253:2    0    1G  0 lvm   /tmp
sdb           8:16   0  1.8T  0 disk

Когда-то я делал подобную вещь, крайне неприятное занятие. Можно на новом диске сделать деградированный рейд, скопировать туда систему, разобраться с загрузчиком, загрузиться с него и если всё нормально то добавить первый диск к этому рейду. Но дешевле заново развернуть.

sin_a ★★★★★
()

Создаешь разделы на новом диске аналогичные тем что на старом

Клонируешь sda1

Создаешь MD1 версии на sdb2

Копируешь данные sda2 на MD1

Подсоединяешь в рейд sda2, переустанавливаешь загрузчик

Добавляешь в LVM новый PV /dev/sdb2

lvconvert’аешь vg_root в mirrored LV

Всё

no-dashi-v2 ★★★
()

Не надо mdadm. У тебя же LVM. Он позволяет онлайн сконвертировать тип тома из linear в raid1:

  • Пролистать разделы на /dev/sda: fdisk -ul /dev/sda.
  • С помощью fdisk создать такие же разделы на /dev/sdb (прямо с такими же стартовыми номерами секторов и количеством секторов).
  • Отформатировать /dev/sdb3 как LVM PV: pvcreate /dev/sdb3.
  • Добавить /dev/sdb3 в группу vg: vgextend vg /dev/sdb3.
  • Сконвертировать тома в raid1: lvconvert --type raid1 /dev/vg/tmp --mirrors 1, lvconvert --type raid1 /dev/vg/swap --mirrors 1, lvconvert --type raid1 /dev/vg/root --mirrors 1

sda2, который вне LVM, можно скопировать вручную:

  • Создать фс: mkfs.ext4 /dev/sdb2
  • Создать маунтпоинт: mkdir /boot2
  • Смонтировать: mount /dev/sdb2 /boot2
  • Скопировать файлы (cd /boot; cp -rax . /boot2)
  • Поменять в /boot2/grub/grub.cfg UUID фс /dev/sda2 на UUID фс /dev/sdb2
  • Записать stage1 загрузчик в /dev/sdb grub2-install --boot-directory /boot2 /dev/sdb

Что с ним делать дальше я не очень понимаю. Видимо придётся и дальше копировать его вручную после установки новых версий ядра.

iliyap ★★★★★
()
Последнее исправление: iliyap (всего исправлений: 1)
Ответ на: комментарий от iliyap

Видимо придётся и дальше копировать его вручную

Почему не сделать mdadm raid1 из boot? Принципиально, чтобы mdadm не использовать? Ведь grub можно установить на зеркало mdraid, причём и с metadata 1.x, разве что на 4к секторах были проблемы.

mky ★★★★★
()