本文介紹了LVM的概念、作用以及使用方法,旨在幫助您了解LVM,並能夠使用LVM對您的磁盤系統進行靈活的管理。
一、 什麼是LVM
1.1 LVM概念
LVM是邏輯盤卷管理(Logical Volume Manager)的簡稱,它是對磁盤分區進行管理的一種機制,建立在硬盤和分區之上的一個邏輯層,用來提高磁盤管理的靈活性。通過LVM可將若干個磁盤分區連接為一個整塊的卷組(Volume Group),形成一個存儲池。可以在卷組上隨意創建邏輯卷(Logical Volumes),並進一步在邏輯卷上創建文件系統,與直接使用物理存儲在管理上相比,提供了更好靈活性。
LVM本質上是一個虛擬設備驅動,處於物理設備和文件系統層之間,維護著邏輯盤區和物理盤區之間的映射。它將幾塊磁盤或者分區組合起來形成一個存儲池或者卷組,LVM從卷組中劃分出不同大小的邏輯卷創建新的邏輯設備。 圖1是LVM結構模擬圖示。
圖1 LVM構成結構示意圖
1.2 LVM優點
LVM將存儲虛擬化,使用邏輯卷,你不會受限於物理磁盤的大小,另外,與硬件相關的存儲設置被其隱藏,你可以不用停止應用或卸載文件系統來調整卷大小或數據遷移。這樣可以減少操作成本。
LVM與直接使用物理存儲相比,有以下優點:
1.靈活的容量
當使用邏輯卷時,文件系統可以擴展到多個磁盤上,你可以聚合多個磁盤或磁盤分區成單一的邏輯卷。
2.可伸縮的存儲池
你可以使用簡單的命令來擴大或縮小邏輯卷大小,不用重新格式化或分區磁盤設備。
3.在線的數據再分配
你可以在線移動數據,數據可以在磁盤在線的情況下重新分配。比如,你可以在線更換可熱插拔的磁盤。
4.方便的設備命名
邏輯卷可以按你覺得方便的方式來起任何名稱。
5.磁盤條塊化
你可以生成一個邏輯盤,它的數據可以被條塊化存儲在2個或更多的磁盤上。這樣可以明顯提升數據吞吐量。
6.鏡像卷
LVM邏輯卷提供方便的方法來鏡像你的數據。
7.卷快照
使用邏輯卷,你可以獲得設備快照用來一致性備份或者測試數據更新效果而不影響真實數據。
二、LVM的作用
通過LVM可以方便的在線調整存儲卷的大小,並且可以對磁盤存儲按照組的方式進行命名、管理和分配,例如按照使用用途進行定義:“development”和“sales”,而不是使用物理磁盤名“sda”和 “sdb”。當系統添加了新的磁盤,通過LVM可以直接擴展文件系統跨越該磁盤,而不必將文件移動到新的磁盤上。
此外,LVM快照功能以及LVM鏡像功能,也被普遍應用於數據的備份與恢復系統中。
三、LVM相關基本概念
圖2 PV、VG、LV的關系
3.1物理存儲介質(The physical media)
這裡指系統的存儲設備:硬盤,如:/dev/hda1、/dev/sda等等,是存儲系統最低層的存儲單元。
3.2物理卷(Physical Volume)
物理卷就是指硬盤分區或從邏輯上與磁盤分區具有同樣功能的設備(如RAID),是LVM的基本存儲邏輯塊,但和基本的物理存儲介質(如分區、磁盤等)比較,卻包含有與LVM相關的管理參數。
3.3卷組(Volume Group)
卷組由物理卷組成,類似於非LVM系統中的物理硬盤,可以在卷組上創建一個或多個"LVM分區"(邏輯卷)。
3.4邏輯卷(Logical Volume)
LVM的邏輯卷類似於非LVM系統中的硬盤分區,在邏輯卷之上可以建立文件系統(比如/home或者/usr等)。
線性邏輯卷 (Linear Volumes)
一個線性邏輯卷聚合多個物理卷成為一個邏輯卷.比如,如果你有兩個60GB硬盤,你可以生成120GB的邏輯卷.
3.5條塊化的邏輯卷(Striped Logical Volumes)
當你寫數據到此邏輯卷中時,文件系統可以將數據放置到多個物理卷中.對於大量連接讀寫操作,它能改善數據I/O效率.
3.6鏡像的邏輯卷(Mirrored Logical Volumes)
鏡像在不同的設備上保存一致的數據.數據同時被寫入原設備及鏡像設備.它提供設備之間的容錯。
3.7 快照卷(Snapshot Volumes)
快照卷提供在特定瞬間的一個設備虛擬映像,當快照開始時,它復制一份對當前數據區域的改變,由於它優先執行這些改變,所以它可以重構當前設備的狀態。
3.8 PE(Physical Extent)
每一個物理卷被劃分為稱為PE(Physical Extents)的基本單元,具有唯一編號的PE是可以被LVM尋址的最小單元。PE的大小是可配置的,默認為4MB。
3.9 LE(Logical Extent)
邏輯卷也被劃分為被稱為LE(Logical Extents) 的可被尋址的基本單位。在同一個卷組中,LE的大小和PE是相同的,並且一一對應。
3.10 VGDA(卷組描述符區域)
和非LVM系統將包含分區信息的元數據保存在位於分區的起始位置的分區表中一樣,邏輯卷以及卷組相關的元數據也是保存在位於物理卷起始處的VGDA(卷組描述符區域)中。VGDA包括以下內容: PV描述符、VG描述符、LV描述符、和一些PE描述符。
系統啟動LVM時激活VG,並將VGDA加載至內存,來識別LV的實際物理存儲位置。當系統進行I/O操作 時,就會根據VGDA建立的映射機制來訪問實際的物理位置。
四、安裝LVM
首先請確定內核支持LVM,Turbolinux發行版內核均已支持LVM。如果您的內核不支持LVM,您可以手工編譯內核,在配置內核時,進入Multi-device Support (RAID and LVM)子菜單,選中以下選項:
[*] Multiple devices driver support (RAID and LVM)
然後重新編譯內核,即可將LVM的支持添加到新內核中。
確定系統中是否安裝了lvm工具:
# rpm -qa | grep lvm
lvm2-2.02.16-3
如果命令結果類似於上例,說明系統已經安裝了LVM管理工具;如果命令沒有輸出則說明沒有安裝LVM管理工具,則需要從網絡下載或者從光盤裝LVM rpm工具包。
為了使用LVM,要確保在系統啟動時激活LVM,Turbolinux發行版在啟動時已經具有對激活LVM的 支持,在/etc/rc.d/rc.sysinit中有以下內容:
if [ -x /sbin/lvm.static ]; then
action $"Setting up Logical Volume Management:" /sbin/lvm.static vgchange -a y –ignorelockingfailure
fi
在ubuntu系統下可以使用如下命令安裝LVM2:
sudo apt-get install lvm
五、創建和管理LVM
要創建一個LVM系統,一般需要經過以下步驟,參考圖3所示:
1)通過fdisk 工具將磁盤轉換為linux分區;
2)通過pvcreate命令將linux分區轉換成物理卷(PV);
3)通過vgcreate命令將創建好的物理卷處理成卷組(VG);
4)通過lvcreate命令將卷組分成若干個邏輯卷(LV);
5)對邏輯卷進行格式化、掛載、動態調整邏輯卷的大小,並且該操作不會影響邏輯卷(Lv)上的數據。
圖3 LVM創建流程圖
具體步驟操作命令見如下詳細介紹。