Linux 系統邏輯盤卷管理LVM 詳細介紹

gaopengtttt發表於2011-01-17

Linux 系統邏輯盤卷管理LVM 詳細介紹
一、前言
每個Linux 使用者在安裝Linux 時都會遇到這樣的困境:在為系統分割槽時,如何
精確評估和分配各個硬碟分割槽的容量,因為系統管理員不但要考慮到當前某個
分割槽需要的容量,還要預見該分割槽以後可能需要的容量的最大值。因為如果估計
不準確,當遇到某個分割槽不夠用時管理員可能甚至要備份整個系統、清除硬碟、
重新對硬碟分割槽,然後恢復資料到新分割槽。
雖然現在有很多動態調整磁碟的工具可以使用,例如Partation Magic 等等,
但是它並不能完全解決問題,因為某個分割槽可能會再次被耗盡;另外一個方面這
需要重新引導系統才能實現,對於很多關鍵的伺服器,停機是不可接受的,而
且對於新增新硬碟,希望一個能跨越多個硬碟驅動器的檔案系統時,分割槽調整程
序就不能解決問題。
因此完美的解決方法應該是在零停機前提下可以自如對檔案系統的大小進行
調整,可以方便實現檔案系統跨越不同磁碟和分割槽。幸運的是Linux 提供的邏輯
盤卷管理(LVM,Logical Volume Manager)機制就是一個完美的解決方案。
LVM 是邏輯盤卷管理(Logical Volume Manager)的簡稱,它是Linux 環境下
對磁碟分割槽進行管理的一種機制,LVM 是建立在硬碟和分割槽之上的一個邏輯層,
來提高磁碟分割槽管理的靈活性。透過LVM 系統管理員可以輕鬆管理磁碟分割槽,
如:將若干個磁碟分割槽連線為一個整塊的卷組(volume group),形成一個儲存
池。管理員可以在卷組上隨意建立邏輯卷組(logical volumes),並進一步在邏
輯卷組上建立檔案系統。管理員透過LVM 可以方便的調整儲存卷組的大小,並且
可以對磁碟儲存按照組的方式進行命名、管理和分配,例如按照使用用途進行
定義:“development”和“sales”,而不是使用物理磁碟名“sda”和“sdb”。
而且當系統新增了新的磁碟,透過LVM 管理員就不必將磁碟的檔案移動到新的
磁碟上以充分利用新的儲存空間,而是直接擴充套件檔案系統跨越磁碟即可。
二、LVM 基本術語
前面談到,LVM 是在磁碟分割槽和檔案系統之間新增的一個邏輯層,來為檔案系
統遮蔽下層磁碟分割槽佈局,提供一個抽象的盤卷,在盤捲上建立檔案系統。首先
我們討論以下幾個LVM 術語:
· 物理儲存介質(The physical media)
這裡指系統的儲存裝置:硬碟,如:/dev/hda1、/dev/sda 等等,是儲存
系統最低層的儲存單元。
· 物理卷(physical volume)
物理卷就是指硬碟分割槽或從邏輯上與磁碟分割槽具有同樣功能的裝置(如
RAID),是LVM 的基本儲存邏輯塊,但和基本的物理儲存介質(如分割槽、
磁碟等)比較,卻包含有與LVM 相關的管理引數。
· 卷組(Volume Group)
LVM 卷組類似於非LVM 系統中的物理硬碟,其由物理卷組成。可以在卷組
上建立一個或多個“LVM 分割槽”(邏輯卷),LVM 卷組由一個或多個物理卷
組成。
· 邏輯卷(logical volume)
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@www root]# rpm –qa|grep lvm
lvm-1.0.3-4
如果命令結果輸入類似於上例,那麼說明系統已經安裝了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
中有以下內容:
# LVM initialization
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
要建立一個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 以外,還設定使用大小為4 MB 的PE(預設為4MB),這表示卷組
上建立的所有邏輯卷都以4 MB 為增量單位來進行擴充或縮減。由於核心原因,
PE 大小決定了邏輯卷的最大大小,4 MB 的PE 決定了單個邏輯卷最大容量為256
GB,若希望使用大於256G 的邏輯卷則建立卷組時指定更大的PE。PE 大小範圍為
8 KB 到512 MB,並且必須總是2 的倍數(使用-s 指定,具體請參考man
vgcreate)。
4、啟用卷組
為了立即使用卷組而不是重新啟動系統,可以使用vgchange 來啟用卷組:
# vgchange -a y web_document
5、新增新的物理捲到卷組中
當系統安裝了新的磁碟並建立了新的物理卷,而要將其新增到已有卷組時,
就需要使用vgextend 命令:
# vgextend web_document /dev/hdc1
這裡/dev/hdc1 是新的物理卷。
6、從卷組中刪除一個物理卷
要從一個卷組中刪除一個物理卷,首先要確認要刪除的物理卷沒有被任何邏
輯卷正在使用,就要使用pvdisplay 命令察看一個該物理卷資訊:
如果某個物理卷正在被邏輯卷所使用,就需要將該物理卷的資料備份到其
他地方,然後再刪除。刪除物理卷的命令為vgreduce:
# vgreduce web_document /dev/hda1
7、建立邏輯卷
建立邏輯卷的命令為lvcreate:
# lvcreate -L1500 –nwww1 web_document
該命令就在卷組web_document 上建立名字為www1,大小為1500M 的邏
輯卷,並且裝置入口為/dev/web_document/www1 (web_document 為卷組名,www1
為邏輯卷名)。如果希望建立一個使用全部卷組的邏輯卷,則需要首先察看該卷
組的PE 數,然後在建立邏輯卷時指定:
# vgdisplay web_document| grep "Total PE"
Total PE 45230
# lvcreate -l 45230 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/wwwroot reiserfs defaults 1 2
9、刪除一個邏輯卷
刪除邏輯卷以前首先需要將其解除安裝,然後刪除:
# umount /dev/web_document/www1
# lvremove /dev/web_document/www1
lvremove -- do you really want to remove "/dev/web_document/www1"?
[y/n]: y
lvremove -- doing automatic backup of volume group "web_document"
lvremove -- logical volume "/dev/web_document/www1" successfully
removed
10、擴充套件邏輯卷大小
LVM 提供了方便調整邏輯卷大小的能力,擴充套件邏輯卷大小的命令是
lvcreate:
# lvextend -L12G /dev/web_document/www1
lvextend -- extending logical volume "/dev/web_document/www1" to
12 GB
lvextend -- doing automatic backup of volume group "web_document
"
lvextend -- logical volume "/dev/web_document/www1" successfully
extended
上面的命令就實現將邏輯卷www1 的大小擴招為12G。
# lvextend -L+1G /dev/web_document/www1
lvextend -- extending logical volume "/dev/web_document/www1" to
13 GB
lvextend -- doing automatic backup of volume group "web_document
"
lvextend -- logical volume "/dev/web_document/www1" successfully
extended
上面的命令就實現將邏輯卷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-HOWTO。

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

相關文章