lvm(邏輯卷管理器)的介紹和常用功能流程實(shí)驗(yàn)
daweicheng
1) 前言
2) lvm組成和概念
3) 如何使用lvm,創(chuàng)建邏輯卷的流程和實(shí)例
4) 如何動(dòng)態(tài)放大/縮小一個(gè)邏輯卷/邏輯卷組
5) 如何刪除邏輯卷/邏輯卷組
6) lvm相關(guān)命令
1) 前言
一直想寫一個(gè)簡單的lvm方面的文章,可以作個(gè)背忘,主要以流程和實(shí)例為主,希望文章能起到拋磚引玉的
作用.
LVM=(Logical Volume Mamager)邏輯卷管理器,LVM最先是用在IBM AIX系統(tǒng)上,它的最大作用是可以動(dòng)態(tài)分
配磁盤分區(qū),并且可以讓多個(gè)分區(qū)或者物理硬盤作為一個(gè)邏輯卷(相當(dāng)于一個(gè)邏輯硬盤).這種機(jī)制可以讓磁
盤分區(qū)容量劃分變得很靈活.
我們先舉個(gè)簡單例子.比如我們有一個(gè)硬盤/dev/hda,分了3個(gè)主分區(qū):hda1,hda2,hda3,后面磁盤空間沒有
劃分,分別對(duì)應(yīng)的掛載點(diǎn)是/boot,/,/home,如果我們的/home空間不夠了,怎么辦?傳統(tǒng)的方法是在未劃分的
空間中分割一個(gè)分區(qū),掛載到/home下,并且把hda3的內(nèi)容復(fù)制到這個(gè)新分區(qū)上.或者把這個(gè)新分區(qū)掛載到另
外的掛載點(diǎn)上,然后在/home下創(chuàng)建鏈接,鏈接到這個(gè)新掛載點(diǎn).
這兩種方法都不大好,第一種方法浪費(fèi)了hda3,并且如果后面的分區(qū)容量小于hda3怎么辦?第二種方法不大
浪費(fèi)容量,但是每次要額外創(chuàng)建鏈接,比較麻煩.那么,如果用lvm呢?lvm的好處在于,可以動(dòng)態(tài)放大一個(gè)邏輯
卷(相當(dāng)于一個(gè)邏輯分區(qū)),也就是說,hda3如果是一個(gè)邏輯分區(qū),比如/dev/rootvg/lv3,那么lv3可以被動(dòng)態(tài)
放大.這樣就解決了動(dòng)態(tài)容量調(diào)整的問題.當(dāng)然,前提是系統(tǒng)已設(shè)定好lvm支持,并且需要?jiǎng)討B(tài)縮放的掛載點(diǎn)
對(duì)應(yīng)的設(shè)備是邏輯卷.
在這里,我所有例子都是基于RHEL 4/CentOS 4.x和LVM2的。
2) lvm組成和概念
這里參考了IBM 林彥明(Alex Lin)的>)
PV(Physical Volume) 物理卷??梢允菃为?dú)磁盤,也可以是硬盤分區(qū)
VG(Volume Group) 卷組。是PV的組合,可以看成單獨(dú)的邏輯磁盤
LV(Logical Volume) 邏輯分區(qū)。相當(dāng)于物理分區(qū)的/dev/hdaX
PE(Physical Extent) 物理范圍。VG單元,類似于RAID的條帶大小。
當(dāng)多個(gè)PV組成一個(gè)VG時(shí),LVM會(huì)在所有PV上做類似格式化的動(dòng)作,
將每個(gè)PV切成一塊塊的空間,這一塊塊的空間就稱為PE, 通常是4MB。
LE(Logical Extent) 邏輯范圍。LV的組成單位。大小為PE的倍數(shù)(通常為1:1)
那么,最常用的3個(gè)名詞和意義列表如下:
名詞 意義 操作系統(tǒng)對(duì)應(yīng)設(shè)備
PV 物理卷 /dev/hdaX
VG 卷組 /dev/ (通常是個(gè)目錄)
LV 邏輯卷 /dev//
如果我們要使用lvm,順序是pv->vg->lv。
就是說,我們先創(chuàng)建一個(gè)物理卷(對(duì)應(yīng)一個(gè)物理硬盤分區(qū)或者一個(gè)物理硬盤),然后把這些分區(qū)/硬盤加入
一個(gè)卷組中(相當(dāng)于一個(gè)邏輯上的大硬盤),然后我們在這個(gè)大硬盤上劃分分區(qū)lv(邏輯上的分區(qū),就是邏
輯卷)
這樣,我們把lv邏輯卷格式化以后,就可以像使用一個(gè)傳統(tǒng)分區(qū)那樣,把它掛載到一個(gè)掛載點(diǎn)上,需要的
時(shí)候,這個(gè)邏輯卷可以被動(dòng)態(tài)縮放。
我們可以用一個(gè)長方蛋糕來說明這個(gè)對(duì)應(yīng)關(guān)系。物理硬盤相當(dāng)于一個(gè)長方蛋糕,我們把它切割成許多快,
每個(gè)小塊相當(dāng)于一個(gè)pv,然后我們把其中的某些pv重新放在一起,抹上奶油,那么這么些個(gè)pv的組合就是
一個(gè)新的蛋糕,也就是vg。最后,我們切割這個(gè)新蛋糕vg,切出來的小蛋糕就叫做lv。
有一點(diǎn)需要注意,就是/boot區(qū)不可以是lvm,因?yàn)橐龑?dǎo)程序lilo/grub并不能識(shí)別lvm,就像/boot同樣不
可以是軟raid設(shè)備一樣。
3) 如何使用lvm,創(chuàng)建邏輯卷的流程和實(shí)例
好了,我們來創(chuàng)建一個(gè)lv。
比如說,在一個(gè)物理硬盤/dev/hda上,我們需要將/dev/hda5,/dev/hda6作為pv
1 fdisk劃分hda5,hda6,并且將這兩個(gè)分區(qū)的標(biāo)志(鍵入t改)改為(0x)8e
然后用partprobe通知OS磁盤分區(qū)的變化
2 pvcreate /dev/hda5 /dev/hda6(-s xxM可設(shè)定PE大小)
創(chuàng)建pv hda5,hda6
3 vgcreate rootvg /dev/hda5 /dev/hda6
將hda5,hda6加入邏輯卷組rootvg中
4 lvcreate -L 100M -n lv1 rootvg
從我們的rootvg中,創(chuàng)建一個(gè)100M的邏輯卷lv1
5 mkfs.ext3 /dev/rootvg/lv1
格式化我們的lv1,文件系統(tǒng)用ext3
6 mkdir /mnt/lvm;mount /dev/rootvg/lv1 /mnt/lvm
將lv1掛載到/mnt/lvm下
好了,這樣一個(gè)創(chuàng)建lv的例子完成
4) 如何動(dòng)態(tài)放大/縮小一個(gè)邏輯卷/邏輯卷組
我們?nèi)绾畏糯髄v?比如上面的lv1?流程:
1 lvextend -L+200M /dev/rootvg/lv1
將lv1增加200M
2 ext2online /dev/rootvg/lv1
讓lv1容量更改立即生效
減小lv,網(wǎng)上很多文章介紹的是ReiserFS,這里我們是ext3文件系統(tǒng),如果我們需要減少50M:
1 umount /mnt/lvm
這里,需要先卸載分區(qū)
2 mke2fs -n /dev/rootvg/lv1
計(jì)算lv1的block數(shù)
這里一定要加-n參數(shù),這是計(jì)算lv1的block數(shù),而不是格式化分區(qū),注意。
并且注意,從MB->KB這些的計(jì)算,都是乘1024,不是1000,這是個(gè)細(xì)節(jié)問題
3 計(jì)算減少50M后的block數(shù)。從mke2fs -n /dev/rootvg/lv1,我們可以得出2個(gè)需要的信息:
Block size和blocks,這兩個(gè)數(shù)的乘積就是分區(qū)大小A(單位字節(jié)),
我們把需要減小的容量50M換算成字節(jié)B,然后A-B的結(jié)果除以Block size,就是剩余的block數(shù)
4 resize2fs -f /dev/rootvg/lv1 剩余的block數(shù)
調(diào)整文件系統(tǒng)大小
5 lvreduce -L-50M /dev/rootvg/lv1
調(diào)整lv分區(qū)大小,減小50M
6 重新mount,df察看一下容量的減小
動(dòng)態(tài)加大VG:
這里我們新增一個(gè)PV并加入VG
1 fdisk增加一個(gè)(0x)8e標(biāo)志的分區(qū)/dev/hda7
2 vgextend rootvg /dev/hda7
好了,vg增大了
縮小邏輯卷組VG:
1 搬移PV中的資料(只限于同一VG中)
#pvmove [-n ] []
如
#pvmove /dev/hda5 /dev/hda6
將VG中pv hda5的內(nèi)容搬移到hda6中
pvmove /dev/hda5(也可以這樣,lvm決定hda2的內(nèi)容被復(fù)制到哪里)
2 vgreduce rootvg /dev/hda5
把vg hda5移除
5) 如何刪除邏輯卷/邏輯卷組
刪除VG流程:
1 umount /掛接點(diǎn)
2 lvremove /dev/rootvg/lv1
移除邏輯卷,這里是lv1
3 vgchange -a n rootvg(關(guān)閉rootvg)
4 vgremove rootvg
移除rootvg
6) lvm相關(guān)命令
這個(gè)表格,你可以在RHCE_Study_Guide.pdf上找到
Physical Volume Volume Group Logical Volume
scan pvscan vgscan lvscan
create pvcreate vgcreate lvcreate
display pvdispaly vgdisplay lvdisplay
remove pvremove vgremove lvremove
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請
點(diǎn)擊舉報(bào)。