1.简介
LVM是逻辑卷管理(Logical Volume Manager)的简称,他是linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,用来提高磁盘分区管理的灵活性。
LVM最大的特点就是可以对磁盘进行动态管理,可以动态调整分区大小,而这是标准分区做不到的。
2.LVM包含的组件
PV ( Physical Volume, 物理卷)
物理卷是LVM机制的基本存储设备,处于逻辑卷管理的最底层,通常对应为一个普通分区或整个硬盘,也可以是raid设备。创建物理卷时,会在分区或硬盘的头部创建一个保留区块,用于记录LVM的属性,并把存储空间分割成默认大小为4MB的基本单元(PE),从而构成物理卷。物理卷一般直接使用设备文件名称,例如:/dev/sdb1、/dev/sdc1、/dev/sdd 等。
VG (Volume Group, 卷组)
卷组建立在物理卷之上,一个卷组至少包含一个物理卷,在卷组中可以随时根据需求动态地添加或移除物理卷。
LV (Logical Volume,逻辑卷)
逻辑卷基于PE建立在卷组之上,与物理卷没有直接关系。对于逻辑卷来说,每一个卷组就是一个整体,从卷组未分配的空间中分割出的一块空间,形成逻辑卷,逻辑卷建立之后可以动态扩展或者缩小空间。使用mkfs 等工具可在逻辑卷上创建文件系统,就可以挂载到Linux系统中的目录下使用。
3.分区的优点:
- 优化读写性能
- 实现磁盘空间配额限制
- 提高修复速度
- 隔离系统和程序
- 安装多个OS
- 采用不同文件系统
分区的缺点:
- 只能使用一块硬盘的空间
- 如果过分区必须是连续的空间
- 如果一旦分区不能改变大小(不能随意改变大小,删除分区会造成数据丢失)什么是逻辑卷
建立逻辑卷
- .要有物理磁盘:物理卷(分区 可以是一整块硬盘)
- 将多个物理卷组合成 卷组的容量是从物理卷中提取
- 建立逻辑卷的容量是从卷组当中提取
/dev/sdc 表示整块硬盘
/dev/sdc1 表示一个分区
注意使用分区作为物理卷,分区一定要是8e 格式
实际应用
配置逻辑卷
实验步骤
步骤一:划立分区
步骤二:建立物理卷
步骤三:建立卷组
步骤四:建立逻辑卷
步骤五:建立文件系统
步骤六:挂载
逻辑卷扩容
实验内容:
现要求将ky再扩容10G
实验步骤:
步骤一:给卷组扩容(原本卷组没有足够空间)
步骤二:给卷组扩容
123456789101112131415[root@localhost ~]# lvextend -r -L +10G /dev/vg0/xhz
Size of logical volume vg0/xhz changed
from
10.00 GiB (2560 extents) to 20.00 GiB (5120 extents).
Logical volume vg0/xhz successfully resized.
[root@localhost ~]# df -Th
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root xfs 39G 4.9G 34G 13% /
devtmpfs devtmpfs 897M 0 897M 0% /dev
tmpfs tmpfs 912M 0 912M 0% /dev/shm
tmpfs tmpfs 912M 9.0M 903M 1% /run
tmpfs tmpfs 912M 0 912M 0% /sys/fs/cgroup
/dev/sda1 xfs 1014M 179M 836M 18% /boot
/dev/mapper/centos-home xfs 19G 37M 19G 1% /home
tmpfs tmpfs 183M 32K 183M 1% /run/user/0
/dev/sr0 iso9660 4.3G 4.3G 0 100% /run/media/root/CentOS 7 x86_64
/dev/mapper/vg0-xhz xfs 20G 33M 20G 1% /mnt
//查看磁盘信息,已经扩容成功
总结
LVM逻辑卷的建立和扩容是最基础的使用,也可用同样的方式对根目录进行扩容,可以有效解决内存不足的问题
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?