王韶霞,曲廣平
(煙臺職業(yè)學(xué)院,山東 煙臺 264670)
磁盤管理是網(wǎng)管員進行系統(tǒng)維護時的一項日常工作,但在對磁盤進行分區(qū)大小規(guī)劃時,有時往往不能確定這個分區(qū)要使用的總空間大小。當(dāng)磁盤分完區(qū)以后,每個分區(qū)的大小已經(jīng)固定了,如果分區(qū)設(shè)置的過大,就白白浪費了磁盤空間,分區(qū)設(shè)置的過小,又會導(dǎo)致空間不夠用。而一旦分好區(qū)之后再要改變分區(qū)大小就非常困難,雖然可以重新劃分磁盤分區(qū)或是利用Partition Magic之類的磁盤管理工具來調(diào)整分區(qū)大小,但無論采用哪種方式,操作起來都異常麻煩,而且在操作的過程中必須要將服務(wù)器停機或重啟,這對一些擔(dān)任重要角色的服務(wù)器是絕不允許的。
在Linux系統(tǒng)中提供了一種實用的磁盤管理機制—邏輯卷管理(LVM,Logical Volume Manager),通過它可以非常方便靈活地對磁盤實現(xiàn)動態(tài)管理。LVM是建立在磁盤分區(qū)和文件系統(tǒng)之間的一個邏輯層,管理員利用LVM可以在磁盤不用重新分區(qū)的情況下動態(tài)調(diào)整文件系統(tǒng)的大小,并且利用LVM管理的文件系統(tǒng)可以跨越磁盤,當(dāng)服務(wù)器添加了新的磁盤后,管理員不必將已有的磁盤文件移動到新的磁盤上,通過LVM可以直接擴展文件系統(tǒng)跨越磁盤。
本文以Red Hat Enterprise Linux 6.3系統(tǒng)(以下簡稱RHEL6)為例,介紹LVM的設(shè)置與使用方法。
LVM是建立在物理磁盤和分區(qū)之上的一個邏輯層,通過它可以將若干個磁盤分區(qū)連接為一個整塊的卷組,形成一個存儲池。在卷組中可以任意創(chuàng)建邏輯卷,并進一步在邏輯卷上創(chuàng)建文件系統(tǒng),最終在系統(tǒng)中掛載使用的就是邏輯卷,邏輯卷的使用方法與普通的磁盤分區(qū)完全一樣。在LVM中主要涉及以下幾個概念:
●物理卷PV(Physical Volume)
物理卷是構(gòu)建LVM的基礎(chǔ),通常就是指磁盤分區(qū),但和基本的磁盤分區(qū)不同的是,物理卷中包含有與LVM相關(guān)的管理參數(shù)。
●卷組VG(Volume Group)
LVM卷組類似于非LVM系統(tǒng)中的物理磁盤,可以在卷組上創(chuàng)建一個或多個“LVM分區(qū)”(邏輯卷),LVM卷組由一個或多個物理卷組成。
●邏輯卷LV(Logical Volume)
LVM的邏輯卷類似于非LVM系統(tǒng)中的磁盤分區(qū),在邏輯卷之上可以創(chuàng)建文件系統(tǒng)。
●物理塊PE(Physical Extent)
每一個物理卷被劃分為稱為PE的基本單元,具有唯一編號的PE是可以被LVM尋址的最小單元。PE的大小是可配置的,默認為4MB。在一個卷組中最多能包括65534個PE,所以它的大小會影響到整個卷組的最大容量。
LVM各組成部分之間的對應(yīng)關(guān)系如圖1所示。
圖1 LVM磁盤組織結(jié)構(gòu)圖
從圖1中可以看出,物理卷PV由大小等同的基本單元物理塊PE組成,一個卷組VG由一個或多個物理卷組成,邏輯卷LV建立在卷組之上,邏輯卷相當(dāng)于非LVM系統(tǒng)中的磁盤分區(qū),可以在其上創(chuàng)建文件系統(tǒng)。
LVM屏蔽了系統(tǒng)底層的磁盤布局,但需要注意的是,由于“/boot”分區(qū)用于存放系統(tǒng)引導(dǎo)文件,所以不能應(yīng)用LVM機制。
在RHEL6系統(tǒng)中,LVM得到了高度重視。比如在安裝系統(tǒng)的過程中,如果設(shè)置由系統(tǒng)自動進行分區(qū),則系統(tǒng)除了創(chuàng)建一個“/boot”引導(dǎo)分區(qū)之外,會將剩余的磁盤空間全部采用LVM進行管理,并在其中創(chuàng)建兩個邏輯卷,分別掛載到根分區(qū)和交換分區(qū)。如圖2所示。
圖2 RHEL6系統(tǒng)自動創(chuàng)建的LVM邏輯卷
在RHEL6系統(tǒng)中實現(xiàn)LVM的方法有兩種:一種是利用LVM管理命令在字符界面下實現(xiàn),另一種是利用system-config-lvm工具在圖形界面下實現(xiàn)。在字符界面下涉及到的LVM管理命令比較多,尤其對于初學(xué)者較難掌握。RHEL6系統(tǒng)中的圖形界面功能有了很大增強,相比命令行,操作起來更加簡單直觀。本文就采用system-config-lvm圖形化工具來實現(xiàn)LVM。
在RHEL6系統(tǒng)中默認并沒有安裝system-config-lvm管理工具,不過在系統(tǒng)光盤中提供了相應(yīng)的安裝包,下面以yum安裝的方式安裝system-config-lvm。
掛載系統(tǒng)光盤:
[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之后,在“系統(tǒng)/管理”中會看到LVM管理工具—“邏輯卷管理器”。
磁盤分區(qū)是實現(xiàn)LVM的前提和基礎(chǔ),在使用LVM之前,首先需要劃分磁盤分區(qū)。
在本次操作中,在系統(tǒng)中新增加了兩塊硬盤,并都已經(jīng)創(chuàng)建好了分區(qū),兩塊硬盤的分區(qū)信息如圖3所示。
圖3 硬盤分區(qū)信息
對硬盤“/dev/sdb”劃分了一個主分區(qū)“/dev/sdb1”和一個邏輯分區(qū)“/dev/sdb5”,對硬盤“/dev/sdc”劃分了一個主分區(qū)“/dev/sdc1”。需要注意的是,所有的分區(qū)類型都應(yīng)指定為“l(fā)inux LVM”,對應(yīng)的ID為“8e”。
創(chuàng)建物理卷是實現(xiàn)LVM的第一步。打開“邏輯卷管理器”,在“未初始化的實例”中可以看到已有的磁盤分區(qū)信息,選中磁盤分區(qū)“/dev/sdb1”,點擊下方的“初始化實例”按鈕,將之轉(zhuǎn)化為物理卷,如圖4所示。
用同樣的方式將磁盤分區(qū)“/dev/sdb5”也轉(zhuǎn)化為物理卷。
卷組是LVM的主體,類似于非LVM系統(tǒng)中的硬盤。
在“未分配的卷”中選中剛才初始化好的物理卷“/dev/sdb1”,點擊下方的“創(chuàng)建新的卷組”按鈕,如圖5所示。
圖4 創(chuàng)建物理卷
圖5 創(chuàng)建卷組
然后在圖6所示的界面中輸入卷組的相關(guān)參數(shù)。
●“卷組名稱”可根據(jù)情況自由設(shè)定,這里設(shè)置為“wgroup”。
●“最大物理卷數(shù)”指卷組中最多可以包含的物理卷的數(shù)目,默認值為256。
●“最大邏輯卷數(shù)”指卷組中最多可以創(chuàng)建的邏輯卷的數(shù)目,默認值為256。
●“物理擴展區(qū)”即物理塊PE,是LVM中的基本存儲單元,大小默認為4MB。
卷組創(chuàng)建完成后,在“未分配的卷”中選中“/dev/sdb5”,點擊下方的“添加到已存在的卷組中”,將該物理卷也添加到“wgroup”卷組中,如圖7所示。
圖6 設(shè)置卷組參數(shù)
圖7 向卷組中添加物理卷
圖8 創(chuàng)建邏輯卷
這樣便創(chuàng)建好了一個總?cè)萘繛?0GB的卷組。
邏輯卷類似于非LVM系統(tǒng)中的磁盤分區(qū),是我們最終使用的對象。
在已創(chuàng)建好的“wgroup”卷組中選擇“邏輯視圖”,點擊下方的“創(chuàng)建新的邏輯卷”按鈕,如圖8所示。
在圖9的界面中輸入邏輯卷的相關(guān)參數(shù)。
●“邏輯卷名”可根據(jù)情況自由設(shè)定,這里設(shè)置為“ftp”。
●“LV屬性”用于設(shè)置數(shù)據(jù)在邏輯卷中的寫入方式。假如邏輯卷中包括了兩個物理卷:“/dev/sdb1”、“/dev/sdb5”,“線性的”寫入方式就是當(dāng)“/dev/sdb1”中的空間被用完之后才會使用“/dev/sdb5”,數(shù)據(jù)是被順序存儲的;“分塊的”就是將要寫入的數(shù)據(jù)分作兩部分,同時寫入到“/dev/sdb1”和“/dev/sdb5”中?!胺謮K的”寫入方式類似于RAID 0,理論上效率要更高,但是安全性較差,任何一個磁盤分區(qū)出現(xiàn)問題都會導(dǎo)致數(shù)據(jù)丟失。由于在系統(tǒng)中實施LVM的主要目的是為了更加靈活地調(diào)整分區(qū)容量,所以這里推薦采用“線性的”寫入方式,這也是系統(tǒng)的默認設(shè)置。
●“大小”用于設(shè)置LV的容量,這里將整個卷組的空間全部劃給邏輯卷。
●“文件系統(tǒng)”,LV也需要經(jīng)過格式化創(chuàng)建文件系統(tǒng)之后才能使用,這里只能格式化成Linux標準的ext類文件系統(tǒng)。
●勾選“掛載”可以將LV自動掛載到指定位置,這里設(shè)置將其掛載到“/var/ftp”目錄,作為FTP服務(wù)器的主目錄。
●勾選“重新啟動時掛載”可以自動修改“/etc/fstab”配置文件,實現(xiàn)系統(tǒng)開機或重啟時自動掛載LV。
點擊“確定”按鈕之后就創(chuàng)建好了設(shè)備名為“/dev/wgroup/ftp”的邏輯卷,并自動掛載到了指定的掛載點
這樣,我們就可以像使用正常的磁盤分區(qū)一樣地使用邏輯卷了。
圖9 設(shè)置邏輯卷參數(shù)
圖10 調(diào)整邏輯卷的大小
當(dāng)邏輯卷的空間全部用盡時,只要按照上面的步驟,先創(chuàng)建出一個磁盤分區(qū),將其初始化成物理卷之后,再加入到卷組中,然后就可以任意地調(diào)整邏輯卷的容量。
由于邏輯卷是位于物理磁盤和分區(qū)之上的一個邏輯層,所以邏輯卷可以跨越物理磁盤,將任何一個磁盤上的分區(qū)加入到同一個邏輯卷中。下面就將第三塊磁盤中的分區(qū)“/dev/sdc1”加入到邏輯卷中。
首先按照上面的操作將“/dev/sdc1”初始化成物理卷,然后再將其添加到“wgroup”卷組中,最后打開邏輯卷“ftp”的屬性設(shè)置界面,就可以對邏輯卷的大小進行任意調(diào)整,如圖10所示。
通過LVM機制可以實現(xiàn)磁盤分區(qū)的動態(tài)管理,使磁盤分區(qū)管理工作具有更大的靈活性,并且使用system-config-lvm工具在圖形界面下操作更加便于理解和掌握。在生產(chǎn)實踐中,建議參照RHEL6系統(tǒng)的默認分區(qū)設(shè)置,將“/boot”以外的磁盤分區(qū)都設(shè)置成邏輯卷。另外為了提高磁盤性能,可以將LVM結(jié)合RAID一起使用,那將起到更好的效果。
[1]董良,寧方明.Linux系統(tǒng)管理[M].北京:人民郵電出版社,2012.
[2]張棟,張瑞生.網(wǎng)絡(luò)服務(wù)搭建、配置與管理大全(Linux版)[M].2版.北京:電子工業(yè)出版社,2012.