【CentOS 7】深入指南:使用LVM和扩展文件系统增加root分区存储容量
大家好 我是寸铁👊
【CentOS 7】深入指南:使用LVM和扩展文件系统增加root分区存储容量 ✨
喜欢的小伙伴可以点点关注 💝
前言
在运行
CentOS 7
服务器或虚拟机时,管理根分区的存储空间是系统管理者必须面对的重要问题之一。随着应用程序和数据的增长,根分区可能会迅速耗尽空间,影响系统的正常运行。传统上,扩展根分区的方法可能会涉及重新分区和重新安装系统,这些操作不仅繁琐,还会导致系统停机时间,给业务和用户带来不便。
然而,利用LVM
(逻辑卷管理)和扩展文件系统的高级技术,您可以在不重新安装系统的情况下扩展根分区的存储容量,从而满足不断增长的存储需求。LVM
技术允许您动态地管理硬盘空间,将物理硬盘划分为逻辑卷,而扩展文件系统则使得逻辑卷能够利用新增的空间,无需中断系统运行。
步骤概述:
- 备份数据
:在进行任何系统更改之前,务必备份所有重要数据。尽管LVM和扩展文件系统的操作通常是安全的,但预防措施总是值得的。
-
扩展物理卷
:如果您有未分配的磁盘空间,可以将其添加到LVM物理卷中。使用pvcreate命令将新磁盘或分区添加到物理卷组中。 -
扩展逻辑卷
:使用vgextend命令将物理卷添加到现有的卷组中,然后使用lvextend命令扩展根逻辑卷的大小。 -
扩展文件系统
:最后一步是使用适当的文件系统工具(如resize2fs或xfs_growfs)来扩展文件系统,使其能够利用新分配的空间。 -
验证和重启
:在完成扩展操作后,验证新空间是否成功添加到根分区。根据需要,重启系统以确保所有更改生效。
实现
Step1
先将
home
分区进行备份
- 查看分区大小:
df -lh
- 备份home分区
Step2
再将
home
分区全部删除释放出可以分配给root
空间的内存。
- 卸载【home】目录
umount /home/
现在可以看到home分区不存在了
- 删除【home】所在的LVM逻辑卷
lvremove /dev/mapper/centos-home
Step3
给
root
分区分配需要的内存
- 增加【root】所在LVM逻辑卷的容量
lvextend -L +90G /dev/mapper/centos-root
命令中的
90G
根据你的需求进行调整
- 同步【root】文件系统
xfs_growfs /dev/mapper/centos-root
- 同步完后可通过【df -lh】命令查看【root】所在分区扩容后的大小。
扩容成功!从
50G
到140G
!
Step4
恢复创建
home
分区,再将home
分区的备份进行恢复。
重新创建【home】LVM逻辑卷
- 先根据命令【vgdisplay】查看剩余空间的大小
- 分配空间给
home
目录
lvcreate -L 301.90G -n home centos
- 创建【home】文件系统
mkfs.xfs /dev/centos/home
- 挂载【home】分区
- 将之前home的备份拷贝回来
- 查看
home
分区是否创建成功!
/home
分区创建成功!
实现效果如下:
结语
通过本文学习了如何利用
LVM
和扩展文件系统来高级扩展CentOS 7
根分区的存储空间。这种方法不仅避免了重新安装系统所带来的繁琐和停机时间,还提升了系统的灵活性和可维护性。在执行这些操作之前,请确保您对每个步骤有清晰的理解,并谨慎行事,以确保系统数据的安全性和稳定性。这些技术不仅适用于服务器环境,也适用于需要灵活管理存储的虚拟化环境。
看到这里的小伙伴,恭喜你又掌握了一个技能👊
希望大家能取得胜利,坚持就是胜利💪
我是寸铁!我们下期再见💕
往期好文💕
保姆级教程
【保姆级教程】Windows11下go-zero的etcd安装与初步使用
【保姆级教程】Windows11安装go-zero代码生成工具goctl、protoc、go-zero
【Go-Zero】手把手带你在goland中创建api文件并设置高亮
报错解决
【Go-Zero】Error: user.api 27:9 syntax error: expected ‘:‘ | ‘IDENT‘ | ‘INT‘, got ‘(‘ 报错解决方案及api路由注意事项
【Go-Zero】Error: only one service expected goctl一键转换生成rpc服务错误解决方案
【Go-Zero】【error】 failed to initialize database, got error Error 1045 (28000):报错解决方案
【Go-Zero】Error 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES)报错解决方案
【Go-Zero】type mismatch for field “Auth.AccessSecret“, expect “string“, actual “number“报错解决方案
【Go-Zero】Error: user.api 30:2 syntax error: expected ‘)‘ | ‘KEY‘, got ‘IDENT‘报错解决方案
【Go-Zero】Windows启动rpc服务报错panic:context deadline exceeded解决方案
Go面试向
【Go面试向】defer与time.sleep初探
【Go面试向】defer与return的执行顺序初探
【Go面试向】Go程序的执行顺序
【Go面试向】rune和byte类型的认识与使用
【Go面试向】实现map稳定的有序遍历的方式