本章重点: 一定要会做逻辑卷 !会扩容 !
一 、 LVM逻辑卷
LVM 是 Logical Volume Manager 的简称,译为中文就是逻辑卷管理。它是 Linux 下对硬盘分区的一种管理机制。
- 动态调动磁盘容量,从而提高磁盘管理的灵活性
- /boot分区用于存放引导文件,不能做逻辑卷!!!
1. LVM机制的基本概念
PV(Physical Volume)物理卷:真正的物理磁盘
VG(Volume Group) 卷组 :将多个物理卷合起来就组成了卷组。组成同一个卷组的物理卷可以是同一块硬盘的不同分区,也可以是不同硬盘上的不同分区。
LV(Logical Volume)逻辑卷:卷组是一块逻辑硬盘,硬盘必须分区之后才能使用,我们把这个分区称作逻辑卷。逻辑卷可以被格式化和写入数据。我们可以把逻辑卷想象为分区。
第一步:先确定可以使用的 磁盘或分区
lvm配置可以用分区(要改分区类型 t 为8e)也可以是一整块磁盘
第二步:先将硬盘拆分成一个个小的块(块大小默认为4M)
第三步:然后将这些块组成一个集合
第四步:从这个集合中取块(取空间)
2. LVM的管理命令
| 功能 | 物理卷管理 | 卷组管理 | 逻辑卷管理 |
|---|---|---|---|
| Create 建立 | pvcreat | vgcreat | lvcreat |
| Extend 扩展 | —— | vgextend | lvextend |
| Display 显示 | pvdisplay | vgdisplay | lvdisplay |
| Scan 扫描 | pvscan | vgscan | lvscan |
| Remove 删除 | pvremove | vgremove | lvremove |
| Reduce 减少 | —— | vgreduce | lvreduce |
:
- 创建命令
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 目录下
实验步骤
- 添加硬盘
- 使用fdisk工具规划分区,将/dev/sdb1的分区格式设置为Linux LVM(对应系统ID为8e)
- 使用 pvcreate命令,将分区 /dev/sdb1 和整块磁盘 /dev/sdc 创建成物理卷
- 使用 vgcreate命令,创建卷组vg01,并将2个物理卷分配给vg01
- 只用 lvcreate 命令,从vg01中取15G容量创建逻辑卷mysql
建好的逻辑卷有两种叫法:/dev/mapper/vg01-mysql 或者 /dev/vg01/mysql
逻辑卷建完=分区,如果想真正用起来还需要格式化+挂载
- 将逻辑卷mysql 格式化为XFS文件系统
- 将逻辑卷mysql 挂载到 /mnt 目录下
3.2 逻辑卷扩容实验
①卷组中的空间足够扩容 → 直接扩容
②卷组中的空间不足够扩容 → 先扩容卷组vgextend,再扩容逻辑卷lvextend
实验内容
逻辑卷mysql 当前容量只有15G,不够实际使用,现要求再扩容10G。
1) 扩容卷组:将sdd硬盘扩容到vq01卷组
2) 扩容逻辑卷:逻辑卷加10G容量
3)同步文件系统
实验步骤
- 只用 vgextend 命令,将物理卷 /dev/sdd 加入卷组 vg01
- 使用 lvextend 命令,为逻辑卷/dev/vg01/mysql 增加10G的容量
扩容后用 df -h 命令查看,会发现逻辑卷容量未发生改变,因为之前的逻辑卷已经格式化,有xfs文件系统;后面新扩容的没有xfs文件系统,那就要给他加上,同步前后文件系统
- 使用 xfs_growfs 命令,使XFS文件系统识别到新增的空间,实现文件系统扩容
此时用 df -h 命令可以查看到逻辑卷已扩容为25G
注意:针对不同的文件系统,需使用对应的命令来扩容。EXT4文件系统扩容 使用命令 resize2fs /dev/卷组名/逻辑卷名
:可以使用 -r 选项立马刷新文件系统
lvextend -L +10G /dev/vg01/mysql -r 等于合并上面的2) 3)两步
面试题:扩容根分区
先用vgdisplay查看卷组中的空间是否足够扩容,查到只有一个卷组名为centos
现在假设不够,那么先加硬盘sdb
扩容卷组 : vgextend centos /dev/sdb
用lvdisplay查看有两个逻辑卷 root 和swap ,root为根 ,所以扩容/dev/centos/root
扩容逻辑卷 :lvextend -L +20G /dev/centos/root -r
df -h 可以查看已扩容
4. 缩减大小
ext4可以, xfs无法缩减,缩减会影响业务。
1.解挂载
2.检查文件系统完整性
3.缩减文件系统
4.缩减逻辑卷上下一致
5.再挂载回去