LVM

[root@localhost ~]# lsmod 查看內核裝載的模塊,這裏可以查看raid模塊信息

Module                  Size  Used by

raid0                  12417  2 


DM:通常用於製作LVM2,也可以做raid1和raid2。但是raid5不行

   LVM2

   快照:快照裏保存快照以後產生修改的文件,而沒有修改的還是保存在原來的位置。主要作用數據          備份

   多路徑


wKioL1lXoQaC3CtyAAEBx6Uhm5k216.png



把物理設備做成PV以後加入卷組(VG),在卷組上創建邏輯卷

每一個邏輯卷(Logical Volume)相當於一個獨立分區來使用,邏輯卷可以根據自己需求更改大小

只要把一個物理設備加入VG。在PV(卷)裏就會劃分成多個塊叫做PE。創建邏輯卷則是分給邏輯卷多少個PE。由VG進行分配,在邏輯卷的層面上把這個稱作爲LE

爲卷創建快照,其實是爲邏輯卷創建快照。快照必須和邏輯卷在同一個卷組,而快照作爲訪問邏輯卷的另外一個路口

PV管理命令;

 pvcreate 創建pv

 pvremove 刪除pv

 pvscan   掃描pv

 pvdisplay查看pv 

 pvs      查看pv簡寫版

 pvmove   移動pv

VG管理命令:

 vgcreate 創建vg

    -s # 指定PE大小,默認4M

 vgremove 刪除vg

 vgextend 擴展vg(增加新的pv)

 vgreduce 縮減vg(挪掉pv)

 vgdisplay查看vg

 vgs      查看vg簡寫版

 vgscan   掃描vg

LV管理命令:

lvcreate 創建

   -n 指定名字

   -L 指定大小 同時也支持 M G T E等

lvremove 移除

lvextend 擴展

lvreduce 縮減

lvs  查看

lvdisplay 


raid卷爲fd 對應的邏輯卷爲8e


實驗創建一個10G的VG

創建1個7G+1個3G的PV 總合等於10就行


wKiom1lYbmSQAcjIAABjkmaOB5w187.png

[root@localhost ~]# partprobe  /dev/sdb

[root@localhost ~]# cat /proc/partitions 


創建PV

[root@localhost ~]# pvcreate  /dev/sdb{5,6}


[root@localhost ~]# pvs 可以查看當前系統的PV,大小誤差在20%就是可接受的

  PV         VG   Fmt  Attr PSize PFree

  /dev/sdb5       lvm2 a--  3.01g 3.01g

  /dev/sdb6       lvm2 a--  7.01g 7.01g


[root@localhost ~]# pvdisplay 查看pvs詳細信息

[root@localhost ~]# pvscan 掃描當前一共有多少個pv

創建VG 取名爲myvg

[root@localhost ~]# vgcreate  myvg  /dev/sdb{5,6} 

  Volume group "myvg" successfully created

wKiom1lYczHAsz7kAABgD7WV29k032.png

一共包含2564個pe 空閒0個


刪除一個VG(當LV上有數據,或者創建了LV後不要輕易刪除VG。)創建爲8MPE的VG

[root@localhost ~]# vgremove  /dev/myvg

  Volume group "myvg" successfully removed

[root@localhost ~]# vgcreate -s 8M myvg /dev/sdb{5,6}


如果發現pv多了可以移除一個pv:

[root@localhost ~]# pvmove  /dev/sdb5 先把要刪除的pv設備上的數據挪動到其他pv上

[root@localhost ~]# vgreduce myvg /dev/sdb5 移除,同時也可以使用pvremove直接從pv裏移除設備

  Removed "/dev/sdb5" from volume group "myvg"

[root@localhost ~]# vgextend  myvg /dev/sdb5 把一個pv添加到vg裏

  Volume group "myvg" successfully extended

[root@localhost ~]# lvcreate -L 50M -n testlv  myvg 創建一個lv指定名字爲testlv,大小爲                                                       50M,在myvg這個卷組上創建

  Rounding up size to full physical extent 56.00 MiB

  Logical volume "testlv" created

wKioL1lYeP2jr4qJAAB79lMOmdM023.png

此時可以格式化 掛載 使用這個lv了

[root@localhost ~]# mke2fs -j /dev/myvg/testlv 

[root@localhost ~]# mount /dev/myvg/testlv   /mnt

wKioL1lYeaPQe3aGAABZhdiFwQo393.png

wKioL1lYehuwLRXbAAAomsto22E039.png

移除邏輯卷 先取消掛載 

[root@localhost ~]# umount /dev/myvg/testlv 

[root@localhost ~]# lvremove  /dev/myvg/testlv 

Do you really want to remove active logical volume testlv? [y/n]: y

  Logical volume "testlv" successfully removed

-------------------------------------------------------

LVM擴展邏輯卷,擴展和縮減的前提不影像邏輯卷中的數據

擴展的時候先擴展物理卷,再擴展邏輯卷

縮減的時候先縮減邏輯卷,再縮減物理卷

lvxtend 擴展物理邊界

   -L [+] #  /PATH/TO/LV 指定擴展大小 比如把一個10G邏輯卷擴展爲13G則使用-L +3G

10G, +3G

resize2fs 擴展邏輯邊界

 resize2fs /PATH/TO/LV 13G 表示把某個LV擴展爲13G

 resize2fs -p /PATH/TO/LV  表示擴展成和物理邊界一樣大



縮減:1.不能在線縮減得先卸載。

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

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

       resize2fs /PATH/TO/LV  3G  邏輯邊界縮減到3G

       lvreduce

           -L [-] #  /PATH/TO/LV 3G 物理邊界縮減到3G

     縮減以後重新掛載即可



實驗先創建一個10G的LV

[root@localhost ~]# lvcreate  -L 10G   -n mylv   myvg

  Logical volume "mylv" created

[root@localhost ~]# lvs

  LV   VG   Attr       LSize  Pool Origin Data%  Move Log Cpy%Sync Convert

  mylv myvg -wi-a----- 10.00g 

[root@localhost ~]# mke2fs -j /dev/myvg/mylv  

[root@localhost ~]# vim /etc/fstab 開機自動掛載 ,支持acl

/dev/myvg/mylv          /mnt                    ext3    defaults,acl    0 0

[root@localhost ~]# mount -a

[root@localhost ~]# cp /etc/inittab    /mnt 複製一個文件進去,用於測試

[root@localhost ~]# df -lh 使用df -lh 可以看到當前邏輯卷爲10G

Filesystem             Size  Used Avail Use% Mounted on

/dev/sda5               18G  1.9G   15G  12% /

tmpfs                  491M     0  491M   0% /dev/shm

/dev/sda1              194M   29M  155M  16% /boot

/dev/sda3              985M   18M  918M   2% /home

/dev/mapper/myvg-mylv  9.9G  151M  9.2G   2% /mnt



------------------------------------------------------------------

開始擴展:

首先擴展PV, 然後擴展VG ,然後擴展LV的物理邊界,然後擴展LV的邏輯邊界


1.先增加一塊新的硬盤分一個大於或等於3G的分區


   Device Boot      Start         End      Blocks   Id  System

/dev/sdc1               1        2610    20964793+  8e  Linux LVM


[root@localhost ~]# partprobe  /dev/sdc


2.將新建分區加入pv

[root@localhost ~]# pvcreate  /dev/sdc1


3.將pv擴展到myvg裏

[root@localhost ~]# vgextend  myvg /dev/sdc1

  Volume group "myvg" successfully extended

4.擴展lv的物理邊界

[root@localhost ~]# lvextend  -L 13G   /dev/myvg/mylv 

  Extending logical volume mylv to 13.00 GiB

  Logical volume mylv successfully resized


此時查看到的物理邊界已經變成13G.但邏輯邊界還是10G

[root@localhost ~]# df -lh

Filesystem             Size  Used Avail Use% Mounted on

/dev/sda5               18G  1.9G   15G  12% /

tmpfs                  491M     0  491M   0% /dev/shm

/dev/sda1              194M   29M  155M  16% /boot

/dev/sda3              985M   18M  918M   2% /home

/dev/mapper/myvg-mylv  9.9G  151M  9.2G   2% /mnt

[root@localhost ~]# lvs

  LV   VG   Attr       LSize  Pool Origin Data%  Move Log Cpy%Sync Convert

  mylv myvg -wi-ao---- 13.00g 


5.擴展邏輯邊界

[root@localhost ~]# resize2fs -p  /dev/myvg/mylv 

[root@localhost ~]# df -lh

Filesystem             Size  Used Avail Use% Mounted on

/dev/sda5               18G  1.9G   15G  12% /

tmpfs                  491M     0  491M   0% /dev/shm

/dev/sda1              194M   29M  155M  16% /boot

/dev/sda3              985M   18M  918M   2% /home

/dev/mapper/myvg-mylv   13G  154M   12G   2% /mnt

[root@localhost ~]# lvs

  LV   VG   Attr       LSize  Pool Origin Data%  Move Log Cpy%Sync Convert

  mylv myvg -wi-ao---- 13.00g                                             

此時的文件系統查看也是13G了。

此時cat /mnt/inittab文件依然可以完好。

----------------------------------------------------------------

縮減邏輯卷,注意方法和擴展剛好相反。先縮減邏輯邊界,再縮減物理邊界


實驗要求把13G的邏輯捲縮減到3G

  1. 先確保縮減以後的空間足夠存儲現有文件

    [root@localhost ~]# df -lh

  2. 卸載

    [root@localhost ~]# umount /dev/myvg/mylv 

  3. 強行進行文件系統檢測

    [root@localhost ~]# e2fsck  -f /dev/myvg/mylv

  4. 縮減邏輯邊界至3G

    [root@localhost ~]# resize2fs   /dev/myvg/mylv  3G

    resize2fs 1.41.12 (17-May-2010)

    Resizing the filesystem on /dev/myvg/mylv to 786432 (4k) blocks.

    The filesystem on /dev/myvg/mylv is now 786432 blocks long.

  5. 縮減物理邊界

    [root@localhost ~]# lvreduce -L 3G /dev/myvg/mylv 

      WARNING: Reducing active logical volume to 3.00 GiB

      THIS MAY DESTROY YOUR DATA (filesystem etc.)

    Do you really want to reduce mylv? [y/n]: y

      Reducing logical volume mylv to 3.00 GiB

    Logical volume mylv successfully resized

  掛載

    [root@localhost ~]# mount /dev/myvg/mylv   /mnt

    [root@localhost ~]# df -lh

      Filesystem             Size  Used Avail Use% Mounted on

     /dev/sda5               18G  1.9G   15G  12% /

     tmpfs                  491M     0  491M   0% /dev/shm

     /dev/sda1              194M   29M  155M  16% /boot

     /dev/sda3              985M   18M  918M   2% /home

     /dev/mapper/myvg-mylv  3.0G  144M  2.7G   5% /mnt

    [root@localhost ~]# lvs

      LV   VG   Attr       LSize Pool Origin Data%  Move Log Cpy%Sync Convert

      mylv myvg -wi-ao---- 3.00g  

 此時[root@localhost ~]# cat /mnt/inittab   文件也是完好的。

-------------------------------------------


LVM的快照卷:

  1. 生命週期爲整個數據時長;在這段時長內,數據的增長量不能超出快照卷大小;

  2. 創建爲只讀的方式

  3. 跟原卷在同一卷組內


lvcreate

   -s 創建快照卷

   -p r|w 指定讀寫權限

格式 lvcreate -L # -n SLV_NAME -p r  /PATH/TO/LV


創建一個大小爲50M的快照(-s),名字爲mylv-snap(-n) ,權限爲只讀 (-p) 爲/dev/myvg/mylv創建  

[root@localhost ~]# lvcreate  -L 50M -n mylv-snap -s -p r /dev/myvg/mylv 

  Rounding up size to full physical extent 56.00 MiB

  Logical volume "mylv-snap" created

[root@localhost ~]# lvs

  LV        VG   Attr       LSize  Pool Origin Data%  Move Log Cpy%Sync Convert

  mylv      myvg owi-aos---  3.00g                                             

  mylv-snap myvg sri-a-s--- 56.00m      mylv     0.02   


掛載快照卷以後即可使用

[root@localhost ~]# mount  /dev/myvg/mylv-snap /tmp/a

[root@localhost ~]# rm -rf /mnt/inittab 

[root@localhost ~]# cat /tmp/a/inittab  當刪除或者修改了lv裏的數據時,還是能在快照裏面查看到以前的文件。

[root@localhost a]#tar jcf /tmp/inittab.bz2  inittab 如果只是爲了備份某一刻的文件的時候,把快照文件備份以後可以把快照刪掉

[root@localhost ~]# umount /tmp/a

[root@localhost ~]# lvremove  /dev/myvg/mylv-snap  移除

Do you really want to remove active logical volume mylv-snap? [y/n]: y

  Logical volume "mylv-snap" successfully removed

[root@localhost ~]# lvs

  LV   VG   Attr       LSize Pool Origin Data%  Move Log Cpy%Sync Convert

  mylv myvg -wi-ao---- 3.00g   

[root@localhost mnt]# tar xf /tmp/inittab.tar.bz2    -C ./ 把備份還原到當前目錄


-------------------------



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