LVM

引言

       LVM是邏輯盤卷管理(Logical Volume Manager)的簡稱,它是Linux環境下對磁盤分區進行管理的一種機制,LVM是建立在硬盤和分區之上的一個邏輯層,來提高磁盤分區管理的靈活性。前面談到,LVM是在磁盤分區和文件系統之間添加的一個邏輯層,來爲文件系統屏蔽下層磁盤分區佈局,提供一個抽象的盤卷,在盤捲上建立文件系統。物理卷(physical volume)物理卷就是指硬盤分區或從邏輯上與磁盤分區具有同樣功能的設備(如RAID),是LVM的基本存儲邏輯塊,但和基本的物理存儲介質(如分區、磁盤等)比較,卻包含有與LVM相關的管理參數。

       Linux用戶安裝Linux操作系統時遇到的一個最常見的難以決定的問題就是如何正確地給評估各分區大小,以分配合適的硬盤空間。而遇到出現 某個分區空間耗盡時,解決的方法通常是使用符號鏈接,或者使用調整分區大小的工具(比如PatitionMagic等),但這都只是暫時解決辦法,沒有根本解決問題。隨着Linux的邏輯盤卷管理功能的出現,這些問題都迎刃而解,用戶在無需停機的情況下方便地調整各個分區大小。

       DMDevice Mapper Kernel Architecture(內核模塊)

       功能:RAID,LVM2,快照,多路徑(多線路),實現數據存儲設備的尋路,鏡像功能,動態擴


基本術語

Logical Volume        上層

   可以動態擴展,每一個LV就一個文件系統分區 LE其實就是PE,只是站在LV角度,LV就像分區。


Volume Group        中層

   可以劃分多個LV ,制定多少PE,給LV多少PE,就是一個存儲空間。


Physical Volume     底層

   沒有加入VG之前是沒有PE大小和數量的,PE(底層中塊,邏輯存儲單元),PV對設備部挑剔,可以是任何設備。


如圖:


物理卷管理命令

pvs                    查看物理卷

pvdiskplay         詳細查看物理卷

pvcreate            創建物理卷

                        /dev/sdb{5,6}

pvmove             移動目標物理卷內數據到其他物理卷

                       /dev/sdb6        

pvremove         抹除目標物理捲上的數據

                       /dev/sdb6

pvscan              掃描物理卷


卷組管理命令

vgs                   查看卷組

vgdisplay          詳細查看卷組

vgcreate           創建卷組

   -s #默認是4MB,設置PE大小

                       myvg  /dev/sdb{5,6}

vgremove         刪除VG(只有沒有LV的時候可以隨便刪除)

           myvg

vgreduce          從卷組中移除物理卷

                       myvg /dev/sdb6

vgextend          添加物理卷至卷組

                       myvg /dev/sdb7


邏輯卷管理命令

lvs                    查看邏輯卷

lvdisplay           詳細查看邏輯卷

lvcreate            創建邏輯卷

    -n name        名字

    -L num[M|G] 制定大小

                      lvcreate -n testlv -L 2G  myvg

mke2fs -j /dev/myvg/testlv(鏈接文件)

                     mount /dev/myvg/testlv /mnt

                     mount

                     /dev/mapper/myvg-testlv (真正的設備文件) on /mnt type ext3 (rw)

                     umount /mnt (先卸載,移除邏輯卷)

lvremove         移除邏輯卷

                     /dev/myvg/testlv(鏈接文件)

                     /dev/mapper/myvg-testlv (真正的設備文件)


擴展邏輯卷

lvextend    擴展物理邊界(在線擴展,不影響源數據

    -L[+]#  增大多少,不寫+號,別是擴展到多少

               /path/to/lv

               lvextend -L 140M /dev/myvg/testlv (在線擴展,不影響源數據)


resize2fs    擴展邏輯邊界

   -p         能擴展多少就擴展多大(和物理邊界一樣)

               /path/to/lv 5G  修復邏輯卷邊界爲5G,不能超過物理邊界

               resize2fs -p /dev/myvg/testlv     擴展邏輯邊界和邊界一致


縮減邏輯卷

注意:1、不能在線縮減,得先umount

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

         3、在縮減之前應該先強行檢查文件,以確保系統處於一至性狀態。

           umount /mnt                         1

           df -lh                                     2

           e2fsck -f /dev/myvg/testlv     3


resize2fs    縮減邏輯邊界

                resize2fs  /dev/myvg/testlv 60M    縮減至多大


lvreduce    縮減物理邊界

                lvreduce -L 60M /dev/myvg/testlv

                vim /etc/fstab        永久生效

                mount -a               加載/etc/fstab條目

                mount                   查看是否生效

                df -lh                     查看物理空間是否縮小


快照卷

注意:1、生命週期爲整個數據時長:在這段時長,數據額的增加量不能超出快照卷大小

        2、快照卷應該是隻讀的

        3、快照卷和原卷在同一卷組內


lvcreate

   -s          聲明是快照卷

   -p r|w    權限

               lvcreate -L # -n SLV_NAME -p r /path/to/lv


模擬快照過程

cp /etc/inittab /mnt
lvcreate -L 50M -n testlv-snap -s -p r /dev/myvg/testlv  創建快照卷
touch /mnt/1
vi /mnt/inittab                            刪除後2行
mkdir snap
mount /dev/myvg/testlv-snap /snap          掛載快照卷
tar -jcf /tmp/backup.tar.bz2 /snap/inittab 備份快照卷
或者cd /snap
tar -jcf /tmp/backup.tar.bz2 inittab
umount /snap                               卸載快照卷
lvremove /dev/myvg/testlv-snap             刪除快照卷(結束其生命週期)
rm -rf /mnt/*                              刪除源目錄所有文件
tar xf /tmp/backup.tar.bz2 -C /mnt/        還原至當前路徑下
ls
snap                                       目錄下有快照時的inittab文件

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