Настройка RAID1 с активным физическим томом (Debian 9 stretch)

Настройка RAID1 с активным физическим томом (Debian 9 stretch)

Я пытаюсь следовать следующему руководству по настройке RAID1: https://www.howtoforge.com/set-up-raid1-on-a-running-lvm-system-debian-etch

В настоящее время у меня два жестких диска по 6 ТБ, я создал физический том непосредственно на одном из них, другой совершенно новый и нетронутый.

sdc                8:32   0   5.5T  0 disk
├─DATA-user_data 254:0    0     4T  0 lvm
└─DATA-app_data  254:1    0     1T  0 lvm
sdd                8:48   0   5.5T  0 disk

Физический sdcтом имеет одну группу томов, содержащую два логических тома.

root@server:# pvscan
  PV /dev/sdc   VG DATA            lvm2 [5.46 TiB / 469.03 GiB free]
  Total: 1 [5.46 TiB] / in use: 1 [5.46 TiB] / in no VG: 0 [0   ]
root@server:# vgscan
  Reading volume groups from cache.
  Found volume group "DATA" using metadata type lvm2
root@server:# lvscan
  ACTIVE            '/dev/DATA/user_data' [4.00 TiB] inherit
  ACTIVE            '/dev/DATA/app_data' [1.00 TiB] inherit

Я дошел до того места в руководстве, где мне нужно скопировать таблицу разделов с sdcна sdd, но, конечно, это невозможно, так как sdcна нем нет таблицы разделов.

Как настроить RAID1 с помощью sdcи sdd?

решение1

Вы можете создать зеркальные объемы, добавив sddв VG

pvcreate /dev/sdd
vgextend DATA /dev/sdd

а затем изменить количество копий каждого LV

lvconvert -m1 DATA/user_data
lvconvert -m1 DATA/app_data

(1 означает две копии данных, 0 означает одну копию) Вы можете проверить ход зеркалирования с помощью команды типа:

lvs -a -o name,copy_percent,devices DATA

решение2

Ну,ленивыйВариантом было бы просто взять текущую конфигурацию как есть, добавить /dev/sddв LVM как есть и позволить LVM самому управлять RAID для вас. Это означает, mdadmчто он вообще не участвует (во всяком случае, не напрямую). Смотрите ответ Romeo, он хороший.

Если вы хотите использовать mdadm, хотя это возможно сделать с опозданием (используя метаданные версии 1.0 в конце диска),надлежащим образомсделать это было бы разбить на разделы /dev/sdd, поместить mdadmRAID на раздел, поместить LVM на RAID и перенести данные. И как только вы убедитесь, что копия хороша, вы можете разбить ее на разделы /dev/sdc, разбить на разделы тем же способом и добавить ее в RAID.

Грубо:

# partition step
parted /dev/sdd
(parted) mklabel gpt
(parted) mkpart md0_0 1MiB -1MiB
(parted) print free
(parted) quit

# mdadm step
mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdd1 missing
mdadm --detail --scan > /etc/mdadm.conf

# lvm step (rsync variant, two independent copies)
vgcreate RAIDDATA /dev/md0
lvcreate ...
mkfs ...
mount ...
# LV structure and filesystems as you see fit, then copy everything over
rsync -a /mnt/DATA/. /mnt/RAIDDATA/.

# alternative lvm step (pvmove variant, single copy)
vgextend DATA /dev/md0
pvmove /dev/sdc
vgreduce DATA /dev/sdc

Перенос файлов rsyncдолжен быть быстрее и безопаснее (если что-то пойдет не так, исходная копия все еще на месте). В то же время он подвержен ошибкам пользователя (трудно сказать, если rsyncчто-то упущено).

Перенос данных pvmoveпроисходит медленнее и более рискованно (что-то пойдет не так, исходная копия тоже будет утеряна), но при этом ничего не будет потеряно (включая удаленные файлы и т. п.).

На этом этапе вы хотите обновить UUID (если вы использовали mkfs, rsync) в fstab / grub и обновить initramfs. Перезагрузитесь и проверьте, что все в порядке и что /dev/sdcбольше не используется. Затем вы можете добавить его в RAID.

# partition step
parted /dev/sdc
(parted) mklabel gpt
(parted) mkpart md0_1 1MiB -1MiB
(parted) print free
(parted) quit

# raid resync step
mdadm /dev/md0 --add /dev/sdc1
watch -n 60 cat /proc/mdstat

И это все...

В целом это даст вам настройку, которую большинство людей ожидают (жесткий диск, разделы, RAID, LVM, файловые системы). Вы также можете добавить шифрование, пока вы этим занимаетесь. ;-)

Связанный контент