LVM:Logical Volumn Manager 邏輯卷管理linux
是用來作什麼的?bash
lvm將存儲設備變成PV,而後把一個或多個PV組織成一個或多個卷組,再在卷組上建立LV。建立好LV後對其格式化,就能夠掛載使用了。用LVM管理的硬盤好處是:不關機對分區大小調整,擴容方便,一個分區能夠位於多塊硬盤上。對每一個分區的大小沒有須要。能夠作快照卷。ide
名詞解釋url
pv:物理卷,位於LVM的最底層,每一個pv由一個分區組成。只有把分區標記爲pv後才能加入vg。spa
vg: 卷組,由一個或多個pv組成,卷組用來管理pv,刪除、添加pv在這裏完成。pe的大小也在這裏指定。3d
pe:物理盤區,位於pv中。默認4M,單位只能爲2的N次方,4M、8M等。建立卷組的時候指定後不能再更改。是卷組分配給lv最小容量單位。blog
lv:邏輯卷,建立好lv後格式化lv,而後再掛載就可使用了。進程
快照卷: 經過很短的時間對某個分區作一個快照。是一種特殊的lv,通常不住這裏寫數據,用來作備份。應用場景:對某個分區作備份時,可能須要一個小時。假如第一個複製是的A文件,最後一個複製的B文件,就有可能出現A文件的內容是一小時以前的,複製B文件時可能時間已通過去了一個小時,B文件內容是一小時以後的。這樣整個數據就出現了有始無終,這就很不妥了。若是沒有鏡像卷,就須要中止原卷寫入,而後再備份,這樣的耽誤時間後果是可想而知的。而快照圈會把在快照以後有變更的文件放到本身的空間保存一份,沒有變更的文件還會存儲在原分區上。有了這個機制,經過快照卷備份的數據都是同一個時刻的。快照卷大小由變更文件多少決定,最大與原卷同樣。快照卷與原卷必須在一個vg上。ip
lvm建立順序:硬盤分區-->把分區變成pv-->建立vg-->建立lv-->格式化lv-->掛載rem
注意:硬盤分區時,必定要標記分區類型爲8e。如不標記有可能把pv拿到其它系統上掃描不到此分區作過pv。
命令
PV相關命令
pvcreate 建立卷組
pvs 查看當前系統的物理卷組
pvdisplay 查看當前系統的物理卷組的詳細信息
pvremove 移除pv
如:pvremove /dev/sdb1
pvmove 把指定pv中的數據都移動到其它pv中,前提其它pv有足夠空間。
如:pvmove /dev/sdb1
pvscan 當pv移動到其它計算機上時pv掃描,
VG相關命令
vgcreate 建立vg
-s: 指定pe的大小,單位有k,m,g,t,e,p 但要是2的N次方,沒有特殊要求不用指定。
vgs 顯示當前系統的vg信息,(vg0是系統自帶的。)
vgdisplay 顯示當前系統的vg詳細信息
vgremove 刪除vg命令
vgextend vg擴展
vgreduce 對vg進行縮減,若是vg中的pv有數據,須要用pvmove移動pv中的數據
vgscan vg掃描命令
vgrename vg更名
LV相關命令
lvcreate 建立lv
-n lvname:指定lv名字
-L 2G:指定lv的大小經常使用的單位有m,M,g,G,t,T。好比這裏指定2G。
-s 建立快照卷
-p 指定權限,r爲只讀,rw爲讀寫。
lvcreate -n mylv -L 2500G myvg
lvs 顯示lv
lvdisplay 顯示lv,更詳細
lvremove 移除lv
lvextend 擴展lv
lvreduce 縮減lv
lvscan 掃描lv
其它命令
resizee2fs 增長或縮減文件系統的命令
fuser 查看某個掛載點是否有進程使用
ex2fsck 檢測ext繫系文件系統。
建立一個2t的lv,建立好後對其擴展到2.5T。而後對其作快照卷。(以ext系統文件系統示例)
建立LVM
1,系統上掛了5塊500G的硬盤,先對2塊硬盤分區,指定分區類型標記爲8e。
#fidsk /dev/sdc
2,把這分好區的硬盤建立成pv
#pvcreate /dev/sd{c,d}1
提示建立成功
#pvs
/dev/sda2 是系統自帶的。
3,建立卷組
#vgcreate myvg /dev/sd{c,d}1 #vgs
使用pvdisplay命令查看更詳細的信息
4,建立好vg後就能夠建立lv了。
#lvcreate -n mystor -L 999g myvg #lvs
建立好lv後其設備文件在/dev/下和vg名同樣的目錄裏看到鏈接文件。
5,格式化,掛載使用。
#mkfs -t ext4 /dev/myvg/mystor #mount /dev/myvg/mystor /data
爲了之後開機系統自動掛載,給/etc/fstab文件中加入一行
擴展LVM
1,新硬盤分區,而後添加到vg中
#vgextend myvg /dev/sde1 /dev/sdf1 #vgs
2,加進來了,開始擴展lv
#lvextend -L +500g /dev/myvg/mystor
成功了
#lvs
3,該擴展文件系統了。
#resize2fs /dev/myvg/mystor
擴展前
擴展後
lvm 建立快照卷
在建立快照卷前必定要確保沒有程序對原卷作寫操做,不然有建立快照時會把文件內容正在改變時候時態作爲快照。爲了確保儘可能減小作快照時佔用lv的時候,這裏把三條命令放在一塊兒執行了,第一句命令的意思是臨時把原卷的掛載點設置爲只讀,第二句命令建立快照卷,第三句命令把前面修改原卷掛載點還原。
mount -o remount,ro /dev/myvg/mystor && lvcreate -L 1g -s -p r -n mystor-snap /dev/myvg/mystor && mount -o remount,rw /dev/myvg/mystor /data
命令太長,沒有所有截下來。
而後掛載快照卷
備份完成後快照卷卸載,而後刪除快照卷。這時留下快照卷已經沒有意義了。
總結
建立LVM的步驟:fdisk建立分區,並標記分區類型爲8e(linux lvm)-->建立pv-->建立vg(是否指定pe大小)-->建立lv-->格式化lv-->掛載
擴展lv的步驟:若是vg空間不夠須要給vg添加空間,若是空間足夠則使用lvextend命令擴展,而後使用resizee2fs命令擴展分區容量。
快照卷:必須與原卷在一個vg,且vg要有足夠空間。建立快照卷的時候要保證原卷沒有程序訪問。儘可能用最小時間建立原卷。掛載快照卷,備份完成後刪除快照卷。
縮減lv:卸載lv(umount)-->使用(e2fsck -f)強制檢測文件系統,確保檢測後沒有問題-->使用resize2fs 命令縮減文件系統-->使用lvreduce 命令縮減-->掛載縮減後的lv。 注:縮減最小不能低於已使用的空間。
縮減vg:使用pvmove命令移動要取出pv上的文件到其它pv。前題其它pv空間要足夠-->用vgreduce命令移除pv。
最後附上馬哥說過的話:「縮減有危險,操做需謹慎!」