LVM管理使用

LVM的基本概念

  • 實戰場景:對於生產環境下的服務器來說,如果存儲數據的分區磁盤空間不夠了怎麼辦?

  • 答:只能換一個更大的磁盤。 如果用了一段時間後, 空間又不夠了,怎麼辦?再加一塊更大的?換磁盤的過程中,還需要把數據從一個硬盤複製到另一個硬盤,過程太慢了。

  • 解決方案:使用LVM在線動態擴容

LVM的工作原理

	LVM( Logical Volume Manager)邏輯卷管理,是在磁盤分區和文件系統之間添加的一個邏輯層,來爲文件系統屏蔽下層磁盤分區佈局,提供一個抽象的盤卷,在盤捲上建立文件系統。管理員利用LVM可以在磁盤不用重新分區的情況下動態調整文件系統的大小,並且利用LVM管理的文件系統可以跨越磁盤,當服務器添加了新的磁盤後,管理員不必將原有的文件移動到新的磁盤上,而是通過LVM可以直接擴展文件系統跨越磁盤
	它就是通過將底層的物理硬盤封裝起來,然後以邏輯卷的方式呈現給上層應用。在LVM中,其通過對底層的硬盤進行封裝,當我們對底層的物理硬盤進行操作時,其不再是針對於分區進行操作,而是通過一個叫做邏輯卷的東西來對其進行底層的磁盤管理操作。
	

LVM常用的術語

  • 物理存儲介質(The physical media):LVM存儲介質可以是磁盤分區,整個磁盤,RAID陣列或SAN磁盤,設備必須初始化爲LVM物理卷,才能與LVM結合使用

  • 物理卷PV(physical volume) :物理卷就是LVM的基本存儲邏輯塊,但和基本的物理存儲介質(如分區、磁盤等)比較,卻包含有與LVM相關的管理參數,創建物理卷它可以用硬盤分區,也可以用硬盤本身;

卷組VG(Volume Group) :一個LVM卷組由一個或多個物理卷組成 

  • 邏輯卷LV(logical volume) :LV建立在VG之上,可以在LV之上建立文件系統

PE(physical extents) :PV物理卷中可以分配的最小存儲單元,PE的大小是可以指定的,默認爲4MB

  • LE(logical extent) : LV邏輯卷中可以分配的最小存儲單元,在同一個卷組中,LE的大小和PE是相同的

  • 最小存儲單位總結:

名稱     	最小存儲單位   
硬盤     	扇區(512字節)    
文件系統 	block(1K或4K )#  mkfs.ext4  -b 2048  /dev/sdb1  ,最大支持到4096 
raid      	chunk  (512K)   #mdadm -C -v /dev/md5 -l 5 -n 3 -c 512 -x 1 /dev/sde{1,2,3,5}
LVM      	PE   (4M)    # vgcreate -s 4M  vg1 /dev/sdb{1,2}

磁盤結構

在這裏插入圖片描述
操作思路:

總結:多個磁盤/分區/raid->  多個物理卷PV->
 合成卷組VG->從VG劃出邏輯卷LV-> 格式化LV掛載使用

創建lvm步驟:

a) 添加物理磁盤,創建物理卷
b) 創建卷組,將物理卷加入卷組
c) 在卷組中劃分邏輯卷
d) 格式化邏輯卷
e) 掛載使用

實驗環境

系統 ip
centos 7 192.168.10.11

常用命令

功能 pv管理命令 vg管理命令 lv管理命令
scan 掃描 pvscan vgscan lvscan
create創建 pvcreate vgcreate lvcreate
display 顯示 pvdisplay vgdisplay lvdisplay
remove 移除 pvremove vgremove lvcreate
extend 擴展 vgextend lvextend
reduce 減少 vgreduce lvreduce

實驗演示

  • 準備物理磁盤
[root@localhost ~]# lsblk |grep "sd[bcd]"
sdb             8:16   0    1G  0 disk
sdc             8:32   0    1G  0 disk
sdd             8:48   0    1G  0 disk
  • 將磁盤加入pv
[root@localhost ~]# pvcreate /dev/sdb
Physical volume "/dev/sdb" successfully created.
[root@localhost ~]# partprobe /dev/sdb         記得刷新下
[root@localhost ~]# 

//檢查pv創建情況
[root@localhost ~]# pvs
PV         VG     Fmt  Attr PSize   PFree
/dev/sdb          lvm2 ---    1.00g 1.00g

  • 創建名爲datavg的卷組
[root@localhost ~]# vgcreate datavg /dev/sdb
Volume group "datavg" successfully created
//檢查卷組
[root@localhost ~]# vgs
VG      #PV #LV #SN Attr   VSize    VFree
datavg   1   0   0 wz--n- 1020.00m 1020.00m

  • 創建邏輯卷, 分配名稱, 以及大小, 指定卷組
[root@localhost ~]# lvcreate -L 100M -n lv1 datavg
Logical volume "datalv1" created.
//檢查邏輯卷
[root@localhost ~]# lvscan
ACTIVE            '/dev/datavg/lv1' [100.00 MiB] inherit

  • 格式化文件系統
[root@localhost ~]# mkfs.xfs /dev/datavg/lv1

//掛載並使用
[root@localhost ~]# mkdir /lv1
[root@localhost ~]# mount /dev/datavg/lv1 /lv1/
[root@localhost ~]# df -h
Filesystem                  Size  Used Avail Use% Mounted on
...
/dev/mapper/datavg-lv1   97M  5.2M   92M   6% /lv1

卷組管理

  • 擴展卷組,將新磁盤加入卷組
新硬盤加入pv
[root@localhost ~]# pvcreate /dev/sdc
  • 使用vgextend擴展
[root@localhost ~]# vgextend datavg /dev/sdc
Volume group "datavg" successfully extended
  • 縮減卷組,將指定磁盤從卷組中刪除
[root@localhost ~]# vgreduce datavg /dev/sdb
  Removed "/dev/sdb" from volume group "datavg"
  ``
  
- 數據遷移卷組,同一卷組的磁盤纔可以進行在線遷移

//檢查當前邏輯卷VG中PV使用情況

[root@localhost ~]# pvs
PV      VG   Fmt  Attr PSize PFree
/dev/sdb vg1 lvm2 a -- 2.00g 1.76g 
/dev/sdc vg1 lvm2 a -- 2.00g 2.00g
  • pvmove在線數據遷移至其他pv
[root@localhost ~]# pvmove /dev/sdb
  /dev/sdb: Moved: 41.33%
  /dev/sdb: Moved: 100.00%

  • 檢查是否將sdb數據遷移至sdc
[root@localhost ~]# pvs
PV      VG   Fmt  Attr PSize PFree 
/dev/sdb vg1 lvm2 a -- 2.00g 2.00g 
/dev/sdc vg1 lvm2 a -- 2.00g 1.76g

  • 邏輯卷管理
    邏輯卷擴展,邏輯卷的擴展取決於卷組中的容量,邏輯卷擴展的容量不能超過卷組的容量
[root@localhost ~]# vgs
VG #PV #LV #SN Attr VSize VFree 
vg1 2 2 0 wz --n-   1.88g 1.00g
  • 擴展lv邏輯卷
//增加800M分配給邏輯卷 {注意: 800M +800M 不一樣}
[root@localhost ~]# lvextend -L +800M /dev/datavg/lv1
//分配磁盤池中多少百分比給邏輯卷
[root@localhost ~]# lvextend -l +50%FREE /dev/datavg/lv1

  • 擴展fs文件系統
//xfs擴容
[root@localhost ~]# xfs_growfs /dev/datavg/lv1
//ext擴容
[root@localhost ~]# resize2fs /dev/datavg/lv1
對ext4文件系統的邏輯卷裁剪容量
  • 如果已經掛載,必須先卸載

 1. umount /dev/finance/uplooking   如果已經掛載,必須先卸載
  e2fsck -f /dev/finance/uplooking  裁剪容量,必須是先檢測文件系統
  resize2fs /dev/finance/uplooking 512M 
 4. lvreduce  -L 512M /dev/finance/uplooking  調整完畢後採取裁剪邏輯卷容量
  WARNING: Reducing active logical volume to 512.00 MiB
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce uplooking? [y/n]: y
 5. e2fsck -f /dev/finance/uplooking  強烈建議裁剪後,再次檢測文件系統
掛載測試
如果能夠掛載,一般說明裁剪成功,文件系統沒有損壞
  • 縮減邏輯卷注意事項:
不能在線縮減,得先卸載;
確保縮減後的空間大小依然能存儲原有的所有數據;
在縮減之前應該先強行檢查文件,以確保文件系統處於一致性狀態。使用命令e2fsck -f /PATH/TO/LV
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章