LVM:
一、
Logical Volum Manager :邏輯卷管理器
LVM可以整合多個物理分區在一起,讓這些分區看起來是一個磁盤一樣,還可以在將來其他的物理
分區或將其從這個LVM管理的磁盤當中刪除!
物理卷(PV)id=8e ---> 卷組(Vg) --> 邏輯卷(Lv) 三層
二、特點:
一個Vg至少包含一個物理卷。
邏輯卷可用
卷組大小由物理卷改變
邏輯卷大小改變,邊界改變,不影響裏面數據
邏輯卷可以縮減,邊界縮小,不影響裏面數據(有一定風險)
快照卷
邏輯卷有快照功能,保存原卷數據某一時刻的狀態
訪問快照是快照那一時刻數據的狀態
快照非常小。
快照剛剛創建時幾乎是空的。是訪問邏輯卷的一條路徑。
在線備份
在操作數據時備份數據不完整,損壞的。 可以使用快照。
PE: 物理盤區。--- check
三、LVM組成:
PV:物理卷,實際分區需要調整系統標示符(ID)成爲8e(LVM的識別符),調整system
ID可以利用fdisk
VG:卷用戶組,所謂的LVM大磁盤就是將許多PV整個成這個VG,VG就是LVM組合起來的大磁盤
LV:最終的VG還會被切成LV,Lv就是最後可以被格式化使用的類似分區!由於PE的大小是在格式化
分區是指定的固定大小,所以呢Lv的大小也是有PE的總數所決定的!
PE:物理擴展塊,LVM默認使用的4M的PE塊,LVM最多能使用65534個PE,,是lVM中最小的存儲塊,
PE有點像是文件系統的block大小,調整PE影響VG的最大容量!
四、實現流程:
fdisk(system ID改爲8e創建邏輯卷分區)-->
pvcreat,pvscan(創建與查看物理卷)-->vgcreat,vgdisplay(以pv卷創建VG卷) -->
lvcreat,lvdisplay(從VG中切割出LV)--> mkfs,mount(格式化後掛載使用)
邏輯卷支持快照(snapshot),快照就是將當時的系統信息記錄下來,就好像照相功能一般,將來
若有任何數據改動了,則原始數據會被移動到快照區,沒有被改動的區域則由快照區與文件系統
共享,快照卷的大小取決於,數據改變大小和數據改變頻度!
五、命令參數:
PV參數:
pvscan(查詢當前系統上任何具有PV的磁盤)
pvcreate(將物理分區新建爲PV)
前期準備是:fdisk /dev/sdb n p 1 t 8e w
..#n爲新建分區,p爲主分區,1爲sdb1卷標,t更改分區屬性,8e爲LVM默認的標識符,w保
存當前的配置信息
pvcreat /dev/sdb{1,2,3}
pvscan
pvdisplay
pvdisplay(顯示出目前系統上面的PV狀態)
pvremove(將PV屬性刪除,讓該分區不具有PV屬性)
VG參數:
vgcreate(新建VG的命令)
-s 指定PE大小,單位可以是K M G T (大小寫均可)
eg:vgcreat -s 16M myvg /dev/sdb{1,2}
vgscan
vgscan
vgdisplay
vgscan(查找當前系統上是否有VG的存在) vgdisplay(顯示當前系統上的VG狀態)
vgextend(在VG內增加額外的PV)
eg: vgextend myvg /dev/sdb3 #將sdb3擴展給myvg
vgdisplay
vgreduce(在VG內刪除PV)
vgchange(設置VG是否啓動(active))
vgremove(刪除一個VG)
LV參數:
lvcreate(新建LV)
-L 後面直接指定容量,單位可以爲K M G T,最小單位爲PE
-l 後面跟的是PE的個數
-n 後面跟的是LV的名稱
eg:lvcreat -l 255 mylv mylv #將myvg全部分配給mylv,PE共255個
ll /dev/myvg/mylv
lvdisplay
mkfs -t ext3 /dev/myvg/mylv #(指定LV的全名)
mkdir /mnt/lvm
mount /dev/myvg/mylv /mnt/lvm
df -lh
cp -a /etc/* /mnt/lvm #測試一下可以lvm,複製一下試試
lvscan(查詢系統上面的LV)
lvdisplay(顯示系統上面的LV狀態)
lvextend(在LV裏面增加容量)
pvcreat /dev/sdb4 #建立新的PV
pvscan
vgextend myvg /dev/sdb4 #加大VG利用vgextend
vgdisplay
lvresize -l +200 /dev/myvg/mylv #放大LV ,利用lvr
esize
lvdisplay
df /mnt/lvm
dumpe2fs /dev/myvg/mylv #查看原本文件系統中的superblock記錄情況
resize2fs -f /dev/myvg/mylv #resize2fs的語法,-f強制進行操作
resize2fs /dev/myvg/mylv #完整的將LV 的容量擴充到整個文件 系統
df /mnt/lvm
ll /mnt/lvm
lvreduce(在LV裏面減少容量)
pvdisplay #顯示/dev/sdb中的容量大小,並嘗試計算文件系統縮小多少
pvscan
resize2fs /dev/myvg/mylv 2300M
#直接降低文件系統的容量,這裏不能將2300M寫成2.3G ,這裏不能寫小數點
umount /mnt/lvm
resize2fs /dev/myvg/mylv 2300M
e2fsck -f /dev/myvg/mylv
resize2fs /dev/myvg/mylv 2300M
mount /dev/myvg/mylv /mnt/lvm
df /mnt/lvm
lvresize -l -45 /dev/myvg/mylv #降低LV的容量,同時剩餘45個PE
lvdisplay
pvdisplay #確認/dev/sdb3是否都將PE刪除了
pvmove /dev/sdb3 /dev/sdb5 #將sdb3中的PE移動到sdb5中去
vgreduce myvg /dev/sdb3 #將sdb3從/dev/myvg中移除
pvscan
pvremove /dev/sdb3 #這裏就成功移除了 !
lvremove(刪除一個LV)
lvresize(對LV進行容量大小的調整)
-L 後面直接指定容量,單位可以爲K M G T,最小單位爲PE
-l 後面跟的是PE的個數
六、如何擴展卷:
一、lvextend
-L 3G(擴展到3G)/+2G(或者加2G) /dev/myvg/mylv
二、resize2fs /dev/myvg/mylv
七、如何縮減卷:風險大
umount /dev/myvg/mylv
e2fsck -f /dev/myvg/mylv
resize2fs /dev/myvg/mylv 2G
lvreduce -L 2G(-1G) /dev/myvg/mylv
mount /dev/myvg/mylv
八、怎麼實現卷快照:
snap_mulv 快照卷名
lvcreat -L 128M -s -p r -n snap_mylv /dev/myvg/mylv
#-L 128M指定大小 ;-p r 指定權限爲只讀 ;-n snap_mylv爲快照卷名稱; -s 創建快照
mkdir /backup 創建掛載點
mount /dev/myvg/snap_mylv /back/ 掛載快照卷
九、例如:
# fdisk /dev/sdb
n t 8e w
# partprobe
# mke2fs -j /dev/sdb5 /dev/sdb6 /dev/sdb7
# pvcreate /dev/sdb{5,6,7}
# pvdisplay /dev/sdb5 | pvs
# vgcreate myvg /dev/sdb5
# vgdisplay myvg | vgs
# vgextend myvg /dev/sdb6 /dev/sdb7
# vgs
# pvmove /dev/sdb5
# vgreduce myvg /dev/sdb5
# vgremove myvg
# vgcreate -s 16M myvg /dev/sdb6 /dev/sdb7
# vgexteng -t myvg /dev/sdb5
# lvcreate -L 5G -n mylv myvg
# lvdispaly /dev/myvg/mylv | lvs
# lvextend -L 8G(+3G) /dev/myvg/mylv
# resize2fs /dev/myvg/mylv 8G(+3G)
# umount /dev/myvg/mylv
# e2fsck -f /dev/myvg/mylv
# lvreduce -L 6G(-2G) /dev/myvg/mylv
# mount /dev/myvg/mylv /mnt
# lvcreate -L 2G -s -p r -n snap_mylv /dev/myvg/mylv
# lvreduce /dev/myvg/snap_mylv