LVM邏輯卷的基本概念以及LVM的工作原理

=======轉自http://www.cnblogs.com/xiaoluo501395377/archive/2013/05/22/3093405.html======


一、傳統的磁盤管理

其實在Linux操作系統中,我們的磁盤管理機制和windows上的差不多,絕大多數都是使用MBR(Master Boot Recorder)都是通過先對一個硬盤進行分區,然後再將該分區進行文件系統的格式化,在Linux系統中如果要使用該分區就將其掛載上去即可,windows的話其實底層也就是自動將所有的分區掛載好,然後我們就可以對該分區進行使用了。

但是這種傳統的磁盤管理經常會帶來很多的問題,比如說當我們使用的一個分區,其空間大小已經不再夠用了,這個時候我們沒有辦法通過拉伸分區來進行分區擴充,當然目前也有其他第三方的磁盤管理軟件可以進行磁盤的分區空間劃分,但是這樣會給我們的文件系統造成很大的傷害,有時會導致文件系統崩潰等問題。對於傳統的磁盤管理如果說我們碰到當分區大小不足的時候,我們只能通過增加新的硬盤,然後在新的硬盤上創建分區,對分區進行格式化以後,然後將之前分區的所有東西都拷貝到新的分區裏面才行。但是新增加的硬盤是作爲獨立的文件系統存在的,原有的文件系統並沒有得到任何的擴充,上層應用只能訪問到一個文件系統。這樣的方式對個人的電腦來說可能還能接受,但是如果對於生產環境下的服務器來說,這是不可接受的。因爲如果要把一個分區的內容都拷貝到另一個分區上去,勢必要首先卸載掉之前的那個分區,然後*對整個分區進行拷貝,如果服務器上運行着一個重要的服務,比如說WWW或者FTP,其要求是 7*24 小時運行正常的,那麼卸載掉分區這是不可想象的,同時如果該分區保存的內容非常非常的多,那麼在對分區進行轉移時時間可能會耗費很久,所以,這個時候我們就會受到傳統磁盤管理的限制,因爲其不能夠進行動態的磁盤管理。因此,爲了解決這個問題,LVM技術就誕生了!!!

二、LVM的磁盤管理

正是因爲傳統的磁盤管理不能對我們的磁盤空間進行動態的管理,因此就誕生出了LVM這個技術,那麼LVM到底是什麼呢?它又是怎麼對磁盤進行管理的呢?

LVM(Logical volume Manager)是邏輯卷管理的簡稱。它是Linux環境下對磁盤分區進行管理的一種機制。現在不僅僅是Linux系統上可以使用LVM這種磁盤管理機制,對於其它的類UNIX操作系統,以及windows操作系統都有類似與LVM這種磁盤管理軟件。

LVM的工作原理其實很簡單,它就是通過將底層的物理硬盤抽象的封裝起來,然後以邏輯卷的方式呈現給上層應用。在傳統的磁盤管理機制中,我們的上層應用是直接訪問文件系統,從而對底層的物理硬盤進行讀取,而在LVM中,其通過對底層的硬盤進行封裝,當我們對底層的物理硬盤進行操作時,其不再是針對於分區進行操作,而是通過一個叫做邏輯卷的東西來對其進行底層的磁盤管理操作。比如說我增加一個物理硬盤,這個時候上層的服務是感覺不到的,因爲呈現給上次服務的是以邏輯卷的方式。

LVM最大的特點就是可以對磁盤進行動態管理。因爲邏輯卷的大小是可以動態調整的,而且不會丟失現有的數據。我們如果新增加了硬盤,其也不會改變現有上層的邏輯卷。作爲一個動態磁盤管理機制,邏輯卷技術大大提高了磁盤管理的靈活性!!!

三、LVM的原理

要想理解好LVM的原理,我們必須首先要掌握4個基本的邏輯卷概念。

PE  (Physical Extend)  物理拓展

PV  (Physical Volume)  物理卷

VG  (Volume Group)  卷組

LV  (Logical Volume)  邏輯卷

我們知道在使用LVM對磁盤進行動態管理以後,我們是以邏輯卷的方式呈現給上層的服務的。所以我們所有的操作目的,其實就是去創建一個LV(Logical Volume),邏輯卷就是用來取代我們之前的分區,我們通過對邏輯捲進行格式化,然後進行掛載操作就可以使用了。那麼LVM的工作原理是什麼呢?所謂無圖無真相,咱們下面通過圖來對邏輯卷的原理進行解釋!!

22184844-e3c3745b0d7b4f569c0f2e13853695b

1.將我們的物理硬盤格式化成PV(Physical Volume)

我們看到,這裏有兩塊硬盤,一塊是sda,另一塊是sdb,在LVM磁盤管理裏,我首先要將這兩塊硬盤格式化爲我們的PV(Physical Volume),也就是我們的物理卷,其實格式化物理卷的過程中LVM是將底層的硬盤劃分爲了一個一個的PE(Physical Extend),我們的LVM磁盤管理中PE的默認大小是4M大小,其實PE就是我們邏輯卷管理的最基本單位。比如說我有一個400M的硬盤,那麼在將其格式化成PV的時候,其實際就是將這塊物理硬盤劃分成了100個的PE,因爲PE默認的大小就是4M。這個就是我們的第一步操作。

2.創建一個VG(Volume Group)

在將硬盤格式化成PV以後,我們第二步操作就是創建一個卷組,也就是VG(Volume Group),卷組在這裏我們可以將其抽象化成一個空間池,VG的作用就是用來裝PE的,我們可以把一個或者多個PV加到VG當中,因爲在第一步操作時就已經將該硬盤劃分成了多個PE,所以將多個PV加到VG裏面後,VG裏面就存放了許許多多來自不同PV中的PE,我們通過上面的圖片就可以看到,我們格式化了兩塊硬盤,每個硬盤分別格式化成了3個PE,然後將兩塊硬盤的PE都加到了我們的VG當中,那麼我們的VG當中就包含了6個PE,這6個PE就是兩個硬盤的PE之和。通常創建一個卷組的時候我們會爲其取一個名字,也就是該VG的名字。

3.基於VG創建我們最後要使用的LV(Logical Volume)

注意】PV以及VG創建好以後我們是不能夠直接使用的,因爲PV、VG是我們邏輯卷底層的東西,我們其實最後使用的是在VG基礎上創建的LV(Logical Volume),所以第三步操作就是基於VG來創建我們最終要使用的LV。

當我們創建好我們的VG以後,這個時候我們創建LV其實就是從VG中拿出我們指定數量的PE,還是拿上圖來說,我們看到我們此時的VG裏面已經擁有了6個PE,這時候我們創建了我們的第一個邏輯卷,它的大小是4個PE的大小,也就是16M(因爲一個PE的默認大小是4M),而這4個PE有三個是來自於第一塊硬盤,而另外一個PE則是來自第二塊硬盤。當我們創建第二個邏輯卷時,它的大小就最多隻有兩個PE的大小了,因爲其中的4個PE已經分配給了我們的第一個邏輯卷。

所以創建邏輯卷其實就是我們從VG中拿出我們指定數量的PE,VG中的PE可以來自不同的PV,我們可以創建的邏輯卷的大小取決於VG當中PE存在的數量,並且我們創建的邏輯卷其大小一定是PE的整數倍(即邏輯卷的大小一定要是4M的整數倍)

4.將我們創建好的LV進行文件系統的格式化,然後掛載使用

在創建好LV以後,這個時候我們就能夠對其進行文件系統的格式化了,我們最終使用的就是我們剛創建好的LV,其就相當於傳統的文件管理的分區,我們首先要對其進行文件系統的格式化操作,然後通過mount命令對其進行掛載,這個時候我們就能夠像使用平常的分區一樣來使用我們的邏輯捲了。

我們在創建好LV以後,我們會在 /dev 目錄下看到我們的LV信息,例如 /dev/vgname/lvname, 我們每創建一個VG,其會在/dev目錄下創建一個以該VG名字命名的文件夾,在該VG的基礎上創建好LV以後,我們會在這個VG目錄下多出一個以LV名字命名的邏輯卷。

下面我們來對整個LVM的工作原理進行一個總結:

(1)物理磁盤被格式化爲PV,空間被劃分爲一個個的PE

(2)不同的PV加入到同一個VG中,不同PV的PE全部進入到了VG的PE池內

(3)LV基於PE創建,大小爲PE的整數倍,組成LV的PE可能來自不同的物理磁盤

(4)LV現在就直接可以格式化後掛載使用了

(5)LV的擴充縮減實際上就是增加或減少組成該LV的PE數量,其過程不會丟失原始數據

22193028-b0bdd5c6f4a64d958f6e2f43da90aae


我們看到,我們這裏如果要對LV進行擴充,直接加進來一塊sdc硬盤,然後將其格式化成PE,然後將該PV加入到了VG當中,這個時候我們就可以通過增加LV中PE的數量來動態的對LV進行擴充了,只要我們的LV的大小不要超過我們VG空餘空間的大小就行了!!

本篇隨筆主要講解了傳統磁盤管理與LVM動態管理磁盤機制的不同,並詳細講解了LVM的工作原理,在下一篇隨筆當中,將會詳細的講解LVM的基本配置,包括創建PV、VG以及VG,並動態的對我們的LV進行擴充、減少操作!!!



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章