磁盤空間的擴展與減少------邏輯卷管理器 LVM

一、 基本理論知識

    LVM是 Logical Volume Manager(邏輯卷管理)的簡寫,是Linux環境下對磁盤分區進行管理的一種機制。邏輯卷管理通過將底層物理硬盤抽象封裝起來,以邏輯卷的形式表現給上層系統,邏輯卷的大小可以動態調整,而且不會丟失現有數據。新加入的硬盤也不會改變現有上層的邏輯卷。作爲一種動態磁盤管理機制,邏輯卷技術大大提高了磁盤管理的靈活性。

二、lvm 基本術語

   物理區域PE(physical extend)默認爲4MB的基本塊 。物理卷是用固定大小的PE來定義的
   物理卷:PV(physical volume)硬盤或分區 。將設備指定爲物理卷,在物理捲上創建的邏輯卷是由PE組成
   卷組: VG(volume group)由一個或多個PV組成的整體 。用一個或者多個物理捲來創建一個卷組
   邏輯卷: LV(logical volume)從VG中切割出的空間用於創建文件系統。可以在邏輯捲上創建文件系統。

                    image.png

三、 lvm 的創建

    1.分區或增加新的硬盤

      如果是分區,注意分區的ID設置爲8e。

  fdisk -l /dev/sdb    查看指定塊設備/dev/sdb的分區信息

image.png

fdisk /dev/sdb   對指定硬盤dev/sdb修改分區        t:轉換分區類型ID

image.png

 fdisk -l /dev/sdb    查看指定塊設備/dev/sdb的分區信息

image.png

2. 創建物理卷pv
    pvcreate /dev/sdb1 /dev/sdb2       將/dev/sdb1 /dev/sdb2 指定爲物理卷

    pvs     查看命令
    pvdisplay  /dev/sdb1     具體查看物理卷/dev/sdb的信息

pvcreate /dev/sdb1 /dev/sdb2

image.png 

 pvs    查看pv物理卷
 pvdisplay  後可加具體pv   查看較詳細

image.png

pvdisplay   /dev/sdb1   查看/dev/sdb1的詳細信息

image.png

3.創建卷組vg  

   多個物理捲來創建一個卷組

    vgcreate vgname /dev/sdb1  /dev/sdb2   創建一個包含兩個pv(/dev/sdb1 /dev/sdb2)名爲vgname的卷組

    vgcreate -s 55M vgname /dev/sdb1  /dev/sdb2      創建一個包含兩個pv(/dev/sdb1 /dev/sdb2)名爲vgname的卷組

    vgs   查看卷組信息
    vgdisplay vgname     具體查看某一卷組的信息

 vgcreate vgchen  /dev/sdb1  /dev/sdb2     創建一個包含兩個pv(/dev/sdb1 /dev/sdb2)名爲vgchen的卷組
 vgs   查看卷組信息
 vgdisplay vgchen     具體查看vgchen卷組的信息    部分截圖

image.png

4.創建邏輯卷lv
    lvcreate -l pe num /-L size -n lvname vgname   創建  以pe個數爲單位 / 設置大小  名爲lvname的邏輯卷
    lvs      查看邏輯卷
    lvdisplay   詳細查看邏輯卷    

此處引入一個lvm名稱的擴展:
  /dev/mapper/vgname-lvname
  /dev/vgname/lvname

 lvcreate -L 200M -n lvchen vgchen   創建大小爲200M的邏輯卷lvchen 
 lvs 
 lvdisplay

image.png

四、 擴展與減少邏輯卷

1、擴展邏輯卷

   邏輯卷的魅力:具有在線擴展的能力。擴展邏輯卷分爲兩種情況。第一種情況,需要擴展的pe數量,vg可以提供。第二種情況,vg空間不夠,需先擴展vg,擴展vg就是往vg中加pv。下面具體分析:

    1. 第一種情況,需要擴展的pe數量,vg可以提供。

image.png

        lvextend -r -L +200M /dev/vgchen/lvchen         邏輯卷在原來的基礎上擴展200M

        lvextend -r -L 400M /dev/vgchen/lvchen         邏輯卷擴展至400M

                  ( -r:   resize2fs /dev/vgchen/lvchen   將邏輯卷的文件系統擴展(如:房子建好了,需要裝修,不需要指定大小)

lvextend -r -L 400M /dev/vgchen/lvchen      邏輯卷擴展至400M
lvs   查看邏輯卷信息

image.png

    2. 第二種情況,vg空間不夠。

      在第一種情況中,已把所有的vg空間提供。再需要擴展時,vg空間已沒有,需要先擴展vg,擴展vg就是往vg中加pv。

image.png

   1)加硬盤,或創建分區等來增加block device

fdisk /dev/sdb    對指定硬盤修改分區

image.png

    2)創建pv
         pvcreate /dev/sdb3

在此處pv創建不成,根據提示錯誤,沒有發現/dev/sdb3 分區。

image.png

lsblk  查看內核分區信息   
沒有/dev/sdb3 分區,需要同步下分區信息  partprobe /dev/sdb3 (centos 7)

image.png

partprobe /dev/sdb     同步信息
pvcreate /dev/sdb3    創建名爲/dev/sdb3的物理卷

image.png

    3)擴展vg
        vgextend vgchen /dev/sdb3   vg的擴展

vgextend vgchen /dev/sdb3   將/dev/sdb3 擴展到vgchen卷組
vgs     查看卷組信息

image.png

    4)lvextend -L 500M -r /dev/vgchen/lvchen    邏輯卷的擴展

lvextend -L 500M -r /dev/vgchen/lvchen   將邏輯卷增加至500M
lvs   查看邏輯卷的信息    邏輯卷已成功擴展至500M                (好開心 噠噠噠 ^.^)

image.png

2、減少邏輯卷

     邏輯卷的擴展具有在線擴展的魅力,減少時需要先卸載。

    umount /dev/vgchen/lvchen     或    umount /app        卸載  掛載源 / 掛載點    兩者其一都可以。
    e2fsck -f /dev/vgchen/lvchen      在減少邏輯卷時,需要先掃描下空白空間,避免損壞已存在數據。

    resize2fs /dev/vgchen/lvchen  200M    先減少文件系統至200M   (一定先減文件系統,再減邏輯卷。)

    lvreduce -L 200M /dev/vgchen/lvchen      減少邏輯卷至200M

    mount -a   讀取配置文件重新掛載

    現在局勢如圖所示:

image.png

umount /app    卸載
e2fsck -f /dev/vgchen/lvchen

image.png

resize2fs /dev/vgchen/lvchen  200M      先減少文件系統至200M

image.png

lvreduce -L 200M /dev/vgchen/lvchen      減少邏輯卷至200M
mount -a   可能會掛載不上,需要人爲修改配置文件 /etc/fstab

image.png


vim /etc/fstab   在最後一行寫入/dev/vgchen/lvchen /app ext4 defaults  0 0
mount -a   讀取配置文件重新掛載

image.png

image.png


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