1. 程式人生 > >Linux LVM 邏輯分割槽

Linux LVM 邏輯分割槽

LVM是 Logical Volume Manager(邏輯卷管理)的簡寫,它是Linux環境下對磁碟分割槽進行管理的一種機制,它由Heinz Mauelshagen在Linux 2.4核心上實現。
普通的磁碟分割槽管理方式在邏輯分區劃分好之後就無法改變其大小,當一個邏輯分割槽存放不下某個檔案時,這個檔案因為受上層檔案系統的限制,也不能跨越多個分割槽來存放,所以也不能同時放到別的磁碟上。而遇到出現某個分割槽空間耗盡時,解決的方法通常是使用符號連結,或者使用調整分割槽大小的工具,但這只是暫時解決辦法,沒有從根本上解決問題。隨著Linux的邏輯卷管理功能的出現,這些問題都迎刃而解,使用者在無需停機的情況下可以方便地調整各個分割槽大小。

LVM是在磁碟分割槽和檔案系統之間新增的一個邏輯層,來為檔案系統遮蔽下層磁碟分割槽佈局,提供一個抽象的儲存卷,在儲存捲上建立檔案系統。

一、LVM 相關名詞解釋:

1、物理儲存介質(PhysicalStorageMedia)
指系統的物理儲存裝置:磁碟,如:/dev/hda、/dev/sda等,是儲存系統最底層的儲存單元。

2、物理卷(Physical Volume,PV)
指磁碟分割槽或從邏輯上與磁碟分割槽具有同樣功能的裝置(如RAID),是LVM的基本儲存邏輯塊,但和基本的物理儲存介質(如分割槽、磁碟等)比較,卻包含有與LVM相關的管理引數。

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

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

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

二、建立一個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、建立檔案系統

mkfs.ext4 /dev/web_document/www1
或者:
mkfs -t ext4 /dev/web_document/www1


載入 檔案系統
resize2fs命令 針對的是ext2、ext3、ext4檔案系統
xfs_growfs命令 針對的是xfs檔案系統

ext2/ext3/ext4檔案系統的調整命令是resize2fs(增大和減小都支援)
lvextend -L 100G /dev/web_document/www1 //增大至100G
lvextend -L +20G /dev/web_document/www1 //增加20G
lvreduce -L 50G /dev/web_document/www1 //減小至50G
lvreduce -L -20G /dev/web_document/www1 //減小20G
resize2fs /dev/web_document/www1 //執行調整

2)xfs檔案系統的調整命令是xfs_growfs(只支援增大)
lvextend -L 100G /dev/web_document/www1 //增大至100G
lvextend -L +20G /dev/web_document/www1 //增加20G
xfs_growfs /dev/web_document/www1 //執行調整

建立了檔案系統以後,就可以載入並使用它:
#mkdir/data/wwwroot
#mount /dev/web_document/www1 /data/wwwroot
如果希望系統啟動時自動載入檔案系統,則還需要在/etc/fstab中新增內容:
/dev/web_document/www1 /data/wwwroot reiserfs defaults 1 2

9、刪除一個邏輯卷
刪除邏輯卷以前首先需要將其解除安裝,然後 lvremove 刪除:
#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 -L 20G /dev/web_document/www1
lvextend --extendinglogicalvolume "/dev/web_document/www1" to 12GB
lvextend --doingautomaticbackupofvolumegroup "web_document"
lvextend --logicalvolume "/dev/web_document/www1" successfullyextended
上面的命令就實現將邏輯卷www1的大小擴為 20G。

#lvextend -L +1G /dev/web_document/www1
lvextend--extendinglogicalvolume"/dev/web_document/www1"to 13GB
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