製做人:wqmslide
博客地址:http://wqmsl.blog.51cto.com性能
卷組volume group (VG)
卷組是LVM中最高抽象層,是由一個或多個物理卷所組成的存儲器池。
物理卷physical volume (PV)
典型的物理卷是硬盤分區,但也能夠是整個硬盤或已建立的Software RAID 卷。
物理塊physical extent (PE)
物理卷按大小相等的「塊」爲單位存儲,塊的大小與卷組中邏輯卷塊的大小相同。
邏輯塊logical extent (LE)
邏輯卷按「塊」爲單位存儲,在一卷組中的全部邏輯卷的塊大小是相同的。3d
邏輯卷logical volume (LV)
邏輯卷至關於非LVM系統中的分區,它在卷組上創建,是一個標準的塊設備,能夠在其上創建文件系統blog
線性映射
線性映射-把必定範圍的物理塊按順序分配給邏輯卷,如LV的LE 1-99映射到PV1,LE 100-347映射到PV2。ip
交錯模式
交錯模式-將把邏輯塊交錯映射到不一樣的物理卷中,如 LV的LE 1映射爲PV1的PE1,LE 2映射爲PV2的PE1,LE 3映射爲PV1的PE2.。這種方式能夠提升邏輯卷的性能,可是採用這種方式創建的邏輯卷將不能在它們所在的物理卷中擴展。rem
建立LVM卷,從下到上建立,示意圖以下get
第一步建立物理文件系統博客
首先咱們要建立文件系統it
命令: fdisk /dev/sdb ———— 建立物理卷並修改ID爲8eio
第二步初始化物理卷爲PV
建立PV,添加幾個文件系統,而後再添加一個RAID文件系統
命令:pvcreate /dev/sdb{5,6,7,8,9} ———— 添加文件系統到PV
pvcreate /dev/md0 ———— 添加raid文件系統到PV
pvs,pvdisplay ———— 查看系統現有PV
第三步建立卷組VG
添加PV到卷組,建立VG卷組
命令:vgcreate [-s=16m] test_vg /dev/sdk1 /dev/sdl1
指定PE大小 VG卷組名 要添加到VG中的PV
使用man幫助看一下使用方法
看上面的例子,咱們添加PV到卷組中建立VG
命令:vgcreate vg0 /dev/sdb{5,6,7,8,9} /dev/md0
vgs,vgdisplay
註釋:[-s=16m] 裏面的內容可選,修改默認的PE單元大小,默認爲4M,最大一個卷組是256G,修改默認單元爲16M,最大的卷組單元是1024G
命令:vgdisplay testvg | grep "Total PE"
看看默認的PE大小爲4M,PV個數爲6個,VG的總大小爲6.7.G
其餘VG卷組的一些操做
激活VG
在被激活以前,VG與LV是沒法訪問的
用man幫助看一下
命令:vgchange -a y vg0 ———— 激活vg0卷組
當再也不使用VG時,休眠了vg0卷組
命令:vgchange -a n vg0 ———— 使之再也不可用
移除VG
在移除一卷組前應確認卷組中再也不有邏輯卷
命令:vgchange -a n vg0 ———— 休眠卷組
vgremove vg0 ———— 移除該卷組
爲VG增長新PV
當卷組空間不足時,能夠加入新的物理捲來擴大VG卷組容量,這時可用命令vgextend
pvcreate /dev/sdb15 ———— 初始化sdb15爲PV
vgextend vg0 /dev/sdb15 ———— 把sdb15加入到卷組vg0中
其中/dev/sdb15是新的PV,固然在這以前,它應使用pvcreate初始化
從VG移除PV
在移除PV以前,應確認該PV沒用被LV使用
命令:pvdisplay /dev/sdb15 ———— 查看pv有沒有使用
如這個PV仍在被使用,在確認它未被使用後,可用命令vgreduce把它從VG中刪除
命令:vgreduce vg0 /dev/sdb15 ———— 從vg中刪除pv
若是所在PV上有數據,則應把數據傳移到其它PV上
註釋:若要把一個PV從VG中移除,應首先把其上全部活動PE中的數據轉移到其它PV上,而新的PV必須是本VG的一部分,有足夠的空間,如要把PV1:/dev/md0上的數據移到PV2:/dev/sdb6上可用,建議在轉移數據以前備份LV中的數據,若是在該PV之上的LV採用交錯方式存放,則這個轉移過程不能被打斷。
命令:pvmove /dev/md0 /dev/sdb6
第四步建立LV邏輯卷
lvcreate命令的經常使用方法和參數:
lvcreate [options] -n 邏輯卷名 卷組名 [PV1...]
-i Stripes :採用交錯(striped)方式建立LV,其中Stripes指卷組中PV的數量。
-I Stripe_size :採用交錯方式時採用的塊大小(單位爲KB),Stripe_size必須爲2的指數:2N ,N=2,3...9
-l LEs :指定LV的邏輯塊數。
-L size :指定LV的大小,其後能夠用K、M、G表示KB、MB、GB。
-s :建立一已存在LV的snapshot卷。
-n name :爲LV指定名稱。
看看man幫助如何建立LV
在VG卷組上建立LV邏輯卷
命令:lvcreate -L 500M -n lv0 vg0
指定LV大小 LV名稱 卷組VG名稱
查看整個卷組VG總大小6.7G,剩餘的空間爲6.21G
命令:vgs
格式化LV
命令:mkfs.ext3 /dev/vg0/lv0
查看一個lv0塊設備
刪除LV
爲刪除一個邏輯卷,必須首先從系統卸載其上的文件系統,而後可用lvremove刪除,如:
umount /lv1 先卸載LV文件系統
lvremove /dev/vg0/lv1 移除lv1邏輯卷
掛載lv0並建立文件
下面最關鍵的來了
擴大LV
步驟以下:
首先增長邏輯卷容量(lvextend)
在線(脫機)增長ext3文件系統(resize2fs)
查看man幫助
查看lv擴展後的VG卷組剩餘空間
首先增長邏輯卷容量(lvextend)
指定擴容後的尺寸: lvextend -L 2G /dev/vg0/lv0
將擴大邏輯卷lv0的容量爲2GB。
指定要增長的尺寸: lvextend -L +512M /dev/vg0/lv0
將爲LV v0再增大容量1GB至1.5GB。
註釋:爲LV擴容的一個前提是,LV所在的VG有足夠的空閒存儲空間可用。
在爲LV擴容以後,應同時爲LV之上的文件系統擴容,使兩者相匹配。對不一樣的文件系統有相對應的擴容方法。
擴充了LV後,從新掛載,查看大小,看到當前的LV大小並無增大,那又該怎麼辦呢?
註釋:ext2/ext3除非內核已有ext2online 補丁,不然在改變ext2/ext3文件系統的大小時應卸載它
在線(脫機)增長ext3文件系統(resize2fs)
再次查看的時候咱們能夠看到容量大小已是擴展後的大小了
縮小LV(這個比較麻煩)
步驟以下:
卸載文件系統,使其脫機進行操做(umount)
檢查文件系統(e2fsck)
縮小文件系統(resize2fs),指定縮小後的容量
縮小LV,減小卷容量(lvreduce),指定縮小後的容量
使用man 幫助看一看lvreduce的用法
註釋:邏輯卷可擴展一樣也可縮小,但應在縮小LV以前首先減少文件系統,不然將可能致使數據丟失。
下面來縮小lv0的容量,現容量爲800M容量,我要縮小到500M
卸載文件系統,使其脫機進行操做(umount)
命令:umount /lv0
檢查文件系統(e2fsck)
命令:e2fsck -f /dev/vg0/lv0
縮小文件系統(resize2fs)
命令:resize2fs /dev/vg0/lv0 500M
縮小LV,減小卷容量(lvreduce)
命令:lvreduce -L 500M /dev/vg0/lv0
掛載lv0文件系統並查看其大小
系統啓動激活
在RHEL 5之後都會自動激活LVM,以下,在系統啓動的時候會自動激活的
若是沒有激活的話請作以下操做:
系統啓動/關閉 "爲使系統啓動時可自動激活並使用LVM,可將如下幾行添加到啓動 rc 腳本中: /sbin/vgscan /sbin/vgchange -a y 這些行將瀏覽全部可用的卷組並激活它們。要注意的是,它們應在安裝卷組上的文件系統操做以前被執行,不然將沒法正常安裝文件系統。 "在系統關機時,要關閉LVM,這可將如下這行添加到關機 rc 腳本中,並確保它在卸裝了全部文件系統後執行:/sbin/vgchange -a n