邏輯卷創建
-
pvcreate /dev/sd{b,c,d}1
將sdb1,sdc1,sdd1生成為pv物理卷(移除用pvremove) -
vgcreate vg0 /dev/sd{b,c,d}1
將生成的幾個pv加入到卷組vg0中(-s # 指定PE大小,默認為4M,這個時候設備文件還沒生成)(移除pv用vgreduce) -
lvcreate -n lv0 -L 20G vg0
生成名為lv0,大小為20G的lv,也可以用-l 跟PE個數,或者-l 100%vg
也行
此時,生成設備文件映射-->/dev/mapper/vg0-lv0
或者/dev/vg0/lv0
,真實路徑為/dev/dm-0
-
mkfs -t ext4 /dev/vg0/lv0
創建文件系統 -
mkdir /lv0;mount /dev/vg0/lv0 /lv0
掛載文件系統
擴展(支持熱擴展,所以不需要取消掛載)
首先將要轉化成pv的盤分區格式改為8e
-
pvcreate /dev/sdf1
當pv不夠時候,pvcreate創建新的pv -
vgextend vg0 /dev/sdf1
當vg不夠用時添加vg -
lvextend -r -L +10G /dev/vg0/lv0
,擴展 +10G,也可以寫成-L 擴展后的大小,或者-l +100%free
,-r一定要寫,要不不會同步,很麻煩。
縮減(不支持熱縮減)
建議先備份
-
umount /lv0
,不支持熱縮減,所以需要先取消掛載 -
fsck -f /dev/vg0/pv0
,需要強制檢測,要不會報錯。 -
resize2fs /dev/vg0/lv0 30G
,先縮減文件系統大小 -
lvreduce -L 30G /dev/vg0/lv0
,然后縮減lv卷大小 -
mount /dev/vg0/lv0 /lv0
,重新掛載文件系統到掛載點
移除pv
-
pvdisplay
查看哪個pv存放的數據。 -
pvmove /dev/sdb1
移除sdb1上的數據到vg中另一個pv,移除是隨機的,不一定移到哪個上。 -
vgreduce vg0 /dev/sdb1
,從vg0中移除sdb1 -
pvremove /dev/sdb1
,將sdb1的pv屬性移除,現在他又成了不帶屬性的磁盤分區了。
vg跨主機遷移
1 查看LV對應的卷組是由幾個PV組合的
/dev/sdc /dev/sdd
2 查看下VG名稱,確保在目標主機上的名稱不要沖突
vgrename vg0 newvg0
lvrename /dev/vg0/lv0 /dev/newvg0/newlv0
3在源主機
umount /dev/newvg0/lv0
vgchange -an newvg0
vgexport newvg0
4 將對應所有PV,接入到目標主機
5 在目標主機
pvscan
vgimport newvg0
vgchange -ay newvg0 激活
mount /dev/newvg0/newlv0 /mnt/newlv0
快照
快照之所以這么快是因為他不是講數據拷貝過去,而是創建一個空間,當原始文件刪除修改時,才將刪除的文件放到塊快照中,這樣就只能保存創建時的文件,所以快照只能恢復到創建快照時的狀態。
注意:lv沒有格式化創建文件系統時,創建的快照也是沒有格式化的快照。
創建快照
lvcreate -n slv0 -s -p r -L 10G /dev/vg0/lv0
和創建lv的命令很像,但是加了-s表示快照,-p r表示使用只讀的格式,最后不能寫卷組名了,而是要寫創建快照的lv的路徑。
恢復快照
lvconvert --merge /dev/vg0/sslv0
注意這里跟的是快照的路徑,而且回復完成后快照就沒了。