LVM(Logical Volume Manager)即邏輯卷管理器,它最先是在Linux 2.4內(nèi)核中被集成到內(nèi)核中去的,它的出現(xiàn)改變了傳統(tǒng)的磁盤空間管理理念。以往在安裝操作系統(tǒng)時需要規(guī)劃好分區(qū)大小,即使利用了RAID技術(shù)也要規(guī)劃好每個分區(qū)的大小,因為一旦分好區(qū)后要改變其大小是非常困難的事情。在Windows下有大家熟悉的Partition Magic
工具可以用來調(diào)整分區(qū)大小,但它有一個缺點是要么在調(diào)整前要關(guān)閉系統(tǒng)或調(diào)整后重啟系統(tǒng)。
這在普通PC機上使用還行,要在提供不間斷服務的服務器上使用就會造成服務中斷,不過這個問題在Linux下隨著LV技術(shù)的出現(xiàn)一切都得到解決,LV可以在不用重啟系統(tǒng)的情況動態(tài)增加可用空間大小,不過前提得是使用熱插拔硬盤,或事先將硬盤裝入而不使用。本文我將使用名詞LV(可不是LV包)而不是LVM,因為LV才是主角。
首先我們要弄清楚LV領(lǐng)取的幾個關(guān)鍵名詞概念:
物理介質(zhì):就是我們通常說的硬盤,簡稱pm
物理卷:就是我們通常說的硬盤分區(qū),簡稱pv
物理分區(qū):它是由LVM命令在物理卷上創(chuàng)建的最小LVM尋址單元,在創(chuàng)建物理卷時可以指定物理分區(qū)的大小,默認值是4M,簡稱pe(pp?)
卷組:由一個多多個物理卷組成的邏輯單元,簡稱vg
邏輯分區(qū):它與物理分區(qū)一一對應,大小相等,簡稱le(lp?)
邏輯卷:從卷組中分配一定大小的空間創(chuàng)建的邏輯單元,也可以使用一個完整的卷組空間大小來創(chuàng)建一個邏輯卷,簡稱lv
上面這幾個關(guān)鍵名詞的關(guān)系可以用下圖來解釋:

圖中沒有給出le(邏輯分區(qū)),因為它對于描述整個概念來說不太重要。如何理解這個圖呢?
首先pv1和pv2是物理卷,pv1對應的可能是一整塊硬盤,也可能是硬盤中的一個分區(qū),如/dev/hda1,pv2也應這樣理解;pv1中包含的pe1,pe2,pe3都是經(jīng)過pvcreate命令在pv1上做的標記,可以理解為將pv1分解成3個小塊,相應pv2下的pe1,pe2,pe3也做此理解;
vg1是卷組,它是由pv1下的pe1和pe2組成的,即從pv1的空間中分一部分(pe1和pe2)來組成卷組vg1,并且我給該卷組命名為oracle,注意物理卷沒有名字,直接用/dev/hda1或/dev/sda的形式來稱呼它,vg2是跨了兩個物理卷組成的,它是由pv1中的pe3和pv2中的pe1,pe2組成,可以看出卷組可以跨我們通常所說的硬盤分區(qū),也可以跨多個硬盤;
lv1是在卷組vg1上創(chuàng)建的邏輯卷,它使用了整個vg1的空間,而lv2和lv3都是從vg2空間創(chuàng)建的邏輯卷,可以看出一個卷組可以包括一個或多個邏輯卷,注意邏輯卷不能跨卷組,也就是說如果要想在兩塊硬盤上創(chuàng)建一個邏輯卷,必須經(jīng)過卷組的轉(zhuǎn)換才能實現(xiàn),因為卷組是可以跨多塊硬盤的;
在邏輯卷的基礎(chǔ)上我們可以創(chuàng)建文件系統(tǒng),如ext3,jfs等,和在普通分區(qū)上創(chuàng)建文件系統(tǒng)沒有什么區(qū)別,最后可以將邏輯卷掛載在某個掛載點上,如/oracle。
從這個圖中我們可以看出,如果要增大邏輯卷lv1(oracle)的大小,首先需要增大vg1的大小,因為lv1在創(chuàng)建時就完全使用了vg1的空間,要增大vg1的大小,就得從pv1或pv2中獲取pe;如果在創(chuàng)建lv1時沒有完全使用掉vg1的空間,那么可以直接動態(tài)從vg1中再分配給lv1空間,增加其大小,從這個角度出發(fā),就好理解如果增加一塊熱插拔硬盤到系統(tǒng)上,就是增加了pv,也間接增加了pe數(shù)量,那么卷組就可以使用增加的pe來擴大自己的范圍,進而提供給邏輯卷lv使用,也就實現(xiàn)了傳說中的動態(tài)調(diào)整空間大小。