1. 程式人生 > >磁盤空間的擴展與減少------邏輯卷管理器 LVM

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

-a 硬盤 物理 roc ima centos linux tle bottom

一、基本理論知識

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

二、lvm 基本術語

物理區域PE(physical extend)默認為4MB的基本塊 。物理卷是用固定大小的PE來定義的
物理卷:PV(physical volume)硬盤或分區 。將設備指定為物理卷,在物理卷上創建的邏輯卷

是由PE組成
卷組: VG(volume group)由一個或多個PV組成的整體 。用一個或者多個物理卷來創建一個卷組
邏輯卷: LV(logical volume)從VG中切割出的空間用於創建文件系統。可以在邏輯卷上創建文件系統。

技術分享圖片

三、 lvm 的創建

1.分區或增加新的硬盤

如果是分區,註意分區的ID設置為8e。

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

技術分享圖片

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

技術分享圖片

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

技術分享圖片

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

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

pvcreate /dev/sdb1 /dev/sdb2

技術分享圖片

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

技術分享圖片

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

技術分享圖片

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卷組的信息    部分截圖

技術分享圖片

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

技術分享圖片

四、 擴展與減少邏輯卷

1、擴展邏輯卷

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

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

技術分享圖片

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   查看邏輯卷信息

技術分享圖片

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

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

技術分享圖片

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

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

技術分享圖片

2)創建pv
pvcreate /dev/sdb3

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

技術分享圖片

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

技術分享圖片

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

技術分享圖片

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

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

技術分享圖片

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

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

技術分享圖片

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 讀取配置文件重新掛載

現在局勢如圖所示:

技術分享圖片

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

技術分享圖片

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

技術分享圖片

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

技術分享圖片


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

技術分享圖片

技術分享圖片


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