目录
7.挂载与使用(挂载到前面所创建的 /database_log目录下)
一、LVM的基本概念和组成部分
LVM的方式扩容:LVM(Logical Volume Manager,逻辑卷管理)是一种在Linux环境下对磁盘分区进行管理的管理机制。它通过在硬盘和分区之上创建一个逻辑层,提供了一种更为灵活和动态的磁盘管理方式。在虚拟机扩容中,新增一块硬盘和直接在原有硬盘基础上扩容是一样的(只不过在原有硬盘上扩容需要关机才可以执行);
LVM主要由以下几个部分组成:
- 物理卷(Physical Volume, PV):LVM的基本存储逻辑块,可以是硬盘分区或整个硬盘。
- 卷组(Volume Group, VG):由一个或多个物理卷组成的存储池,类似于非LVM系统中的物理硬盘。
- 逻辑卷(Logical Volume, LV):在卷组上创建的逻辑磁盘,类似于非LVM系统中的硬盘分区,但具有更高的灵活性。
- 物理扩展(PE):PE是LVM的最小存储单元,默认大小为4M。
二、关于在扩容前是否需要进行分区操作?
使用 LVM 之前是否需要先进行分区操作,取决于具体场景和需求。以下是详细解释:
1.核心结论
- LVM 可以直接使用整个磁盘(无需分区),但通常推荐先分区再使用 LVM,原因包括兼容性、管理习惯、安全隔离等。
- 关键区分:
-
物理卷(PV):LVM 直接管理的存储单元,可以是整个磁盘(如
/dev/sdb
)或分区(如/dev/sdb1
)。 - 是否分区:由用户决定,但分区更常见。
-
2.为什么许多教程推荐先分区?
(1) 历史与兼容性
- 引导需求:早期系统无法从 LVM 启动,需单独分区存放
/boot
(引导文件)。虽然现代系统支持 LVM 启动,但仍有场景需要独立分区。 - 工具兼容性:某些工具(如旧版
fdisk
)对未分区的磁盘处理不够友好,分区可避免潜在问题。
(2) 管理习惯与安全性
- 明确标记用途:分区类型设置为
Linux LVM
(类型代码8e
),明确标识该分区专用于 LVM,避免误操作。 - 隔离风险:若磁盘有其他用途(如预留空间或与其他系统共享),分区可划分明确边界。
(3) 企业环境实践
- 灵活扩展:分区后,可通过 LVM 跨多个磁盘/分区合并空间(如将
/dev/sdb1
和/dev/sdc1
加入同一卷组)。 - 避免整盘占用:若磁盘未完全用于 LVM,分区可划分多用途区域(如部分给 LVM,部分给其他文件系统)。
3.直接使用整盘作为 PV 的场景
- 专用磁盘:若整块磁盘完全用于 LVM,可直接创建物理卷:
bash
pvcreate /dev/sdb # 直接使用整块磁盘
- 优势:
- 简化操作,无需分区。
- 避免分区表占用空间(但现代磁盘分区表开销可忽略)。
4.分区 vs 直接使用整盘的对比
场景 | 分区后再用 LVM | 直接使用整盘 LVM |
---|---|---|
兼容性 | 高(兼容旧系统/工具) | 低(某些工具可能不识别未分区磁盘) |
用途标识 | 明确(分区类型标记为 Linux LVM ) | 无明确标记 |
多用途磁盘 | 支持(可划分多个分区) | 不支持(整盘专用于 LVM) |
管理复杂度 | 稍高(需分区步骤) | 低(直接操作整盘) |
适用场景 | 通用场景、企业环境 | 专用磁盘、简单环境 |
5.操作示例(下面示例会进行演示)
(1) 使用分区创建 PV
[root@localhost ~]# fdisk /dev/sdc
p # 查看分区信息
n # 创建分区
p # 选择主分区
回车默认,默认会将所有剩余空间都划入该分区
t # 修改分区格式
L # 列出所有分区格式信息
8e # 创建分区并标记为 Linux LVM(类型 8e),8e为lvm类型的hex代码
p # 查看分区信息
w # 保存并退出
# 创建物理卷
sudo pvcreate /dev/sdb1
(2) 直接使用整盘创建 PV
# 直接操作整块磁盘(无需分区)
sudo pvcreate /dev/sdb
6.总结建议
- 推荐先分区:除非磁盘完全专用于 LVM,否则分区能提高兼容性和管理灵活性。
- 例外情况:若磁盘仅用于 LVM 且环境支持(如现代 Linux 系统),可直接使用整盘。
三、lvm方式下的扩容流程
1.逻辑卷扩容简要流程
- 建立物理卷 ---> pv ---> 类似于硬盘域的概念
- 建立卷组 ---> vg ---> 类似于存储池的概念
- 建立逻辑卷 ---> lv ---> 对标lun卷
- 格式化安装文件系统 ---> mkfs
- 挂载 ---> mount
2.LVM相关命令
功能 | 物理卷管理 | 卷组管理 | 逻辑卷管理 |
Scan扫描 | pvscan | vgscan | Ivscan |
Create建立 | pvcreate | vgcreate | lvcreate |
Display显示 | pvdisplay | vgdisplay | Ivdisplay |
Remove删除 | pvremove | vgremove | lvremove |
Extend扩展 | - | vgextend | Ivextend |
Reduce减少 | - | vgreduce | Ivreduce |
四、扩容实操
(一)卷组、逻辑卷扩容到已有的挂载路径
1.选择添加硬盘
2.识别新增硬盘块
物理插入磁盘后,系统通常会自动识别,但仍需手动操作:lsblk # 查看磁盘及分区结构,确认新磁盘是否加载成功(如 /dev/sdb)
注:lsblk用于列出系统中所有可用的块设备(如硬盘、分区、LVM、RAID、光驱等)。它以树状图的方式显示设备之间的关系,而不显示它们的文件系统详细信息,这使得lsblk在快速查看系统的存储层次结构时非常有用。
3.添加物理卷
注:物理卷只能从新增加的硬盘中进行挑选
语法:pvcreate 硬盘的位置
4.查看根分区的所在的卷组(类似于存储池的概念)
注:新安装的操作系统,如果使用lvm管理磁盘空间的话,默认会存在一个根目录卷组名(vg_centos6的卷组)。
5.将新增的物理卷扩展的默认的卷组中
格式: vgextend vg_centos6 物理卷名
将物理卷(/dev/sdb)扩展到卷组(centos【上一步提到的根目录卷组名】)
6.查看当前逻辑卷的空间状态
7.使用 lvcreate
格式:Ivcreate [选项] 逻辑卷名 卷组名
# 将卷组中的空闲空间扩展到根分区逻辑卷:
lvextend -l +100%FREEdev/vg_centos6/lv_root
# 若想指定大小分配,则可以使用:lvcreate -L 2GB -n LV_Name VG_NAME
常用参数:
-l指的是按照比例来进行配置,-L指定大小,-n的作用是指定新创建的逻辑卷(Logical Volume)的名称。
8.刷新根分区并查看状态
注:刷新分区之前需要查看分区类型格式,如:ext4、xfs。查看方式如下
方式一:使用 df -TH 来进行查看
方式二:使用 blkid 查看所有盘符信息
注:df命令用于显示文件系统的磁盘空间使用情况。常用选项-T表示以易读的格式显示,-h表示使用人类可读的格式。
# 若磁盘格式是xfs,则执行如下命令:xfs_growfs /dev/vg_centos6/lv_root
# 若磁盘格式是ext4,则执行如下命令:resize2fs /dev/vg_centos6/lv_root
(二)卷组、逻辑卷的操作(挂载到指定路径)
注:这里新创建一个database_log目录,用于测试
1.创建分区:fdisk /dev/硬盘名
注:依次执行即可
[root@localhost ~]# fdisk /dev/xvdb
p # 查看分区信息
n # 创建分区
p # 选择主分区
回车默认,默认会将所有剩余空间都划入该分区
t # 修改分区格式
L # 列出所有分区格式信息
8e # 创建分区并标记为 Linux LVM(类型 8e),8e为lvm类型的hex代码
p # 查看分区信息
w # 保存并退出pvcreate /dev/sdb1 # 使用分区名(如/dev/sdb1)
2.创建物理卷,同上。
3.创建卷组
4.创建逻辑卷
5.查看分区信息
6.格式化文件系统
注:格式化之前先确定逻辑卷的信息及文件系统是什么格式
方式一:使用 df -TH 来进行查看
方式二:使用 blkid 查看所有盘符信息
EXT4文件系统下的格式化:
XFS文件系统下的格式化:
7.挂载与使用(挂载到前面所创建的 /database_log目录下)
8.同步操作
如果扩展的是一个挂载的文件系统,可以直接运行resize2fs命令。resize2fs命令来自于英文词组“resize to filesystem”的缩写,其功能是用于同步文件系统容量到内核。如对ext3、ext4、XFS等设备卷容量进行了调整,则需要使用resize2fs命令同步信息到系统内核;如果是非挂载文件系统,需要先挂载文件系统。
1、对于Ext4文件系统,可以使用resize2fs命令。语法格式: resize2fs [参数] 设备。
eg:resize2fs /dev/mapper/vg_ storage_test/lv_storage_test。
2、对于XFS文件系统,xfs_growfs可以直接扩展已经挂载的文件系统。
语法格式:xfs_growfs [参数] 设备。
eg:xfs_growfs /dev/vg_data/lv_data。
3、注意事项:在操作卷组(VG)和逻辑卷(LV)时,通常不需要手动执行同步命令(如 sync 或 partprobe),因为 LVM(逻辑卷管理)的创建和挂载流程由内核自动处理。
操作步骤 是否需要同步命令 备注 创建 PV/VG/LV 否 内核自动生效 格式化文件系统 否 mkfs
直接写入设备挂载/卸载 否 mount
/umount
直接生效扩展 LV 或文件系统 否 需文件系统工具(如 xfs_growfs
)
如上所说,所以这里使用同步命令之后,报出已经做过同步,不需要做其他操作。
9.设置开机自动挂载
注:名称格式不能写错,否则可能开不了机
# echo "/dev/mapper/vg_database_log-lv_database_log /database_log ext4 defaults 0 0" >> /etc/fstab
# cat /etc/fstab(etc/fstab一个系统配置文件,用于定义文件系统的静态挂载信息,确保系统启动时自动挂载指定的存储设备或分区)。
10.重启查看
五、关键注意事项
1.文件系统类型
XFS 仅支持扩容不支持缩容
ext4 可通过resize2fs调整大小
2.根分区是否选用lvm管理方式
在 CentOS 7 系统中,如果根分区未使用 LVM(逻辑卷管理),则无法直接通过卷组(VG)动态扩容。但若系统已使用 LVM(默认安装通常会创建名为 centos
的卷组),只需按标准 LVM 流程扩容即可。