LVM磁盤管理
一、LVM簡介… 1
二、 LVM基本術語… 2
三、 安裝LVM… 3
四、 創建和管理LVM… 4
2、 創建PV.. 6
3、 創建VG.. 7
4、 創建LV.. 9
5、LV格式化及掛載… 10
一、LVM簡介
LVM 是 Logical Volume Manager(邏輯卷管理)的簡寫,它由Heinz Mauelshagen在Linux 2.4內核上實現。LVM將一個或多個硬盤的分區在邏輯上集合,相當於一個大硬盤來使用,當硬盤的空間不夠使用的時候,可以繼續將其它的硬盤的分區加入其中,這樣可以實現磁盤空間的動態管理,相對於普通的磁盤分區有很大的靈活性。
與傳統的磁盤與分區相比,LVM爲計算機提供了更高層次的磁盤存儲。它使系統管理員可以更方便的爲應用與用戶分配存儲空間。在LVM管理下的存儲卷可以按需要隨時改變大小與移除(可能需對文件系統工具進行升級)。LVM也允許按用戶組對存儲捲進行管理,允許管理員用更直觀的名稱(如”sales’、 ‘development’)代替物理磁盤名(如’sda’、’sdb’)來標識存儲卷。
如圖所示LVM模型:
二、 LVM基本術語
前面談到,LVM是在磁盤分區和文件系統之間添加的一個邏輯層,來爲文件系統屏蔽下層磁盤分區佈局,提供一個抽象的盤卷,在盤捲上建立文件系統。首先我們討論以下幾個LVM術語:
物理存儲介質(The physical media):這裏指系統的存儲設備:硬盤,如:/dev/hda1、/dev/sda等等,是存儲系統最低層的存儲單元。
物理卷(physical volume):物理卷就是指硬盤分區或從邏輯上與磁盤分區具有同樣功能的設備(如RAID),是LVM的基本存儲邏輯塊,但和基本的物理存儲介質(如分區、磁盤等)比較,卻包含有與LVM相關的管理參數。
卷組(Volume Group):LVM卷組類似於非LVM系統中的物理硬盤,其由物理卷組成。可以在卷組上創建一個或多個“LVM分區”(邏輯卷),LVM卷組由一個或多個物理卷組成。
邏輯卷(logical volume):LVM的邏輯卷類似於非LVM系統中的硬盤分區,在邏輯卷之上可以建立文件系統(比如/home或者/usr等)。
PE(physical extent):每一個物理卷被劃分爲稱爲PE(Physical Extents)的基本單元,具有唯一編號的PE是可以被LVM尋址的最小單元。PE的大小是可配置的,默認爲4MB。
LE(logical extent):邏輯卷也被劃分爲被稱爲LE(Logical Extents) 的可被尋址的基本單位。在同一個卷組中,LE的大小和PE是相同的,並且一一對應。
簡單來說就是:
PV:是物理的磁盤分區
VG:LVM中的物理的磁盤分區,也就是PV,必須加入VG,可以將VG理解爲一個倉庫或者是幾個大的硬盤。
LV:也就是從VG中劃分的邏輯分區
如下圖所示PV、VG、LV三者關係:
首先確定系統中是否安裝了lvm工具:
[root@www root]# rpm –qa|grep lvm
lvm-1.0.3-4
如果命令結果輸入類似於上例,那麼說明系統已經安裝了LVM管理工具;如果命令沒有輸出則說明沒有安裝LVM管理工具,則需要從網絡下載或者從光盤裝LVM rpm工具包。
四、 創建和管理LVM
要創建一個LVM系統,一般需要經過以下步驟:
1、 創建分區
使用分區工具(如:fdisk等)創建LVM分區,方法和創建其他一般分區的方式是一樣的,區別僅僅是LVM的分區類型爲8e。如下列圖所示:
2、 創建PV
4、 創建LV
5、LV格式化及掛載
下一步需要對LV進行格式化(使用mksf進行格式化操作),然後LV才能存儲資料
如果要在系統啓動的時候啓動LV,最好是將lvData寫入fstable 文件中,如下所示:
擴容當前分區
一、首先創建一塊新的分區:
fdisk /dev/hda
n
l #選擇邏輯分區,如果沒有,則首先創建擴展分區,然後再添加邏輯分區(硬盤:最多四個分區P-P-P-P或P-P-P-E)
6 #分區號(從5開始),/dev/hda6
t 8e #分區類型8e表示LVM分區
w #寫入分區表
partprobe #重讀分區表
mkfs –t ext3 /dev/hda6 #格式化
partx /dev/hda #查看當前硬盤的分區表及使用情況
二、創建PV,擴容VG,LV
pvcreate /dev/hda6
vgdisplay #查看當前已經存在的VG信息,以存在VG:VolGroup00爲例
vgextend VolGroup00 /dev/hda6 #擴展VolGroup00
lvdisplay #查看已經存在的LV信息,以存在LV:LogVol01爲例
lvextend –L 1G /dev/VolGroup00/LogVol01 #擴展LV
resize2fs /dev/VolGroup00/LogVol01 #執行該重設大小,對於當前正在使用的LogVol01有效
df –h #查看掛載情況,已經擴容
Linux系統LVM管理PV/VG/LV常用命令參考手冊(附AIX命令對比)
本文總結了Linux系統LVM工具管理物理卷PV、卷組VG、邏輯卷LV的常用命令,並附加應用實例。同時提供了AIX與Linux LVM的命令對比,爲Linux、AIX系統管理員創建、刪除、擴容、查看及修改PV/VG/LV提供參考。
物理卷(PV)管理
初始化成爲物理卷
pvcreate PhysicalVolume [PhysicalVolume...]
註釋:使用pvcreate命令將一個塊設備初始化爲一個PV。PhysicalVolume參數可以是一個磁盤分區,整個磁盤,meta磁盤設備。當整個磁盤作爲一個PV時,磁盤必須沒有分區列表,擦除分區表可以通過以下命令將第一個扇區寫0:dd if=/dev/zero of=PhysicalVolume bs=512 count=1
命令示例:
#pvcreate /dev/sdd1 /dev/sde1 /dev/sdf1
顯示物理卷
pvdisplay PhysicalVolumePath [PhysicalVolumePath...]
註釋:使用pvdisplay命令顯示一個或多個物理卷的屬性
命令示例:
#pvdisplay
— Physical volume —
PV Name /dev/sdc1
VG Name new_vg
PV Size 17.14 GB / not usable 3.40 MB
Allocatable yes
PE Size (KByte) 4096
Total PE 4388
Free PE 4375
Allocated PE 13
PV UUID Joqlch-yWSj-kuEn-IdwM-01S9-XO8M-mcpsVe
掃描物理卷
pvscan
註釋:在系統LVM塊設備中檢索PV
命令示例:
# pvscan
PV /dev/sdb2 VG vg0 lvm2 [964.00 MB / 0 free]
PV /dev/sdc1 VG vg0 lvm2 [964.00 MB / 428.00 MB free]
PV /dev/sdc2 lvm2 [964.84 MB]
Total: 3 [2.83 GB] / in use: 2 [1.88 GB] / in no VG: 1 [964.84 MB]
改變物理卷的分配許可
pvchange -x n PhysicalVolumePath
註釋:允許用戶改變一個或多個物理卷的分配許可
命令示例:
#pvchange -x n /dev/sdk1
刪除物理卷
pvremove PhysicalVolumePath
註釋:將物理卷刪除,刪除之前必須用vgreduce命令把它從卷組中移除
命令示例:
pvremove /dev/sdb2
卷組(VG)管理
創建卷組
pvcreate [–s PhysicalExtentSize] [ –p MaxLogicalVolumes] [-l MaxLogicalVolumes] VolumeGroupNamePhysicalVolumePath [PhysicalVolumePath...]
註釋:卷組將多個物理卷組成一個整體,屏蔽了底層物理卷細節。在卷組上創建邏輯卷時無需考慮具體的物理卷信息。
選項:
-s:設置物理卷的PE大小,默認爲megabytes
-p:卷組中允許添加的最大物理卷數
-l:卷組上允許創建的最大邏輯卷數
命令示例:
vgcreate myvg /dev/sdb1 /dev/sdb2
掃描並顯示系統中的卷組
vgscan
註釋:查找系統中存在的LVM卷組,僅顯示找到的卷組名稱和LVM元數據類型,要得到卷組的詳細信息需使用vgdisplay命令。
命令示例:
#vgscan
Found volume group “vg2000″ using metadata type lvm2
Found volume group “vg1000″ using metadata type lvm2
顯示卷組屬性
vgdisplay VolumeGroupName
註釋:顯示LVM卷組的元數據信息,如不指定卷組參數,則顯示所有卷組屬性。
命令示例:
# vgdisplay new_vg
— Volume group —
VG Name new_vg
System ID
Format lvm2
Metadata Areas 3
Metadata Sequence No 11
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 0
Max PV 0
Cur PV 3
Act PV 3
VG Size 51.42 GB
PE Size 4.00 MB
Total PE 13164
Alloc PE / Size 13 / 52.00 MB
Free PE / Size 13151 / 51.37 GB
VG UUID jxQJ0a-ZKk0-OpMO-0118-nlwO-wwqd-fD5D32
增加PV到現有卷組
vgextend VolumeGroupName PhysicalVolumePath [PhysicalVolumePath...]
註釋:動態添加一個或多個PV到卷組
命令示例:
#vgextend myvg /dev/sdb2
從卷組中刪除PV
vgreduce [-a] VolumeGroupName [PhysicalVolumePath...]
註釋:從卷組中刪除一個或多個無用的PV,在使用之前,需通過pvmove把PV上的LV移動到其他PV上。
選項:
-a:如果命令行中沒有指定刪除的物理卷,則刪除所有的空物理卷
命令示例:
#vgreduce myvg /dev/hda1
改變卷組屬性
vgchange [-a {y|n}] [-l MaxLogicalVolumes] VolumeGroupName
註釋:設置卷組爲活動狀態或非活動狀態,或改變卷組的最大LV數量。
選項:
-a:設置卷組的活動狀態
-l:改變一個當前非活動卷組的最大邏輯卷數
命令示例:
#vgchange –a y myvg
#vgchange –l 128 /dev/vg00
刪除卷組
vgremove VolumeGroupName [VolumeGroupName...]
註釋:刪除一個或多個卷組。卷組上必須沒有邏輯卷並且爲非活動狀態。當卷組上已創建了邏輯卷時,vgremove需要進行確認刪除。
命令示例:
# vgremove myvg
分割卷組
vgsplit ExistingVolumeGroupName NewVolumeGroupName PhysicalVolumePath[PhysicalVolumePath...]
註釋:把卷組的PV分成兩部分,並建立新的VG。被分割到新的VG的PV必須不包括LV的一部分,即:LV不能跨組。
命令示例:
# vgsplit bigvg smallvg /dev/ram15
合併卷組
vgmerge DestinationVolumeGroupName SourceVolumeGroupName
註釋:把非活動狀態的源卷組合併到活動或非活動狀態的目標卷組中。
命令示例:
#vgmerge -v databases myvg
邏輯卷(LV)管理
創建邏輯卷
lvcreate [-l LogicalExtentsNumber] [-L LogicalVolumeSize] [-n LogicalVolumeName] VolumeGroupName[PhysicalVolumePath...]
註釋:創建LVM的邏輯卷。
選項:
-L:指定邏輯卷的大小
-l:指定邏輯卷的大小(LE數)
-n:創建邏輯卷的名稱
命令示例:
#lvcreate -L 1500 -ntestlv testvg /dev/sdg1
收縮邏輯卷空間
lvreduce [-l [-]LogicalExtentsNumber] [–L [-]LogicalVolumeSize] LogicalVolumePath
註釋:減少邏輯卷佔用的空間大小,此命令有可能會刪除邏輯捲上的已有數據,操作之前必須確認。
選項:
-l:指定邏輯卷的大小(LE數)
-L:指定邏輯卷的大小
命令示例:
#lvreduce -l -3 /dev/vg00/lvol1
改變邏輯卷參數
lvchange [-a {y|n}] [-p r|rw] LogicalVolumePath [LogicalVolumePath...]
註釋:改變邏輯卷參數,或激活/禁止某個邏輯。
選項:
-a:設置邏輯卷的活動狀態
-p:訪問權限爲只讀或可讀寫
命令示例:
#lvchange –a n /dev/vg00/lvol1
刪除邏輯卷
lvremove LogicalVolumePath [LogicalVolumePath...]
註釋:刪除一個或多個非活動的邏輯卷。如果邏輯卷已用mount指令加載,則不能用lvremove刪除。需使用umount卸載後,方可被刪除。
命令示例:
# lvremove /dev/vg00/lv01
顯示邏輯卷屬性
lvdisplay LogicalVolumePath [LogicalVolumePath...]
註釋:顯示邏輯卷空間大小、讀寫狀態和快照信息等屬性。如果缺省邏輯卷參數,則顯示所有邏輯卷屬性。
命令示例:
#lvdisplay -v /dev/vg00/lvol2
掃描邏輯卷
lvscan
註釋:掃描系統中所有存在的邏輯卷。
命令示例:
#lvscan
擴展邏輯卷
lvextend {-l [+]LogicalExtentsNumber}{ -L [+]LogicalVolumeSize] LogicalVolumePath[PhysicalVolumePath...]
註釋:在線擴展邏輯卷空間大小,可以指定擴展後的大小,也可以指定增量。
選項:
-l:擴展後的大小或增量,以LE爲單位
-L:擴展後的大小或增量
命令示例:
# lvextend -L +100M /dev/vg1000/lvol0
附:AIX/Linux LVM管理PV/VG/LV部分命令對照表
功能 | AIX | Linux |
修改PV屬性 | chpv [-a Allocation ] [-v Avaliability] [-c ] Pvname | pvchange -x n PhysicalVolumePath |
刪除PV | rmdev –dl hdisk## | pvremove PhysicalVolumePath |
列出PV屬性 | lspv [-l][-p][-M] hdisk## | pvdisplay PhysicalVolumePath |
創建VG | mkvg –f –y yournamevg## hdisk## | pvcreate VolumeGroupNamePhysicalVolumePath |
修改VG屬性 | chvg –ay(-an) yournamevg## | vgchange [-a {y|n}] VolumeGroupName |
向VG中增加PV | extendvg yournamevg## hdisk## | vgextend VolumeGroupName PhysicalVolumePath |
從VG中刪除PV | reducevg yournamevg## hdisk## | vgreduce [-a] VolumeGroupName [PhysicalVolumePath...] |
創建LV | mklv -y yournamelv n yournamevg ## hdisk## | lvcreate [-n LogicalVolumeName] VolumeGroupName [PhysicalVolumePath...] |
刪除LV | rmlv –f yournamelv## | lvremove LogicalVolumePath |
列出LV屬性 | lslv yourlvname## | lvdisplay LogicalVolumePath [LogicalVolumePath...] |
參考
【轉載自:www.iHk-system.com|尋訪諸神的網站】