引言
LVM是邏輯盤卷管理(Logical Volume Manager)的簡稱,它是Linux環境下對磁盤分區進行管理的一種機制,LVM是建立在硬盤和分區之上的一個邏輯層,來提高磁盤分區管理的靈活性。前面談到,LVM是在磁盤分區和文件系統之間添加的一個邏輯層,來爲文件系統屏蔽下層磁盤分區佈局,提供一個抽象的盤卷,在盤捲上建立文件系統。物理卷(physical volume)物理卷就是指硬盤分區或從邏輯上與磁盤分區具有同樣功能的設備(如RAID),是LVM的基本存儲邏輯塊,但和基本的物理存儲介質(如分區、磁盤等)比較,卻包含有與LVM相關的管理參數。
Linux用戶安裝Linux操作系統時遇到的一個最常見的難以決定的問題就是如何正確地給評估各分區大小,以分配合適的硬盤空間。而遇到出現 某個分區空間耗盡時,解決的方法通常是使用符號鏈接,或者使用調整分區大小的工具(比如PatitionMagic等),但這都只是暫時解決辦法,沒有根本解決問題。隨着Linux的邏輯盤卷管理功能的出現,這些問題都迎刃而解,用戶在無需停機的情況下方便地調整各個分區大小。
DMDevice Mapper Kernel Architecture(內核模塊)
功能:RAID,LVM2,快照,多路徑(多線路),實現數據存儲設備的尋路,鏡像功能,動態擴展
基本術語
Logical Volume 上層
可以動態擴展,每一個LV就一個文件系統分區 LE其實就是PE,只是站在LV角度,LV就像分區。
Volume Group 中層
可以劃分多個LV ,制定多少PE,給LV多少PE,就是一個存儲空間。
Physical Volume 底層
沒有加入VG之前是沒有PE大小和數量的,PE(底層中塊,邏輯存儲單元),PV對設備部挑剔,可以是任何設備。
如圖:
物理卷管理命令
pvs 查看物理卷
pvdiskplay 詳細查看物理卷
pvcreate 創建物理卷
/dev/sdb{5,6}
pvmove 移動目標物理卷內數據到其他物理卷
/dev/sdb6
pvremove 抹除目標物理捲上的數據
/dev/sdb6
pvscan 掃描物理卷
卷組管理命令
vgs 查看卷組
vgdisplay 詳細查看卷組
vgcreate 創建卷組
-s #默認是4MB,設置PE大小
myvg /dev/sdb{5,6}
vgremove 刪除VG(只有沒有LV的時候可以隨便刪除)
myvg
vgreduce 從卷組中移除物理卷
myvg /dev/sdb6
vgextend 添加物理卷至卷組
myvg /dev/sdb7
邏輯卷管理命令
lvs 查看邏輯卷
lvdisplay 詳細查看邏輯卷
lvcreate 創建邏輯卷
-n name 名字
-L num[M|G] 制定大小
lvcreate -n testlv -L 2G myvg
mke2fs -j /dev/myvg/testlv(鏈接文件)
mount /dev/myvg/testlv /mnt
mount
/dev/mapper/myvg-testlv (真正的設備文件) on /mnt type ext3 (rw)
umount /mnt (先卸載,移除邏輯卷)
lvremove 移除邏輯卷
/dev/myvg/testlv(鏈接文件)
/dev/mapper/myvg-testlv (真正的設備文件)
擴展邏輯卷
lvextend 擴展物理邊界(在線擴展,不影響源數據)
-L[+]# 增大多少,不寫+號,別是擴展到多少
/path/to/lv
lvextend -L 140M /dev/myvg/testlv (在線擴展,不影響源數據)
resize2fs 擴展邏輯邊界
-p 能擴展多少就擴展多大(和物理邊界一樣)
/path/to/lv 5G 修復邏輯卷邊界爲5G,不能超過物理邊界
resize2fs -p /dev/myvg/testlv 擴展邏輯邊界和邊界一致
縮減邏輯卷
注意:1、不能在線縮減,得先umount
2、確保縮減後的空間大小依然能存儲原有的所有數據
3、在縮減之前應該先強行檢查文件,以確保系統處於一至性狀態。
umount /mnt 1
df -lh 2
e2fsck -f /dev/myvg/testlv 3
resize2fs 縮減邏輯邊界
resize2fs /dev/myvg/testlv 60M 縮減至多大
lvreduce 縮減物理邊界
lvreduce -L 60M /dev/myvg/testlv
vim /etc/fstab 永久生效
mount -a 加載/etc/fstab條目
mount 查看是否生效
df -lh 查看物理空間是否縮小
快照卷
注意:1、生命週期爲整個數據時長:在這段時長,數據額的增加量不能超出快照卷大小
2、快照卷應該是隻讀的
3、快照卷和原卷在同一卷組內
lvcreate
-s 聲明是快照卷
-p r|w 權限
lvcreate -L # -n SLV_NAME -p r /path/to/lv
模擬快照過程
cp /etc/inittab /mnt lvcreate -L 50M -n testlv-snap -s -p r /dev/myvg/testlv 創建快照卷 touch /mnt/1 vi /mnt/inittab 刪除後2行 mkdir snap mount /dev/myvg/testlv-snap /snap 掛載快照卷 tar -jcf /tmp/backup.tar.bz2 /snap/inittab 備份快照卷 或者cd /snap tar -jcf /tmp/backup.tar.bz2 inittab umount /snap 卸載快照卷 lvremove /dev/myvg/testlv-snap 刪除快照卷(結束其生命週期) rm -rf /mnt/* 刪除源目錄所有文件 tar xf /tmp/backup.tar.bz2 -C /mnt/ 還原至當前路徑下 ls snap 目錄下有快照時的inittab文件