一、傳統(tǒng)的磁盤管理
其實(shí)在Linux操作系統(tǒng)中,磁盤管理機(jī)制和windows上的差不多,絕大多數(shù)都是使用MBR(MasterBootRecorder)都是通過先對一個(gè)硬盤進(jìn)行分區(qū),然后再將該分區(qū)進(jìn)行文件系統(tǒng)的格式化,在Linux系統(tǒng)中如果要使用該分區(qū)就將其掛載上去即可,windows的話其實(shí)底層也就是自動將所有的分區(qū)掛載好,然后我們就可以對該分區(qū)進(jìn)行使用了。
但是這種傳統(tǒng)的磁盤管理經(jīng)常會帶來很多的問題,比如說當(dāng)我們使用的一個(gè)分區(qū),其空間大小已經(jīng)不再夠用了,這個(gè)時(shí)候我們沒有辦法通過拉伸分區(qū)來進(jìn)行分區(qū)擴(kuò)充,當(dāng)然目前也有其他第三方的磁盤管理軟件可以進(jìn)行磁盤的分區(qū)空間劃分,但是這樣會給我們的文件系統(tǒng)造成很大的傷害,有時(shí)會導(dǎo)致文件系統(tǒng)崩潰等問題。
對于傳統(tǒng)的磁盤管理如果說我們碰到當(dāng)分區(qū)大小不足的時(shí)候,我們只能通過增加新的硬盤,然后在新的硬盤上創(chuàng)建分區(qū),對分區(qū)進(jìn)行格式化以后,然后將之前分區(qū)的所有東西都拷貝到新的分區(qū)里面才行。但是新增加的硬盤是作為獨(dú)立的文件系統(tǒng)存在的,原有的文件系統(tǒng)并沒有得到任何的擴(kuò)充,上層應(yīng)用只能訪問到一個(gè)文件系統(tǒng)。這樣的方式對個(gè)人的電腦來說可能還能接受,但是如果對于生產(chǎn)環(huán)境下的服務(wù)器來說,這是不可接受的。
因?yàn)槿绻岩粋€(gè)分區(qū)的內(nèi)容都拷貝到另一個(gè)分區(qū)上去,勢必要首先卸載掉之前的那個(gè)分區(qū),然后*對整個(gè)分區(qū)進(jìn)行拷貝,如果服務(wù)器上運(yùn)行著一個(gè)重要的服務(wù),比如說WWW或者FTP,其要求是7*24小時(shí)運(yùn)行正常的,那么卸載掉分區(qū)這是不可想象的,同時(shí)如果該分區(qū)保存的內(nèi)容非常非常的多,那么在對分區(qū)進(jìn)行轉(zhuǎn)移時(shí)時(shí)間可能會耗費(fèi)很久,所以,這個(gè)時(shí)候我們就會受到傳統(tǒng)磁盤管理的限制,因?yàn)槠洳荒軌蜻M(jìn)行動態(tài)的磁盤管理。因此,為了解決這個(gè)問題,LVM技術(shù)就誕生了!!!
二、LVM的磁盤管理
正是因?yàn)閭鹘y(tǒng)的磁盤管理不能對我們的磁盤空間進(jìn)行動態(tài)的管理,因此就誕生出了LVM這個(gè)技術(shù),那么LVM到底是什么呢?它又是怎么對磁盤進(jìn)行管理的呢?
LVM(LogicalvolumeManager)是邏輯卷管理的簡稱。它是Linux環(huán)境下對磁盤分區(qū)進(jìn)行管理的一種機(jī)制。現(xiàn)在不僅僅是Linux系統(tǒng)上可以使用LVM這種磁盤管理機(jī)制,對于其它的類UNIX操作系統(tǒng),以及windows操作系統(tǒng)都有類似與LVM這種磁盤管理軟件。
LVM的工作原理其實(shí)很簡單,它就是通過將底層的物理硬盤抽象的封裝起來,然后以邏輯卷的方式呈現(xiàn)給上層應(yīng)用。在傳統(tǒng)的磁盤管理機(jī)制中,我們的上層應(yīng)用是直接訪問文件系統(tǒng),從而對底層的物理硬盤進(jìn)行讀取,而在LVM中,其通過對底層的硬盤進(jìn)行封裝,當(dāng)我們對底層的物理硬盤進(jìn)行操作時(shí),其不再是針對于分區(qū)進(jìn)行操作,而是通過一個(gè)叫做邏輯卷的東西來對其進(jìn)行底層的磁盤管理操作。比如說我增加一個(gè)物理硬盤,這個(gè)時(shí)候上層的服務(wù)是感覺不到的,因?yàn)槌尸F(xiàn)給上次服務(wù)的是以邏輯卷的方式。
LVM最大的特點(diǎn)就是可以對磁盤進(jìn)行動態(tài)管理。因?yàn)檫壿嬀淼拇笮∈强梢詣討B(tài)調(diào)整的,而且不會丟失現(xiàn)有的數(shù)據(jù)。我們?nèi)绻略黾恿擞脖P,其也不會改變現(xiàn)有上層的邏輯卷。作為一個(gè)動態(tài)磁盤管理機(jī)制,邏輯卷技術(shù)大大提高了磁盤管理的靈活性!!!
三、LVM的原理
要想理解好LVM的原理,我們必須首先要掌握4個(gè)基本的邏輯卷概念。
①PE(Physical Extend)物理拓展
②PV(Physical Volume)物理卷
③VG(Volume Group)卷組
④LV(Logical Volume)邏輯卷
我們知道在使用LVM對磁盤進(jìn)行動態(tài)管理以后,我們是以邏輯卷的方式呈現(xiàn)給上層的服務(wù)的。所以我們所有的操作目的,其實(shí)就是去創(chuàng)建一個(gè)LV(LogicalVolume),邏輯卷就是用來取代我們之前的分區(qū),我們通過對邏輯卷進(jìn)行格式化,然后進(jìn)行掛載操作就可以使用了。那么LVM的工作原理是什么呢?所謂無圖無真相,咱們下面通過圖來對邏輯卷的原理進(jìn)行解釋!!
1.將我們的物理硬盤格式化成PV(Physical Volume)
我們看到,這里有兩塊硬盤,一塊是sda,另一塊是sdb,在LVM磁盤管理里,我首先要將這兩塊硬盤格式化為我們的PV(PhysicalVolume),也就是我們的物理卷,其實(shí)格式化物理卷的過程中LVM是將底層的硬盤劃分為了一個(gè)一個(gè)的PE(PhysicalExtend),我們的LVM磁盤管理中PE的默認(rèn)大小是4M大小,其實(shí)PE就是我們邏輯卷管理的最基本單位。比如說我有一個(gè)400M的硬盤,那么在將其格式化成PV的時(shí)候,其實(shí)際就是將這塊物理硬盤劃分成了100個(gè)的PE,因?yàn)镻E默認(rèn)的大小就是4M。這個(gè)就是我們的第一步操作。
2.創(chuàng)建一個(gè)VG(Volume Group)
在將硬盤格式化成PV以后,我們第二步操作就是創(chuàng)建一個(gè)卷組,也就是VG(VolumeGroup),卷組在這里我們可以將其抽象化成一個(gè)空間池,VG的作用就是用來裝PE的,我們可以把一個(gè)或者多個(gè)PV加到VG當(dāng)中,因?yàn)樵诘谝徊讲僮鲿r(shí)就已經(jīng)將該硬盤劃分成了多個(gè)PE,所以將多個(gè)PV加到VG里面后,VG里面就存放了許許多多來自不同PV中的PE,我們通過上面的圖片就可以看到,我們格式化了兩塊硬盤,每個(gè)硬盤分別格式化成了3個(gè)PE,然后將兩塊硬盤的PE都加到了我們的VG當(dāng)中,那么我們的VG當(dāng)中就包含了6個(gè)PE,這6個(gè)PE就是兩個(gè)硬盤的PE之和。通常創(chuàng)建一個(gè)卷組的時(shí)候我們會為其取一個(gè)名字,也就是該VG的名字。
3.基于VG創(chuàng)建我們最后要使用的LV(Logical Volume)
【注意】PV以及VG創(chuàng)建好以后我們是不能夠直接使用的,因?yàn)镻V、VG是我們邏輯卷底層的東西,我們其實(shí)最后使用的是在VG基礎(chǔ)上創(chuàng)建的LV(LogicalVolume),所以第三步操作就是基于VG來創(chuàng)建我們最終要使用的LV。
當(dāng)我們創(chuàng)建好我們的VG以后,這個(gè)時(shí)候我們創(chuàng)建LV其實(shí)就是從VG中拿出我們指定數(shù)量的PE,還是拿上圖來說,我們看到我們此時(shí)的VG里面已經(jīng)擁有了6個(gè)PE,這時(shí)候我們創(chuàng)建了我們的第一個(gè)邏輯卷,它的大小是4個(gè)PE的大小,也就是16M(因?yàn)橐粋€(gè)PE的默認(rèn)大小是4M),而這4個(gè)PE有三個(gè)是來自于第一塊硬盤,而另外一個(gè)PE則是來自第二塊硬盤。當(dāng)我們創(chuàng)建第二個(gè)邏輯卷時(shí),它的大小就最多只有兩個(gè)PE的大小了,因?yàn)槠渲械?個(gè)PE已經(jīng)分配給了我們的第一個(gè)邏輯卷。
所以創(chuàng)建邏輯卷其實(shí)就是我們從VG中拿出我們指定數(shù)量的PE,VG中的PE可以來自不同的PV,我們可以創(chuàng)建的邏輯卷的大小取決于VG當(dāng)中PE存在的數(shù)量,并且我們創(chuàng)建的邏輯卷其大小一定是PE的整數(shù)倍(即邏輯卷的大小一定要是4M的整數(shù)倍)。
4.將我們創(chuàng)建好的LV進(jìn)行文件系統(tǒng)的格式化,然后掛載使用
在創(chuàng)建好LV以后,這個(gè)時(shí)候我們就能夠?qū)ζ溥M(jìn)行文件系統(tǒng)的格式化了,我們最終使用的就是我們剛創(chuàng)建好的LV,其就相當(dāng)于傳統(tǒng)的文件管理的分區(qū),我們首先要對其進(jìn)行文件系統(tǒng)的格式化操作,然后通過mount命令對其進(jìn)行掛載,這個(gè)時(shí)候我們就能夠像使用平常的分區(qū)一樣來使用我們的邏輯卷了。
我們在創(chuàng)建好LV以后,我們會在/dev目錄下看到我們的LV信息,例如/dev/vgname/lvname,我們每創(chuàng)建一個(gè)VG,其會在/dev目錄下創(chuàng)建一個(gè)以該VG名字命名的文件夾,在該VG的基礎(chǔ)上創(chuàng)建好LV以后,我們會在這個(gè)VG目錄下多出一個(gè)以LV名字命名的邏輯卷。
下面我們來對整個(gè)LVM的工作原理進(jìn)行一個(gè)總結(jié):
(1)物理磁盤被格式化為PV,空間被劃分為一個(gè)個(gè)的PE
(2)不同的PV加入到同一個(gè)VG中,不同PV的PE全部進(jìn)入到了VG的PE池內(nèi)
(3)LV基于PE創(chuàng)建,大小為PE的整數(shù)倍,組成LV的PE可能來自不同的物理磁盤
(4)LV現(xiàn)在就直接可以格式化后掛載使用了
(5)LV的擴(kuò)充縮減實(shí)際上就是增加或減少組成該LV的PE數(shù)量,其過程不會丟失原始數(shù)據(jù)
我們看到,我們這里如果要對LV進(jìn)行擴(kuò)充,直接加進(jìn)來一塊sdc硬盤,然后將其格式化成PE,然后將該P(yáng)V加入到了VG當(dāng)中,這個(gè)時(shí)候我們就可以通過增加LV中PE的數(shù)量來動態(tài)的對LV進(jìn)行擴(kuò)充了,只要我們的LV的大小不要超過我們VG空余空間的大小就行了!!
-
Linux
+關(guān)注
關(guān)注
87文章
11292瀏覽量
209329 -
LVM
+關(guān)注
關(guān)注
0文章
10瀏覽量
6435
原文標(biāo)題:Linux系統(tǒng)LVM邏輯卷工作原理
文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運(yùn)維】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論