詳談LVM和快照

一、LVM簡單介紹:

LVMLogical Volume Manager):邏輯卷管理,它主要用於在邏輯層面上,將多個存儲設備組織成一個存儲設備進行使用。與raid不同的是,LVM支持在線擴展和縮減,同時,LVM支持快照。

LVM機制:在內核空間,將多個存儲設備PVPhysical Volume)組織在一起形成邏輯層面的VGVolume Group),在VG層面將存儲空間分給成一個一個的數據塊(PEPhysical Extend)來管理。在用戶空間,用戶可以以一個PE爲單位,向內核申請使用VG中的多個PE塊,來使用存儲空間。

如果線上業務的存儲空間不夠用同時又不能讓業務下線就可以在在VG中申請使用多個PE,在線擴展業務的使用空間。同時,如果業務的存儲空間過大,爲了使其他業務使用該閒置空間,可以將LVPE塊放回到VG中以供下次業務的使用。

 

wKioL1bkvrvwjANmAAAkS5Rn95o529.png

二、創建LVM操作:

1創建PV

     在進行PV創建之前,先加入一塊虛擬硬盤,然後對其分區,並改變分區特性爲“8e”。

     加入硬盤:虛擬機—>設置—>添加—>硬盤—>“選擇合適的大小”—>保存退出就OK在這裏我就不做截圖說明了。

   分區操作:如果有不熟悉的朋友可以查看http://11229885.blog.51cto.com/11219885/1749744。  

     PV的創建:

       命令:pvcreate  <device-name>

       # pvcreate  /dev/sdb[1,2,3]

     PV其他常用命令:

       pvremove: 將某一個PV移除;

       pvscan: 掃描PV

       pvs: 查看PV的短信息

       pvdisplay: 查看PV的詳細信息

       pvmove: 將某一個PV上的數據移動到另一個PV上,常用於縮減操作。

 2、創建VG

    在以上創建的PV的基礎上創建VG

    命令:vgcreate  [option]  <vg-name>  <pv-device>

        option:  -s :指定PE的大小,默認爲4M

        # vgcreate  -s  8M  myvg  /dev/sdb[1,2,3]

    VG常用命令:

       vgremove:移除VG

       vgscan:掃描VG

       vgs:顯示VG的短信息

       vgdisplay:顯示VG的詳細信息

       vgrename:給VG重命名

       vgextend:擴展VG

       vgreduce: 縮減VG

 3、創建LV

 命令:lvcreate  [option]  <vg-name>

     Option-n <lv-name> : 指定lv的名稱

         -L # :指定LV的大小

     # lvcreate  -n  mylv  -L  200M  myvg

 LV的其他命令:lvremovelvscanlvslvdisplaylvextendlvreduce。其含義與VG類命令類似,就不做詳細解釋了。

三、使用LVM

 1、格式化

  命令:mke2fs  -t  <fs-type>  <device-name>

     # mke2fs  -t  ext4  /dev/myvg/mylv

   補充:在這裏需要說明一下,對於lv的訪問不能簡單使用其設備名稱就可以訪問到,可以使用一下三種方式訪問:

  1/dev/vg_name/lv_name。如:/dev/myvg/mylv

  2/dev/mapper/vg_name-lv_name。如:/dev/mapper/myvg-mylv

  3/dev/dm-##代表系統對於LV的編號,該文件是真實的LV文件。

 2、掛載

   命令:mount <Source-device>  <Dest-dir>

   # mount  /dev/myvg/mylv  /mnt/lvdir

 3、擴展LV操作

   命令:lvextend  #  <lv-path> ;  resize2fs  <lv-path>  [#]

   擴展物理邊界:#  lvextend  400M  /dev/myvg/mylv

   擴展邏輯邊界:#  resize2fs  /dev/myvg/mylv (不帶#,默認改變成與物理邊界一致)

 4、縮減LV操作

   命令:umount <lv-path>;  e2fsck -f <lv-path>;  lvreduce # <lv-path>; resize2fs <lv-path> <#>

   卸載並檢測:

   # umount /dev/myvg/mylv

   # e2fsck -f /dev/myvg/mylv

   縮減邏輯邊界:# resize2fs  /dev/myvg/mylv  200M

   縮減物理邊界:# lvreduce  200M  /dev/myvg/mylv

 5、擴展VG操作

   命令:vgextend  <vg-name>  <device-path>

   # vgextend myvg /dev/sdb4

   注意:/dev/sdb4必須是一個從存儲設備中分好的分區。

 6、縮減VG操作

   命令:pvmove <source-pv> <dest-pv>vgreduce <vg-name> <pv-name>

   # pvmove  /dev/sdb3  /dev/sdb1

   # vgreduce  myvg  /dev/sdb3

四、快照

   快照卷:它是邏輯卷的一種,提供文件的另一種訪問路徑。

實現機制:快照卷也是一種存數設備,它提供了另一種對快照對象的訪問路徑。當快照對象的某個數據快中的內容需要改變時,在數據改變之前,保存一份數據塊副本在快照卷中。其他不改變的數據就不用再在快照卷中保存。當訪問快照卷時,改變的數據塊在快照卷中可以直接訪問,沒有改變的數據塊仍然在原來的快照對象中訪問。

快照卷的大小:快照卷的大小取決於在規定的時間內,變化數據的總大小。

實現過程:

  命令:lvcreate [option] <lv-mame>

    可以通過使用option-s)來實現對某一個邏輯卷創建快照卷。

    # lvcreate  -s  -L  200M  -n  mylv-snap  /dev/myvg/mylv.




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