一、LVM簡介
LVM是 Logical Volume Manager(邏輯卷管理)的簡寫,它由Heinz Mauelshagen在Linux 2.4內核上實現。LVM將一個或多個硬盤的分區在邏輯上集合,相當于一個大硬盤來使用,當硬盤的空間不夠使用的時候,可以繼續將其它的硬盤的分區加入其中,這樣可以實現磁盤空間的動態管理,相對于普通的磁盤分區有很大的靈活性。
與傳統的磁盤與分區相比,LVM為計算機提供了更高層次的磁盤存儲。它使系統管理員可以更方便的為應用與用戶分配存儲空間。在LVM管理下的存儲卷可以按需要隨時改變大小與移除(可能需對文件系統工具進行升級)。LVM也允許按用戶組對存儲卷進行管理,允許管理員用更直觀的名稱(如"sales'、 'development')代替物理磁盤名(如'sda'、'sdb')來標識存儲卷。
如圖所示LVM模型:
1、邏輯卷管理布局
邏輯卷管理的核心是它如何處理安裝在系統上的硬盤分區。在邏輯卷管理的世界里,硬盤稱作物理卷(Physical Volume,PV)。每個物理卷都會映射到硬盤上創建的某一物理分區。
多個物理卷元素集中在一起可以組成一個卷組(Volume Group,VG)。邏輯卷管理系統會把卷組當做物理硬盤一樣對待,但事實上卷組可能是由分布在多個物理硬盤上的多個物理分區組成的。卷組
提供了一個創建邏輯分區的平臺,而這些邏輯分區事實上包含了文件系統。
整個結構中的最后一層是邏輯卷(Logical Volume,LV)。邏輯卷為了Linux提供了創建文件系統的分區環境,作用類似于到目前為止我們一直在探討的Linux中的物理硬盤。Linux系統將邏輯卷當
做物理分區對待。你可以使用任意一種標準Linux文件系統來做格式化邏輯卷,然后再將它在某個掛載點添加進Linux虛擬目錄中。
2、Linux中的LVM
Linux LVM是由Heinz Mauelshagen開發的,與1998年發布到Linux社區。它允許你在Linux上用簡單的命令行命令管理一個完整的邏輯卷管理環境。
Linux LVM有兩個可用的版本。
LVM1:最初的LVM包于1998年發布,只在Linux內核2.4版本上可用。它僅提供了基本的邏輯卷管理功能。
LVM2:LVM的更新版本,在Linux內核2.6中才可用。它在標準的LVM功能外提供了額外的功能。
大部分采用2.6內核版本的現代Linux發行版都提供對LVM2的支持。除了標準的邏輯卷管理功能外,LVM2為你提供了一些其他的在Linux系統上好用的功能。
<1>快照
最早的Linux LVM允許你將一個已有的邏輯卷在邏輯卷在線的狀態下復制到另一個設備。這個功能稱作快照(snapshot)??煺展δ軐浞萦捎诟呖煽啃孕枨蠖鵁o法鎖定的重要數據來說非常
好。傳統的備份方法在將分揀復制到備份媒體上時通常要將文件鎖定??煺赵试S你在復制的同時繼續運行關鍵任務的web服務器或數據庫服務器。遺憾的是,LVM1只允許你創建只讀快照。一旦創建快照,
你就不能在寫入東西了。
LVM2允許你創建在線邏輯卷的可讀寫快照。有了可讀寫的快照,你就可以刪除原先的邏輯卷然后將快照作為替代掛載上。這個功能對快速故障轉移或要修改數據的程序試驗(一旦失敗,就要
重啟系統)非常有用。
<2>條帶化
LVM2提供的另一個有意思的功能是條帶化(striping)。有了條帶化,可跨多個物理硬盤創建一個邏輯卷。當LinuxLVM將文件寫入邏輯卷時,文件中的數據塊會被分散到多個硬盤上。每個后
繼數據塊會被寫到下一個硬盤上。
條帶化有助于提供硬盤的性能,因為Linux可以將一個文件的多個數據塊同時寫入多個硬盤,而不是必須等待單個硬盤移動讀寫磁頭到多個不同位置。這個改進同樣適用于讀取順序訪問的文件,
因為LVM可同時從多個硬盤讀取數據。
<3>鏡像
通過LVM安裝文件系統并不意味著文件系統就不會出問題。和物理分區一樣,LVM邏輯卷也容易受到斷電和硬盤崩潰的影響。一旦文件系統損壞了,就總有可能無法恢復它。
LVM快照過程提供了一些便利,知道你可以在人和我時間創建一個邏輯卷的備份副本,但對有些環境來說可能不夠。有很多數據改變的系統,比如數據庫服務器,自上次快照可能要存儲數百或
數千條記錄。
這個問題的一個解決辦法就是LVM鏡像。鏡像是一個實時更新的邏輯卷的一份完整副本。當你創建鏡像邏輯卷時,LVM會將原始邏輯卷同步到鏡像副本中。根據原始邏輯卷的大小,這可能需要一
些時間才能完成。
一旦原始同步完成了,LVM會為文件系統的每次寫過程進行兩次些過程——一個寫到主邏輯卷,一個寫到鏡像副本。如你能猜到的,這個過程會降低系統的寫入性能。然而,如果原始邏輯卷因
為某些原因損壞了,你就可以在手頭有一個完整的最新副本了。
二、使用Linux LVM
1、新增硬盤sdb
手動在虛擬機上添加一個20G的硬盤。添加完后,使用如下命令可以掃描內核識別添加的硬盤:
2、定義物理卷
這個過程的第一步就是將硬盤上的物理分區轉換成Linux LVM使用的物理卷區段。我們的朋友fdisk命令在這里可以幫我們。在創建了基本的Linux分區之后,你需要通過t命令改變分區類型:
[root@centos6 ~]# fdisk /dev/sdb #對新增的硬盤"sdb"分區 Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel Building a new DOS disklabel with disk identifier 0x5c191617. Changes will remain in memory only, until you decide to write them. After that, of course, the previous content won't be recoverable. Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite) WARNING: DOS-compatible mode is deprecated. It's strongly recommended to switch off the mode (command 'c') and change display units to sectors (command 'u'). Command (m for help): n #新增一個新分區 Command action e extended p primary partition (1-4) p #新增的分區選擇為主分區 Partition number (1-4): 1 #默認為主分區編號為1 First cylinder (1-2610, default 1): #直接回車鍵默認起始柱面為1 Using default value 1 Last cylinder, +cylinders or +size{K,M,G} (1-2610, default 2610): +10G #給新增的分區分配10G的容量 Command (m for help): T #選擇分區的類型 Selected partition 1 Hex code (type L to list codes): 8E #選擇分區類型為8e(Linux LVM) Changed system type of partition 1 to 8e (Linux LVM) Command (m for help): w #分區完畢,保存退出 The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks.
3、創建物理卷
8e分布分區類型表示這個分區將會被用作Linux LVM系統的一部分,而不是一個直接的文件系統。pvcreate命令定義為pv定義了使用的物理卷。它簡單地將分區標記成Linux LVM系統中的物理卷,
你可以用pvdisplay命令來顯示已創建的物理卷列表,如果你想看看你在這個過程中的進度的話。
4、創建PV卷及移除PV卷
從物理卷中創建一個或多個卷組。沒有固定的規則說一定要為你的系統創建多個卷組,你可以將所有的可用物理卷加到一個卷組,或者你組合不同的物理卷創建多個卷組。要從命令行創建卷組,
你需要使用vgcreate命令。vgcreate命令
創建VG卷
移除PV卷:
5、創建VG卷以及擴展及移除VG卷
創建VG卷
擴展VG卷,在磁盤"sdb"中再次分區一個主分區"sdb2",并創建為PV卷,最后加入到VG卷"myvg"中
移除某部分VG卷,需查看移除的PV卷是否有數據,在移除
6、創建邏輯卷使用以及擴展、縮減、及移除
創建邏輯卷"mylv"
邏輯卷格式化后掛載使用
擴展邏輯卷"mylv",將PV卷"sdb1"創建成VG卷后并加入到"myvg"卷中,并加入邏輯卷"mylv"中
空閑VSize為15G,實際掛載的大小為5G,現在需要先擴展物理邊界,之后再擴展邏輯邊界
縮減邏輯卷"mylv",需要先卸載掛載,之后縮減邏輯邊界在縮減物理邊界(實際生產環境中不建議縮減)
移除邏輯卷"mylv",先取消掛載,后移除(數據有風險、操作需謹慎)
三、LVM( Logical Volume Manager)總結
Linux系統和windos的不同之處在于它支持大量不同的存儲文件和目錄方法。每個文件系統方法都有不同的特征,使得它適用于不同的情況。同時,每個文件系統方法都采用與存儲設備
交互的不同命令。
在將文件系統安裝到存儲設備之前,必須首先準備這個設備。fdisk命令用來將存儲設備分區以使它們為文件系統準備好。在分區存儲設備時,必須定義在上面使用壽命類型的文件系統。
在完成存儲設備分區后,你可以用該分區使用幾種不同文件系統中的一種,最流行的Linux文件系統是ext3和ext4.這兩個文件系統都提供了日志文件系統功能,使得它們在Linux系統崩
潰時較少的遇到錯誤問題。
在存儲設備分區上直接創建文件系統的一個限制因素是,如果硬盤空間用完了,你不能輕易的改變文件系統的大小。但Linux支持邏輯卷管理,一種跨多個存儲設備創建虛擬分區的方法。
這種方法允許你輕松的擴展一個已有文件系統,而不用完全重新構建。Linux LVM包提供了跨多個存儲設備創建邏輯卷的命令行命令。
原創文章,作者:Aleen,如若轉載,請注明出處:http://www.www58058.com/42248