何德仙
曲靖工商職業(yè)技術(shù)學(xué)校
基于LINUX虛擬機(jī)LVM系統(tǒng)的實(shí)現(xiàn)
何德仙
曲靖工商職業(yè)技術(shù)學(xué)校
何德仙(1977-)女,講師,研究方向:計(jì)算機(jī)網(wǎng)絡(luò)及應(yīng)用。
本文介紹了目前磁盤(pán)動(dòng)態(tài)管理方法存在的不足,提出了LINUX 下LVM系統(tǒng)實(shí)現(xiàn)磁盤(pán)動(dòng)態(tài)管理的思路和方法,用實(shí)驗(yàn)的過(guò)程實(shí)現(xiàn)了LINUX虛擬下多磁盤(pán)建立LVM系統(tǒng)的方法,有效地降低了實(shí)驗(yàn)成本、提高了實(shí)驗(yàn)效率。
Linux用戶在安裝配置Linux操作系統(tǒng),并為系統(tǒng)進(jìn)行磁盤(pán)分區(qū)的時(shí)候,對(duì)于如何確定每個(gè)分區(qū)的容量,是比較困難的。因?yàn)榧匆紤]當(dāng)前每個(gè)分區(qū)的大小和用途,又要考慮在將來(lái)對(duì)分區(qū)的使用需求,還要考慮當(dāng)前實(shí)際硬盤(pán)的大小。如果考慮不全面,當(dāng)以后某個(gè)分區(qū)空間不足時(shí),對(duì)這管理員來(lái)說(shuō)是一件棘手的事情,管理員要么備份整個(gè)分區(qū)數(shù)據(jù),重新對(duì)硬盤(pán)分區(qū),再恢復(fù)數(shù)據(jù),然而這并不是一勞永逸的做法,工作量是非常大的,也會(huì)帶來(lái)安全隱患,以后可能還會(huì)面臨這樣的問(wèn)題。
當(dāng)然,也有一些解決辦法,如使用類(lèi)似Partition Magic這樣的可以動(dòng)態(tài)調(diào)整磁盤(pán)分區(qū)的工具,然而使用這類(lèi)工具并不能徹底解決問(wèn)題,首先是使用Partition Magic工具后需要重新啟動(dòng)系統(tǒng)才能生效,如果對(duì)于重要的服務(wù)器,重新啟動(dòng)系統(tǒng)或停機(jī)是不可接受的操作;其次是如果某個(gè)分區(qū)的空間再次被耗盡,就會(huì)再次產(chǎn)生同樣的難題;第三,對(duì)于添加新硬盤(pán),如果需要?jiǎng)?chuàng)建一個(gè)能跨越多個(gè)獨(dú)立硬盤(pán)驅(qū)動(dòng)器的文件系統(tǒng)時(shí),分區(qū)調(diào)整方案就無(wú)法實(shí)現(xiàn)。
優(yōu)秀的解決方案是什么呢?基本思路是在不停機(jī)前提下,能夠?qū)ξ募到y(tǒng)的容量進(jìn)行動(dòng)態(tài)調(diào)整,而且還可以方便地實(shí)現(xiàn)文件系統(tǒng)跨越不同的獨(dú)立磁盤(pán)和分區(qū)。可喜的是,Linux系統(tǒng)提供的LVM機(jī)制,對(duì)于解決上述難題,提供了一個(gè)完美的解決方案。另一方面,在Linux教學(xué)過(guò)程中,LVM系統(tǒng)的實(shí)現(xiàn)與管理對(duì)計(jì)算機(jī)硬件環(huán)境有較高的要求,一般實(shí)驗(yàn)環(huán)境難以達(dá)到教學(xué)效果,也為實(shí)驗(yàn)管理人員帶來(lái)極大的挑戰(zhàn),LINUX虛擬機(jī)為開(kāi)創(chuàng)這些實(shí)驗(yàn)環(huán)境提供了廣闊的空間。
LVM優(yōu)點(diǎn)
LVM全稱(chēng)為L(zhǎng)ogical Volume Manager,譯成中文名稱(chēng)叫邏輯卷管理,LVM系統(tǒng)最早應(yīng)用于IBM AIX系統(tǒng)上,后來(lái)由Heinz Mauelshagen在Linux 2.4內(nèi)核上實(shí)現(xiàn)。LVM系統(tǒng)是在硬盤(pán)或分區(qū)上建立的一個(gè)邏輯管理層,這可以將一個(gè)或多個(gè)硬盤(pán)的分區(qū)進(jìn)行邏輯集合,把不同大小的硬盤(pán)分區(qū)整合為另一個(gè)單位——卷組(Volume Group,VG),卷組可以看成是一個(gè)存儲(chǔ)池,系統(tǒng)管理員在卷組上根據(jù)需要建立一個(gè)或多個(gè)邏輯卷(Logical Volumes,LV),并進(jìn)一步在邏輯卷上創(chuàng)建文件系統(tǒng)。在以后的管理工作中,管理員可根據(jù)需要隨意調(diào)整卷組和邏輯卷的大小,當(dāng)硬盤(pán)的使用容量不足的時(shí)候,管理員可以繼續(xù)將額外的硬盤(pán)或分區(qū)加入到卷組中,再把卷組劃分到邏輯卷空間中。采用這樣的可持續(xù)空間的增減方法,即實(shí)現(xiàn)了磁盤(pán)空間的動(dòng)態(tài)管理,又解決了Partition Magic等工具的不足。
LVM相關(guān)概念及原理
LVM系統(tǒng)涉及物理分區(qū)、物理卷、物理區(qū)域、卷組、邏輯卷、邏輯區(qū)域等基本概念,要弄清LVM原理,首先要闡述清楚上述的幾個(gè)基本概念。
與LVM相關(guān)的幾個(gè)概念
(1)物理分區(qū)(Physical Partions)
物理分區(qū)指系統(tǒng)中的物理存儲(chǔ)設(shè)備(如硬盤(pán))上建立的分區(qū),如:在LINUX系統(tǒng)中,/dev/hda表示第一塊IDE接口硬盤(pán)、/dev/sdb表示第二塊SCSI接口硬盤(pán),是存儲(chǔ)系統(tǒng)中最底層的物理存儲(chǔ)單元。
(2)物理卷(Physical Volume,PV)
物理卷簡(jiǎn)稱(chēng)PV,指是磁盤(pán)上的分區(qū),在LINUX中物理卷是從物理分區(qū)上劃分出來(lái)的,物理卷處于LVM系統(tǒng)的最底層,一個(gè)物理卷可以包含整個(gè)物理磁盤(pán),也可以是磁盤(pán)中的一個(gè)分區(qū),但它與基本的物理分區(qū)是有差別的,它包含有與LVM管理相關(guān)的參數(shù)信息。
(3)物理區(qū)域(Physical Extent,PE)
物理區(qū)域是指在物理卷上劃分的基本單元,PE具有唯一的編址,是被LVM系統(tǒng)尋址的最小單位。PE的大小默認(rèn)是4MB,在創(chuàng)建物理卷時(shí)確定,但也是可調(diào)整的,然而大小一旦確定將不能更改。因此物理卷(PV)是由大小相等的基本單元物理區(qū)域(PE)組成。
(4)卷組(Volume Group,VG)
卷組簡(jiǎn)稱(chēng)VG,可以看成是單獨(dú)的邏輯磁盤(pán),建立的邏輯卷(PV)之上,卷組可由一個(gè)或多個(gè)邏輯卷組成。在建立卷組時(shí),一個(gè)卷組(VG)至少要包含一個(gè)物理卷(PV),之后還可以動(dòng)態(tài)地添加物理卷(PV)到卷組(VG)中。卷組是為后一步建立邏輯卷而準(zhǔn)備的。
(5)邏輯卷(Logical Volume,LV)
邏輯卷,英文名Logical Volume,簡(jiǎn)稱(chēng)LV,邏輯卷在使用過(guò)程中類(lèi)似于系統(tǒng)中的普通磁盤(pán)分區(qū),但性質(zhì)又與普通分區(qū)有很大差別。邏輯卷是在卷組中創(chuàng)建的,創(chuàng)建邏輯卷時(shí)可在卷組容量范圍內(nèi)隨意設(shè)定大小,邏輯卷建立后還可以動(dòng)態(tài)地?cái)U(kuò)展或縮小空間,系統(tǒng)中可建立一個(gè)或多個(gè)邏輯卷,多個(gè)邏輯卷可以建立在同一個(gè)卷組上,也可以建立在不同的多個(gè)卷組上。建立好的邏輯卷,就可以在其上建立文件系統(tǒng)(比如/home或者/usr等)。
(6)邏輯區(qū)域(Logical Extent,LE)
邏輯區(qū)域(LE)是邏輯卷(LV)中可用于分配的最小存儲(chǔ)單元,邏輯區(qū)域的大小也是在建立邏輯卷時(shí)就確定的,取決于邏輯卷所在卷組中的物理區(qū)域的大小,也就是說(shuō),在同一個(gè)卷組中,邏輯區(qū)域(LE)的大小和物理區(qū)域(PE)的大小是相同的。
LVM模型
弄清楚上面的概念之后,就可依次建立LVM系統(tǒng)。創(chuàng)建順序是先創(chuàng)建PV,再創(chuàng)建VG,最后創(chuàng)建LV。也就是說(shuō),首先創(chuàng)建一個(gè)物理卷(對(duì)應(yīng)一個(gè)物理硬盤(pán)分區(qū)或者一個(gè)物理硬盤(pán)),然后將分區(qū)或者硬盤(pán)加入到卷組中(相當(dāng)于一個(gè)邏輯上的大硬盤(pán)),再在這個(gè)大硬盤(pán)上劃分邏輯分區(qū)LV,最后,把LV邏輯卷格式化后,就可以像傳統(tǒng)分區(qū)那樣,把它掛載到一個(gè)掛載點(diǎn)上使用。LVM模型如圖1所示。
VMware環(huán)境下硬件環(huán)境的生成
為了實(shí)現(xiàn)LVM系統(tǒng),在VMware的LINUX虛擬機(jī)(本例所用版本為Red Hat Enterprise LINUX 5)中,添加兩塊SCSI硬盤(pán),一塊為容量為1GB,另一塊容量為2GB,作為L(zhǎng)INUX虛擬機(jī)中的物理存儲(chǔ)介質(zhì)。如圖2所示。
LINUX虛擬機(jī)磁盤(pán)分區(qū)管理
在LINUX系統(tǒng)中,上述添加的兩塊磁盤(pán)設(shè)備分別標(biāo)識(shí)為”/dev/sdb”和”/dev/sdc”,可以用fdisk命令進(jìn)行查看和分區(qū)(命令狀態(tài)下),當(dāng)然也可以在圖形環(huán)境下操作。在本例中,把”/dev/sdb”設(shè)備分為”/dev/sdb1”和 ”/dev/sdb2” 兩個(gè)分區(qū),容量分別為400MB和624MB,把”/dev/sdc”設(shè)備分為”/dev/sdc1”、 ”/dev/sdc2”和/dev/sdc3” 等三個(gè)分區(qū),容量分別為800MB、1024MB和224MB。并把五個(gè)分區(qū)都設(shè)置為”Linux LVM”類(lèi)型,詳細(xì)分區(qū)過(guò)程可查閱相關(guān)文獻(xiàn)。分區(qū)結(jié)果如圖3所示。(注:因LINUX分區(qū)大小以cylinders數(shù)確定,所以實(shí)際容量與理論上有一定誤差)
完成上述操作以后,LVM系統(tǒng)的硬件仿真平臺(tái)基本生成,后面的工作就是建立與管理PV、VG和LV。
圖1 LVM結(jié)構(gòu)模型
圖2 LINUX虛擬中添加硬盤(pán)
圖3 磁盤(pán)分區(qū)的建立
圖4 物理卷的生成
PV生成
PV的生成是利用pvcreate命令在上述3.2節(jié)中創(chuàng)建好的分區(qū)上建立的,PV的設(shè)備文件使用系統(tǒng)中現(xiàn)有的磁盤(pán)分區(qū)設(shè)備文件的名稱(chēng),且生成的PV的名稱(chēng)也與分區(qū)名稱(chēng)相同。圖4所示是在”/dev/sdb1/”~”/dev/sdc3”等5個(gè)分區(qū)上創(chuàng)建PV的命令及結(jié)果。
VG生成與管理
在創(chuàng)建好PV后,使用”vgcreate”命令可建立VG。卷組設(shè)備文件使用/dev目錄下與卷組同名的目錄表示,該卷組中的所有邏輯設(shè)備文件都將建立在該目錄下,卷組目錄是在使用vgcreate命令建立卷組時(shí)創(chuàng)建的。一個(gè)VG可包含一個(gè)或多個(gè)PV。例如,使用下列命令是分別用”/dev/sdb1/”~”/dev/sdc3”等5個(gè)PV創(chuàng)建一個(gè)名為”vg001”的卷組:
[root@localhost~]#vgcreate vg001/dev/sdb1/dev/sdb2/dev/sdc1/dev/sdc2/dev/sdc3
在上條命令中,沒(méi)加參數(shù)指定PE的值,因此默認(rèn)的PE為4MB,如需加大可以用-L選項(xiàng)。如有還有需要,還可使用”vgextend”命令擴(kuò)充VG的容量。VG生成后,可以用命令”vgdisplay vg001”來(lái)查看”vg001”卷組的參數(shù),圖5可以看出,5個(gè)物理卷構(gòu)成的卷組總?cè)萘浚╒G Size)約為3GB,與原始分區(qū)容量之和相等。
LV生成與管理
建立好VG后,可以使用lvcreate命令在已有VG上建立LV。邏輯卷設(shè)備文件位于其所在的卷組的卷組目錄中,該文件是使用lvcreate命令建立LV時(shí)創(chuàng)建的。例如,要在卷組”vg001”上創(chuàng)建一個(gè)名稱(chēng)為”lv01”,大小為500M 的LV,使用下面命令:
[root@localhost~]#lvcreate-L 500M-n lv01 vg001
LV創(chuàng)建成功后,使用’’lvdisplay”命令查看它的參數(shù),如圖6所示。
當(dāng)LV的容量以后面的使用中不能滿足需要時(shí),可以利用”lvextend”命令進(jìn)行擴(kuò)充,把VG中的空閑空間再分配到LV中,另一方面,當(dāng)LV的空間太大時(shí),可以利用”lvreduce”命令來(lái)減小它的容量,非常方面地做到容量的動(dòng)態(tài)調(diào)整。也可以移除不需要的LV、VG及PV,具體操作方式讀者可查閱相關(guān)文獻(xiàn)。
邏輯卷創(chuàng)建好后,使用命令”mkfs.ext2/dev/vg001/lv01”為”lv01”邏輯創(chuàng)建文件系統(tǒng),然后再將它掛載(mount)到指定目錄,就可以當(dāng)成普通磁盤(pán)空間來(lái)使用。
本文通過(guò)實(shí)際實(shí)驗(yàn)的方法,闡述了在LINUX虛擬機(jī)環(huán)境建立了多個(gè)虛擬磁盤(pán),并在虛擬磁盤(pán)上建立多個(gè)分區(qū),然后在這些分區(qū)上建立物理卷(PV)、卷組(VG)及邏輯卷(LV),最后在邏輯卷上創(chuàng)建文件系統(tǒng)并實(shí)現(xiàn)了磁盤(pán)的訪問(wèn)。通過(guò)實(shí)驗(yàn)證實(shí),LVM系統(tǒng)較傳統(tǒng)磁盤(pán)空間,在磁盤(pán)數(shù)量動(dòng)態(tài)添加、磁盤(pán)容量動(dòng)態(tài)調(diào)整方面,有著不可替代的優(yōu)勢(shì),為磁盤(pán)存儲(chǔ)服務(wù)領(lǐng)域提拱了方便、經(jīng)濟(jì)、實(shí)用的有效途經(jīng)。同時(shí),在硬件條件缺乏、投入資金有限的情況下,用LINUX虛擬機(jī)成功建立并訪問(wèn)了LVM系統(tǒng),為實(shí)際實(shí)驗(yàn)教學(xué)帶來(lái)了極大的便利,也為開(kāi)創(chuàng)其他虛擬實(shí)驗(yàn)提供了參考價(jià)值。
圖5 卷組vg001的參數(shù)
圖6 邏輯卷lv01的參數(shù)