Linux系统下LVM卷管理与使用

一、LVM简介

LVM是逻辑卷管理(Logical Volume Manager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制。LVM通过在硬盘和文件系统之间添加一个逻辑层,来为文件系统屏蔽下层硬盘分区布局,提高硬盘分区管理的灵活性。
使用LVM管理硬盘的基本过程如下:
  1. 将硬盘创建为物理卷。
  2. 将多个物理卷组合成卷组。
  3. 在卷组中创建逻辑卷。
  4. 在逻辑卷之上创建文件系统。
通过LVM管理硬盘之后,文件系统不再受限于硬盘的大小,可以分布在多个硬盘上,也可以动态扩容。

二、基本概念

  • 物理存储介质(The physical media):指系统的物理存储设备,如硬盘,系统中为/dev/hda、/dev/sda等等,是存储系统最低层的存储单元。
  • 物理卷(Physical Volume,PV):指硬盘分区或从逻辑上与磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块。物理卷包括一个特殊的标签,该标签默认存放在第二个 512 字节扇区,但也可以将标签放在最开始的四个扇区之一。该标签包含物理卷的随机唯一识别符(UUID),记录块设备的大小和LVM元数据在设备中的存储位置。
  • 卷组(Volume Group,VG):由物理卷组成,屏蔽了底层物理卷细节。可在卷组上创建一个或多个逻辑卷且不用考虑具体的物理卷信息。
  • 逻辑卷(Logical Volume,LV):卷组不能直接用,需要划分成逻辑卷才能使用。逻辑卷可以格式化成不同的文件系统,挂载后直接使用。
  • 物理块(Physical Extent,PE):物理卷以大小相等的“块”为单位存储,块的大小与卷组中逻辑卷块的大小相同。
  • 逻辑块(Logical Extent,LE):逻辑卷以“块”为单位存储,在一卷组中的所有逻辑卷的块大小是相同的。

三、安装

Debian系列和Redhat系统使用如下命令查看是否安装LVM包
dpkg -l|grep -i lvm2 debian rpm -qa|grep lvm2 redhat
如未安装则使用如下命令进行安装
apt-get install lvm2 yum install lvm2或dnf install lvm2

四、管理与使用

4.1、查看磁盘分区情况

lsblk

4.2 创建物理卷(PV)

将设备初始化为物理卷
sudo pvcreate /dev/sdb /dev/sdc
验证物理卷状态
sudo pvs

4.3 创建卷组(VG)

创建一个包含以上PV的卷组
sudo vgcreate my_vg /dev/nvme0n1 /dev/nvme2n1 /dev/nvme4n1
验证卷组状态
sudo vgs

4.4 创建逻辑卷

从卷组分配空间创建逻辑卷。例如,创建一个100GB的逻辑卷
sudo lvcreate -L 20G -n my_lv my_vg
验证逻辑卷状态
sudo lvs

4.5 格式化逻辑卷

对逻辑卷进行格式化,例如使用ext4文件系统:
sudo mkfs.ext4 /dev/my_vg/my_lv

4.6 挂载逻辑卷

创建挂载点并挂载逻辑卷
sudo mkdir /my_data sudo mount /dev/my_vg/my_lv /my_data/ sudo df -hT

4.7 配置开机自动挂载

将挂载命令写入/etc/fstab.以便开机自动挂载 (不推荐)
echo '/dev/my_vg/my_lv /my_data ext4 defaults 0 0' | sudo tee -a /etc/fstab
将UUID写入分区表文件中
sudo blkid 查询逻辑卷的uuid
按照上步查询到的uuid,查询设备路径
ls /dev/disk/by-uuid/376b4a3c-fe9a-4191-b84c-c066db4e377b
挂载命令写入分区表
echo '/dev/disk/by-uuid/376b4a3c-fe9a-4191-b84c-c066db4e377b /my_data ext4 defaults 0 0'|sudo tee -a /etc/fstab
验证是否写入
cat /etc/fstab
重启验证是否自动挂载

4.8 从卷组扩容逻辑卷

假设需要扩容逻辑卷my_lv的大小

4.8.1 确认VG的剩余空间

sudo vgs
看到剩余19.99g的空间

4.8.2 扩容逻辑卷大小,增加19.99g

sudo lvextend -L +19.99G /dev/my_vg/my_lv

4.8.3 扩容文件系统

ext4文件系统扩容:
sudo resize2fs /dev/my_vg/my_lv
查看是否扩容成功 df -hT
xfs文件系统扩容:
sudo xfs_growfs /my_data

4.9 将新硬盘扩容到逻辑卷中

当逻辑卷组(VG)剩余空间不足时,用户可以购买新的硬盘并扩容到相应的卷组及逻辑卷中

4.9.1 先将新硬盘sdd初始化为物理卷

sudo pvcreate /dev/sdd
查看物理卷状态
我们可以看到多了一个sdd的PV

4.9.2 将新的物理卷加入到之前创建的VG中,也就是my_vg

sudo vgextend my_vg /dev/sdd
验证vg是否扩容成功,可以看到由原来的40g变成了60g
sudo vgs

4.9.3 扩容逻辑卷

重复上面4.8.1-4.8.3的步骤即可

4.10 逻辑卷缩容

先卸载挂载点
sudo umount /my_data
缩减文件系统:
sudo e2fsck -f /dev/my_vg/my_lv sudo resize2fs /dev/my_vg/my_lv 20G
缩减逻辑卷
sudo lvreduce -L 20G /dev/my_vg/my_lv
重新挂载逻辑卷
sudo mount /dev/my_vg/my_lv /my_data

4.11 删除逻辑卷、卷组、物理卷

卸载挂载点
sudo umount /my_data
删除逻辑卷
sudo lvremove /dev/my_vg/my_lv
删除卷组
sudo vgremove my_vg
删除物理卷
sudo pvremove /dev/sdb /dev/sdc

五、LVM常用命令总结

功能
命令
示例
查看磁盘状态
lsblk
lsblk
初始化 PV
pvcreate
pvcreate /dev/sdb
查看 PV 信息
pvs
/
pvdisplay
pvs
创建 VG
vgcreate
vgcreate my_vg /dev/sdb /dev/sdc
查看 VG 信息
vgs
/
vgdisplay
vgs
创建 LV
lvcreate
lvcreate -L 100G -n my_lv my_vg
查看 LV 信息
lvs
/
lvdisplay
lvs
扩展 LV
lvextend
+
resize2fs
lvextend -L +50G /dev/my_vg/my_lv
删除 LV
lvremove
lvremove /dev/my_vg/my_lv

六、总结

通过以上步骤,您可以灵活地使用 LVM 管理磁盘存储。LVM 提供了强大的功能,包括动态调整分区大小、创建快照和扩展卷组容量等,是现代 Linux 系统中磁盘管理的核心工具之一。
注意事项:
备份数据:任何涉及磁盘调整的操作都有潜在风险。
监控存储使用情况:确保 VG 和 LV 的空间分配合理。
快照使用:不要长时间保留快照,以免影响性能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

技术瘾君子1573

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值