小弟我手上有5顆500G 1顆1T的硬碟
想要拿起做freenas
目前的想法是這樣的(參考了群輝的SHR)
1T中的500G,與兩顆500G硬碟做raidZ,總共1T
然後
1T中的另外500G,與剩下的三顆500G做raidZ,總共1.5T
請問這樣是可行的嗎?謝謝
測試 Raid + LVM 動態擴充硬碟容量(不影響現有資料)
a) 測試範例硬碟 5顆 sdb 2G ,sdc 3G ,sdd 4G,sde 5G ,sdf 6G
b) 各硬碟切成 1000M size partition
c) 模擬硬碟掛掉與擴充
d) 用模擬環境先練習
步驟:
1) 先安裝 gentoo from https://wiki.gentoo.org/wiki/Handbook:AMD64
2) 安裝完第一次開機,請安裝 emerge sys-fs/mdadm
設定啟動服務:
rc-update add mdadm boot
rc-update add lvm boot
3) 接下來用 gdisk /dev/sdb~f 切 1000M partitions

4) 參考文件:
https://wiki.gentoo.org/wiki/User:SwifT/Complete_Handbook/Software_RAID
https://wiki.gentoo.org/wiki/LVM
5) 設定 softraid
mdadm --create /dev/md0 --level=raid5 --raid-devices=5 /dev/sd[bcdef]1
mdadm --create /dev/md1 --level=raid5 --raid-devices=5 /dev/sd[bcdef]2
mdadm --create /dev/md2 --level=raid5 --raid-devices=4 /dev/sd[cdef]3
mdadm --create /dev/md3 --level=raid5 --raid-devices=3 /dev/sd[def]4
mdadm --create /dev/md4 --level=raid1 --raid-devices=2 /dev/sd[ef]5
更新 raid config
mdadm --detail --scan >> /etc/mdadm.conf
6) 查看 softraid 狀態
gentoo_dev ~ # cat /proc/mdstat
Personalities : [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md4 : active raid1 sdf5[1] sde5[0]
1023988 blocks super 1.2 [2/2] [UU]
md3 : active raid5 sdf4[3] sde4[1] sdd4[0]
2046976 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU]
md2 : active raid5 sdf3[4] sde3[2] sdd3[1] sdc3[0]
3070464 blocks super 1.2 level 5, 512k chunk, algorithm 2 [4/4] [UUUU]
md1 : active raid5 sdf2[5] sde2[3] sdd2[2] sdc2[1] sdb2[0]
4093952 blocks super 1.2 level 5, 512k chunk, algorithm 2 [5/5] [UUUUU]
md0 : active raid5 sdf1[5] sde1[3] sdd1[2] sdc1[1] sdb1[0]
4093952 blocks super 1.2 level 5, 512k chunk, algorithm 2 [5/5] [UUUUU]
unused devices: <none>
7) 設定 LVM
創建物理卷 pvcreate
pvcreate /dev/md[01234]
查看物理卷信息
pvdisplay
創建卷組
vgcreate vg0 /dev/md[01234]
查看卷組信息
vgdisplay
創建邏輯卷
lvcreate -L 5g -n lvo1 vg0
-L 指定邏輯卷大小
-n 指定邏輯卷名字
創建邏輯卷
lvcreate -L 5g -n lvo1 vg0
lvcreate -L 8g -n lvo2 vg0
查看邏輯卷信息
lvdisplay
格式邏輯卷
mkreiserfs /dev/vg0/lvo1
mkreiserfs /dev/vg0/lvo2
8) Case 1 改變 partition 大小
原本 lvo1 5g -> 8g, lvo2 8g -> 5g (reiserfs)
/dev/mapper/vg0-lvo1 5242716 32840 5209876 1% /mnt/lvo1
/dev/mapper/vg0-lvo2 8388348 32840 8355508 1% /mnt/lvo2
卸載所掛載的目錄
gentoo_dev ~ # umount /mnt/lvo1
gentoo_dev ~ # umount /mnt/lvo2
先減 File System
resize_reiserfs -s-3G /dev/vg0/lvo2
再縮 LVM
lvreduce -L -3g /dev/vg0/lvo2
增加 LVM
lvextend -L +3g /dev/vg0/lvo1
在加 File System
resize_reiserfs -s+3G /dev/vg0/lvo1
9) Case2 模擬C硬碟整顆掛掉

手動模擬掛掉
mdadm --manage /dev/md0 --fail /dev/sdc1
mdadm --manage /dev/md1 --fail /dev/sdc2
mdadm --manage /dev/md2 --fail /dev/sdc3
顯示狀態 U - 表示硬碟正常 _ - 表示掛掉
entoo_dev ~ # cat /proc/mdstat
Personalities : [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md3 : active raid5 sde4[1] sdf4[3] sdd4[0]
2046976 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU]
md4 : active raid1 sde5[0] sdf5[1]
1023988 blocks super 1.2 [2/2] [UU]
md0 : active raid5 sdb1[0] sdc1[1](F) sde1[3] sdd1[2] sdf1[5]
4093952 blocks super 1.2 level 5, 512k chunk, algorithm 2 [5/4] [U_UUU]
md2 : active raid5 sde3[2] sdf3[4] sdd3[1] sdc3[0](F)
3070464blocks super 1.2 level 5, 512k chunk, algorithm 2 [4/3] [_UUU]
md1 : active raid5 sdf2[5] sdc2[1](F) sdd2[2] sdb2[0] sde2[3]
4093952 blocks super 1.2 level 5, 512k chunk, algorithm 2 [5/4] [U_UUU]
unused devices: <none>
10) /dev/sdc 3G 換成新硬碟 6G

先切新的硬碟
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 12582878
Partitions will be aligned on 2048-sector boundaries
Total free space is 294845 sectors (144.0 MiB)
Number Start (sector) End (sector) Size Code Name
1 2048 2050047 1000.0 MiB FD00 Linux RAID
2 2050048 4098047 1000.0 MiB FD00 Linux RAID
3 4098048 6146047 1000.0 MiB FD00 Linux RAID
4 6146048 8194047 1000.0 MiB FD00 Linux RAID
5 8194048 10242047 1000.0 MiB FD00 Linux RAID
6 10242048 12290047 1000.0 MiB FD00 Linux RAID
11) 加回 raid 群組
mdadm --manage /dev/md0 --add /dev/sdc1
mdadm --manage /dev/md1 --add /dev/sdc2
mdadm --manage /dev/md2 --add /dev/sdc3
12) 擴充 /dev/sdc4, /dev/sdc5, /dev/sdc6多餘的容量
A) md3 的 raid5 追加 dev/sdc4 parition 並延伸容量
mdadm --manage /dev/md3 --add /dev/sdc4
mdadm --grow /dev/md3 --raid-disks=4
pvresize /dev/md3
lvextend -L +1g /dev/vg0/lvo1
resize_reiserfs -s+1G /dev/vg0/lvo1
B) md4 的 追加 dev/sdc5 並將 raid1 轉為 raid5
查詢使用狀況,把有多餘空間的釋放出來
df -k
/dev/mapper/vg0-lvo2 5242716 2716484 2526232 52% /home/test/lvo2
/dev/mapper/vg0-lvo1 9436892 6804568 2632324 73% /home/test/lvo1
先縮 file system 2G
resize_reiserfs -s-2G /dev/vg0/lvo2
再將 lvo2 釋放2G
lvreduce -L -2g /dev/vg0/lvo2
pvdisplay 顯示底層 PV
--- Physical volume ---
PV Name /dev/md4
VG Name vg0
PV Size 999.99 MiB / not usable 3.99 MiB
Allocatable yes (but full)
PE Size 4.00 MiB
Total PE 249
Free PE 0
Allocated PE 249
PV UUID OE61gF-Bi3W-eLLu-RD7a-B32h-xn96-5O0qfg
將 /dev/md4 從 vg0 群組解除
vgdisplay -v 確定群組
pvmove -v /dev/md4 移走md4所有資料到其他群組
vgreduce vg0 /dev/md4
vgdisplay -v 再次確認已移除 md4
pvremove /dev/md4 刪除pv
mdadm --stop /dev/md4 停止 raid1 服務
mdadm --create /dev/md4 --level=raid5 --raid-devices=3 /dev/sd[cef]5 從新建立raid5
mdadm --create /dev/md5 --level=raid1 --raid-devices=2 /dev/sd[cf]6 建立raid1
更新raid config
nano -w /etc/mdadm.conf 註解舊的raid config
mdadm --detail --scan >> /etc/mdadm.conf 更新raid config
/dev/md4 & /dev/md5 建立 PV 物理卷
pvcreate /dev/md[45]
將新物理卷加入vg0群組
vgextend vg0 /dev/md[45]
vgdisplay -v 顯示群組詳細狀況
gentoo_dev ~ # vgdisplay
--- Volume group ---
VG Name vg0
System ID
Format lvm2
Metadata Areas 6
Metadata Sequence No 14
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 1
Max PV 0
Cur PV 6
Act PV 6
VG Size 16.58 GiB
PE Size 4.00 MiB
Total PE 4244
Alloc PE / Size 3072 / 12.00 GiB
Free PE / Size 1172 / 4.58 GiB
VG UUID TOFdqE-sJfn-LzXt-ILpQ-fyEC-Iwzf-xs7ZCD
將 /dev/vg0/lvo2 由3G延伸至7G
lvextend -L +4G /dev/vg0/lvo2
File system 也要調整+4G
resize_reiserfs -s+4G /dev/vg0/lvo2
掛載回去
mount /dev/vg0/lvo2 /home/test/lvo2
顯示掛載容量清單...
gentoo_dev ~ # df -k
Filesystem 1K-blocks Used Available Use% Mounted on
rootfs 20969852 2295796 18674056 11% /
udev 10240 4 10236 1% /dev
/dev/sda3 20969852 2295796 18674056 11% /
tmpfs 2026968 388 2026580 1% /run
rc-svcdir 1024 52 972 6% /lib64/rc/init.d
cgroup_root 10240 0 10240 0% /sys/fs/cgroup
shm 2026968 0 2026968 0% /dev/shm
/dev/mapper/vg0-lvo1 9436892 6804568 2632324 73% /home/test/lvo1
/dev/mapper/vg0-lvo2 7339804 2716484 4623320 38% /home/test/lvo2
13) 完畢!</none></none>
Have a nice day~