Lvm

使用活動物理卷設置 RAID1(Debian 9 延伸)

  • June 8, 2019

我一直在嘗試按照以下指南設置 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

我已經到了指南中需要將分區表從 複製sdc到的地方sdd,但這當然是不可能的,因為sdc上面沒有分區表。

如何使用sdc和設置 RAID1 sdd

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

好吧,懶惰的選擇是直接採用目前配置,/dev/sdd按原樣添加到 LVM,並讓 LVM 自己為您處理 RAID。這意味著mdadm根本不參與(無論如何都不是直接參與)。請參閱羅密歐的回答,這是一個很好的回答。

如果你想使用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速度較慢且風險較大(出現任何問題,原始副本也已消失),但不會失去任何內容(包括已刪除的文件等)。

此時您要更新 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、文件系統)。您也可以在使用時添加加密。;-)

引用自:https://unix.stackexchange.com/questions/523734