天天看點

Linux磁盤管理(一):LVM邏輯卷基本概念及LVM的工作原理

作者:雲計算練習生

一、傳統的磁盤管理

在傳統的磁盤管理方案中,如果我們的磁盤容量不夠了,那這個時候應該要加一塊硬碟,但是新增加的硬碟是作為獨立的檔案系統存在的,原有的檔案系統并沒有得到任何的擴充,上層應用隻能通路到一個檔案系統。

這樣的方式對個人的電腦來說可能還能接受,但是如果對于生産環境下的伺服器來說,這是不可接受的。因為如果要把一個分區的内容都拷貝到另一個分區上去,勢必要首先解除安裝掉之前的那個分區,然後對整個分區進行拷貝,如果伺服器上運作着一個重要的服務,其要求是 72 x 4 小時運作正常的,那麼解除安裝分區就可能會造成損失,同時如果該分區儲存的内容非常非常的多,那麼在對分區進行轉移時時間可能會耗費很久。

是以,這個時候我們就會受到傳統磁盤管理的限制,因為其不能夠進行動态的磁盤管理。是以,為了解決這個問題,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的工作原理是什麼呢?所謂無圖無真相,咱們下面通過圖來對邏輯卷的原理進行解釋!!

Linux磁盤管理(一):LVM邏輯卷基本概念及LVM的工作原理

3.1将實體硬碟格式化成PV(Physical Volume)

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

3.2建立一個VG(Volume Group)

在将硬碟格式化成PV以後,我們第二步操作就是建立一個卷組,也就是VG(Volume Group),卷組在這裡我們可以将其抽象化成一個空間池,VG的作用就是用來裝PE的,我們可以把一個或者多個PV加到VG當中,因為在第一步操作時就已經将該硬碟劃分成了多個PE,是以将多個PV加到VG裡面後,VG裡面就存放了許許多多來自不同PV中的PE。

3.3基于VG建立最後要使用的LV(Logical Volume)

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

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

3.4将建立好的LV進行檔案系統的格式化,然後挂載使用

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

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

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

(1)實體磁盤被格式化為PV,空間被劃分為一個個的PE

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

(3)LV基于PE建立,大小為PE的整數倍,組成LV的PE可能來自不同的實體磁盤

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

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

Linux磁盤管理(一):LVM邏輯卷基本概念及LVM的工作原理

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

繼續閱讀