lvm原理與使用

 lvm主要功能之一能夠按須要調整文件系統的大小。 將多個分區組合成一個大的分區,能夠在線調整它們的大小。若是要縮小的話就先卸載再縮小。app

1,實現步驟:lvm(邏輯滾動條管理員)將幾個實體的分區或磁盤經過軟件組合成爲一塊看起來是一個獨立的大磁盤(VG),再將這塊大磁盤分割能夠被使用的分區(LV),最終通過格式化與掛載才能夠被使用。ide

physical volume (pv)--->vg(volume group)--->lv(logical volume)spa

(1)pv(物理卷):將物理的分區調整成lvm能識別的分區,也就是修改分區標識,修改爲8e。而後通過pvcreate指令將分區轉換成lvm最底成的物理卷,以後才能加以利用。blog

(2)vg(卷組):由pv組合而成。能夠在卷組上建立一個或多個LV(邏輯卷),LV由一個或多個物理卷組成。rem

(3)lv(邏輯卷):在vg上進行分區,相似於系統中普通分區,也須要在lv上創建文件系統。get

(4)pe(physical extend):一個物理卷被劃分爲稱爲pe(擴展卷)的基本單元,具備惟一編號的PE是能夠被LVM尋址的最小單元。PE的大小是可配置的,默認爲4MB。it

(5)le(logical extend):邏輯卷也被劃分爲被稱爲le(擴展卷)的可被尋址的基本單位。在同一個卷組中,le的大小和pe是相同的,而且一一對應。、class

2,實驗流程:在主機上分出4個100M的分區,並將id改爲8e。基礎

(1)建立 pv:pvcreate(將物理分區創建成pv),pvscan(掃描當前系統上的pv磁盤),pvdisplay(顯示當前系統pv狀態),pvremove(將pv屬性移除,讓該分區不具備pv屬性),pvmove(移動pe)擴展

pvcreate /dev/sda5,pvcreate /dev/sda6(或者pvcreate /dev/sda{5,6}

(2)建立vg: vgcreate(創建vg),vgscan(掃描系統上面的vg),vgdisplay(顯示當前系統上面的vg狀態),vgextend(在vg內增長pv),vgreduce(在vg內移pv),vgchange(設定vg是否啓動active),vgremove(刪除vg)

vgcreate bingovg /dev/sda{5,6}(bingovg本身定義vg的名稱,這裏也能夠指定pe的大小,加-s 後面跟大小,默認pe是4M)

(3)建立lv: lvcreate(創建lv),lvscan(掃描系統上面的lv), lvdisplay(顯示當前系統上的lv狀態),lvextend(在lv內增長容量),lvreduce(在lv內縮小容量),lvremove(刪除一個lv),lvresize(對lv大小進行調整)

lvcreate  -L 100M -n bingolv bingovg(-L指定容量,也能夠換成-l指定pe的數量)

(4)格式化與掛載:

mke2fs -j /dev/bingovg/bingolv(注意/dev/bingovg/bingolv是/dev/mapper/bingovg-bingolv的軟連接)

mount /dev/bingovg/bingolv  /mnt(到這裏已經完成基本的lv創建)

(5)增長lv容量,若是vg還有剩餘容量,則能夠直接增長

 lvextend -L +100M /dev/bingovg/bingolv(或者lvresize -L +100M /dev/bingovg/bingolv兩個命令效果同樣,這一步是物理邊界擴大)

resize2fs /dev/bingovg/bingolv(這一步調整文件系統的邊界,通過這一步以後,被擴大的纔會被文件系統所識別)

若是vg沒有剩餘的容量,則須要先擴大vg的容量才能擴大lv,以下

pvcreate /dev/sda{7,8}

vgextend bingovg /dev/sda{7,8}

lvextend -L +200M /dev/bingovg/bingolv

resize2fs /dev/bingovg/bingolv

(6)縮小lv容量,這須要卸載(把/dev/sda5拿掉)

umount /mnt

pvdisplay (查找/dev/sda5的pv大小)

e2fsck -f /dev/bingovg/bingolv 先執行這一步,強制檢查。不然會致使數據丟失。

resize2fs /dev/bingovg/bingolv 100M 這是縮小文件系統的容量

lvreduce -L 100M /dev/bingovg/bingolv(這是縮小物理邊界的容量,lvextend不支持縮小,縮減後物理邊界爲100M,若是使用-L -100M表示在原來基礎上減去100M,文件系統的容量終於要小於等於物理邊界的容量,當文件系統邊界的容量比物理邊界的容量還大時,數據確定已經出現混亂或者丟失。)

pvdisplay(查看/dev/sda5的PE是否還在使用中)

若是/dev/sda5的free pe不是0,則須要執行下面的命令

pvmove /dev/sda5 /dev/sda8(只有sda8 的free pe可以容下sda5的pe)

pvmove bingovg /dev/sda5

這時/dev/sda5能夠拿去用別的用途。

3,lvm還有一重要的功能是創建快照,快照的做用能夠用來作備份之用。

如上圖所示,當對lv創建一個快照區以後,從這創建快照的時間以後,經過快照訪問裏面的內容仍是那個時刻以前的,在那個時刻以後所作的修改,並不影響快照中的內容。這樣作用處是,當咱們要備份lv中的數據時,只要備份快照中的數據就ok。

創建快照區須要在vg中有空餘的容量,固然快照創建大小由本身須要決定。也就是說,在這備份這段時間內數據發生更改的頻率過高,就建大一點。

創建快照以前先在往/dev/bingovg/bingolv裏複製數據,在/mnt下有/boot 和inittab

lvcreate -L 100M -s -n  bingosnap  -p r /dev/bingovg/bingolv(—L指定大小 -s表示創建快照, -n表示快照名,-p表示這個快照只讀r)

掛載快照  mount /dev/bingovg/bingosnap /media

快照中的內容跟原文件的內容同樣,這時,能夠對快照作備份

tar -jcf /backups/lv.tar.bz2 /media

在/dev/bingovg/bingolv增長內容與刪除並不影響以前那一刻的數據,作完備份以後能夠刪除快照。

umount /media

lvremove  /dev/bingovg/bingosnap

快照到此的使命也完成

相關文章
相關標籤/搜索