LVM

LVM

LVM是 Logical Volume Manager(邏輯卷管理)的簡寫,它是Linux環境下對磁碟分區進行管理的一種機制,它由Heinz Mauelshagen在Linux 2.4核心上實現,目前最新版本為:穩定版1.0.5,開發版 1.1.0-rc2,以及LVM2開發版。Linux用戶安裝Linux作業系統時遇到的一個常見的難以決定的問題就是如何正確地評估各分區大小,以分配合適的硬碟空間。普通的磁碟分區管理方式在邏輯分區劃分好之後就無法改變其大小,當一個邏輯分區存放不下某個檔案時,這個檔案因為受上層檔案系統的限制,也不能跨越多個分區來存放,所以也不能同時放到別的磁碟上。而遇到出現某個分區空間耗盡時,解決的方法通常是使用符號連結,或者使用調整分區大小的工具,但這只是暫時解決辦法,沒有從根本上解決問題。隨著Linux的邏輯卷管理功能的出現,這些問題都迎刃而解,用戶在無需停機的情況下可以方便地調整各個分區大小。

前言

LVM模型 LVM模型

每個Linux使用者在安裝Linux時都會遇到這樣的困境:在為系統分區時,如何精確評估和分配各個硬碟分區的容量,因為系統管理員不但要考慮到當前某個分區需要的容量,還要預見該分區以後可能需要的容量的最大值。因為如果估 計不準確,當遇到某個分區不夠用時管理員可能甚至要備份整個系統、清除硬碟、重新對硬碟分區,然後恢複數據到新分區。

雖然有很多動態調整磁碟的工具可以使用,例如PartitionMagic等等,但是它並不能完全解決問題,因為某個分區可能會再次被耗盡;另外一個方面這需要 重新引導系統才能實現,對於很多關鍵的伺服器,停機是不可接受的,而且對於添加新硬碟,希望一個能跨越多個硬碟驅動器的檔案系統時,分區調整程式就不能解 決問題。

因此完美的解決方法應該是在零停機前提下可以自如對檔案系統的大小進行調整,可以方便實現檔案系統跨越不同磁碟和分區。幸運的是Linux提供的邏輯盤卷管理(LVM,LogicalVolumeManager)機制就是一個完美的解決方案。

LVM是邏輯盤卷管理(LogicalVolumeManager)的簡稱,它是Linux環境下對磁碟分區進行管理的一種機制,LVM是建立在硬碟和 分區之上的一個邏輯層,來提高磁碟分區管理的靈活性。通過LVM系統管理員可以輕鬆管理磁碟分區,如:將若干個磁碟分區連線為一個整塊的卷組 (volumegroup),形成一個存儲池。管理員可以在卷組上隨意創建邏輯卷組(logicalvolumes),並進一步在邏輯卷組上創建檔案系 統。管理員通過LVM可以方便的調整存儲卷組的大小,並且可以對磁碟存儲按照組的方式進行命名、管理和分配,例如按照使用用途進行定義:“development”和“sales”,而不是使用物理磁碟名“sda”和“sdb”。而且當系統添加了新的磁碟,通過LVM管理員就不必將磁碟的 檔案移動到新的磁碟上以充分利用新的存儲空間,而是直接擴展檔案系統跨越磁碟即可。

基本術語

前面談到,LVM是在磁碟分區和檔案系統之間添加的一個邏輯層,來為檔案系統禁止下層磁碟分區布局,提供一個抽象的存儲卷,在存儲卷上建立檔案系統。首先我們討論以下幾個LVM術語:

*物理存儲介質(PhysicalStorageMedia)

指系統的物理存儲設備:磁碟,如:/dev/hda、/dev/sda等,是存儲系統最底層的存儲單元。

*物理卷(Physical Volume,PV)

指磁碟分區或從邏輯上與磁碟分區具有同樣功能的設備(如RAID),是LVM的基本存儲邏輯塊,但和基本的物理存儲介質(如分區、磁碟等)比較,卻包含有與LVM相關的管理參數。

*卷組(Volume Group,VG)

類似於非LVM系統中的物理磁碟,其由一個或多個物理卷PV組成。可以在卷組上創建一個或多個LV(邏輯卷)。

*邏輯卷(Logical Volume,LV)

類似於非LVM系統中的磁碟分區,邏輯卷建立在卷組VG之上。在邏輯卷LV之上可以建立檔案系統(比如/home或者/usr等)。

*物理塊(Physical Extent,PE)

每一個物理卷PV被劃分為稱為PE(Physical Extents)的基本單元,具有唯一編號的PE是可以被LVM定址的最小單元。PE的大小是可配置的,默認為4MB。所以物理卷(PV)由大小等同的基本單元PE組成。

LVM抽象模型 LVM抽象模型

*邏輯塊(Logical Extent,LE)

邏輯卷LV也被劃分為可被定址的基本單位,稱為LE。在同一個卷組中,LE的大小和PE是相同的,並且一一對應。

圖所示LVM抽象模型,展示了PV、VG、LV三者之間關係:

和非LVM系統將包含分區信息的元數據保存在位於分區的起始位置的分區表中一樣,邏輯卷以及卷組相關的元數據也是保存在位於物理捲起始處的VGDA(卷組描述符區域)中。VGDA包括以下內容:PV描述符、VG描述符、LV描述符、和一些PE描述符。

系統啟動LVM時激活VG,並將VGDA載入至記憶體,來識別LV的實際物理存儲位置。當系統進行I/O操作時,就會根據VGDA建立的映射機制來訪問實際的物理位置。

安裝

首先確定系統中是否安裝了lvm工具:

[root@wwwroot]#rpm –qa | grep lvm

lvm-1.0.3-4

如果命令結果輸入類似於上例,那么說明系統已經安裝了LVM管理工具;如果命令沒有輸出則說明沒有安裝LVM管理工具,則需要從網路下載或者從光碟裝LVMrpm工具包。

安裝了LVM的RPM軟體包以後,要使用LVM還需要配置核心支持LVM。RedHat默認核心是支持LVM的,如果需要重新編譯核心,則需要在配置核心時,進入Multi-deviceSupport(RAIDandLVM)子選單,選中以下兩個選項:

[*]Multipledevicesdriversupport(RAIDandLVM)

<*>Logicalvolumemanager(LVM)Support

然後重新編譯核心,即可將LVM的支持添加到新核心中。

為了使用LVM,要確保在系統啟動時激活LVM,幸運的是在RedHat7.0以後的版本,系統啟動腳本已經具有對激活LVM的支持,在/etc/rc.d/rc.sysinit中有以下內容:

#LVMinitialization

if[-e/proc/lvm-a-x/sbin/vgchange-a-f/etc/lvmtab];then

action$"SettingupLogicalVolumeManagement:"/sbin/vgscan&&/sbin

/vgchange-ayfi

其中關鍵是兩個命令,vgscan命令實現掃描所有磁碟得到卷組信息,並創建檔案卷組數據檔案/etc/lvmtab和/etc/lvmtab.d/*;vgchange-ay命令激活系統所有卷組。

創建管理

要創建一個LVM系統,一般需要經過以下步驟:

1、創建分區

使用分區工具(如:fdisk等)創建LVM分區,方法和創建其他一般分區的方式是一樣的,區別僅僅是LVM的分區類型為8e。

2、創建物理卷

創建物理卷的命令為pvcreate,利用該命令將希望添加到卷組的所有分區或者磁碟創建為物理卷。將整個磁碟創建為物理卷的命令為:

#pvcreate /dev/hdb

將單個分區創建為物理卷的命令為:

#pvcreate /dev/hda5

3、創建卷組

創建卷組的命令為vgcreate,將使用pvcreate建立的物理卷創建為一個完整的卷組:

#vgcreate web_document /dev/hda5 /dev/hdb

vgcreate命令第一個參數是指定該卷組的邏輯名:web_document。後面參數是指定希望添加到該卷組的所有分區和磁碟。vgcreate 在創建卷組web_document以外,還設定使用大小為4MB的PE(默認為4MB),這表示卷組上創建的所有邏輯卷都以4MB為增量單位來進行擴充 或縮減。由於核心原因,PE大小決定了邏輯卷的最大大小,4MB的PE決定了單個邏輯卷最大容量為256GB,若希望使用大於256G的邏輯卷則創建卷組 時指定更大的PE。PE大小範圍為8KB到512MB,並且必須總是2的倍數(使用-s指定,具體請參考manvgcreate)。(centos 6.2系統已發現沒有這種限制)

4、激活卷組

為了立即使用卷組而不是重新啟動系統,可以使用vgchange來激活卷組:

#vgchange -ay web_document

5、添加新的物理卷到卷組中

當系統安裝了新的磁碟並創建了新的物理卷,而要將其添加到已有卷組時,就需要使用vgextend命令:

#vgextend web_document /dev/hdc1

這裡/dev/hdc1是新的物理卷。

6、從卷組中刪除一個物理卷

要從一個卷組中刪除一個物理卷,首先要確認要刪除的物理卷沒有被任何邏輯卷正在使用,就要使用pvdisplay命令察看一個該物理卷信息:

如果某個物理卷正在被邏輯卷所使用,就需要將該物理卷的數據備份到其他地方,然後再刪除。刪除物理卷的命令為vgreduce:

#vgreduce web_document /dev/hda1

7、創建邏輯卷

創建邏輯卷的命令為lvcreate:

#lvcreate -L1500 -n www1 web_document

該命令就在卷組web_document上創建名字為www1,大小為1500M的邏輯卷,並且設備入口為 /dev/web_document/www1(web_document為卷組名,www1為邏輯卷名)。如果希望創建一個使用全部卷組的邏輯卷,則需 要首先察看該卷組的PE數,然後在創建邏輯卷時指定:

#vgdisplay web_document | grep"TotalPE"

TotalPE45230

#lvcreate -l45230 web_document -n www1

8、創建檔案系統

筆者推薦使用reiserfs檔案系統,來替代ext2和ext3:

創建了檔案系統以後,就可以載入並使用它:

#mkdir/data/wwwroot

#mount /dev/web_document/www1/data/wwwroot

如果希望系統啟動時自動載入檔案系統,則還需要在/etc/fstab中添加內容:

/dev/web_document/www1/data/wwwrootreiserfsdefaults12

9、刪除一個邏輯卷

刪除邏輯卷以前首先需要將其卸載,然後刪除:

#umount /dev/web_document/www1

#lvremove /dev/web_document/www1

lvremove--doyoureallywanttoremove"/dev/web_document/www1"?[y/n]:y

lvremove--doingautomaticbackupofvolumegroup"web_document"

lvremove--logicalvolume"/dev/web_document/www1"successfullyremoved

10、擴展邏輯卷大小

LVM提供了方便調整邏輯卷大小的能力,擴展邏輯卷大小的命令是lvextend:

#lvextend -L12G /dev/web_document/www1

lvextend--extendinglogicalvolume"/dev/web_document/www1"to12GB

lvextend--doingautomaticbackupofvolumegroup"web_document"

lvextend--logicalvolume"/dev/web_document/www1"successfullyextended

上面的命令就實現將邏輯卷www1的大小擴招為12G。

#lvextend -L +1G /dev/web_document/www1

lvextend--extendinglogicalvolume"/dev/web_document/www1"to13GB

lvextend--doingautomaticbackupofvolumegroup"web_document"

lvextend--logicalvolume"/dev/web_document/www1"successfullyextended

上面的命令就實現將邏輯卷www1的大小增加1G。

增加了邏輯卷的容量以後,就需要修改檔案系統大小以實現利用擴充的空間。筆者推薦使用reiserfs檔案系統來替代ext2或者ext3。因此這裡僅 僅討論reiserfs的情況。Reiserfs檔案工具提供了檔案系統大小調整工具:resize_reiserfs。對於希望調整被載入的檔案系統大 小:

#resize_reiserfs -f /dev/web_document/www1

一般建議最好將檔案系統卸載,調整大小,然後再載入:

#umount /dev/web_document/www1

#resize_reiserfs /dev/web_document/www1

#mount-treiserfs /dev/web_document/www1/data/wwwroot

對於使用ext2或ext3檔案系統的用戶可以考慮使用工具

ext2resize。

11、減少邏輯卷大小

使用lvreduce即可實現對邏輯卷的容量,同樣需要首先將檔案系統卸載:

#umount /data/wwwroot

#resize_reiserfs -s -2G /dev/web_document/www1

#lvreduce -L -2G /dev/web_document/www1

#mount-treiserfs /dev/web_document/www1/data/wwwroot

總結

根據上面的討論可以看到,LVM具有很好的可伸縮性,使用起來非常方便。可以方便地對卷組、邏輯卷的大小進行調整,更進一步調整檔案系統的大小。

優點

LVM通常用於裝備大量磁碟的系統,但它同樣適於僅有一、兩塊硬碟的小系統。

小系統使用LVM的益處

傳統的檔案系統是基於分區的,一個檔案系統對應一個分區。這種方式比較直觀,但不易改變:

1.不同的分區相對獨立,無相互聯繫,各分區空間很易利用不平衡,空間不能充分利用;

2.當一個檔案系統/分區已滿時,無法對其擴充,只能採用重新分區/建立檔案系統,非常麻煩;或把分區中的數據移到另一個更大的分區中;或採用符號連線的方式使用其它分區的空間。

3.如果要把硬碟上的多個分區合併在一起使用,只能

LVM LVM

採用再分區的方式,這個過程需要數據的備份與恢復。當採用LVM時,情況有所不同:

1.硬碟的多個分區由LVM統一為卷組管理,可以方便的加入或移走分區以擴大或減小卷組的可用容量,充分利用硬碟空間;

2.檔案系統建立在邏輯卷上,而邏輯卷可根據需要改變大小(在卷組容量範圍內)以滿足要求;

3.檔案系統建立在LVM上,可以跨分區,方便使用;

大系統使用LVM的益處

在使用很多硬碟的大系統中,使用LVM主要是方便管理、增加了系統的擴展性。

在一個有很多不同容量硬碟的大型系統中,對不同的用戶的空間分配是一個技巧性的工作,要在用戶需求與實際可用空間中尋求平衡。

用戶/用戶組的空間建立在LVM上,可以隨時按要求增大,或根據使用情況對各邏輯卷進行調整。當系統空間不足而加入新的硬碟時,不必把用戶的數據從原硬碟遷移到新硬碟,而只須把新的分區加入卷組並擴充邏輯卷即可。同樣,使用LVM可以在不停服務的情況下。把用戶數據從舊硬碟轉移到新硬碟空間中去。

結構

LVM結構

LVM LVM

LVM的結構信息存在於每塊LVM硬碟開頭的保留區域中(PVRA,VGRA),這塊區域被叫做LVM表頭(LVM header)。下面的圖顯示了LVM盤的結構: 1. 非啟動盤

|------------------|

| PVRA |

|------------------|

| VGRA |

|------------------|

| |

| |

| |

| User Data |

| |

| |

| |

|------------------|

|Bad block pool|

|------------------|

2.啟動盤

|------------------|-----

| LIF header | \

|------------------| \

| PVRA | \

|------------------| \

| BDRA | |-->2912K

|------------------| /

| LIF volume | /

|------------------| /

| VGRA | /

|------------------|-----

| |

| |

| |

| User Data |

| |

| |

| |

|------------------|

|Bad block pool|

|------------------|

注意:

a.啟動盤的LVM表頭(LVM header)總是2912KB,而對於非啟動盤來說,LVM header的大小是不固定的。它取決於VG的配置參數PVs/VG(-p max_pv),PEs/PV(-e max_pe)和LVs/VG(-l max_lv),但是一般來說,非啟動盤的LVM header的大小總是比啟動盤的要小一些。而且,VG的VGRA一定不能大於一個單獨的塊的大小。

b.安騰(Itanium systems)系統(UX11.20,11.22,11.23)在硬碟的開頭區域有一個100MB的EFI區域。

實現

Linux中實現LVM的方法有兩種:一種是在安裝Linux時利用Disk Druid程式在圖形化界面下實現;另一種是利用LVM命令在字元界面下實現,下面的過程是基於後一種方法實現的。

實現環境如下:作業系統為Red Hat Enterprise LinuxAS 4 ,默認安裝的LVM管理工具包為LVM2 2.00.31 ,硬碟為36GBSCSI接口總計2塊,其中sda存放系統檔案及數據,sdb、sdc用於實現LVM。

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/sdb1初始化成物理卷,使用物理卷顯示命令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

完成卷組的擴容後,就可以按照第一種情況的方法完成邏輯卷的擴容,最終實現分區的動態調整。

工作方式

下面來看一看LVM到底是怎樣工作的。每一個物理卷都被分成幾個基本單元,即所謂的PE(Physical Extents)。PE的大小是可變的,但是必須和其所屬卷組的物理卷相同。在每一個物理卷里,每一個PE都有一個唯一的編號。PE是一個物理存儲里可以被LVM定址的最小單元。

每一個邏輯卷也被分成一些可被定址的基本單位,即所謂的LE(Logical Extents)。在同一個卷組中,LE的大小和PE是相同的,很顯然,LE的大小對於一個卷組中的所有邏輯捲來說都是相同的。

在一個物理卷中,每一個PE都有一個唯一的編號,但是對於邏輯卷這並不一定是必需的。這是因為當這些PEID號不能使用時,邏輯卷可以由一些物理卷組成。因此,LE ID號是用於識別LE以及與之相關的特定PE的。每一次存儲區域被定址訪問或者LE的ID被使用,都會把數據寫在物理存儲設備之上。

你可能會覺得奇怪,有關邏輯卷和邏輯卷組的所有元數據都存到哪兒去了。類似的在非LVM系統中,有關分區的數據是存儲在分區表中,而分區表被存儲在了每一個物理卷的起始位置。VGDA(卷組描述符區域)功能就好象是LVM的分區表,它存儲在每一個物理卷的起始處。

VGDA由以下信息組成:

◆ 一個PV描述符

◆ 一個VG描述符

◆ LV描述符

◆ 一些PE描述符

當系統啟動LV時,VG被激活,並且VGDA被載入至記憶體。VGDA幫助識別LV的實際存儲位置。當系統想要訪問存儲設備時,由VGDA建立起來的映射機制就用於訪問實際的物理位置來執行I/O操作。

相關詞條

相關搜尋

熱門詞條

聯絡我們