使用活动物理卷设置 RAID1(Debian 9stretch)

使用活动物理卷设置 RAID1(Debian 9stretch)

我一直在尝试遵循以下指南来设置 RAID1: https://www.howtoforge.com/set-up-raid1-on-a-running-lvm-system-debian-etch

我目前有两个 6TB 硬盘,我直接在其中一个上创建了物理卷,另一个是全新且未受影响的。

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

我已经在指南中需要将分区表从 复制sdcsdd,但是当然这是不可能的,因为sdc上面没有分区表。

如何使用sdc和设置 RAID1 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根本不参与(至少不是直接参与)。看看罗密欧的回答,这是一个很好的答案。

如果您想使用mdadm,尽管这并非不可能(在磁盘末尾使用 1.0 版元数据),但合适的方式这样做的方法是分区/dev/sddmdadm在分区上放置 RAID,在 RAID 上放置 LVM,然后将数据迁移过来。一旦您确认副本完好,您就可以解散/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较慢且风险较高(出现任何问题,原始副本也会丢失),但不会丢失任何内容(包括已删除的文件等)。

此时,您想要更新 fstab / grub 中的 UUID(如果您使用了 mkfs、rsync)并更新 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、文件系统)。您也可以在使用时添加加密。 ;-)

相关内容