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

wxbtsinghua發表於2014-09-16

LVM(邏輯分割槽管理)中的幾個概念:

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
  完成卷組的擴容後,就可以按照第一種情況的方法完成邏輯卷的擴容,最終實現分割槽的動態調整。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8551823/viewspace-1270889/,如需轉載,請註明出處,否則將追究法律責任。

相關文章