摘要:邏輯卷管理(LogicVolumeManager,LVM)是UNIX家族里一種優(yōu)秀且被廣為采用的分區(qū)管理方案,故Linux支持LVM是必然的。介紹邏輯卷管理的概念、實現(xiàn)機理。結(jié)合實際事例,在Linux下運用LVM處理硬盤空間分區(qū)的問題。表明LVM的獨特優(yōu)點,可以極大地方便分區(qū)管理。
關(guān)鍵詞:Linux;邏輯卷;LVM;分區(qū)
Linux開始于芬蘭赫爾辛基大學的LinusTorvalds的業(yè)余愛好。自從1992年發(fā)布第一個正式版以來,這只“企鵝”以其自由開放的代碼和卓越的性能,贏得了全世界越來越多的電腦迷的青睞。許許多多的軟、硬件制造商和愛好者都參與了Linux的推廣和發(fā)展。邏輯卷管理,就是在這樣的情形下,被Linux采用集成的。
在各種商業(yè)UNIX系統(tǒng)中,譬如AIX,HP-UNIX,Tru64UNIX等系統(tǒng)中,邏輯卷管理已經(jīng)被廣泛采用,成了事實上的一個標準。2001年1月,Linux2.4.0內(nèi)核發(fā)布,開始支持邏輯卷管理,使得Linux新內(nèi)核更適應于服務器的應用。近期發(fā)布的RH7.3在安裝時已經(jīng)把邏輯卷管理作為單獨安裝模塊供用戶選擇,進一步表明LVM應用上的趨勢。
1邏輯卷管理簡介
邏輯卷管理(LogicVolumeManager),簡稱LVM,是與傳統(tǒng)的靜態(tài)分區(qū)完全不同的磁盤管理方法。如果給其下定義的話,就是一系列用于建立和控制邏輯卷區(qū)域的操作系統(tǒng)命令、庫函數(shù)和其它工具的集合。邏輯卷管理(LVM)把實際性物理磁盤數(shù)據(jù)映射到一個簡單而靈活的虛擬性的邏輯存儲視圖上,藉以控制磁盤資源。這樣,也就是重新考慮了管理文件系統(tǒng)和卷的方法,系統(tǒng)在文件系統(tǒng)管理中增加了一個額外的抽象層,不需要深入細節(jié)的了解,可以實現(xiàn)虛擬分區(qū)或者動態(tài)建立一個邏輯卷以及更改卷的大小,允許文件系統(tǒng)跨越磁盤等功能。因此,相對與傳統(tǒng)的磁盤和分區(qū),對磁盤存儲,LVM提供了一個更高的視角。這給了系統(tǒng)管理員向應用程序和用戶分配空間以更高的靈活性?,F(xiàn)在的Linux以標準兼容的方式提供了LVM的支持,讓商業(yè)UNIX使用者至少感到有些熟悉。
1.1基本原理
邏輯卷有幾個基本概念:物理卷,卷組,物理分區(qū),邏輯卷和邏輯分區(qū)。
卷組(VolumeGroup(VG)):卷組是lvm里的最高抽象級。它把邏輯卷和物理卷集中在一個管理單位里面。
物理卷(physicalvolume(PV)):通常一個物理卷就是一塊硬盤,或者看起來象一塊硬盤的設備,如軟件raid設備。
邏輯卷(LogicalVolume(LV):等同于非lvm系統(tǒng)下的分區(qū),lv可以看作標準的塊設備,可以包含一個文件系統(tǒng)(如/home)。
物理盤區(qū)(PhysicalExtents(PE)):每個物理卷被分成很多數(shù)據(jù)集合塊,就是PE,PE的大小等同于卷組里的LV的大小。
邏輯盤區(qū)(logicalextent(LE)):每個邏輯卷被分成很多數(shù)據(jù)塊,叫邏輯盤區(qū)。
如圖1、2所示,它們各自的關(guān)系是:一個獨立的物理硬盤稱為一個物理卷(PV),名為hda1,hdc1等。所有的物理卷屬于一個稱為diskvg的卷組(VG)。在卷組中的所有物理卷被劃分成大小一樣的物理盤區(qū)(PEs)。在每個卷組內(nèi),定義了幾個邏輯卷(LVs)。邏輯卷是位于物理卷上的信息集合,在邏輯卷上的數(shù)據(jù)對用戶來說是連續(xù)的,但在實際物理卷上的分布可能是不連續(xù)的。每個邏輯卷由一個或多個邏輯盤區(qū)(LEs)組成,如果邏輯卷做了鏡像,那就要分配附加的物理盤區(qū)用于存儲邏輯盤區(qū)的附加拷貝。邏輯卷可用于很多文件系統(tǒng),如圖中的ext2,xfs等等。
<center>2LVM的應用
2.1配置、編譯和安裝
對于2.4以后的內(nèi)核,LVM已經(jīng)被模塊集成了,只需要編譯內(nèi)核時選上LVM就可以了。使用者可能不希望使用自帶的(或發(fā)行版提供的)2.4內(nèi)核所包括的LVM支持,而想使用最新的LVM版本,那么要將LVMtar文件中的補丁程序應用到當前的內(nèi)核源碼樹即可。
使用的環(huán)境為一臺高校BBS服務器,RH7.1,使用內(nèi)核2.4.18,依據(jù)如下步驟安裝LVM。
在“Multi-devicesupport(RAIDandLVM)”部分中選中它,這樣才可以找到LVM選項:
[*]Multipledevicesdriversupport(RAIDandLVM)
....然后將看到以下選項,您也應該啟用它們:<*>Logicalvolumemanager(LVM)support
完成后,保存內(nèi)核配置,并執(zhí)行標準內(nèi)核編譯例程,然后重新引導。這樣,已啟用了內(nèi)核LVM支持;現(xiàn)在,需要編譯和安裝用戶磁盤空間工具。這一步很簡單。
先轉(zhuǎn)到lvm的目錄下。
另外還有一步,它是可選的。如果要做的不僅是測試LVM,還需要將以下幾行添加到啟動rc腳本中。
這些行將瀏覽所有可用的卷組并激活它們。然后,將以下這行添加到關(guān)機rc腳本中,并確保它在卸裝了所有文件系統(tǒng)后執(zhí)行。
/sbin/vgchange-an
如果只是測試LVM,可以跳過這些步驟。只是要記住,在每次重新引導后,在邏輯卷可以使用前,需要以root輸入“vgscan”和“vgchange-ay”。
2.2碰到的實際空間問題及解決
該服務器使用QUANTUM30GB硬盤,有20GB用于ftp服務,現(xiàn)在由于BBS數(shù)據(jù)的逐步增大,擬取消ftp服務,用于增加BBS數(shù)據(jù)分區(qū)。由于BBS的新數(shù)據(jù)均被添加到/home目錄下,所以解決辦法就是把/home目錄轉(zhuǎn)移到邏輯卷里。
①首先對20GB的硬盤空間(這里是/dev/hda5)進行分區(qū),將分區(qū)的分區(qū)類型設置為“8E”(正規(guī)LVM分區(qū)類型),然后重新啟動系統(tǒng),以重新讀取分區(qū)表。
接下來,將這20GB的分區(qū)初始化成物理卷,然后,使用這個物理卷創(chuàng)建一個卷組,最后,在卷組上分配一些范圍,創(chuàng)建將包含新文件系統(tǒng)并存放當前/home中所有文件的邏輯卷。
②用pvcreate命令將/dev/hda5初始化成物理卷。
③然后創(chuàng)建卷組并向該卷組添加/dev/hda5,創(chuàng)建卷組之后,才可以創(chuàng)建所需數(shù)量的邏輯卷。這里將卷組稱為“bbs”。
④可以用vgdisplay來查看卷組的詳細信息?,F(xiàn)在用lvcreat命令創(chuàng)建邏輯卷,大小為10G,名字為“lvhome”。
⑤然后,在邏輯卷上創(chuàng)建文件系統(tǒng):mke2fs/dev/bbs/lvbbs。
⑥下面的步驟,就是把邏輯卷mount上一個跟分區(qū)的目錄,進入單用戶模式拷貝/home目錄的數(shù)據(jù)到邏輯卷上。修改/etc/fstab文件,以保證下次啟動使用該分區(qū)。
3結(jié)論
邏輯卷在linux下的采用使得管理文件系統(tǒng)變得非常容易,雖然配置LVM略顯麻煩。假如日后數(shù)據(jù)進一步增大,則只需要簡單使用lvextend命令給邏輯卷增加容量即可,這種增加,不需要重啟,不需要把運行級別降低到1,甚至不需要umount分區(qū)。LVM的這些優(yōu)點和特性。隨著在實際管理中進一步地應用、發(fā)掘,就可以領略到LVM方便分區(qū)管理的優(yōu)越之處。