1) 前言
2) lvm組成和概念
3) 如何使用lvm,建立邏輯卷的流程和例項
4) 如何動態放大/縮小乙個邏輯卷/邏輯捲組
5) 如何刪除邏輯卷/邏輯捲組
6) lvm相關命令
1) 前言
一直想寫乙個簡單的lvm方面的文章,可以作個背忘,主要以流程和例項為主,希望文章能起到拋磚引玉的
作用.
lvm=(logical volume mamager)邏輯卷管理器,lvm最先是用在ibm aix系統上,它的最大作用是可以動態分
配磁碟分割槽,並且可以讓多個分割槽或者物理硬碟作為乙個邏輯卷(相當於乙個邏輯硬碟).這種機制可以讓磁
盤分割槽容量劃分變得很靈活.
我們先舉個簡單例子.比如我們有乙個硬碟/dev/hda,分了3個主分割槽:hda1,hda2,hda3,後面磁碟空間沒有
劃分,分別對應的掛載點是/boot,/,/home,如果我們的/home空間不夠了,怎麼辦?傳統的方法是在未劃分的
空間中分割乙個分割槽,掛載到/home下,並且把hda3的內容複製到這個新分割槽上.或者把這個新分割槽掛載到另
外的掛載點上,然後在/home下建立鏈結,鏈結到這個新掛載點.
這兩種方法都不大好,第一種方法浪費了hda3,並且如果後面的分割槽容量小於hda3怎麼辦?第二種方法不大
浪費容量,但是每次要額外建立鏈結,比較麻煩.那麼,如果用lvm呢?lvm的好處在於,可以動態放大乙個邏輯
卷(相當於乙個邏輯分割槽),也就是說,hda3如果是乙個邏輯分割槽,比如/dev/rootvg/lv3,那麼lv3可以被動態
放大.這樣就解決了動態容量調整的問題.當然,前提是系統已設定好lvm支援,並且需要動態縮放的掛載點
對應的裝置是邏輯卷.
在這裡,我所有例子都是基於rhel 4/centos 4.x和lvm2的。
2) lvm組成和概念
這裡參考了ibm 林彥明(alex lin)的》)
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)
那麼,最常用的3個名詞和意義列表如下:
名詞 意義 作業系統對應裝置
pv 物理卷 /dev/hdax
vg 捲組 /dev/ (通常是個目錄)
lv 邏輯卷 /dev//
如果我們要使用lvm,順序是pv->vg->lv。
就是說,我們先建立乙個物理卷(對應乙個物理硬碟分割槽或者乙個物理硬碟),然後把這些分割槽/硬碟加入
乙個卷組中(相當於乙個邏輯上的大硬碟),然後我們在這個大硬碟上劃分分割槽lv(邏輯上的分割槽,就是邏
輯卷)
這樣,我們把lv邏輯卷格式化以後,就可以像使用乙個傳統分割槽那樣,把它掛載到乙個掛載點上,需要的
時候,這個邏輯卷可以被動態縮放。
我們可以用乙個長方蛋糕來說明這個對應關係。物理硬碟相當於乙個長方蛋糕,我們把它切割成許多快,
每個小塊相當於乙個pv,然後我們把其中的某些pv重新放在一起,抹上忌廉,那麼這麼些個pv的組合就是
乙個新的蛋糕,也就是vg。最後,我們切割這個新蛋糕vg,切出來的小蛋糕就叫做lv。
有一點需要注意,就是/boot區不可以是lvm,因為引導程式lilo/grub並不能識別lvm,就像/boot同樣不
可以是軟raid裝置一樣。
3) 如何使用lvm,建立邏輯卷的流程和例項
好了,我們來建立乙個lv。
比如說,在乙個物理硬碟/dev/hda上,我們需要將/dev/hda5,/dev/hda6作為pv
1 fdisk劃分hda5,hda6,並且將這兩個分割槽的標誌(鍵入t改)改為(0x)8e
然後用partprobe通知os磁碟分割槽的變化
2 pvcreate /dev/hda5 /dev/hda6(-s xxm可設定pe大小)
建立pv hda5,hda6
3 vgcreate rootvg /dev/hda5 /dev/hda6
將hda5,hda6加入邏輯捲組rootvg中
4 lvcreate -l 100m -n lv1 rootvg
從我們的rootvg中,建立乙個100m的邏輯卷lv1
5 mkfs.ext3 /dev/rootvg/lv1
格式化我們的lv1,檔案系統用ext3
6 mkdir /mnt/lvm;mount /dev/rootvg/lv1 /mnt/lvm
將lv1掛載到/mnt/lvm下
好了,這樣乙個建立lv的例子完成
4) 如何動態放大/縮小乙個邏輯卷/邏輯捲組
我們如何放大lv?比如上面的lv1?流程:
1 lvextend -l+200m /dev/rootvg/lv1
將lv1增加200m
2 ext2online /dev/rootvg/lv1
讓lv1容量更改立即生效
1 umount /mnt/lvm
這裡,需要先解除安裝分割槽
2 mke2fs -n /dev/rootvg/lv1
計算lv1的block數
這裡一定要加-n引數,這是計算lv1的block數,而不是格式化分割槽,注意。
並且注意,從mb->kb這些的計算,都是乘1024,不是1000,這是個細節問題
3 計算減少50m後的block數。從mke2fs -n /dev/rootvg/lv1,我們可以得出2個需要的資訊:
block size和blocks,這兩個數的乘積就是分割槽大小a(單位位元組),
我們把需要減小的容量50m換算成位元組b,然後a-b的結果除以block size,就是剩餘的block數
4 resize2fs -f /dev/rootvg/lv1 剩餘的block數
調整檔案系統大小
5 lvreduce -l-50m /dev/rootvg/lv1
調整lv分割槽大小,減小50m
6 重新mount,df察看一下容量的減小
動態加大vg:
這裡我們新增乙個pv並加入vg
1 fdisk增加乙個(0x)8e標誌的分割槽/dev/hda7
2 vgextend rootvg /dev/hda7
好了,vg增大了
縮小邏輯捲組vg:
1 搬移pv中的資料(只限於同一vg中)
#pvmove [-n ]
如
#pvmove /dev/hda5 /dev/hda6
將vg中pv hda5的內容搬移到hda6中
pvmove /dev/hda5(也可以這樣,lvm決定hda2的內容被複製到**)
2 vgreduce rootvg /dev/hda5
把vg hda5移除
5) 如何刪除邏輯卷/邏輯捲組
刪除vg流程:
1 umount /掛接點
2 lvremove /dev/rootvg/lv1
移除邏輯卷,這裡是lv1
3 vgchange -a n rootvg(關閉rootvg)
4 vgremove rootvg
移除rootvg
6) lvm相關命令
這個**,你可以在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
Lvm(邏輯卷管理)
lvm 邏輯卷管理 1.make lv 1 fdisk dev sdb 1 對sdb進行分割槽,三個主分割槽,乙個擴充套件分割槽,乙個邏輯分割槽,分別為sdb1,sdb2,sdb3,sdb4,sdb5 2 用fdisk dev sdb命令,對分好的磁碟檔案系統進行格式化。3 儲存好分割槽之後,進行p...
LVM 邏輯卷管理
顯示分割槽資訊 root centos7 fdisk l物理硬碟格式為物理卷 pv root centos7 pvcreate dev sda6檢視物理卷 pv 資訊 root centos7 pvs root centos7 pvdisplay 刪除物理卷 pv root centos7 pvre...
lvm邏輯卷管理
一 lvm建立 劃分物理分割槽並把分割槽id 修改為8e pvs pvdisplay vgs vgdisplay lvs lvdisplay 監控命令 watch n 1 echo pvinfo pvs echo vginfo vgs echo lvinfo lvs pvcreate dev sdb...