LVM詳解

一、概述

    LVM全稱為Logical Volume Manager,即邏輯卷管理器。LVM可以彈性的調整文件系統的容量,可以將多個物理分區整合在一起,并且根據需要劃分空間或動態的修改文件系統空間。

    LVM有兩個版本: lvm,lvm2

二、LVM的相關概念

    1、物理卷(PV)

        物理卷是LVM的最底層的元素,組成LVM的物理分區就是PV。

    2、卷組(VG)

        將各個獨立的PV組合起來,所形成的一個存儲空間稱為VG;VG的大小就是整個LVM的空間大小。

    3、邏輯卷(LV)

        最終可以被用戶格式化、掛載、存儲數據的操作對象就是LV;LV與分區相類似,只不過LV可以理加靈活的調整容量。

    4、物理擴展塊(PE)

        PE類似與分區中block的概念,也就是LVM的最小存儲單位,默認大小為4M;可以通過調整PE塊的數量來定義LV的容量。

    5、快照(snapshot)

        快照用于保存原卷上有變化的數據。快照剛剛被創建時其內容與原卷是一模一樣的,只有在原卷中的數據發生變化時,快照才會將被改動的數據的原數據保存起來。

三、LVM實際操作

    1、創建PV

        首先創建分區,分區的類型要更改為8e。

1.png

1.png

        上圖中將4個分區創建為4個PV;可以使用以下命令來進行PV的查看:

2.png

    2、創建VG

3.png

        上圖中使用了兩個PV來創建了一個VG,其中"testvg"為VG的名稱;下面來查看一下VG的詳細信息

4.png

        在創建VG時,也可以指定PE的大小,如下圖所示:

5.png

    3、創建LV

        查看可用VG信息:

6.png

         由上圖可以看出,剛剛創建了個兩個VG,容量分別為5G和2G,下面我們就在兩個VG上分別創建lv;

7.png

        參數說明:

            -L:指定邏輯卷的容量;

            -n:指定邏輯卷的名稱;

            -l:指定邏輯卷占用的PE數量;

        創建一個LV,使用PE的數量定義LV的容量:

8.png

         由于在創建VG時定義了每個PE的容量為16M,所以創建的LV的容量為16M*40=640M。

    4、掛載LV

        在對LV進行格式化、掛載之前先說明一下lv的訪問路徑問題。

        可以使用兩種路徑來訪問lv:

            a、/dev/VG_NAME/LV_NAME

                如:/dev/testvg/tlv

            b、/dev/mapper/VG_NAME-LV_NAME

                如:/dev/mapper/testvg_tlv

            以上兩路徑均為符號鏈接,指向的文件為/dev/dm-#,如下圖所示:

1.png

2.png

    5、擴展邏輯卷

        步驟:

            1)先確定擴展的目標大小,并確保對應的卷組中有足夠的空間;

            2)擴展物理邊界,使用lvextend命令;

            3)擴展邏輯邊界,使用resize2fs命令。

        演示:

            將邏輯卷tlv擴展到1G:

1.png

            參數說明:

                -L [+] #:指定擴展的容量;如果帶+號,表示擴展的容量是在原來的基礎上加上#的容量;不帶+號,表示擴展容量到#。

                -l [+] #:指定擴展的容量;如果帶+號,表示擴展的容量是在原來的基礎上加上#個PE的容量;不帶+號,表示擴展到#個PE的容量。

1.png

            擴展文件系統的容量到1G:

2.png

        上面的實例中是在VG中還有剩余空間的情況進行的LV擴展,那么如果VG空間已經全部用完,這時再想增加擴展邏輯卷應該將新的PV加入到VG中以獲得更多的空間。

1.png

        上圖中如果testvg已經沒有剩余空間了,這時可以使用vgextend命令來擴展VG。

2.png

        這樣就可以對LV進行擴展了。                  

    6、縮減邏輯卷:

        步驟:

            1)先確定縮減后的目標大小,并確保目標邏輯卷中有足夠的空間可用;

            2)卸載邏輯卷,并要執行強制檢測,使用e2fsck -f命令;

            3)縮減邏輯邊界,使用resize2fs命令;

            4)縮減物理邊界,使用lvreduce命令。

        演示:

            將邏輯卷tlv空間縮減到1G。

1.png2.png

3.png

4.png

5.png

    注意:在擴展、縮減邏輯卷時除了使用上面用到的lvextend和lvreduce外,還可以使用lvresize命令,這幾個命令的用法類似,就不再進行演示了,更多的使用方法可自行查看man手冊。

    7、卷的移除

        1)移除邏輯卷

1.png

        2)移除卷組

2.png

        3)移除物理卷

3.png

        上面的實例中我們將擁有3個PV的VG整個移除,如果我們只想移除VG中的個別PV可以進行如下操作:

4.png

5.png

        再來看一種情況,如下圖,卷組test1vg中擁有一個邏輯卷t1lv,現在要求在不對t1lv進行任何操作的情況下移動物理卷/dev/sdd1。

1.png

        我們先來直接移除/dev/sdd1:

1.png

        結果提示此PV正在使用,來看一下PV的信息:

2.png

        由于/dev/sdd1有被占用的PE,如果想要移除此PV,需要先將PE塊的移動到其它的PV上:

3.png

        再來移除/dev/sdd1:

4.png

    命令總結:

        PV:

            pvcreate,pvs,pvdisplay,pvremove,pvmove,pvscan

        VG:

            vgcreate,vgs,vgdisplay,vgremove,vgscan,vgextend,vgreduce

        LG:

            lvcreate,lvs,lvdisplay,lvremove,lvextend,lvreduce,lvresize,lvscan

        LVM的命令比較簡單,具體的參數也就沒有做太多的說明。

四、創建快照卷

    創建快照與創建邏輯卷類似,使用-s選項,后面指明是對哪個邏輯卷操作即可。

1.png

2.png3.png

    結果中兩個卷是一模一樣的,再看一下快照卷的使用情況:

4.png

    下面對原卷進行一些操作:

5.png

    快照卷已經自動將原卷中改動的數據備份了,如需恢復只需將快照卷的內容復制也來即可。

原創文章,作者:petmaster,如若轉載,請注明出處:http://www.www58058.com/1989

(0)
petmasterpetmaster
上一篇 2015-04-27
下一篇 2015-04-29

相關推薦

  • 學習宣言

    沒有學不會的技術,只有不勤奮的人!

    Linux干貨 2016-12-28
  • Hadoop實戰實例

     Hadoop 是Google MapReduce的一個Java實現。MapReduce是一種簡化的分布式編程模式,讓程序自動分布到一個由普通機器組成的超大集群上并發執行。就如同java程序員可以不考慮內存泄露一樣, MapReduce的run-time系統會解決輸入數據的分布細節,跨越機器集群的程序執行調度,處理機器…

    Linux干貨 2015-04-13
  • M20-1 8月3號 –權限、用戶和組的管理

    一、權限管理:            ls -l                  rwxrwxrwx:               &nb…

    Linux干貨 2016-08-08
  • Linux Basics

    計算機的組成及其功能:             CPU:運算器、控制器、寄存器、緩存             存儲器:內存,RAM(Random Access Memory)   …

    Linux干貨 2016-09-17
  • selinux介紹

    本章內容 SELinux概念啟用SELinux管理文件安全標簽管理端口標簽管理SELinux布爾值開關管理日志查看SELinux幫助 SELinux介紹 SELinux: Secure Enhanced Linux,是美國國家安全局「NSA=The National Security Agency」和SCC(Secure Computing Corporat…

    Linux干貨 2016-09-19
  • 第三周作業

    1、列出當前系統上所有已經登錄的用戶的用戶名,注意:同一個用戶登錄多次,則只顯示一次即可。     who | cut -d ' ' -f 1 | uniq 2、取出最后登錄到當前系統的用戶的相關信息。    egrep "^$(who | tail -1 | cut -d ' …

    Linux干貨 2016-12-19

評論列表(1條)

  • stanley
    stanley 2015-04-28 19:19

    贊,非常棒。如此神速提升請問如何實現的?

欧美性久久久久