LVM逻辑卷和磁盘配额

211 阅读5分钟

本章重点: 一定要会做逻辑卷 !会扩容 !

一 、 LVM逻辑卷

LVM 是 Logical Volume Manager 的简称,译为中文就是逻辑卷管理。它是 Linux 下对硬盘分区的一种管理机制。

  • 动态调动磁盘容量,从而提高磁盘管理的灵活性
  • /boot分区用于存放引导文件,不能做逻辑卷!!!

1. LVM机制的基本概念

PV(Physical Volume)物理卷:真正的物理磁盘

pv.png

VG(Volume Group) 卷组 :将多个物理卷合起来就组成了卷组。组成同一个卷组的物理卷可以是同一块硬盘的不同分区,也可以是不同硬盘上的不同分区。

vg.png

LV(Logical Volume)逻辑卷:卷组是一块逻辑硬盘,硬盘必须分区之后才能使用,我们把这个分区称作逻辑卷。逻辑卷可以被格式化和写入数据。我们可以把逻辑卷想象为分区。

lvm1.png

lvm2.png

第一步:先确定可以使用的 磁盘或分区

lvm配置可以用分区(要改分区类型 t 为8e)也可以是一整块磁盘

第二步:先将硬盘拆分成一个个小的块(块大小默认为4M)

第三步:然后将这些块组成一个集合

第四步:从这个集合中取块(取空间)

2. LVM的管理命令

功能物理卷管理卷组管理逻辑卷管理
Create 建立pvcreatvgcreatlvcreat
Extend 扩展——vgextendlvextend
Display 显示pvdisplayvgdisplaylvdisplay
Scan 扫描pvscanvgscanlvscan
Remove 删除pvremovevgremovelvremove
Reduce 减少——vgreducelvreduce

命令格式\color{red}{命令格式}:

  • 创建命令
pvcreat  设备名1  [设备名2 ......]              //创建物理卷
vgcreat  卷组名  物理卷名1   物理卷名2           //创建卷组
lvcreat   -L 容量大小  -n 逻辑卷名  卷组名       //创建逻辑卷

mkfs.xfs  逻辑卷名(/dev/卷组名/逻辑名)             //将逻辑卷格式化
mount  逻辑卷名(/dev/卷组名/逻辑名) 挂载点         //将逻辑卷挂载 
vim  /etc/fstab                                   //将逻辑卷永久挂载
  • 扩容命令
vgextend  卷组名 物理卷名3                        //扩容卷组
lvextend  -L  +大小  /dev/卷组名/逻辑卷名         //扩容逻辑卷

xfs_growfs  /dev/卷组名/逻辑卷名          //同步文件系统,让新扩容的部分也有XFS文件系统
 或
resize2fs  /dev/卷组名/逻辑卷名           //EXT4文件系统扩容 
#针对不同的文件系统,需使用对应的命令来扩容

可以使用-r 选项立马刷新文件系统
lvextend  -L  +大小  /dev/卷组名/逻辑卷名  -r

3.LVM应用实例

3.1 逻辑卷配置实验

实验内容

1) 建立物理卷: 将分区 /dev/sdb1 和整块磁盘 /dev/sdc 创建成物理卷

2) 建立卷组:建立vg01卷组,将2个物理卷加到vg01组里

3) 建立逻辑卷:从vg01卷组中取15G容量创建逻辑卷mysql

4) 格式化逻辑卷:将逻辑卷mysql 格式化为XFS文件系统

5) 挂载逻辑卷:将逻辑卷mysql 挂载到 /mnt 目录下

实验步骤

  1. 添加硬盘
lvm创建1.png lvm创建2.png
  1. 使用fdisk工具规划分区,将/dev/sdb1的分区格式设置为Linux LVM(对应系统ID为8e)
lvm创建3.png
  1. 使用 pvcreate命令,将分区 /dev/sdb1 和整块磁盘 /dev/sdc 创建成物理卷
lvm创建4.png
  1. 使用 vgcreate命令,创建卷组vg01,并将2个物理卷分配给vg01
lvm创建5.png
  1. 只用 lvcreate 命令,从vg01中取15G容量创建逻辑卷mysql
lvm创建6.png

建好的逻辑卷有两种叫法:/dev/mapper/vg01-mysql 或者 /dev/vg01/mysql

lvm创建7.png

逻辑卷建完=分区,如果想真正用起来还需要格式化+挂载

  1. 将逻辑卷mysql 格式化为XFS文件系统
lvm创建8.png
  1. 将逻辑卷mysql 挂载到 /mnt 目录下
lvm创建9.png

3.2 逻辑卷扩容实验

①卷组中的空间足够扩容 → 直接扩容

②卷组中的空间不足够扩容 → 先扩容卷组vgextend,再扩容逻辑卷lvextend

实验内容

逻辑卷mysql 当前容量只有15G,不够实际使用,现要求再扩容10G。

1) 扩容卷组:将sdd硬盘扩容到vq01卷组

2) 扩容逻辑卷:逻辑卷加10G容量

3)同步文件系统

实验步骤

  1. 只用 vgextend 命令,将物理卷 /dev/sdd 加入卷组 vg01
扩容1.png
  1. 使用 lvextend 命令,为逻辑卷/dev/vg01/mysql 增加10G的容量
扩容2.png

扩容后用 df -h 命令查看,会发现逻辑卷容量未发生改变,因为之前的逻辑卷已经格式化,有xfs文件系统;后面新扩容的没有xfs文件系统,那就要给他加上,同步前后文件系统

  1. 使用 xfs_growfs 命令,使XFS文件系统识别到新增的空间,实现文件系统扩容
扩容3.png

此时用 df -h 命令可以查看到逻辑卷已扩容为25G

注意:针对不同的文件系统,需使用对应的命令来扩容。EXT4文件系统扩容 使用命令 resize2fs /dev/卷组名/逻辑卷名    

补充\color{green}{补充}:可以使用 -r 选项立马刷新文件系统

lvextend  -L  +10G  /dev/vg01/mysql   -r     等于合并上面的23)两步

面试题:扩容根分区

先用vgdisplay查看卷组中的空间是否足够扩容,查到只有一个卷组名为centos
现在假设不够,那么先加硬盘sdb
扩容卷组 : vgextend  centos  /dev/sdblvdisplay查看有两个逻辑卷 rootswaproot为根 ,所以扩容/dev/centos/root
扩容逻辑卷 :lvextend  -L  +20G  /dev/centos/root  -r
df -h 可以查看已扩容

4. 缩减大小

ext4可以, xfs无法缩减,缩减会影响业务。

1.解挂载

2.检查文件系统完整性

3.缩减文件系统

4.缩减逻辑卷上下一致

5.再挂载回去

二 、 磁盘配额