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

圖中沒有給出le(邏輯分區),因為它對于描述整個概念來說不太重要。如何理解這個圖呢?
首先pv1和pv2是物理卷,pv1對應的可能是一整塊硬盤,也可能是硬盤中的一個分區,如/dev/hda1,pv2也應這樣理解;pv1中包含的pe1,pe2,pe3都是經過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組成,可以看出卷組可以跨我們通常所說的硬盤分區,也可以跨多個硬盤;
lv1是在卷組vg1上創建的邏輯卷,它使用了整個vg1的空間,而lv2和lv3都是從vg2空間創建的邏輯卷,可以看出一個卷組可以包括一個或多個邏輯卷,注意邏輯卷不能跨卷組,也就是說如果要想在兩塊硬盤上創建一個邏輯卷,必須經過卷組的轉換才能實現,因為卷組是可以跨多塊硬盤的;
在邏輯卷的基礎上我們可以創建文件系統,如ext3,jfs等,和在普通分區上創建文件系統沒有什么區別,最后可以將邏輯卷掛載在某個掛載點上,如/oracle。
從這個圖中我們可以看出,如果要增大邏輯卷lv1(oracle)的大小,首先需要增大vg1的大小,因為lv1在創建時就完全使用了vg1的空間,要增大vg1的大小,就得從pv1或pv2中獲取pe;如果在創建lv1時沒有完全使用掉vg1的空間,那么可以直接動態從vg1中再分配給lv1空間,增加其大小,從這個角度出發,就好理解如果增加一塊熱插拔硬盤到系統上,就是增加了pv,也間接增加了pe數量,那么卷組就可以使用增加的pe來擴大自己的范圍,進而提供給邏輯卷lv使用,也就實現了傳說中的動態調整空間大小。