1.LVM是什麼?
LVM爲邏輯卷管理器,可以將多個物理分區整合起來,讓其看起來好像是一個大磁盤,LVM最大的用處爲彈性地調整文件系統的容量。
與LVM相關的幾個概念
PV 物理卷 位於LVM最底層,通過pvcreate命令將磁盤分區(分區的SystemID需要實現轉換成8e,通過fdisk命令實現)轉換而成
VG 卷用戶組 由多個PV整合而成,也就是上面說的大磁盤,其大小取決於PE的大小和個數。默認VG最大可以包含65536個PE(一個PE大小默認爲4MB),即256GB。
PE 物理擴展塊,是LVM的最小存儲塊,類似與文件系統的block
LV 邏輯卷 由VG切分而成,是可以被格式化文件系統的類似的分區。LV的設備名的格式/dev/vgname/lvname
LVM 是通過交換PE來實現彈性調整文件系統的容量的。
實現的流程:創建PV----創建VG-----創建LV----格式化LV-----掛載使用。
2.如何實現創建LV?
創建PV
首先創建4個分區,並且將systemid改爲8e
創建PV pvcreate /dev/sda{9,10,11,12}
創建VG
使用vgcreate命令,-s用來指定PE的大小
如果需要增減VG的容量,使用vgextend命令 格式爲vgextend vgname /dev/sda#
劃分LV
使用lvcreate命令
格式爲lvcreate [options] vgname
-l 通過PE的數量指定LV的大小
-L 通過容量來指定LV的大小 單位可以G,M,T
-n 指定LV的名字
格式化LV並且掛載
3.增加LV的容量
五步走
使用fdisk創建分區---創建PV---使用vgextend加入新的PV擴展VG---利用lvresize將新的PV內的PE加入到LV中----使用e2fsck檢查文件系統----使用resize2fs擴大文件系統的容量
pvcreate /dev/sda13 #新建PV
vgextend myvg /dev/sda13 #擴展VG
lvresize -L +100M /dev/myvg/mylv #擴展LV
e2fsck -f /dev/myvg/mylv #注意,應該是強行檢車,沒有-f是不行的
resize2fs /dev/myvg/mylv #將LV的容量擴展到整個文件系統
最重要的使用lvresize命令
lvresize -l 或者-L選項 通過+來擴展LV的容量
具體格式爲lvresize -L +... /dev/vgname/lvname
4.減少LV的容量
步驟
umount /dev/myvg/mylv #LVM不支持在線縮小,但是放大可以,所以應該先卸載
e2fsck -f /dev/myvg/mylv #強行進行磁盤檢查
resize2fs /dev/myvg/mylv 400M #降低文件系統的容量,原來是500M,現在減小到400M
lvresize -L -100M /dev/myvg/mylv #降低LV的容量
pvdisplay #將某個PV抽離VG的時候,必須要確定裏面的PE不被使用纔可以,所以使用pvdisplay查看哪個PV的PE是沒有使用的,將要抽離的PV中的含有數據的PE移動到該PV裏
pvmove /dev/sda9 /dev/sda13 #轉移PE
vgreduce myvg /dev/sda9將/dev/sda#抽離出VG
pvremove /dev/sda9
5.LVM的重要應用,快照 snapshot,可以用來備份數據
快照的原理:將系統信息記錄下來,如果有數據改動了,就將原來的數據移到快照區,沒有改動的區域由文件系統和快照區共享。
創建快照區
pvcreate /dev/sda9
vgextend myvg /dev/sda9
lvcreate -L 100M -s -n mysnapshot /dev/myvg/mylv #最重要的是-s選項,意思是創建快照區,最後的/dev/myvg/mylv 是"被快照"的文件系統
接下來掛載快照區
mkdir /mnt/snapshot
mount /dev/myvg/mysnapshot /mnt/snapshot
df #查看是否掛載成功
可以看到快照區就像是LV的一面鏡子,一樣一樣的。也就是我們在掛載/dev/myvg/mylv 與/dev/myvg/mysnapshot后里面看到的數據是一樣的。
快照的重要的作用就是可以用來複原文件系統
cd /mydata
rm -rf * #搞破壞
lvdisplay /dev/myvg/mysnapshot #發現確實被佔用了一部分空間
mkdir -p /backups
cd /mnt/snapshot
tar -jcf /backups/mylv.tar.bz2 * #備份
umount /mnt/snapshot
lvremove /dev/myvg/mysnapshot
mke2fs -j /dev/myvg/mylv
mount /dev/myvg/mylv /mydata
cd /mydata
tar xf /backups/mylv.tar.bz2 #還原
6.LVM的關閉
必須按下面的流程操作進行,否則會讓文件系統出現問題。
umount /mnt/mydata #先卸載LV
lvremove /dev/myvg/mylv #刪除LV
vgchange -an myvg #讓vg不具備active 的標誌
pvremove /dev/sda{9,10,11,12,13} #刪除PV
fdisk /dev/sda #將分區的systemid由8e改爲83 具體操作不在贅述