LVM(邏輯卷管理)中的幾個概念:
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
PV Name /dev/sdc1
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
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指令可以檢查目前卷組空間使用情況:
Metadata Sequence No 2
Cur LV 1
Alloc PE / Size 3840 / 15.00 GB
Free PE / Size 14588 / 56.98 GB
确定目前卷組剩餘空間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的情況:
Metadata Areas 3
Metadata Sequence No 3
Cur PV 3
Act PV 3
VG Size 107.97 GB
Total PE 27640
Free PE / Size 23800 / 92.97 GB
VG UUID l8YPvz-uD7h-oj1A-0qS5-TFcT-mbC7-QbjzCu
完成卷組的擴容後,就可以按照第一種情況的方法完成邏輯卷的擴容,最終實作分區的動态調整。
在CSDN看到的另一篇LVM文章,講得比較詳細,不讓轉發,連結過來:
本文轉自 拾瓦興閣 51CTO部落格,原文連結:http://blog.51cto.com/ponyjia/1680969