LVM原理及PV、VG、LV、PE、LE關系圖


 

PV(physical volume):物理卷在邏輯卷管理系統最底層,可為整個物理硬盤或實際物理硬盤上的分區。
VG(volume group):卷組建立在物理卷上,一卷組中至少要包括一物理卷,卷組建立后可動態的添加卷到卷組中,一個邏輯卷管理系統工程中可有多個卷組。
LV(logical volume):邏輯卷建立在卷組基礎上,卷組中未分配空間可用於建立新的邏輯卷,邏輯卷建立后可以動態擴展和縮小空間。
PE(physical extent):物理區域是物理卷中可用於分配的最小存儲單元,物理區域大小在建立卷組時指定,一旦確定不能更改,同一卷組所有物理卷的物理區域大小需一致,新的pv加入到vg后,pe的大小自動更改為vg中定義的pe大小。
LE(logical extent):邏輯區域是邏輯卷中可用於分配的最小存儲單元,邏輯區域的大小取決於邏輯卷所在卷組中的物理區域的大小。
卷組描述區域:卷組描述區域存在於每個物理卷中,用於描述物理卷本身、物理卷所屬卷組、卷組中邏輯卷、邏輯卷中物理區域的分配等所有信息,它是在使用pvcreate建立物理卷時建立的。

=====================================================

步驟:

1.准備物理分區(Physical Partions) 
首先,我們需要選擇用於 LVM 的物理存儲器。這些通常是標准分區,但也可以是已創建的 Linux Software RAID 卷。這里我利用fdisk命令,將sdb、sdc兩塊磁盤分了兩個區sdb1、sdc1, 通過fdisk的t指令指定分區為8e類型(Linux LVM) 。如圖1所示。 
圖1 准備物理分區的指令執行界面


2.創建物理卷PV(Physical Volumes)

物理卷(Physical Volumes)簡稱PV,是在磁盤的物理分區或與磁盤分區具有同樣功能的設備(如RAID)上創建而來。它只是在物理分區中划出了一個特殊的區域,用於記載與LVM相關的管理參數。 
創建物理卷的命令是 pvcreate : 
[root@li2 ~]# pvcreate /dev/sdb1 
Physical volume "/dev/sdb1" successfully created 
[root@li2 ~]# pvcreate /dev/sdc1 
Physical volume "/dev/sdc1" successfully created 
以上命令分別將/dev/sdc1、/dev/sdd1初始化成物理卷,使用物理卷顯示命令pvdisplay查看物理卷情況如下: 
[root@li2 ~]# pvdisplay 
--- NEW Physical volume --- 
PV Name /dev/sdb1 
VG Name 
PV Size 36.00 GB 
Allocatable NO 
PE Size (KByte) 0 
Total PE 0 
Free PE 0 
Allocated PE 0 
PV UUID QDmnUd-tuvH-U4Hn-n5Ry-zGRT-O1yK-67Dxbb 
--- NEW Physical volume --- 
PV Name /dev/sdc1 
VG Name 
PV Size 36.00 GB 
Allocatable NO 
PE Size (KByte) 0 
Total PE 0 
Free PE 0 
Allocated PE 0 
PV UUID NDBf68-6qrD-9hE6-Rotv-RdxL-Azvv-7NlC0S


3.創建卷組VG(Volume Groups) 
卷組(Volume Group)簡稱VG,它是一個或者多個物理卷的組合。卷組將多個物理卷組合在一起,形成一個可管理的單元,它類似於非LVM系統中的物理硬盤。 
創建卷組的命令為vgcreate,下面利用它創建了一個名為“lvmdisk”的卷組,該卷組包含/dev/sdb1、/dev/sdc1兩個物理卷。 
[root@li2 ~]# vgcreate lvmdisk /dev/sdb1 /dev/sdc1 
Volume group "lvmdisk" successfully created 
使用卷組查看命令vgdisplay顯示卷組情況: 
[root@li2 ~]# vgdisplay 
--- Volume group --- 
VG Name lvmdisk 
System ID 
Format lvm2 
Metadata Areas 2 
Metadata Sequence No 1 
VG Access read/write 
VG Status resizable 
MAX LV 0 
Cur LV 0 
Open LV 0 
Max PV 0 
Cur PV 2 
Act PV 2 
VG Size 71.98 GB 
PE Size 4.00 MB 
Total PE 18428 
Alloc PE / Size 0 / 0 
Free PE / Size 18428 / 71.98 GB 
VG UUID SARfuj-wAUI-od81-VWAc-A1nt-aaFN-JWaPVf 
當多個物理卷組合成一個卷組后時,LVM會在所有的物理卷上做類似格式化的工作,將每個物理卷切成一塊一塊的空間,這一塊一塊的空間就稱為PE(Physical Extent ),它的默認大小是4MB。 
由於受內核限制的原因,一個邏輯卷(Logic Volume)最多只能包含65536個PE(Physical Extent),所以一個PE的大小就決定了邏輯卷的最大容量,4 MB 的PE決定了單個邏輯卷最大容量為 256 GB,若希望使用大於256G的邏輯卷,則創建卷組時需要指定更大的PE。在Red Hat Enterprise Linux AS 4中PE大小范圍為8 KB 到 16GB,並且必須總是 2 的倍數。 
例如,如果希望使用 64 MB 的PE創建卷組,這樣邏輯卷最大容量就可以為4 TB,命令如下: 
# vgcreate - 64MB lvmdisk /dev/sdb1 /dev/sdc1


4.創建邏輯卷LV(Logical Volumes) 
邏輯卷(Logical Volumes)簡稱LV,是在卷組中划分的一個邏輯區域,類似於非LVM系統中的硬盤分區。 
創建邏輯卷的命令為lvcreate,通過下面的命令,我們在卷組lvmdisk上創建了一個名字為pldy1的邏輯卷,大小為15GB,其設備入口為/dev/lvmdisk/pldy1。 
[root@li2 dev]# lvcreate -L 15G -n pldy1 lvmdisk 
Logical volume "pldy1" created 
也可以使用-l參數,通過指定PE數來設定邏輯分區大小。 
例如,希望創建一個使用全部空間的邏輯卷,需要先查清卷組中的PE總數,通過上面的vgdisplay命令查得當前卷組PE總數為18428,命令如下: 
# lvcreate -l 18428 -n pldy1 lvmdisk 
當邏輯卷創建成功后,可以使用lvdisplay命令查看邏輯卷情況: 
[root@li2 ~]# lvdisplay 
--- Logical volume --- 
LV Name /dev/lvmdisk/pldy1 
VG Name lvmdisk 
LV UUID FQcnm3-BMyq-NkJz-hykw-9xg1-Qy8d-8UeGCN 
LV Write Access read/write 
LV Status available 
# open 0 
LV Size 15.00 GB 
Current LE 3840 
Segments 1 
Allocation inherit 
Read ahead sectors 0 
Block device 253:0 
同卷組一樣,邏輯卷在創建的過程中也被分成了一塊一塊的空間,這些空間稱為LE(Logical Extents),在同一個卷組中,LE的大小和PE是相同的,並且一一對應。


5.創建文件系統 
在邏輯卷上創建ext3文件系統: 
[root@li2 ~]# mkfs -t ext3 /dev/lvmdisk/pldy1 
創建了文件系統以后,就可以加載並使用了: 
[root@li2 ~]# mkdir /opt/Oracle 
[root@li2 ~]# mount /dev/lvmdisk/pldy1 /opt/Oracle 
為了在系統啟動時自動加載文件系統,則還需要在/etc/fstab中添加內容: 
/dev/lvmdisk/pldy1 /opt/Oracle ext3 defaults 1 2 
管理LVM 
LVM的最大好處就是可以動態地調整分區大小,而無須重新啟動機器,下面讓我們來體驗一下吧!繼續上面的實例,現假設邏輯卷/dev/lvmdisk/pldy1空間不足,需要增加其大小,我們分兩種情況討論:


1.卷組中有剩余的空間 
通過vgdisplay命令可以檢查當前卷組空間使用情況: 
[root@li2 ~]# vgdisplay 
--- Volume group --- 
VG Name lvmdisk 
System ID 
Format lvm2 
Metadata Areas 2 
Metadata Sequence No 2 
VG Access read/write 
VG Status resizable 
MAX LV 0 
Cur LV 1 
Open LV 0 
Max PV 0 
Cur PV 2 
Act PV 2 
VG Size 71.98 GB 
PE Size 4.00 MB 
Total PE 18428 
Alloc PE / Size 3840 / 15.00 GB 
Free PE / Size 14588 / 56.98 GB 
VG UUID SARfuj-wAUI-od81-VWAc-A1nt-aaFN-JWaPVf 
確定當前卷組剩余空間56.98GB,剩余PE數量為14588個。在這里將所有的剩余空間全部增加給邏輯卷 /dev/lvmdisk/pldy1。 
[root@li2 Oracle]# lvextend -l+14588 /dev/lvmdisk/pldy1 
Extending logical volume pldy1 to 56.98 GB 
Logical volume pldy1 successfully resized 
上面的命令使用了-l+14588參數,它的意思是給指定的邏輯卷增加14588個PE。如果不是將全部空間都使用,還可使用其他形式的lvextend命令。 
例如將邏輯卷/dev/lvmdisk/pldy1增加5GB的空間,使其空間達到20GB,可寫成: “# lvextend -L+5G /dev/lvmdisk/pldy1”或“# lvextend -L20G /dev/lvmdisk/pldy1”。增加了邏輯卷容量后,就要通過ext2online命令修改文件系統的大小了。 
[root@li2 ~]# ext2online /opt/Oracle/ 
轉換好后,讓我們查看一下文件系統的當前狀態: 
[root@li2 ~]# df -lh 
Filesystem 1k-blocks Used Available Use% Mounted on 
/dev/sda1 7.4G 1.8G 5.3G 25% / 
none 135M 0 135M 0% /dev/shm 
/dev/mapper/lvmdisk-pldy1 71G 81M 68G 1% /opt/Oracle


2.卷組中空間不足 
當卷組中沒有足夠的空間用於擴展邏輯卷的大小時,就需要增加卷組的容量,而增加卷組容量的惟一辦法就是向卷組中添加新的物理卷。 
首先是增加一塊新硬盤(36GB SCSI 硬盤),並對其完成分區、創建物理卷等工作。接下來是利用vgextend命令將新的物理卷(/dev/sdd1)加入到卷組中。 
擴展卷組的命令如下: 
[root@li2 ~]# vgextend lvmdisk /dev/sdd1 
Volume group "lvmdisk" successfully extended 
利用vgdisplay命令查看卷組lvmdisk的情況: 
[root@li2 ~]# vgdisplay 
--- Volume group --- 
VG Name lvmdisk 
System ID 
Format lvm2 
Metadata Areas 3 
Metadata Sequence No 3 
VG Access read/write 
VG Status resizable 
MAX LV 0 
Cur LV 1 
Open LV 0 
Max PV 0 
Cur PV 3 
Act PV 3 
VG Size 107.97 GB 
PE Size 4.00 MB 
Total PE 27640 
Alloc PE / Size 3840 / 15.00 GB 
Free PE / Size 23800 / 92.97 GB 
VG UUID l8YPvz-uD7h-oj1A-0qS5-TFcT-mbC7-QbjzCu 
完成卷組的擴容后,就可以按照第一種情況的方法完成邏輯卷的擴容,最終實現分區的動態調整。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM