王韶霞,曲廣平
(煙臺職業學院,山東 煙臺 264670)
磁盤管理是網管員進行系統維護時的一項日常工作,但在對磁盤進行分區大小規劃時,有時往往不能確定這個分區要使用的總空間大小。當磁盤分完區以后,每個分區的大小已經固定了,如果分區設置的過大,就白白浪費了磁盤空間,分區設置的過小,又會導致空間不夠用。而一旦分好區之后再要改變分區大小就非常困難,雖然可以重新劃分磁盤分區或是利用Partition Magic之類的磁盤管理工具來調整分區大小,但無論采用哪種方式,操作起來都異常麻煩,而且在操作的過程中必須要將服務器停機或重啟,這對一些擔任重要角色的服務器是絕不允許的。
在Linux系統中提供了一種實用的磁盤管理機制—邏輯卷管理(LVM,Logical Volume Manager),通過它可以非常方便靈活地對磁盤實現動態管理。LVM是建立在磁盤分區和文件系統之間的一個邏輯層,管理員利用LVM可以在磁盤不用重新分區的情況下動態調整文件系統的大小,并且利用LVM管理的文件系統可以跨越磁盤,當服務器添加了新的磁盤后,管理員不必將已有的磁盤文件移動到新的磁盤上,通過LVM可以直接擴展文件系統跨越磁盤。
本文以Red Hat Enterprise Linux 6.3系統(以下簡稱RHEL6)為例,介紹LVM的設置與使用方法。
LVM是建立在物理磁盤和分區之上的一個邏輯層,通過它可以將若干個磁盤分區連接為一個整塊的卷組,形成一個存儲池。在卷組中可以任意創建邏輯卷,并進一步在邏輯卷上創建文件系統,最終在系統中掛載使用的就是邏輯卷,邏輯卷的使用方法與普通的磁盤分區完全一樣。在LVM中主要涉及以下幾個概念:
●物理卷PV(Physical Volume)
物理卷是構建LVM的基礎,通常就是指磁盤分區,但和基本的磁盤分區不同的是,物理卷中包含有與LVM相關的管理參數。
●卷組VG(Volume Group)
LVM卷組類似于非LVM系統中的物理磁盤,可以在卷組上創建一個或多個“LVM分區”(邏輯卷),LVM卷組由一個或多個物理卷組成。
●邏輯卷LV(Logical Volume)
LVM的邏輯卷類似于非LVM系統中的磁盤分區,在邏輯卷之上可以創建文件系統。
●物理塊PE(Physical Extent)
每一個物理卷被劃分為稱為PE的基本單元,具有唯一編號的PE是可以被LVM尋址的最小單元。PE的大小是可配置的,默認為4MB。在一個卷組中最多能包括65534個PE,所以它的大小會影響到整個卷組的最大容量。
LVM各組成部分之間的對應關系如圖1所示。

圖1 LVM磁盤組織結構圖
從圖1中可以看出,物理卷PV由大小等同的基本單元物理塊PE組成,一個卷組VG由一個或多個物理卷組成,邏輯卷LV建立在卷組之上,邏輯卷相當于非LVM系統中的磁盤分區,可以在其上創建文件系統。
LVM屏蔽了系統底層的磁盤布局,但需要注意的是,由于“/boot”分區用于存放系統引導文件,所以不能應用LVM機制。
在RHEL6系統中,LVM得到了高度重視。比如在安裝系統的過程中,如果設置由系統自動進行分區,則系統除了創建一個“/boot”引導分區之外,會將剩余的磁盤空間全部采用LVM進行管理,并在其中創建兩個邏輯卷,分別掛載到根分區和交換分區。如圖2所示。

圖2 RHEL6系統自動創建的LVM邏輯卷
在RHEL6系統中實現LVM的方法有兩種:一種是利用LVM管理命令在字符界面下實現,另一種是利用system-config-lvm工具在圖形界面下實現。在字符界面下涉及到的LVM管理命令比較多,尤其對于初學者較難掌握。RHEL6系統中的圖形界面功能有了很大增強,相比命令行,操作起來更加簡單直觀。本文就采用system-config-lvm圖形化工具來實現LVM。
在RHEL6系統中默認并沒有安裝system-config-lvm管理工具,不過在系統光盤中提供了相應的安裝包,下面以yum安裝的方式安裝system-config-lvm。
掛載系統光盤:
[root@localhost~]# mount/dev/cdrom/mnt
配置本地yum源:
[root@localhost~]# vim/etc/yum.repos.d/dvd.repo
[dvd]
name=dvd
baseurl=file:///mnt/
gpgcheck=0
安裝system-config-lvm:
[root@localhost~]#yum install system-config-lvm
安裝好system-config-lvm之后,在“系統/管理”中會看到LVM管理工具—“邏輯卷管理器”。
磁盤分區是實現LVM的前提和基礎,在使用LVM之前,首先需要劃分磁盤分區。
在本次操作中,在系統中新增加了兩塊硬盤,并都已經創建好了分區,兩塊硬盤的分區信息如圖3所示。

圖3 硬盤分區信息
對硬盤“/dev/sdb”劃分了一個主分區“/dev/sdb1”和一個邏輯分區“/dev/sdb5”,對硬盤“/dev/sdc”劃分了一個主分區“/dev/sdc1”。需要注意的是,所有的分區類型都應指定為“linux LVM”,對應的ID為“8e”。
創建物理卷是實現LVM的第一步。打開“邏輯卷管理器”,在“未初始化的實例”中可以看到已有的磁盤分區信息,選中磁盤分區“/dev/sdb1”,點擊下方的“初始化實例”按鈕,將之轉化為物理卷,如圖4所示。
用同樣的方式將磁盤分區“/dev/sdb5”也轉化為物理卷。
卷組是LVM的主體,類似于非LVM系統中的硬盤。
在“未分配的卷”中選中剛才初始化好的物理卷“/dev/sdb1”,點擊下方的“創建新的卷組”按鈕,如圖5所示。

圖4 創建物理卷

圖5 創建卷組
然后在圖6所示的界面中輸入卷組的相關參數。
●“卷組名稱”可根據情況自由設定,這里設置為“wgroup”。
●“最大物理卷數”指卷組中最多可以包含的物理卷的數目,默認值為256。
●“最大邏輯卷數”指卷組中最多可以創建的邏輯卷的數目,默認值為256。
●“物理擴展區”即物理塊PE,是LVM中的基本存儲單元,大小默認為4MB。
卷組創建完成后,在“未分配的卷”中選中“/dev/sdb5”,點擊下方的“添加到已存在的卷組中”,將該物理卷也添加到“wgroup”卷組中,如圖7所示。

圖6 設置卷組參數

圖7 向卷組中添加物理卷

圖8 創建邏輯卷
這樣便創建好了一個總容量為20GB的卷組。
邏輯卷類似于非LVM系統中的磁盤分區,是我們最終使用的對象。
在已創建好的“wgroup”卷組中選擇“邏輯視圖”,點擊下方的“創建新的邏輯卷”按鈕,如圖8所示。
在圖9的界面中輸入邏輯卷的相關參數。
●“邏輯卷名”可根據情況自由設定,這里設置為“ftp”。
●“LV屬性”用于設置數據在邏輯卷中的寫入方式。假如邏輯卷中包括了兩個物理卷:“/dev/sdb1”、“/dev/sdb5”,“線性的”寫入方式就是當“/dev/sdb1”中的空間被用完之后才會使用“/dev/sdb5”,數據是被順序存儲的;“分塊的”就是將要寫入的數據分作兩部分,同時寫入到“/dev/sdb1”和“/dev/sdb5”中。“分塊的”寫入方式類似于RAID 0,理論上效率要更高,但是安全性較差,任何一個磁盤分區出現問題都會導致數據丟失。由于在系統中實施LVM的主要目的是為了更加靈活地調整分區容量,所以這里推薦采用“線性的”寫入方式,這也是系統的默認設置。
●“大小”用于設置LV的容量,這里將整個卷組的空間全部劃給邏輯卷。
●“文件系統”,LV也需要經過格式化創建文件系統之后才能使用,這里只能格式化成Linux標準的ext類文件系統。
●勾選“掛載”可以將LV自動掛載到指定位置,這里設置將其掛載到“/var/ftp”目錄,作為FTP服務器的主目錄。
●勾選“重新啟動時掛載”可以自動修改“/etc/fstab”配置文件,實現系統開機或重啟時自動掛載LV。
點擊“確定”按鈕之后就創建好了設備名為“/dev/wgroup/ftp”的邏輯卷,并自動掛載到了指定的掛載點
這樣,我們就可以像使用正常的磁盤分區一樣地使用邏輯卷了。

圖9 設置邏輯卷參數

圖10 調整邏輯卷的大小
當邏輯卷的空間全部用盡時,只要按照上面的步驟,先創建出一個磁盤分區,將其初始化成物理卷之后,再加入到卷組中,然后就可以任意地調整邏輯卷的容量。
由于邏輯卷是位于物理磁盤和分區之上的一個邏輯層,所以邏輯卷可以跨越物理磁盤,將任何一個磁盤上的分區加入到同一個邏輯卷中。下面就將第三塊磁盤中的分區“/dev/sdc1”加入到邏輯卷中。
首先按照上面的操作將“/dev/sdc1”初始化成物理卷,然后再將其添加到“wgroup”卷組中,最后打開邏輯卷“ftp”的屬性設置界面,就可以對邏輯卷的大小進行任意調整,如圖10所示。
通過LVM機制可以實現磁盤分區的動態管理,使磁盤分區管理工作具有更大的靈活性,并且使用system-config-lvm工具在圖形界面下操作更加便于理解和掌握。在生產實踐中,建議參照RHEL6系統的默認分區設置,將“/boot”以外的磁盤分區都設置成邏輯卷。另外為了提高磁盤性能,可以將LVM結合RAID一起使用,那將起到更好的效果。
[1]董良,寧方明.Linux系統管理[M].北京:人民郵電出版社,2012.
[2]張棟,張瑞生.網絡服務搭建、配置與管理大全(Linux版)[M].2版.北京:電子工業出版社,2012.