趙 麗
(黑龍江生態(tài)工程職業(yè)學院 計算機技術系,哈爾濱 150025)
由于linux系統(tǒng)的開源性、穩(wěn)定性及安全性等優(yōu)點,已有大部分用戶加入到linux使用者的陣營,但在安裝linux系統(tǒng)時,通常會遇到硬盤空間的分派問題,并且硬盤空間的擴展及規(guī)劃通常需要在不停機狀態(tài)下完成,以上的這些情況,可采用LVM(邏輯卷管理器)來解決。
LVM(Logical Volume Manager,邏輯卷管理器)是一種把硬盤驅動器空間分配成邏輯卷的方法,通過此種方式可使硬盤不必進行分區(qū)操作也能被簡單地重新劃分大小[1]。系統(tǒng)管理員可通過使用LVM方便地為應用程序及用戶分配存儲空間,同時使用LVM可以按需改變邏輯卷的大小或添加移除邏輯卷。LVM的另一個優(yōu)點是可以為所管理的邏輯卷提供特定的命名標識。LVM允許在機器的物理存儲資源之外創(chuàng)建邏輯卷,并且邏輯卷可以在系統(tǒng)處于運行狀態(tài)時擴充和縮減[2],此功能為Linux系統(tǒng)管理員提供了相當大的存儲器靈活性。綜上,使用LVM可靈活方便地對存儲系統(tǒng)進行管理,并且可動態(tài)進行系統(tǒng)的擴展。
物理卷(physicalvolume,PV):物理卷是LVM的基本存儲設備,它可以是硬盤分區(qū),也可以是已創(chuàng)建的物理分區(qū),甚至可以是整個硬盤,包含LVM相關的管理參數是物理卷與普通物理存儲介質的區(qū)別。
卷組(volumegroup,VG):卷組是存儲池,由一個或多個物理卷組成,在卷組上能創(chuàng)建一個或多個邏輯卷,即LVM分區(qū)。
邏輯卷(logicalvolume,LV):LVM的邏輯卷建立在卷組之上,類似于非LVM系統(tǒng)中的硬盤分區(qū),它是一個標準的塊設備,在邏輯卷之上可以建立多種類型的文件系統(tǒng)。
物理塊(physicalextent,PE):物理卷是LVM尋址的最小單元,它是以大小相等的物理塊作為存儲的基本單位的。
邏輯塊(logicalextent,LE):在同一個卷組中,LE的大小和PE的大小是相等的,并且存在一一對應的映射關系。
LVM是建立在磁盤分區(qū)和文件系統(tǒng)之間的一個邏輯層,它可為文件系統(tǒng)屏蔽下層磁盤分區(qū)布局,提供一個邏輯的盤卷,再在盤卷上來建立文件系統(tǒng)[3]。LVM的結構如圖1如示:
啟動LVM需要創(chuàng)建分區(qū)、創(chuàng)建物理卷、激活卷組、創(chuàng)建邏輯卷及文件系統(tǒng),流程可見圖2,具體操作步驟如下:
(1)添加一塊磁盤;
(2)分區(qū)并且將文件系統(tǒng)設定為LVM類型,需要注意LVM的分區(qū)類型為8e;
(3)創(chuàng)建物理卷之前,要先執(zhí)行vgscan,即卷組掃描并生成邏輯卷所需的文件,之后再利用pvcreate命令創(chuàng)建相應的物理卷,物理卷數量依具體情況而定;
(4)利用命令vgcreate創(chuàng)建卷組;
(5)利用命令lvcreate創(chuàng)建邏輯卷,可通過參數指定邏輯卷的大??;
(6)利用命令mkfs格式化新生成的邏輯卷并創(chuàng)建ext3文件系統(tǒng);
(7)利用命令mount將邏輯卷掛載到相應目錄下。
隨著存儲信息的增加,卷組空間不足的情況便會出現,解決這樣的問題可以通過加入新的物理卷的方法來擴大卷組容量。先使用pvcreate命令對待加入的設備進行初始化,接下來使用vgextend命令進行擴容即可。
要從卷組中移除一個物理卷,首先要使用pvdisplay進行查看,確認邏輯卷沒有正在使用即將移除的物理卷,如果邏輯卷正在使用即將移除的物理卷,就需要將該物理卷的數據轉移到其他地方,然后再移除;如果物理卷處于空閑狀態(tài),使用vgreduce命令即可將物理卷從卷組中移除即可。
當發(fā)現邏輯卷下的某個磁盤有錯誤時,或有更換大容量或更高速的物理設備等需求時,可使用命令pvmove完成物理卷之間的數據轉移。在數據轉移前需要確保目標卷的空間要大于待轉移卷的大小。
LVM可通過命令lvextent方便地調整邏輯卷的大小。邏輯卷擴展操作后并不會馬上生效,需要使用命令resize2fs重新加載邏輯卷,但該命令只可用于ext2/ext3的文件系統(tǒng)的重新加載;刪除邏輯卷的命令是lvremove。
在進行移除卷組的操作前要確認該卷組中已經沒有任何邏輯卷,亦可在操作前使用命令vgchange將卷組停止,移除卷組的命令為vgremove;在刪除物理卷的命令是pvremove,但在刪除操作執(zhí)行前必須確認該物理卷已從卷組中移除了。
以上是LVM的術語、創(chuàng)建過程及管理方法,從下面的實例可以更好地理解LVM的使用方法。某公司的郵件服務器由于用戶數量增加,郵件存儲的硬盤空間需要擴展,針對這樣的情況考慮使用動態(tài)擴容的方法解決這個問題,計劃增加兩塊160G的SCSI硬盤,將其掛載到“/mail”目錄下后使用LVM邏輯卷的方法進行管理。解決此問題的操作方法如下:
使用fdisk命令規(guī)劃兩個分區(qū),類型設置為“8e”;使用pvcreate命令轉換上述分區(qū)為物理卷,操作如下:
[root@localhost ~]# fdisk -l /dev/sdb /dev/sdc| grep ″LVM″
/dev/sdb1 1 9660 77593918+ 8e Linux LVM
/dev/sdc1 1 9660 77593918+ 8e Linux LVM
[root@localhost ~]# pvcreate /dev/sdb1
Physical volume ″/dev/sdb1″ successfully created
[root@localhost ~]# pvcreate /dev/sdc1
Physical volume ″/dev/sdc1″ successfully created
使用vgcreate命令創(chuàng)建卷組mail_store,操作如下:
[root@localhost ~]# vgcreate ppp_vg /dev/sdb1 /dev/sdc1
Volume group ″ppp_vg″ successfully created
使用lvcreate命令創(chuàng)建邏輯卷 mail,然后使用mkfs命令創(chuàng)建ext3文件系統(tǒng),操作如下:
[root@localhost ~]# lvcreate -L 160G -n ppp_lv ppp_vg
/dev/cdrom: open failed: Read-only file system
Logical volume ″mail″ created
[root@localhost ~]# mkfs -t ext3 /dev/ppp_vg/ppp_lv
使用lvextend命令為邏輯卷 mail擴充容量,然后使用resize2fs命令更新系統(tǒng)識別的文件系統(tǒng)大小,操作如下:
[root@localhost ~]# lvextend -L +10G /dev/mail_store/mail
[root@localhost ~]# resize2fs /dev/mail_store/mail
從以上操作可以看出,LVM在磁盤空間管理上是簡單易行的,作為linux系統(tǒng)使用者應深入進行研究,本文只從應用層面上進行了描述,并通過實例說明LVM的操作方法,實際上LVM還可以提供更高層次的磁盤存儲解決方案,使系統(tǒng)管理員可以更方便靈活地分配存儲空間。
參考文獻:
[1]張進奎,等.在Linux下如何不停機進行磁盤空間的管理[J].中國科技信息,2005,(1).
[2]陳小暉.夢工廠創(chuàng)造性地使用Linux LVM[J].開放系統(tǒng)世界,2003,(11).
[3]李翔.Linux下邏輯盤卷管理詳解[J].開放系統(tǒng)世界, 2003,(8).