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
发布了60 篇原创文章 · 获赞 3 · 访问量 2084

猜你喜欢

转载自blog.csdn.net/weixin_42313749/article/details/100828134