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