lvm邏輯卷管理器


  LVM:Logical Volume Manager 。LVM利用Linux內核的device-mapper功能來實現存儲系統的虛擬化(系統分區獨立於底層硬件)。 通過LVM,你可以實現存儲空間的抽象化並在上面建立虛擬分區(virtual partitions),可以更簡便地擴大和縮小分區,可以增刪分區時無需擔心某個硬盤上沒有足夠的連續空間,避免為正在使用的磁盤重新分區的麻煩、為調整分區而不得不移動其他分區的不便。

 

LVM的基本組成部分如下:

物理卷 (PV)一個可供存儲LVM的塊設備. 例如: 一塊硬盤, 一個MBR或GPT分區, 一個回環文件, 一個被內核映射的設備 (例如 dm-crypt).它包含一個特殊的LVM頭。

卷組 (VG):物理卷的一個組,作為存放邏輯卷的容器。 PEs are allocated from a VG for a LV.

邏輯卷 (LV):"虛擬/邏輯卷"存放在一個卷組中並由物理塊組成。是一個類似於物理設備的塊設備,例如,你可以直接在它上面創建一個文件系統文件系統。

物理塊 (PE):一個卷組中最小的連續區域(默認為4 MiB),多個物理塊將被分配給一個邏輯卷。你可以把它看成物理卷的一部分,這部分可以被分配給一個邏輯卷。

 

創建lvm步驟

1、fdisk進行分區,並將磁盤分區格式調整成lvm。(如果是某個分區需要此步驟,如果是某塊硬盤略過此步)

       #fdisk

              t

              8e

 

2、創建pv物理卷(可以將某個分區划分為pv,也可以將某塊硬盤化為pv)

       查看pv命令

           # pvdisplay          

              # pvs

 

       創建pv步驟               

              # pvcreate /dev/sda3(某分區) /dev/sdb(某硬盤)

 

注意:如創建某個硬盤如/dev/sda創建的pv時報錯(如下):

Device /dev/sda excluded by a filter

原因:此硬盤已經分區,存在分區表,可以將某個分區划分為pv如/dev/sda1等,如果要將/dev/sda整個硬盤划分為pv可以破壞硬盤/dev/sda的分區表,然后再創建

破壞分區表的兩種方法:

    # dd if=/dev/urandom of=/dev/sda bs=512 count=1

    # wipefs -a /dev/sda

   

3、創建vg卷組

       查看vg命令:

              # vgs

              # vgdisplay

 

       創建vg步驟1:

              # vgcreate [-s 16M] VG_Name /dev/sda3 /dev/sdb  

                     -s 16M #指定PE大小為16M,如不指定默認為4M

       步驟2(擴展vg時用):

              # vgextend VG_Name /dev/sda4

 

4、創建lv邏輯卷

       查看lv命令

              # lvs

              # lvdisplay

 

       創建lv步驟1:

       # lvcreate -L #[mMgGtT] -n LV_Name VG_Name

              -l 3000    # 3000為pe的個數

              -L 8G        # 8G為實際容量容量,建議采用此方法

       步驟2:對創建好的lv邏輯卷生成文件系統

              # mke2fs -t ext4 /dev/VG_Name/LV_Name

       步驟3:將lv掛載

              # mount /dev/VG_Name/LV_Name /media

 

5、擴大lv邏輯卷

方法一:

       步驟1:擴大邏輯卷

              # lvextend -L [+]#[mMgGtT] -n /dev/VG_Name/LV_Name   

                     -l +100%FREE                           #將所有剩余空間都進行擴展

 

       步驟2:將擴大的邏輯卷空間進行文件系統擴展調整

              (1)ext系列擴展文件系統采用此命令

                     # resize2fs /dev/VG_Name/LV_Name

              (2)xfs系列擴展文件系統采用此命令,注意:要接掛載的目錄/media

                     # xfs_growfs /media         

 

方法二:

       可通過一條命令直接擴展文件系統,替代步驟1和步驟2,包括ext,xfs    

              # lvextend -r -L [+]#[mMgGtT] -n /dev/VG_Name/LV_Name        

 

6、縮減lv邏輯卷:只有ext系列支持縮減,xfs不支持縮減

       步驟一:取消掛載

              # umount  /dev/VG_Name/LV_Name

       步驟2:檢查文件系統完整性

              # e2fsck -f /dev/VG_Name/LV_Name   

       步驟3:縮減文件系統容量

              # resize2fs /dev/VG_Name/LV_Name #[mMgGtT]           

       步驟4:縮減邏輯卷容量

              # lvreduce -L [-]#[mMgGtT] /dev/ VG_Name/LV_Name

       步驟5:重新掛載縮減好的邏輯卷

              # mount  /dev/VG_Name/LV_Name  /media

  

7、快照:創建快照相當於針對某個邏輯卷lv創建了還原點。快照卷和原邏輯卷lv在同一個卷組vg中。

       需要查看vg中空間是不是夠創建快照,創建快照也相當於創建一個lv

 

創建快照:

       # lvcreate  -L #[mGgGtT] -p r -s -n snapshot_lv_name /dev/VG_Name/LV_Name

              -p r  # 設置快照為只讀屬性

              -s    # 創建快照

       示例:

              # lvcreate -L 1G -p r -s -n kuaizhao /dev/VG_Name/LV_Name     

 

       注意:快照可以像一般的lv一樣掛載,xfs的快照掛載的時候需要給mount加擴展選項 # mount -o nouuid,ro

 

快照還原:

       步驟1:取消快照和邏輯卷的掛載

         # umount /users

       步驟2:將快照合並到源lv上,注意還原后快照自動刪除

         # lvconvert --merge /dev/VG_Name /kuaizhao

 

lvm創建舉例:

1) 創建一個至少有兩個PV組成的大小為20G的名為testvg的VG;要求PE大小 為16MB, 而后在卷組中創建大小為5G的邏輯卷testlv;掛載至/users目錄
# pvcreate /dev/sdb /dev/sdc                 #創建pv
# vgcreate -s 16M  testvg /dev/sdb  /dev/sdc     #創建vg
# lvcreate -L 5G -n testlv testvg             #創建lv
# mkfs.ext4 /dev/testvg/testlv                #創建lv的文件系統
# mkdir  /users                              #創建掛載目錄
# mount /dev/testvg/testlv /users/            #掛載

2) 擴展testlv至7G,要求archlinux用戶的文件不能丟失
# cp -a /etc/ /users/      #復制測試文件
# lvextend -r -L 7G -n /dev/testvg/testlv      #擴展lv到7G 3) 收縮testlv至3G,要求archlinux用戶的文件不能丟失
# umount /users/ #卸載
# e2fsck -f /dev/testvg/testlv            #檢查文件系統
# resize2fs /dev/testvg/testlv 3G          #縮減文件系統
# lvreduce -L 3G /dev/testvg/testlv        #縮減lv容量
# mount /dev/testvg/testlv /users/         #掛載

4) 對testlv創建快照,並嘗試基於快照備份數據,驗證快照的功能
# lvcreate -L 1G -p r -s -n kuaizhao /dev/testvg/testlv   #創建快照
# rm /users/etc/passwd                     #刪除文件測試
# umount /users/
# lvconvert --merge /dev/testvg/kuaizhao            #快照恢復
# mount /dev/testvg/testlv /users/              #重新掛載恢復后的lv
# ls /users/etc/passwd                        #查看文件是否恢復

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM