lvm學習日記

lvm是什麼?

LVM是 Logical Volume Manager(邏輯卷管理)的簡寫,它是Linux環境下對磁盤分區進行管理的一種機制

實現過程:

借用了下別人日誌的圖片,在此表示感謝http://dreamfire.blog.51cto.com
這裏寫圖片描述
基本術語:
  LVM是在磁盤分區和文件系統之間添加的一個邏輯層,來爲文件系統屏蔽下層磁盤分區佈局,提供一個抽象的存儲卷,在存儲捲上建立文件系統
物理存儲介質(Physical storage media):
  指系統的物理存儲設備:如磁盤,/dev/hda,dev/sda等
物理卷(Physical Volume,簡稱PV):
  指磁盤分區或從邏輯上與磁盤分區具有同樣功能的設備(如raid),是LVM的基本存儲邏輯塊,但和基本的物理介質(如分區,磁盤等)比較,卻包含有與LVM相關和管理參數
卷組(Volume Group,簡稱VG):
  類似於非LVM系統中的物理磁盤,其由一個多多個物理卷PV組成,可以在卷組上創建一上或多個LV(邏輯卷)
邏輯卷(Logical Volume,簡稱LV):
  類似於非LVM系統中的磁盤分區,邏輯卷建立在卷組(VG)之上,在邏輯卷LV之上可以建立文件系統(比如/home或者/usr等)
物理塊(Physical Extent,簡稱PE):
  每一個物理卷PV被劃分爲稱爲PE的基本單元,具胡唯一編號的PE是可以被LVM尋址的最小單元,PE的大小是可配置的,默認爲4MB,所以物理卷由大小等同的基本單元PE組成
邏輯塊(logical Extent,簡稱LE):
  邏輯卷LV也被劃分爲可被尋址的基本單位,稱爲LE,在同一個卷組中,LE的大小和PE是相同的,並且一一對應
這裏寫圖片描述
安裝管理工具:
如果系統安裝時使用了lvm ,一般都會帶管理工具,如果沒有檢查下是否安裝一lvm工具

rpm -qa |grep lvm

創建管理:

1.創建分區:
  使用分區工具fdisk創建lvm分區,方法和創建其它一般分區一樣,區別是LVM的分區類型是8e,普通的是83(他用fdisk下的t修改類型)

fdisk /dev/sdb
n
e
+5G(這一步選擇大小)


w
#可以重複創建多個

2.創建物理卷:
將磁盤整個物理卷創建爲物理卷:

pvcreate /dev/sdb

將單個分區創建爲物理卷:

pvcreate /dev/sdb5

將多個分區創建爲物理卷:

pvcreate /dev/sdb{5,6}  #或者pvcreate /dev/sdb5 /dev/sdb6 

使用pvs或者 pvdisplay查看,pvdisplay也可以只指定某個pv 如:pvdiplay /dev/sdb6
3.創建卷組:

vgcreate myvg /dev/sdb{5,6} #myvg是卷組的邏輯名,後面的添加到該卷組的所有分區和磁盤

默認PE是4MB,但也可以手動指定,PE大小範圍爲8KB到16G,並且必須總是2的倍數,用-s指定,單位可以是bBsSkKmMgGtTpPeE

vgcreate -s 8M myvg /dev/sdb{5,6}

注:由於內核原因,PE大小決定了邏輯卷的最大大小,4MB的PE決定了單個邏輯卷最大容量爲256GB,若希望使用大於256G的邏輯卷則創建卷組 時指定更大的PE
使用vgs或者vgdisplay查看
4.添加新的物理捲到卷組中:

pvcreate /dev/sdb7
vgextend  myvg /dev/sdb7

5.從卷組中刪除一個物理卷:
要從一個卷組中刪除一個物理卷,首先要確認要刪除的物理卷沒有被任何邏輯卷正在使用,就要使用pvdisplay命令察看一個該物理卷信息
如果某個物理卷正在被邏輯卷所使用,就需要將該物理卷的數據備份到其它地方,然後再刪除,刪除物理卷的命令爲

pvmove /dev/sdb5    #把數據移動其它PV上去
vgreduce myvg /dev/sdb5     #返sdb5這個PV從myvg移除
vgremove /dev/sdb5      #把sdb5這個pv刪除,把裏面的數據都抹除,使用pvs就看不到了

6.創建邏輯卷:
在VG名爲myvg上創建一個50M的邏輯卷名爲testlv

lvcreate -L 50M -n testlv myvg  #-L指定大小(支持的單位bBsSkKmMgGtTpPeE) -n 是邏輯卷的名稱,myvg是卷組名

然後格式化邏輯卷

msfs.ext4 /dev/myvg/testlv

掛載到/testlv目錄

mount /dev/myvg/testlv /testlv
注:掛載引用的的路徑是/dev/mapper/myvg-testlv, /dev/myvg/testlv只是個軟鏈接,鏈接到/dev/mapper/myvg-testlv

使用lvs或lvdisplay查看邏輯卷相關信息
7.創建文件系統:

resize2fs -p /dev/myvg/testlv  #或者resize2fs -p /dev/mapper/myvg-testlv
#然後掛載就可以使用了
mount /dev/myvg/testlv /testlv

8.刪除一個邏輯卷:
a.刪除邏輯卷以前首先需要將其卸載,然後刪除

umount /testlv

b.刪除邏輯卷

lvremove /dev/myvg/testlv  

9.擴展邏輯卷大小:
a.擴展之前請確定vg裏有足夠的空間可以供擴展
b.擴展物理邊界

lvextend -L 3G /dev/myvg/testlv     #-L指定大小(+3G意思是擴展3G,不加就是擴展到3G) 擴展物理邊界,這裏用df -h 是看不到變化的

c.擴展邏輯邊界

resize2fs -p /dev/myvg/testlv       #擴展邏輯邊界,或者寫resize2fs -p /dev/mapper/myvg-testlv

10.縮減邏輯卷大小:
a.縮減是有風險的,不能在線縮減,需要先卸載

umount /testlv

b.確保縮減後的空間大小,依然能存儲原有的所有數據

e2fsck -f /dev/mapper/myvg-testlv

c.在縮減之前,應該先強行檢查文件系統,以確保文件系統牌一致性狀態

resize2fs /dev/mapper/myvg-testlv 3G    #縮減到3G

d.縮減物理邊界

lvreduce -L 3G /dev/myvg/testlv
#會有提示:Do you really want to reduce testlv?[y/n]:  按y確定就好
#完成後會提示:Reducing logical volume testlv to 3GB
Logical volume testlv successfully resized

11.快照卷
a.生命週期爲整個數據時長,在這段時長內,數據的增長量不能超出快照卷大小
b.快照卷應該是隻讀的
c.跟原卷在同一卷組內

lvcreate
-L: 指定大小,指定的大小需要自己估計,如果數據的增長量大於快照卷的大小,數據會損毀
-s:表示創建快照卷
-p:指定權限 r|w

#對/dev/myvg/testlv創建快照卷testlv_snap
lvcreate -L 1G -n testlv_snap -s -p r /dev/myvg/testlv 

使用lvs或者 lvdisplay可以查看
掛載快照卷:

mount /dev/myvg/testlv_snap /testlv_snap

卸載快照卷:

umount /testlv_snap

移除快照卷:

lvremove /dev/myvg/tstlv_snap
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章