Red Hat 下的LVM 上 LVM是Logical Volume Manager(邏輯卷管理器)的簡寫,它為主機提供了更高層次的磁盤存儲管理能力。LVM可以幫助系統管理員為應用與用戶方便地分配存儲空間。在LVM管理下的邏輯卷可以按需改變大小或添加移除。另外,LVM可以為所管理的邏輯卷提供定制的命名標識。因此,使用LVM主要是方便了對存儲系統的管理,增加了系統的擴展性。
Linux,AIX,Hp-uinx平台下的LVM 命令是不一樣的。下面以RedHat 下的命令來做一些說明。
一. LVM 理論知識
1. 先來看一下LVM創建的流程: PV-->VG-->LV.
PV(Physical Volume) :物理卷,可以是單獨磁盤,也可以是硬盤分區。
VG(Volume Group) :卷組,是PV的組合,可以看成單獨的邏輯磁盤。
LV(Logical Volume) :邏輯分區,當於物理分區的/dev/hdaX,只有邏輯卷才可以寫數據。
PE(Physical Extent) :物理范圍。VG單元,類似於RAID的條帶大小。 當多個PV組成一個VG時,LVM會在所有PV上做類似格式化的動作,將每個PV切成一塊塊的空間,這一塊塊的空間就稱為PE, 通常是4MB。
LE(Logical Extent) :邏輯范圍。LV的組成單位。大小為PE的倍數(通常為1:1)。
2. 工作原理
LVM 在每個物理卷頭部都維護了一個 metadata,每個 metadata 中都包含了整個 VG 的信息,包括每個 VG 的布局配置、PV 的編號、LV 的編號,以及每個 PE 到 LE 的映射關系。同一個 VG 中的每個 PV 頭部的信息是相同的,這樣有利於故障時進行數據恢復。
LVM 對上層文件系統提供 LV 層,隱藏了操作細節。對文件系統而言,對 LV 的操作與原先對 Partition 的操作沒有差別。當對 LV 進行寫入操作時,LVM 定位相應的 LE,通過 PV 頭部的映射表,將數據寫入到相應的 PE 上。
LVM 實現的關鍵在於在 PE 和 LE 間建立映射關系,不同的映射規則決定了不同的 LVM 存儲模型。LVM 支持多個 PV 的 Stripe 和 Mirror,這點和軟 Raid 的實現十分相似。
使用 LVM 的優勢:
?文件系統可以跨多個磁盤,因此大小不會受物理磁盤的限制。
?可以在系統運行狀態下動態地擴展文件系統大小。
?可以增加新磁盤到 LVM 的存儲池中。
?可以以鏡像的方式冗余重要數據到多個物理磁盤上。
?可以很方便地導出整個卷組,並導入到另外一台機器上。
使用 LVM 的限制:
?在從卷組中移除一個磁盤時必須使用 reducevg,否則會出問題。
?當卷組中的一個磁盤損壞時,整個卷組都會受影響。
?不能減小文件系統大小(受文件系統類型限制)。
?因為加入了額外的操作,存儲性能會受影響(使用 Stripe 的情況另當別論)。
二. 創建相應的磁盤分區
1. 修改磁盤,創建相應的分區
[root@san iscsi]# fdisk -l
Disk /dev/sda: 42.9 GB, 42949672960 bytes
255 heads, 63 sectors/track, 5221 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 1 255 2048256 83 Linux
/dev/sda2 256 382 1020127+ 82 Linux swap / Solaris
/dev/sda3 383 5221 38869267+ 5 Extended
/dev/sda5 383 395 104391 83 Linux
/dev/sda6 396 408 104391 83 Linux
/dev/sda7 409 421 104391 83 Linux
/dev/sda8 422 434 104391 83 Linux
這裡創建了4個擴展分區,每個100M。 用fdisk /dev/sda創建的。 分區沒有格式化。
2. 使用磁盤分區生效
#partprobe
三. 創建PV
1.相關命令
pvcreate 創建PV
pvscan 掃描PV
pvdisplay 顯示PV
pvremove 刪除PV
partprobe
2.創建物理卷
[root@san iscsi]# pvcreate /dev/sda5 /dev/sda6
Physical volume "/dev/sda5" successfully created
Physical volume "/dev/sda6" successfully created
[root@san iscsi]# pvscan
PV /dev/sda5 lvm2 [101.94 MB]
PV /dev/sda6 lvm2 [101.94 MB] Total: 2 [203.89 MB] / in use: 0 [0 ] / in no VG: 2 [203.89 MB]
[root@san iscsi]# pvdisplay
"/dev/sda5" is a new physical volume of "101.94 MB"
--- NEW Physical volume ---
PV Name /dev/sda5
VG Name
PV Size 101.94 MB
Allocatable NO
PE Size (KByte) 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID hDtAhK-adlx-5Ex0-ogc1-Alvm-H274-a8u7c2
"/dev/sda6" is a new physical volume of "101.94 MB"
--- NEW Physical volume ---
PV Name /dev/sda6
VG Name
PV Size 101.94 MB
Allocatable NO
PE Size (KByte) 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID Sy1wPG-XnjQ-eYD5-91vj-Ug5b-EGgU-i30lCS