LVM 與快照

LVM: Logical Volume Manager

概念

它就是通過將底層的物理硬盤抽象的封裝起來,然后以邏輯卷的方式呈現給上層應用。

允許對卷進行方便操作的抽象層,包括重新設定
文件系統的大小
 允許在多個物理設備間重新組織文件系統
? 將設備指定為物理卷
? 用一個或者多個物理卷來創建一個卷組
? 物理卷是用固定大小的物理區域(Physical Extent,PE)來定義的
? 在物理卷上創建的邏輯卷是由物理區域(PE)組成
? 可以在邏輯卷上創建文件系統

原理描述

LVM是邏輯盤卷管理(LogicalVolumeManager)的簡稱,它是Linux環境下對磁盤分區進行管理的一種機制,LVM是建立在硬盤和分區之上的一個邏輯層,來提高磁盤分區管理的靈活性。
 通過創建LVM,我們可以更輕松的管理磁盤分區,將若干個不同大小的不同形式的磁盤整合為一個整塊的卷組,然后在卷組上隨意的創建邏輯卷,既避免了大量不
同規格硬盤的管理難題,也使邏輯卷容量的擴充縮減不再受限于磁盤規格;并且LVM的snapshot(快照)功能給數據的物理備份提供了便捷可靠的方式

要想理解好LVM的原理,我們必須首先要掌握4個基本的邏輯卷概念。

① PE  (Physical Extend)  物理拓展,物理磁盤上的每一個分區

② PV  (Physical Volume)  物理卷, fdisk工具修改卷標為 8e,形成一個PV

③ VG  (Volume Group)  卷組,將多個PV組合起來成為一個大的硬盤

④ LV  (Logical Volume)  邏輯卷, 在VG上劃分出來的邏輯卷
LVM 與快照

lvm, lvm2

dm: device mapper
    功用:將一個或多個底塊設備(包括RAID)組織一個邏輯存儲空間;
    其邊界:可動態擴展或縮減;

lv, multipath

PE, LE
    Pysical Extent
    Logical Extent

管理命令:

    pv: pvcreate, pvdisplay, pvs, pvscan, pvremove, pvmove
    vg: vgcreate, vgdisplay, vgs, vgscan, vgremove, vgextend, vgreduce
    lv: lvcreate, lvdisplay, lvs, lvresize, lvextend, lvreduce, lvremove

LVM 與快照

創建PV **pvcreate /dev **
示例:
    創建一個10G vg:

PV:

創建pv:

        準備塊設備,調整其id為8e;
        pvcreate [-f] /dev/DEVICE

       查看

        # pvdisplay [/dev/DEVICE] 
        查看的是更詳細的信息
        # pvs

LVM 與快照
LVM 與快照        

       移動pv上的pe到其它pv:

        # pvmove

       刪除pv:

        # pvremove

VG:

       創建vg: 新增一個vg,并指明其包含哪個或哪些pv實現;

        # vgcreate VGNAME /dev/PV1...

LVM 與快照
-L 指明容量
-n 起個名

         刪除vg:

           # vgremove VGNAME...

       縮減vg: 通過從vg中移除pv實現
           注意:計劃移除的pv不能包含已經存儲數據的pe;如果有需要先使用pvmove移動到同vg內其它pv上;

           pvmove /dev/SOME_PV
           vgreduce VG_NAME /dev/some_PV

          擴展vg: 向vg中添加更多的pv實現

           vgextend VG_NAME /dev/some_PV...

LV: Logical Volume

       查看
           lvs  lvdisplay

創建lv:

        lvcreate -L 指明的大小 -n 名字 VG_name
         LogicalVolume{Name|Path}]  VG_NAME  -L指明大小

        設備路徑:
            (1) /dev/VGNAME/LVNAME
            (2) /dev/mapper/VGNAME-LVNAME

            實際路徑:/dev/dm-#

        注意:lv的大小必須為pe的整數倍

       移除lv:
           lvremove LV_PATH

       擴展lv:

        存儲設備有:物理邊界
        文件系統有:邏輯邊界

擴展:先擴展物理邊界,而后拉伸邏輯邊界
               lvextend, lvresize
               resize2fs

LVM 與快照

          如何擴展lv:

            1、先確定目標大小:要確保此lv所在vg中有足夠的空閑可用;
                2G --> 4G
                    4G
                    +2G
            2、擴展物理邊界
                lvextend -L [+]#[bBsSkKmMgGtTpPeE] /dev/VGNAME/LVNAME
            3、拉伸邏輯邊界
                resize2fs /dev/VGNAME/LVNAME

       縮減lv:

        注意:
            1、縮減要離線!
            2、先縮減文件系統大小,再縮減lv的大?。?

        過程:
            1、先確定縮減后的目標大小:要確??s減后的大小能夠容納現在的所有數據;
            2、卸載邏輯卷,并強制做文件系統一致性檢查;
                e2fsck -f /dev/VGNAME/LVNAME
            3、縮減邏輯邊界
                resize2fs /dev/VGNAME/LVNAME #[bBsSkKmMgGtTpPeE]
            4、縮減物理邊界
                lvreduce -L [-]#[bBsSkKmMgGtTpPeE] /dev/VGNAME/LVNAME

快照卷:

         訪問原卷上數據另一個路徑,備份工具可以通過此路徑完成數據備份;
        快照卷自身僅是為備份工具提供一個時間點一致的訪問路徑;

        備份開始之前創建快照卷,完成之后即可刪除之;快照卷的生命周期;

        如何保證通過快照所訪問到的數據的時間點一致?
            通過把那些要發生改變的位于原卷上的數據自動復制一份至快照卷進行的,因此,快照卷上的數據如果有效,則必須能完成存儲原卷即將發生改變的所有的數據的原有版本。

        創建快照卷:
            (1) 快照卷要與原卷在同一卷組中,因此創建快照卷無須指定卷組;
            (2) 快照卷大小要精心設定;另外,快照卷應該是只讀的;

        創建命令:
            lvcreate -L SIZE -n Name -p r -s /dev/VGNAME/LVNAME

練習:

1、創建一個至少有兩個PV組成的大小為20G的名為testvg的VG;要求PE大小為16MB, 而后在卷組中創建大小為5G的邏輯卷testlv;掛載至/users目錄
2、新建用戶archlinux,要求其家目錄為/users/archlinux,而后su切換至archlinux用戶,復制/etc/pam.d目錄至自己的家目錄
3、擴展testlv至7G,要求archlinux用戶的文件不能丟失
4、收縮testlv至3G,要求archlinux用戶的文件不能丟失
5、對testlv創建快照,并嘗試基于快照備份數據,驗正快照的功能

一 、

1、用fdisk分區 把 /dev/sdd 和/dev/sde 各分出10G

LVM 與快照

如果不同步就用 partprobe 命令同步一下!

2、創建兩個pv并組成一個vg

vgcreate testvg -s 16M /dev/sdd1 /dev/sde1

LVM 與快照

LVM 與快照

3、創建testlv 并掛載

lvcreate -L 5G -n testlv testvg
mkdir /users
mkfs.ext4 /dev/testvg/testlv 
 mount /dev/testvg/testlv /users

二、
1、

useradd archlinux  -d /users/archlinux

LVM 與快照

三、擴展testlv、

1、擴展擴展物理邊界

lvextend -L +2G /dev/testvg/testlv

2、擴展邏輯邊界

resize2fs /dev/testvg/testlv

LVM 與快照

四、收縮testlv

1、卸載邏輯卷,并強制做文件系統一致性檢查

umount /dev/testvg/testlv 
e2fsck -f /dev/testvg/testlv

2、縮減

resize2fs /dev/testvg/testlv  3G
lvreduce -L 3G /dev/testvg/testlv

3、掛載查看

mount /dev/testvg/testlv /users/

LVM 與快照

五、創建快照

[root@localhost ~ ]# lvcreate -L 2G -n kuaizhao -p r -s /dev/testvg/testlv
  Logical volume "kuaizhao" created.

將快照掛載

 mount -r /dev/testvg/kuaizhao /mnt/kuaizhao

[root@localhost /mnt/kuaizhao ]# ll
總用量 20
drwx------. 6 archlinux archlinux  4096 9月   2 22:07 archlinux

刪除/users中的archlinux

[root@localhost /mnt/kuaizhao ]# cd /users
[root@localhost /users ]# ls
archlinux  lost+found
[root@localhost /users ]# rm -rf archlinux
[root@localhost /users ]# ls
lost+found
[root@localhost /users ]# ls /mnt/kuaizhao/
archlinux  lost+found
[root@localhost /users ]# cp -arp /mnt/kuaizhao/archlinux .
[root@localhost /users ]# ls
archlinux  lost+found

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

(0)
qzxqzx
上一篇 2016-09-05
下一篇 2016-09-05

相關推薦

  • Linux入門知識

    了解計算機的構造和Linux的基本知識,掌握相關的內容

    2017-09-10
  • 第三章 Linux文件系統初步

    用戶界面:      可分為兩種GUI和CLI         GUI(Graphical User Interface,簡稱 GUI,又稱圖形用戶接口)是指采用圖形方式顯示的計算機操作用戶界面。 GNOME(英語發音:/ɡ?no?m/或英語發音:/…

    Linux干貨 2016-06-03
  • rmp 程 序 包 管 理 介 紹-20160819

    rmp 程 序 包 管 理 介 紹 §·學習大綱 ※包管理器 ※rmp常用命令介紹 *安裝 *升級: *卸載: *查詢: *校驗: *數據庫: ※rmp使用實例介紹 ※包管理器 ◎二進制應用程序的組成部分: 二進制文件、庫文件、配置文件、幫助文件 ◎程序包管理器: debian:deb文件, dpkg包管理器 redhat: rpm文件, rpm包管理器 r…

    Linux干貨 2016-08-21
  • 8.16

    for 循環是相對比較簡單的循環,任何一個循環里面都可以嵌套循環,用for可以解決簡單邏輯上的任何循環 。 有兩種基本格式:for i in " ";do         或者dor((i=0;i<=9;i++))可以嵌套if或者while等循環 if循環。最重要的是判斷的條件,if意為如果什…

    Linux干貨 2016-08-19
  • Bash學習基礎知識一“命令”

    Bash 學習基礎知識 目錄 一、Shell是個啥? 二、BASH的命令     2.1 命令的語法格式     2.2 什么是命令     2.4 命令的類型     …

    Linux干貨 2015-04-03
  • linux用戶與組的基本概念–20160730

    用戶組和權限管理—概念       用戶組和權限管理—概念 3A:認證,授權,審計。 每個使用者:用戶標識,密碼:  Authentication    :  認證 Authorization     :授權 Accout/Audition…

    Linux干貨 2016-08-04
欧美性久久久久