1、什么是lvm
LVM是邏輯卷管理(Logical Volume Manager)的簡稱,它是建立在物理存儲設備之上的一個抽象層,允許你生成邏輯存儲卷,與直接使用物理存儲在管理上相比,提供了更好靈活性。
LVM將存儲虛擬化,使用邏輯卷,你不會受限于物理磁盤的大小,另外,與硬件相關的存儲設置被其隱藏,你可以不用停止應用或卸載文件系統來調整卷大小或數據遷移.這樣可以減少操作成本。
2、lvm的基本概念
* 物理存儲介質(The Physical Media)
這里指系統的存儲設備,如:/dev/hda1、/dev/sda等等,是存儲系統最低層的存儲單元。
* 物理卷(PV, Physical Volume)
物理卷就是指磁盤,磁盤分區或從邏輯上與磁盤分區具有同樣功能的設備(如RAID),是LVM的基本存儲邏輯塊,但和基本的物理存儲介質(如分區、磁盤等)比較,卻包含有與LVM相關的管理參數。當前LVM允許你在每個物理卷上保存這個物理卷的0至2份元數據拷貝.默認為1,保存在設備的開始處.為2時,在設備結束處保存第二份備份.
* 卷組(VG, Volume Group)
LVM卷組類似于非LVM系統中的物理硬盤,其由物理卷組成??梢栽诰斫M上創建一個或多個“LVM分區”(邏輯卷),LVM卷組由一個或多個物理卷組成。
* 邏輯卷(LV, Logical Volume)
LVM的邏輯卷類似于非LVM系統中的硬盤分區,在邏輯卷之上可以建立文件系統(比如/home或者/usr等)。
*線性邏輯卷 (Linear Volumes)
一個線性邏輯卷聚合多個物理卷成為一個邏輯卷.比如,如果你有兩個60GB硬盤,你可以生成120GB的邏輯卷.
*條塊化的邏輯卷(Striped Logical Volumes)
當你寫數據到此邏輯卷中時,文件系統可以將數據放置到多個物理卷中.對于大量連接讀寫操作,它能改善數據I/O效率.
*鏡像的邏輯卷(Mirrored Logical Volumes)
鏡像在不同的設備上保存一致的數據.數據同時被寫入原設備及鏡像設備.它提供設備之間的容錯。
*快照卷(Snapshot Volumes)
快照卷提供在特定瞬間的一個設備虛擬映像,當快照開始時,它復制一份對當前數據區域的改變,由于它優先執行這些改變,所以它可以重構當前設備的狀態。
* PE(physical extent)
每一個物理卷被劃分為稱為PE(Physical Extents)的基本單元,具有唯一編號的PE是可以被LVM尋址的最小單元。PE的大小是可配置的,默認為4MB。
* LE(logical extent)
邏輯卷也被劃分為被稱為LE(Logical Extents) 的可被尋址的基本單位。在同一個卷組中,LE的大小和PE是相同的,并且一一對應。
和非LVM系統將包含分區信息的元數據保存在位于分區的起始位置的分區表中一樣,邏輯卷以及卷組相關的元數據也是保存在位于物理卷起始處的VGDA(卷組描述符區域)中。VGDA包括以下內容:
PV描述符、VG描述符、LV描述符、和一些PE描述符
。系統啟動LVM時激活VG,并將VGDA加載至內存,來識別LV的實際物理存儲位置。當系統進行I/O操作時,就會根據VGDA建立的映射機制來訪問實際的物理位置。
3、邏輯卷的使用
1、創建物理卷
pvcreate /dev/sdb
Physical volume "/dev/sdb" successfully created
可以通過lvmdiskscan來查看那些設備被做成了物理卷
2、顯示物理卷:pvscan pvs pvdisplay
#pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 VolGroup00 lvm2 a- 3.88G 0
/dev/sdb lvm_test lvm2 a- 508.00M 0
/dev/sdc lvm2 — 512.00M 512.00M
#pvscan
PV /dev/sdb VG lvm_test lvm2 [508.00 MB / 0 free]
PV /dev/sda2 VG VolGroup00 lvm2 [3.88 GB / 0 free]
PV /dev/sdc lvm2 [512.00 MB]
Total: 3 [4.87 GB] / in use: 2 [4.37 GB] / in no VG: 1 [512.00 MB]
#pvdisplay
— Physical volume —
PV Name /dev/sdb
VG Name lvm_test
PV Size 512.00 MB / not usable 4.00 MB
Allocatable yes (but full)
PE Size (KByte) 40Array6
Total PE 127
Free PE 0
Allocated PE 127
PV UUID Pkp5Cq-SD1w-ANw2-cDDe-BGtw-nmFS-jTxXFD
— NEW Physical volume —
PV Name /dev/sdc
VG Name
PV Size 512.00 MB
Allocatable NO
PE Size (KByte) 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID BNCVEE-YWlK-0mrV-LOcf-0tCY-WWNw-DeySk0
3、移除物理卷
#pvremove /dev/sdc
Labels on physical volume "/dev/sdc" successfully wiped
4、創建卷組
# vgcreate lvm_test /dev/sdc1 /dev/sdb
Volume group "lvm_test" successfully created
vgcreate命令第一個參數是指定該卷組的邏輯名:lvm_test。后面參數是指定希望添加到該卷組的所有分區和磁盤。vgcreate在創建卷組
lvm_test 以外,還設置使用大小為4 MB的PE(默認為4MB),這表示卷組上創建的所有邏輯卷都以 4 MB
為增量單位來進行擴充或縮減。PE最小為1KB ,并且必須總是1KB的 2^n 的倍數(使用-s指定,具體請參考man vgcreate)。
5、添加新的物理卷到卷組中
pvcreate /dev/sdc
vgextend lvm_test /dev/sdc
6、顯示卷組:vgs vgdisplay
# vgs
VG #PV #LV #SN Attr VSize VFree
VolGroup00 1 2 0 wz–n- 3.88G 0
lvm_test 1 1 0 wz–n- 508.00M 0
# vgdisplay
— Volume group —
VG Name lvm_test
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 10
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 1
Max PV 0
Cur PV 1
Act PV 1
VG Size 508.00 MB
PE Size 4.00 MB
Total PE 127
Alloc PE / Size 127 / 508.00 MB
Free PE / Size 0 / 0
VG UUID uJx24t-WWdY-vffu-Array7Of-mgFB-FEov-eRwzAf
7、從卷組中去除物理卷
vgreduce lvm_test /dev/sdc
8、創建邏輯卷
lvcreate -L 150M -n test lvm_test
如果需要創建使用全部卷組的邏輯卷,可以使用指定pe塊的方式
vgdisplay lvm_test | grep "Total PE"
Total PE 4731
lvcreate -l 4731 -n test lvm_test (默認一個PE為4k,總容量為4731x4k)
9、創建條塊化邏輯卷
lvcreate -L 500M -i 2 -n test lvm_test
-i 2指此邏輯卷在兩個物理卷中條塊化存放數據,默認一塊大小為64KB
10、創建鏡像卷
#lvcreate -L 52M -m 1 -n test lvm_test /dev/sdb1 /dev/sdc1 /dev/sdb2
Logical volume "test" created
-m 1表示只生成一個單一鏡像,鏡像分別放在/dev/sdb1和/dev/sdc1上,鏡像日志放在/dev/sdb2上.
11、創建快照卷
#lvcreate -L 10M -s -p r -n snaptest /dev/lvm_test/test
12、刪除邏輯卷
#lvremove /dev/lvm_test/test
13、擴展邏輯卷
lvextend -L +1G /dev/lvm_test/test
上面的命令實現了邏輯卷的擴展,接下來要實現文件系統的擴展,可以使用resize2fs
fsck /dev/lvm_test/test
resize2fs /dev/lvm_test/test
resize是針對ext2系統實現文件系統縮減,如果centos7的xfs的文件系統,可以使用xfs_growfs
xfs_growfs和resize2fs的不同點是resize2fs采用邏輯卷名稱,xfs_growfs采用掛載點。
14、縮減邏輯卷
fsck /dev/lvm_test/test
resize2fs /dev/lvm_test/test 11G
lvreduce -L 11G /dev/lvm_test/test
resize2fs /dev/lvm_test/test (通過此命令確認是否文件系統大小與收縮后的邏輯卷大小匹配)
縮減有風險,操作需謹慎。
原創文章,作者:N25_隨心,如若轉載,請注明出處:http://www.www58058.com/65558
贊~總結的很詳細,也給出了相應的提示~繼續加油!