LVM詳解

一、LVM簡介

    LVM(Logical Volume Manager,邏輯卷管理)的重點在於可以動態調整文件系統的容量!而並非在於數據的存儲效率及安全上面。需要文件的讀寫性能或者是數據的可靠性是RAID所考慮的問題。LVM可以整合多個實體分區在一起,讓這些分區看起來就像是一個磁盤一樣!而且,還可以在未來新增或移除其它的實體分區到這個LVM管理的磁盤當中。如此一來,整個磁盤空間的使用上,實在是相當的具有彈性。

二、LVM常用術語

    1.物理存儲介質(he physical mediaThe physical media):這裏指系統的存儲設備文件,如/dev/sda,/dev/sdb等等;

    2.物理卷(Physical Volume):簡稱PV,物理卷就是指硬盤分區或從邏輯上與磁盤分區具有同樣功能的設備(如RAID),是LVM的基本存儲邏輯塊,但和基本的物理存儲介質(如分區,硬盤)比較,卻包含有與LVM相關的管理參數;

    3.卷組(Volume Group):簡稱VG,LVM卷組類似於非LVM系統中的物理硬盤,其由物理卷組成。可以在卷組上創建一個或多個“LVM分區”(邏輯卷),LVM卷組有一個或多個物理卷組成

    4.邏輯卷(Logical Volume):簡稱LV,LVM的邏輯卷類似於非LVM系統中的硬盤分區,在邏輯捲上可以建立文件系統(如/home,/usr等);

    5.PE(Physical Extent):PV中可以分配的最小存儲單元稱爲PE,PE的大小是可以配置的,默認爲4MB;

    6.LE(Logical Extent):LV中可以分配的最小存儲單元稱爲LE,在同一個卷組中,LE的大小和PE是一樣的,且一一對應;

                wKioL1m3WKvhVnKiAABp93fK9WU290.png-wh_50 

                                           圖1 LVM磁盤結構圖

三、創建邏輯卷

    1.例如:要創建一個10G的lv;

    2.注:邏輯卷可以拿分區或者整塊硬盤做實驗;這裏我用/dev/sda7,/dev/sdb做實驗

    3.步驟:

        3.1.創建物理分區:

                ①fdisk /dev/sda;(劃分/dev/sda6分區,大小10G,修改分區類型爲Linux LVM,ID改爲8e)

                ②partx -a /dev/sda;同步分區;

        3.2.創建物理卷(PV):

                ①pvcreate /dev/sd{a6,b};

                ②pvs;

                ③pvdisplay;

            與PV相關的一些管理命令:

                pvcreate:將實體分區創建成爲PV;

                pvs:顯示pv簡要信息;

                pvdisplay:顯示PV詳細信息;

                pvscan:搜尋目前系統裏面任何具有PV的磁碟;

                pvremove:將PV屬性移除,讓該分區不具有PV屬性;

                pvmove:移動pv

        3.3.創建卷組(VG):

                語法:vgcreate VGNAME(卷組名) /dev/pv1...(物理卷)

                ①vgcreate vg0 /dev/sd{a6,b};

                ②vgs;

                ③pvdisplay;

                ④vgdisplay;

            與VG相關的一些管理命令:

                vgcreate:創建VG;

                vgs:顯示vg簡要信息;

                vgdisplay:顯示vg詳細信息;

                vgscan:搜尋系統上面是否有VG存在;

                vgextend:在vg內添加額外的pv;    

                vgreduce:在vg內移除pv;

                vgremove:刪除一個VG;

                vgchange:配置vg是否啓動(active);

        3.4.創建邏輯卷(LV):

                語法:lvcreate [-L 邏輯卷大小 | -l PE的個數] [-n 邏輯卷名稱] [所屬的卷組名]

                ①lvcreate -L 10G -n lv0 vg0;

                ②lvdisplay;

            與LV相關的一些管理命令:

                lvcreate:創建LV;

                lvs:顯示lv簡要信息;

                lvdisplay:顯示lv詳細信息;

                lvscan:查詢系統上面的lv;

                lvextend:在lv裏面添加容量;

                lvreduce:在lv裏面減少容量;

                lvremove:刪除一個lv;

                lvresize:對lv進行容量大小的調整   

        3.5.建立文件系統(格式化):

                ①mkfs.ext4 /dev/vg0/lv0;

        3.6.掛載邏輯卷(寫進/etc/fstab文件實現自動掛載):

                ①mkdir /mnt/ln0;

                ②/dev/vg0/lv0    mnt/lv0    ext4    defaults    0    0    

                ③mount -a;

                ④df- h

                ⑤cp -r /etc/* /mnt/lv0;

四、擴展邏輯卷    

    1.注:擴展邏輯卷,前提卷組要有足夠的容量;

    2.擴展邏輯卷步驟:

                ①lvextend -L +10G /dev/vg0/lv0;

                ②lvdisplay;

                ③resize2fs /dev/vg0/lv0;同步文件系統,resize2fs只能同步ext系列文件系統;

                ④df -h;

        注:擴展邏輯卷容量表示方法:+10G的含義是在已有的當前容量上加上10G;10G的含義是把容量擴展到10G;

    3.要想把卷組空間容量全部擴展完並且同步文件系統使用以下命令:

                ①lvextend  -r -l +100%FREE /dev/vg0/lv0;

                

五、擴展卷組

    1.方法:加硬盤;(這裏我用/dev/sdc硬盤做實驗)

    2.擴展卷組步驟:

                ①pvcreate /dev/sdc;##把硬盤變成物理卷

                ②vgextend vg0 /dev/sdc;##把物理卷加入卷組

                ③vgdisplay;

六、縮減邏輯卷

    1.縮減邏輯卷步驟:

                ①umount /mnt/lv0:##取消已經掛載的邏輯卷

                ②e2fsck -f /dev/vg0/lv0;##強制進行磁盤檢測

                ③resize2fs /dev/vg0/lv0 10G;

                ④lvreduce -L 10G /dev/vg0/lv0;

                ⑤mount -a:重新掛載邏輯卷

                ⑥lvdisplay;

                ⑦df -h;

七、刪除物理卷(PV)

    1.刪除PV步驟:

                ①pvmove /dev/sdb;將PV中的PE個數移動到別的PV

                ②pvdisplay;(可以看到PE個數被移動到別的PV)

                ③vgreduce vg0 /dev/sdb;從卷組中刪除PV

                ④vgdisplay;(可以看到卷組容量變小了)

                ⑤ pvs;(可以看見/dev/sdb不屬於VG0)

                ⑥pvremove /dev/sdb;移除pv,不讓/dev/sdb具有pv屬性;

                ⑦pvs;查看

八、刪除邏輯卷

    1.刪除邏輯卷步驟:

                ①umount /mnt/lv0;取消已經掛載的邏輯卷

                ②lvremove /dev/vg0/lv0;

                ③lvs;

九、刪除卷組

    1.刪除卷組步驟:

                ①vgremove vg0;

                ④pvs;

十、邏輯卷快照

    1.快照是特殊的邏輯卷,它是在生成快照時存在的邏輯卷的 準確拷貝。

    2.對於需要備份或者複製的現有數據集臨時拷貝以及其它操 作來說,快照是最合適的選擇。

    3.快照只有在它們和原來的邏輯卷不同時纔會消耗空間:

        3.1在生成快照時會分配給它一定的空間,但只有在原來的邏輯卷或 者快照有所改變纔會使用這些空間。

        3.2當原來的邏輯卷中有所改變時,會將舊的數據複製到快照中。

        3.3快照中只含有原來的邏輯卷中更改的數據或者自生成快照後的快 照中更改的數據。

        3.4建立快照的卷大小只需要原始邏輯卷的15%~20%就夠了。也可 以使用lvextend放大快照。

    4.快照就是將當時的系統信息記錄下來,就好像照相一般, 若將來有任何數據改動了,則原始數據會被移動到快照區,沒有改動的區域則由快照區和文件系統共享。

    5.由於快照區與原本的LV共用很多PE的區塊,因此快照區與被快照的LV必須要要在同一個VG上。系統恢復的時候的文件數量不能高於快照區的實際容量。

十一、創建快照邏輯卷

        注:要事先創建好邏輯卷(我這裏事先創建好了邏輯卷(/dev/vg0/lv0),並掛載在/mnt/lv0裏),並拷貝一些數據到目錄裏做實驗,以下四步事先準備好:

            (1)cd /mnt/lv0;

            (2)cp /etc/fstab f1;

            (3)cp /etc/fstab f2;

            (4)cp /etc/fstab f3  ;

    1.創建邏輯卷快照步驟:

        注:創建快照要注意卷組空間容量要足夠;快照邏輯卷容量小於或等於被快照的邏輯卷;

                ①lvcreate -L 1G -s -n lv0-snapshot -p r /dev/vg0/lv0;創建快照

                ②lvdisplay;查看快照信息

                ③mkdir /mnt/snapshot;創建快照目錄

                ④mount /dev/vg0/lv0-snapshot /mnt/snapshot/;掛載快照

    2.測試:

                ①cd /mnt/lv0;進入到被快照的邏輯卷目錄裏

                ②echo > f1;在被快照的邏輯卷裏清空f1的數據

                ③cd /mnt/snapshot;進入到快照邏輯卷目錄裏

                ④cat f1;可以看到原始f1的數據內容

    3.利用快照回覆數據:

        (1)注:所要恢復的數據不能超過快照區的總大小,因爲如果變動的數據大小超過了快照區的空間,那麼快照區是不能容納所有變動的數據了,這個時候快照功能會失效。

        (2)方法:把快照裏的數據複製到邏輯卷的掛載目錄裏即可;

    4.刪除快照邏輯卷:

                ①umount /mnt/snapshot/;取消掛載

                ②lvremove /dev/vg0/lv0-snapshot;刪除快照邏輯卷 

    

    

        

                

            


                

        


                

    

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