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
--- 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
完成卷組的擴容后,就可以按照第一種情況的方法完成邏輯卷的擴容,最終實現分區的動態調整。
======================================
Linx卷管理詳解
VG LV PV
作者:吳偉龍
一、 前言
每個Linux使用者在安裝Linux時 都會遇到這樣的困境:在為系統分區時,如何精確評估和分配各個硬盤分區的容量,因為系統管理員不但要考慮到當前某個分區需要的容量,還要預見該分區以后可能需要的容量的最大值。因為如果估計不准確,當遇到某個分區不夠用時管理員可能甚至要備份整個系統、清除硬盤、重新對硬盤分區,然后恢復數據到新分區。
雖然現在有很多動態調整磁盤的工具可以使用,例如Partation Magic等等,但是它並不能完全解決問題,因為某個分區可能會再次被耗盡;另外一個方面這需要重新引導系統才能實現,對於很多關鍵的服務器,停機是不可接受的,而且對於添加新硬盤,希望一個能跨越多個硬盤驅動器的文件系統時,分區調整程序就不能解決問題。
因此完美的解決方法應該是在零停機前提下可以自如對文件系統的大小進行調整,可以方便實現文件系統跨越不同磁盤和分區。那么我們可以通過邏輯盤卷管理(LVM,Logical Volume Manager)的方式來非常完美的實現這一功能。
LVM是邏輯盤卷管理(Logical Volume Manager)的簡稱,他是磁盤管理的另一種工具,就目前基本上所有操作系統均支持,LVM是建立在硬盤和分區之上的一個邏輯層,來提高磁盤分區管理的靈活性。通過LVM系統管理員可以輕松管理磁盤分區,如:將若干個磁盤分區連接為一個整塊的卷組(volume group),形成一個存儲池。管理員可以在卷組上隨意創建邏輯卷組(logical volumes),並進一步在邏輯卷組上創建文件系統。管理員通過LVM可以方便的調整存儲卷組的大小,並且可以對磁盤存儲按照組的方式進行命名、管理和分配,例如按照使用用途進行定義:“DBdata”和“DBSoft”,而不是使用物理磁盤名“sda”和“sdb”或”hda”和”hdb”。而且當系統添加了新的磁盤,通過LVM管理員就不必將磁盤的文件移動到新的磁盤上以充分利用新的存儲空間,而是直接擴展文件系統跨越磁盤即可,架構可以參考如下圖:
二、 LVM基本術語
前面談到,LVM是在磁盤分區和文件系統之間添加的一個邏輯層,來為文件系統屏蔽下層磁盤分區布局,提供一個抽象的盤卷,在盤卷上建立文件系統。首先我們討論以下幾個LVM術語:
物理存儲介質(The physical media)
這里指系統的存儲設備:硬盤,如:/dev/hda、/dev/sda等等,是存儲系統最低層的存儲單元。
物理卷(physicalvolume)
物理卷就是指硬盤分區或從邏輯上與磁盤分區具有同樣功能的設備(如RAID),是LVM的基本存儲邏輯塊,但和基本的物理存儲介質(如分區、磁盤等)比較,卻包含有與LVM相關的管理參數。
卷組(Volume Group)
LVM卷組類似於非LVM系統中的物理硬盤,其由物理卷組成。可以在卷組上創建一個或多個“LVM分區”(邏輯卷),LVM卷組由一個或多個物理卷組成。
邏輯卷(logicalvolume)
LVM的邏輯卷類似於非LVM系統中的硬盤分區,在邏輯卷之上可以建立文件系統(比如/home或者/usr等)。
PE(physical extent)
每一個物理卷被划分為稱為PE(Physical Extents)的基本單元,具有唯一編號的PE是可以被LVM尋址的最小單元。PE的大小是可配置的,默認為4MB。
LE(logical extent)
邏輯卷也被划分為被稱為LE(Logical Extents) 的可被尋址的基本單位。在同一個卷組中,LE的大小和PE是相同的,並且一一對應。
首先可以看到,物理卷(PV)被由大小等同的基本單元PE組成。
一個卷組由一個或多個物理卷組成:
從上圖可以看到,PE和LE有着一一對應的關系。邏輯卷建立在卷組上。邏輯卷就相當於非LVM系統的磁盤分區,可以在其上創建文件系統。
下圖是磁盤分區、卷組、邏輯卷和文件系統之間的邏輯關系的示意圖:
和非LVM系統將包含分區信息的元數據保存在位於分區的起始位置的分區表中一樣,邏輯卷以及卷組相關的元數據也是保存在位於物理卷起始處的VGDA(卷組描述符區域)中。VGDA包括以下內容: PV描述符、VG描述符、LV描述符、和一些PE描述符 。
系統啟動LVM時激活VG,並將VGDA加載至內存,來識別LV的實際物理存儲位置。當系統進行I/O操作時,就會根據VGDA建立的映射機制來訪問實際的物理位置。
三、 安裝LVM
首先確定系統中是否安裝了lvm工具:
[root@jetsen ~]# rpm -qa|grep lvm
system-config-lvm-1.1.5-1.0.el5
lvm2-2.02.46-8.el5
如果命令結果輸入類似於上例,那么說明系統已經安裝了LVM管理工具;如果命令沒有輸出則說明沒有安裝LVM管理工具,則需要從網絡下載或者從光盤裝LVM rpm工具包。
安裝了LVM的RPM軟件包以后,要使用LVM還需要配置內核支持LVM。RedHat默認內核是支持LVM的,如果需要重新編譯內核,則需要在配置內核時,進入Multi-device Support (RAID and LVM)子菜單,選中以下兩個選項:
[*]Multiple devices driver support (RAID and LVM)
<*>Logical volume manager (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$"Setting up Logical Volume Management:" /sbin/vgscan &&/sbin/vgchange -a y
fi
其中關鍵是兩個命令,vgscan命令實現掃描所有磁盤得到卷組信息,並創建文件卷組數據文件/etc/lvmtab和/etc/lvmtab.d/*;vgchange -a y命令激活系統所有卷組。
四、 創建和管理LVM
創建LV有兩種方式,一種是基於磁盤的,另外一種是基於分區的,如果是基於分區的就必須按照我之前講的通過fdisk或parted方式划分好分區,但不要格式化來進行pvcreate創建處理卷,如果基於磁盤的就不需要創建分區了,直接就可以通過pvcreate來創建物理卷。因為只有創建好了物理卷之后才能添加到卷組,並在卷組里面創建邏輯卷,后格式化才能存放數據。
要創建一個LVM系統,一般需要經過以下步驟:
創建基於磁盤的LV
1、 查看磁盤信息:
[root@jetsen~]# fdisk -l
Disk/dev/sda: 21.4 GB, 21474836480 bytes
255heads, 63 sectors/track, 2610 cylinders
Units =cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 1 13 104391 83 Linux
/dev/sda2 14 2610 20860402+ 8e Linux LVM
我們就用如下兩塊磁盤來配置VG的管理
Disk /dev/sdb: 536.8 GB, 536870912000 bytes
255 heads, 63 sectors/track, 65270 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk /dev/sdb doesn't contain a valid partition table
Disk /dev/sdc: 536.8 GB, 536870912000 bytes
255 heads, 63 sectors/track, 65270 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk /dev/sdc doesn't contain a valid partition table
2、 使用sdb創建基於磁盤的物理卷
[root@jetsen~]# pvcreate /dev/sdb
Physical volume "/dev/sdb"successfully created
3、 查看物理卷創建是否成功
[root@jetsen~]# pvdisplay
--- Physical volume ---
PV Name /dev/sda2
VG Name VolGroup00
PV Size 19.89 GB / not usable 19.49 MB
Allocatable yes (but full)
PE Size (KByte) 32768
Total PE 636
Free PE 0
Allocated PE 636
PV UUID 9UuRWq-3nFG-pQvY-nkCN-WZgj-uzNW-cUI1ei
"/dev/sdb" is a newphysical volume of "500.00 GB" ----這里是我們剛才創建的PV,已經成功
--- NEW Physical volume ---
PV Name /dev/sdb
VG Name
PV Size 500.00 GB
Allocatable NO
PE Size (KByte) 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID 3Xhu20-4Y4L-ITf5-MyXi-VLVN-kJ3M-LsoouK
[root@jetsen ~]#
4、 創建data卷組:
[root@jetsen~]# vgcreate data /dev/sdb
/dev/cdrom: open failed: 只讀文件系統
/dev/cdrom: open failed: 只讀文件系統
Attempt to close device '/dev/cdrom' which isnot open.
Volume group "data" successfullycreated
5、 查看卷組是否創建成功:
[root@jetsen ~]# vgdisplay
--- Volume group --- ------我們可以看到,這就是我們剛才創建的vg,已經成功了,大小為500G,由一個PV組成
VG Name data
System ID
Format lvm2
Metadata Areas 1
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 1
Act PV 1
VG Size 500.00 GB
PE Size 4.00 MB
Total PE 127999
Alloc PE / Size 0 / 0
Free PE / Size 127999 / 500.00 GB
VG UUID wqyQM5-Rigb-5art-0H20-X9QW-OL6N-PDkI4o
--- Volume group --- -----這是系統之前的卷組
VG Name VolGroup00
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 3
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 2
Max PV 0
Cur PV 1
Act PV 1
VG Size 19.88 GB
PE Size 32.00 MB
Total PE 636
Alloc PE / Size 636 / 19.88 GB
Free PE / Size 0 / 0
VG UUID 9BbNZr-0ILr-CP3K-debx-OyJM-hDru-C0gVuR
[root@jetsen~]#
6、 激活卷組
[root@jetsen~]# vgchange -a y data
0 logical volume(s) in volume group"data" now active
[root@jetsen~]#
7、 創建新的物理卷
[root@jetsen~]# pvcreate /dev/sdc
Physical volume "/dev/sdc"successfully created
8、 將新的物理卷添加到現有卷組:
[root@jetsen~]# vgextend data /dev/sdc
/dev/cdrom: open failed: 只讀文件系統
Attempt to close device '/dev/cdrom' which isnot open.
Volume group "data" successfullyextended
[root@jetsen~]#
9、 查看卷組信息:
我們可以看到,VG的大小由剛才的500G變成了現在的1T的空間,PV的數量也由之前的1個變成了兩個
[root@jetsen~]# vgdisplay data
--- Volume group ---
VG Name data
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 2
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 0
Open LV 0
Max PV 0
CurPV 2
ActPV 2
VG Size 999.99 GB
PE Size 4.00 MB
Total PE 255998
Alloc PE / Size 0 / 0
Free PE / Size 255998 / 999.99 GB
VG UUID wqyQM5-Rigb-5art-0H20-X9QW-OL6N-PDkI4o
10、 從現有的卷組中刪除一個物理卷:
要從一個卷組中刪除一個物理卷,首先要確認要刪除的物理卷沒有被任何邏輯卷正在使用,就要使用pvdisplay命令察看一個該物理卷信息,如果某個物理卷正在被邏輯卷所使用,就需要將該物理卷的數據備份到其他地方,然后再刪除。刪除物理卷的命令為vgreduce:
[root@jetsen~]# vgreduce data /dev/sdc
Removed "/dev/sdc" fromvolume group "data" -----已經刪除成功
[root@jetsen~]#
查看VG信息 我們可以看到磁盤已經被刪除,並且空間也由剛才的1T變成了500G
[root@jetsen~]# vgdisplay data
--- Volume group ---
VG Name data
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 3
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 0
Open LV 0
Max PV 0
Cur PV 1
Act PV 1
VG Size 500.00 GB
PE Size 4.00 MB
Total PE 127999
Alloc PE / Size 0 / 0
Free PE / Size 127999 / 500.00 GB
VG UUID wqyQM5-Rigb-5art-0H20-X9QW-OL6N-PDkI4o
11、 創建邏輯卷
創建邏輯卷的命令為lvcreate,分為兩種:
A、 創建指定大小的邏輯卷LV
[root@jetsen ~]# lvcreate -L200M -n data001 data
Logical volume"data001" created
該命令就在卷組data上創建名字為data001,大小為200M的邏輯卷,並且設備入口為/dev/data/data001(data為卷組名,data001為邏輯卷名)。
查看我們創建的邏輯卷:
[root@jetsen ~]# lvdisplay data
--- Logical volume ---
LV Name /dev/data/data001 ---LV的名稱為data001
VG Name data ----卷組的名稱為data
LV UUID o75uV4-VvTA-aaMe-4T74-mVQe-gSQO-clot5L
LV Write Access read/write
LV Status available
# open 0
LV Size 200.00 MB ---大小為200M
Current LE 50
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:2
B、 創建卷組全部大小的邏輯卷LV
如果希望創建一個使用全部卷組的邏輯卷,則需要首先通過vgdisplay察看該卷組的Total PE數,然后在創建邏輯卷時指定
[root@jetsen~]# vgdisplay data
--- Volume group ---
VG Name data
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 4
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 0
Max PV 0
Cur PV 1
Act PV 1
VG Size 500.00 GB
PE Size 4.00 MB
Total PE 127999 -----也就是這個值,
Alloc PE / Size 50 / 200.00 MB
Free PE / Size 127949 / 499.80 GB
VG UUID wqyQM5-Rigb-5art-0H20-X9QW-OL6N-PDkI4o
創建使用卷組的全部邏輯卷語法如下:(由於之前已經創建了一卷組,就無法演示)
[root@jetsen~]# lvcreate -l127999-n dataall data
C、 創建剩余空間所有大小的LV
查看LV剩余空間的大小:
[root@jetsen~]# vgdisplay data
--- Volume group ---
VG Name data
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 4
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 0
Max PV 0
Cur PV 1
Act PV 1
VG Size 500.00 GB
PE Size 4.00 MB
Total PE 127999
Alloc PE / Size 50 / 200.00 MB
Free PE / Size 127949 / 499.80 GB ----這里是剩余空間的大小
VG UUID wqyQM5-Rigb-5art-0H20-X9QW-OL6N-PDkI4o
創建分區:
[root@jetsen~]# lvcreate -l127949 -n data003 data
/dev/cdrom: open failed: 只讀文件系統
Logical volume "data003" created
再次查看Free PE
[root@jetsen ~]# vgdisplay data|grep "Free"
Free PE / Size 0 / 0 ----空間已經被划分完了,沒有空間了
查看剛才創建的LV的信息:
[root@jetsen~]# lvdisplay /dev/data/data003
--- Logical volume ---
LV Name /dev/data/data003
VG Name data
LV UUID 5gk4X3-ltNL-YUR9-AZnx-GHr9-shgc-t1Cuye
LV Write Access read/write
LV Status available
# open 0
LV Size 499.80 GB ----大小為499.80G,正好驗證了剩余空間的大小
Current LE 127949 ----LV個數正好驗證了剛才所剩余的個數
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:3
12、 創建文件系統:
我們可以創建reiserfs文件系統,也可以創建ext2和ext3
[root@jetsen~]# mkfs.ext3 /dev/data/data003 -------我們創建ext3的文件系統
mke2fs1.39 (29-May-2006)
Filesystemlabel=
OS type:Linux
Blocksize=4096 (log=2)
Fragmentsize=4096 (log=2)
65519616inodes, 131019776 blocks
6550988blocks (5.00%) reserved for the super user
Firstdata block=0
Maximumfilesystem blocks=0
3999block groups
32768blocks per group, 32768 fragments per group
16384inodes per group
Superblockbackups stored on blocks:
32768, 98304, 163840, 229376, 294912,819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000,23887872, 71663616, 78675968,
102400000
Writinginode tables: done
Creatingjournal (32768 blocks): done
Writingsuperblocks and filesystem accounting information: done
Thisfilesystem will be automatically checked every 23 mounts or
180days, whichever comes first. Use tune2fs-c or -i to override.
13、 掛載文件系統 ----我們可以看到已經掛載,並且大小也正常。
[root@jetsen/]# mkdir /data003
[root@jetsen/]# mount /dev/data/data003 /data003
[root@jetsen/]# df -h
Filesystem Size Used Avail Use% Mountedon
/dev/mapper/VolGroup00-LogVol00 18G 5.8G 11G 35% /
/dev/sda1 99M 12M 82M 13% /boot
tmpfs 506M 4.0K 506M 1% /dev/shm
/dev/mapper/data-data003 492G 198M 467G 1% /data003
[root@jetsen/]#
14、刪除LV
A、 先卸載分區
[root@jetsen /]# umount /dev/data/data003
B、 執行刪除操作
[root@jetsen /]# lvremove /dev/data/data003
/dev/cdrom:open failed: Read-only file system
Do you really want to remove active logical volume data003?[y/n]: y
Logical volume"data003" successfully removed
創建基於分區的LV
1、 通過fdisk創建分區,詳細步驟省略,可參考如下:
http://blog.csdn.net/wuweilong/article/details/7538647
http://space.itpub.net/?uid-20674423-action-viewspace-itemid-722812
[root@jetsen /]# fdisk /dev/sdc (n\ p\ 1\ +500m\ w\) --創建了500M分區
[root@jetsen /]# fdisk /dev/sdc (n\ p\ 1\ +1024m\ w\) --創建了1G分區
查看分區信息
[root@jetsen/]# fdisk -l /dev/sdc ----分區已經創建成功
Disk/dev/sdc: 536.8 GB, 536870912000 bytes
255heads, 63 sectors/track, 65270 cylinders
Units =cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sdc1 1 62 497983+ 83 Linux
/dev/sdc2 63 187 1004062+ 83 Linux
[root@jetsen/]#
2、 創建基於分區的物理卷
[root@jetsen/]# pvcreate /dev/sdc1
Physical volume "/dev/sdc1"successfully created
[root@jetsen/]# pvcreate /dev/sdc2
Physical volume "/dev/sdc2"successfully created
3、 創建卷組:
[root@jetsen/]# vgcreate soft /dev/sdc1 /dev/sdc2
/dev/cdrom: open failed: Read-only filesystem
/dev/cdrom: open failed: Read-only filesystem
Attempt to close device '/dev/cdrom' which isnot open.
Volume group "soft" successfullycreated
[root@jetsen/]#
4、 激活卷組
[root@jetsen/]# vgchange -a y soft
0 logical volume(s) in volume group"soft" now active
[root@jetsen/]#
5、 從卷組中刪除物理卷
[root@jetsen/]# vgreduce soft /dev/sdc2
Removed "/dev/sdc2" from volumegroup "soft"
[root@jetsen/]#
6、 添加卷組到物理卷
[root@jetsen/]# vgextend soft /dev/sdc2
/dev/cdrom: open failed: Read-only filesystem
Attempt to close device '/dev/cdrom' which isnot open.
Volume group "soft" successfullyextended
[root@jetsen/]#
7、 創建LV
先查看VG的大小,為1.5G,包含2個PV
[root@jetsen/]# vgdisplay soft
--- Volume group ---
VG Name soft
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 3
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 1.43 GB
PE Size 4.00 MB
Total PE 366
Alloc PE / Size 0 / 0
Free PE / Size 366 / 1.43 GB
VG UUID D3x6JY-BVIL-C4ld-013H-U2Rq-hb1q-1oOVnx
[root@jetsen/]#
將1.5G共366個PE創建一個LV
[root@jetsen/]# lvcreate -l366 soft -n soft01
Logical volume "soft01" created
[root@jetsen/]#
8、 創建文件系統:
[root@jetsen/]# mkfs.ext4 /dev/soft/soft01
mke4fs1.41.5 (23-Apr-2009)
Filesystemlabel=
OS type:Linux
Blocksize=4096 (log=2)
Fragmentsize=4096 (log=2)
93696inodes, 374784 blocks
18739blocks (5.00%) reserved for the super user
First datablock=0
Maximumfilesystem blocks=385875968
12 blockgroups
32768blocks per group, 32768 fragments per group
7808inodes per group
Superblockbackups stored on blocks:
32768, 98304, 163840, 229376, 294912
Writinginode tables: done
Creatingjournal (8192 blocks): done
Writingsuperblocks and filesystem accounting information: done
Thisfilesystem will be automatically checked every 29 mounts or
180days, whichever comes first. Use tune4fs-c or -i to override.
[root@jetsen/]#
9、 掛載文件系統
[root@jetsen/]# mkdir /soft
[root@jetsen/]# mount /dev/soft/soft01 /soft
[root@jetsen/]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00 18G 5.8G 11G 35% /
/dev/sda1 99M 12M 82M 13% /boot
tmpfs 506M 4.0K 506M 1% /dev/shm
/dev/mapper/soft-soft01 1.5G 35M 1.4G 3% /soft
擴展LV的大小
我們在用傳統磁盤管理工具的時候經常會有一種問題,就是分區在剛開始創建時候的大小是夠用的,但是隨着時間的推移,分區及硬盤的可用空間越來越少,並且到最后可能就不夠用了,就只有通過添加硬盤並且添加分區的方式同時還要做數據轉移來完成磁盤的添加工作,那么我們通過使用卷管理之后就可以實現分區大小的動態調整,也就是說單個分區不夠了,我們添加硬盤后直接將新硬盤的空間無縫的動態在線添加載到當前需要擴容的分區上,原理如下圖
|<-- sda1---->|<-- sda2------>|
+---------------+---------------+
|xxxxxxxxxxx|xxxxxx||
|xxxxxxxxxxx|xxxxxx||
+---------------+---------------+
硬盤分區/dev/sda1中的文件系統占滿了整個分區,而/dev/sda2中的文件系統只占用了2/3左右的分區。
所以在調整邏輯卷容量大小的同時也要調整在該卷上的文件系統的大小,當要增大容量時,先調整容量,后調整文件系統,若要縮小容量則反之。
擴展LV大小的步驟如下:
1、 檢查VG的可用PE
[root@jetsen/]# vgdisplay soft
--- Volume group ---
VG Name soft
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 4
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 1
Max PV 0
Cur PV 2
Act PV 2
VG Size 1.43 GB
PE Size 4.00 MB
Total PE 366
Alloc PE / Size 366 / 1.43 GB
Free PE / Size 0 / 0 ----可用PE為0,需添加磁盤或分區
VG UUID D3x6JY-BVIL-C4ld-013H-U2Rq-hb1q-1oOVnx
2、 如果不夠,需想VG中添加磁盤或新的分區
[root@jetsen /]# fdisk /dev/sdc –l 查看現在分區信息
Disk /dev/sdc: 536.8 GB, 536870912000 bytes
255 heads, 63 sectors/track, 65270 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sdc1 1 62 497983+ 83 Linux
/dev/sdc2 63 187 1004062+ 83 Linux
[root@jetsen /]# fdisk /dev/sdc (n\ p\ 3\ +1G\ w\) --創建了1G分區
[root@jetsen /]# fdisk /dev/sdc –l ----再次查看分區信息
Disk /dev/sdc: 536.8 GB, 536870912000 bytes
255 heads, 63 sectors/track, 65270 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sdc1 1 62 497983+ 83 Linux
/dev/sdc2 63 187 1004062+ 83 Linux
/dev/sdc3 188 310 987997+ 83 Linux
[root@jetsen /]#
添加剛才創建的分區到VG中
[root@jetsen~]# pvcreate /dev/sdc3
Physical volume "/dev/sdc3"successfully created
[root@jetsen~]# vgextend soft /dev/sdc3
/dev/cdrom: open failed: 只讀文件系統
/dev/cdrom: open failed:只讀文件系統
Attempt to close device '/dev/cdrom' which isnot open.
Volume group "soft" successfullyextended
[root@jetsen~]# vgdisplay soft
--- Volume group ---
VG Name soft
System ID
Format lvm2
Metadata Areas 3
Metadata Sequence No 5
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 2.37 GB
PE Size 4.00 MB
Total PE 607
Alloc PE / Size 366 / 1.43 GB
Free PE / Size 241 / 964.00 MB ------我們可以看到,這里已經添加進來了
VG UUID D3x6JY-BVIL-C4ld-013H-U2Rq-hb1q-1oOVnx
3、 擴展LV的大小
[root@jetsen/]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
18G 5.8G 11G 35% /
/dev/sda1 99M 12M 82M 13% /boot
tmpfs 506M 4.0K 506M 1% /dev/shm
/dev/mapper/soft-soft01 1.5G 35M 1.4G 3% /soft -----現在大小是1.5G
[root@jetsen/]#
寫法一: 在現有的空間中添加500M
[root@jetsen~]# lvextend -L+500M /dev/soft/soft01 ---向LV01添加500M的空間
Extending logical volume soft01 to 1.92 GB -----這里告訴你添加后的soft01的大小是1.92GB
Logical volume soft01 successfully resized
寫法二: 在現有的空間中添加到分區的總大小為2G
[root@jetsen~]# lvextend -L2G /dev/soft/soft01
Extending logical volume soft01 to 2.00 GB
Logical volume soft01 successfully resized
4、查看lv擴容后的大小
[root@jetsensoft]# lvdisplay soft
--- Logical volume ---
LV Name /dev/soft/soft01
VG Name soft
LV UUID AutjnY-C3KP-5bfC-Di5v-Zkdu-4VhD-AahFY8
LV Write Access read/write
LV Status available
# open 1
LV Size 2.00 GB ----已經擴容到2G了
Current LE 512
Segments 3
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:2
擴容文件系統
[root@jetsen~]# resize4fs /dev/soft/soft01
resize4fs1.41.5 (23-Apr-2009)
Filesystemat /dev/soft/soft01 is mounted on /soft; on-line resizing required
olddesc_blocks = 1, new_desc_blocks = 1
Performingan on-line resize of /dev/soft/soft01 to 652288 (4k) blocks.
Thefilesystem on /dev/soft/soft01 is now 652288 blocks long.
查看大小已經是2G了
[root@jetsen/]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00 18G 5.8G 11G 35% /
/dev/sda1 99M 12M 82M 13% /boot
tmpfs 506M 4.0K 506M 1% /dev/shm
/dev/mapper/soft-soft01 2.0G 67M 1.9G 4% /soft ---大小已經是2G了。
注意:增加了邏輯卷的容量以后,就需要修改文件系統大小以實現利用擴充的空間。推薦使用ext4文件系統來替代reiserfs、ext2或者ext3。因此這里僅僅討論ext4的情況。Reiserfs文件工具提供了文件系統大小調整工具:
對於使用reiserfs文件系統的用戶可以考慮使用工具reiserfs
附錄:
LV建立流程:
1.建立PV
2.建立VG,將PV加入到VG中。
3.建立LV,並設置LV大小。
4.格式化LV或LP成你需要的文件系統。
LV刪除流程:
1.umountFS
2.刪除LV。
3.將PV從所在的VG中刪除。
4.刪除VG。
卷管理常用命令集合:
|
查看顯示 |
創建 |
刪除 |
擴容 |
激活 |
掃描查找 |
LV |
lvdisplay |
lvcreate |
lvremove |
lvextend |
lvchange |
lvscan |
PV |
pvdisplay |
pvcreate |
pvremove |
|
pvchange |
pvscan |
VG |
vgdisplay |
vgcreate |
vgremove |
vgextend |
vgchange |
vgscan |
VG的完整架構圖: