LVM的管理
我們先來介紹一下DM,以及邏輯卷的原理:
DM:Device Mapper 設備映射,用於提供邏輯設備的機制
1、將多個物理設備組合成一個邏輯設備
2、實現RAID,LVM2(邏輯卷2)的功能
3、LVM2功能實現的核心
4、能夠實現動態擴展和縮小文件系統空間
5、支持鏡像的功能
DM中將多個物理設備組織成邏輯設備的方式:
Linear(線性設備)、mirror(類似於鏡像)、snapshot(快照)、multipath(多路徑)
快照:訪問同一個數據的另一條路徑。實現數據備份
DM中多個物理磁盤組織成一個邏輯設備,邏輯設備上需要創建類似邏輯分區才能使用。
物理卷PV:Physical Volume (即多個物理設備)
卷組VG:Volume Group (邏輯設備,PV的組合)
邏輯卷:Logical Volume (可動態擴展的分區)
每一個邏輯卷都是一個獨立的文件系統,它有兩個邊界:物理邊界,邏輯邊界
可對邏輯卷創建快照,邏輯卷和快照都存於VG中。
卷組是由一個個的PE組成,而PE過渡到邏輯卷時,被稱為VE
PE:Physial Extend,物理盤區。物理卷只有加入卷組後才能成為PE
LE:Logical Extend,邏輯盤區
接下來說一下邏輯卷的管理:
建議將邏輯卷創建到raid上。(硬件raid)
pv:
pvcreate:創建pv。
-f:強制創建
例:# pvcreate /dev/sda{10,11}
pvscan | pvs:掃描當前系統上一共有多少個pv
pvdisplay:查看pv的詳細信息,可指定一個pv
例:# pvdisplay /dev/sda10
pvmove:將存有數據的盤區裡的數據移動到另一個盤區中
例:# pvmove /dev/sda10
pvremove:將一個盤區裡的源數據給抹除掉
例:# pvremove /dev/sda10 (刪除/dev/sda10盤區)
准備創建pv是需要先有幾個磁盤,且將磁盤類型設定為8e,即LVM類型。
vg:
vgcreate:創建vg
-s #:指定PE大小,默認為4M
例:# vgcreate myvg /dev/sda{10,11}
vgremove:刪除vg
例:# vgremove myvg
vgextend:擴展vg的大小,即添加一個PE
例:# vgextend myvg /dev/sda12
vgreduce:縮減vg的大小,即移除一個PE的過程
例:# vgreduce myvg /dev/sda10
vgs:查看當前系統上有多少個卷組
vgdisplay:查看vg的詳細信息,可指定一個vg
lv:
lvcreate:創建lv
-n:指定名字
-L:指定大小
lvcreate -n LV_NAME -L #G VG_NAME
例:# lvcreat -L 50M -n testlv myvg
lvremove:移除lv
例:# lvremove /dev/myvg/testlv
lvs:查看當前系統上有多少個lv
vgdisplay:查看lv的詳細信息,可指定一個lv
例:# vgdisplay /dev/myvg/testlv
擴展和縮減邏輯卷
前提:不影響邏輯卷中的數據
一、擴展邏輯卷
先擴展物理邊界,再擴展邏輯邊界
擴展邏輯卷的物理邊界
lvextend
-L [+]# /path/to/lv
例:# lvextend -L 5G /dev/myvg/testlv
擴展邏輯邊界
resize2fs
resize2fs /path/to/lv 5G
-p :擴展到最大
例: # resize2fs /dev/myvg/testlv 5G
二、縮減邏輯卷
注意:1、不能在線縮減,得先卸載;
2、確保縮減後的空間大小依然能存儲原有的所有數據;
3、在縮減之前應該先強行檢查文件,以確保文件系統處於一致性狀態
其順序:
df -lh (查看邏輯卷已用的空間)
umount (卸載)
mount(查看是否卸載成功)
e2fsck -f(強行檢查文件系統)
resize2fs (縮減邏輯邊界)
resize2fs /path/to/pv #G
例:# resize2fs /dev/myvg/testlv 3G
lvreduce (縮減物理邊界)
lvreduce -L [-]# /path/to/lv
例: # lvreduce -L 3G /dev/myvg/testlv
重新掛載
三、快照卷
注意:
1、生命周期為整個數據訪問時長;在這段時長內,數據的增長量不能超出快照卷大小
2、快照卷應該是只讀的;
3、跟原卷在同一卷組內;
用法:
lvcreate
-s:快照卷
-p r|w:快照卷的權限
格式:
lvcreate -L # -n SLV_NAME -p r /path/to/lv
例:# lvcreate -L 50M -n testlv-snap -s -p r /dev/myvg/testlv