使用活動物理卷設置 RAID1(Debian 9 延伸)
我一直在嘗試按照以下指南設置 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
和設置 RAID1sdd
?
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
,將mdadm
RAID 放在分區上,將 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、文件系統)。您也可以在使用時添加加密。;-)