LVM是 Logical Volume Manager(邏輯卷管理)的簡寫,它是Linux環境下對磁盤分區進行管理的一種機制,它由Heinz Mauelshagen在Linux 2.4內核上實現,目前最新版本爲:穩定版1.0.5,開發版1.1.0-rc2,以及LVM2開發版。
與傳統磁盤分區相比,LVM爲計算機提供了更高層次的磁盤存儲。LVM是建立在硬盤和分區之上的一個邏輯層,來提高磁盤分區管理的靈活性。通過LVM系統管理員可以輕鬆管理磁盤分區,如:將若干個磁盤分區連接爲一個整塊的卷組(volumegroup),形成一個存儲池。管理員可以在卷組上隨意創建邏輯卷組(logicalvolumes),並進一步在邏輯卷組上創建文件系統。管理員通過LVM可以方便的調整存儲卷組的大小,並且可以對磁盤存儲按照組的方式進行命名、管理和分配,例如按照使用用途進行定義: “development”和“sales”,而不是使用物理磁盤名“sda”和“sdb”。而且當系統添加了新的磁盤,通過LVM管理員就不必將磁盤的文件移動到新的磁盤上以充分利用新的存儲空間,而是直接擴展文件系統跨越磁盤即可。
LVM概念
物理卷:
物理卷是指硬盤分區或者從邏輯上看起來和硬盤分區類似的設備(比如RAID設備)。
邏輯卷:
一個或者多個物理卷組成一個邏輯卷。對於LVM而言,邏輯卷類似於非LVM系統中的硬盤分區。邏輯卷可以包含一個文件系統(比如/home或者/usr)。
卷組:
一個或者多個邏輯卷組成一個卷組。對於LVM而言,卷組類似於非LVM系統中的物理硬盤。卷組把多個邏輯卷組合在一起,形成一個可管理的單元。
物理塊physical extent(PE)
物理卷按大小相等的“塊”爲單位存儲,塊的大小與卷組中邏輯卷塊的大小相同。
邏輯塊logical extent(LE)
邏輯卷按“塊”爲單位存儲,在一卷組中的所有邏輯卷的塊大小是相同的。
LVM使用結構
首先是實際的物理磁盤及其劃分的分區和其上的物理卷(PV);
一個或多個物理卷可以用來創建卷組(VG);
然後基於卷組可以創建邏輯卷(LV);
只要在卷組中有可用空間,就可以創建邏輯卷。文件系統就是在邏輯捲上創建的,而後可以在操作系統上掛載、訪問
LVM實現過程:
一、準備磁盤分區
通過使用fdisk創建磁盤分區,我們要創建4個5G分區,注意,並不要求分區的大小一致。同樣,分區格式需要使用‘8e’類型來使他們可用於LVM。以下以兩個分區操作爲例,餘下兩個分區操作同此例。
分區完成後使用partprobe /dev/sd{b,c}
如報錯無法識別則使用partx -a partition /dev/sdb 否則只能重啓系統
#partitions 表示分區/dev/sdb{1,2}、/dev/sdc{1,2}
二、創建物理卷(PV)
用法: pvcreate partitions
查看PV命令:
pvdisplay [partitions] 如:pvdisplay /dev/sdb1
pvs [partitions] 如:pvs /dev/sdb1
三、創建卷組(VG)
用法: vgcreate VGGroupName DevicePath
選項: -s 可指定卷組PE大小
查看VG命令:
vgdisplay [VGGroupName] 如:vgdisplay MyVg
vgs [VGGroupName] 如:vgs MyVg
四、創建邏輯卷(LV)
用法: lvcreate LVSize LVName VGName
選項: -L 指定邏輯卷大小
-n 指定邏輯卷名稱
查看LV命令:
lvdisplay [LVName] 如:vgdisplay MyLv
lvs [LVName] 如:vgs MyLv
邏輯卷設備文件有兩種方式查看:
/dev/VG_NAME/LV_NAME
/dev/mapper/VG_NAME-LV_NAME
如: /dev/mapper/MyVg-MyLv
五、擴展卷組(VG)
用法: vgextend VGGroupName PVDevice
# 添加pv,將原15G大小VG擴展至20GVG
六、縮減卷組(VG)
用法: vgreduce VGGroupName PVDevicePath
卷組縮減分三步:
1、確定要移除的PV,將此PV數據轉移至其它PV
用法: pvmove DestinationPhysicalVolume
2、從卷組中將此PV移除
用法: vgreduce VGGroupName PVDevicePath
3、刪除VG中PV
用法: pvremove PVDevicePath
七、移除邏輯卷
用法:lvremove LVDevice
八、移除卷組
用法:vgremove VGGroupName
九、擴展邏輯卷
1、擴展物理邊界
用法: lvextend Options LVDevice
選項: -L 指定邏輯卷大小,如直接指定大小表示擴展到多少,如使用+號加大小表示擴展多少
# 確定當前邏輯卷所在的卷組有足夠的空閒空間
# 邏輯卷擴展必須先擴展物理邊界,再擴展邏輯邊界,擴展完成後需檢測文件系統
2、擴展邏輯邊界
用法: resize2fs Device
3、文件系統檢測
用法: fsck Options Device 注: fsck只能檢測ext文件系統
e2fsck Options Device
十、縮減邏輯卷
# 邏輯捲縮減必須先縮減邏輯邊界,再縮減物理邊界,縮減完成後需檢測文件系統
1、卸載並強行檢測文件系統
用法: e2fsck Options Device
2、縮減邏輯邊界
用法: resize2fs Device New_size
# 縮減邏輯邊界時需指定size大小
3、縮減物理邊界
用法: lvreduce Options LVDevice
選項: -L 指定邏輯卷大小,如直接指定大小表示縮減到多少,如使用-號加大小表示縮減多少
注: 縮減邏輯、物理邊界-L選項指定大小必須一致
十一、創建快照卷
用法:lvcreate LVSize LVName VGName
選項: -s 創建快照卷
-p 指定權限{r|rw}
(1) 生命週期爲整個數據時長;在這段時長內,數據的增長量不能超出快照卷大小;
(2) 快照卷應該是隻讀的;
(3) 跟原卷在同一卷組內;