【CentOS 7】深入指南:使用LVM和扩展文件系统增加root分区存储容量

寸 铁 2024-07-21 16:37:03 阅读 79

【CentOS 7】深入指南:使用LVM和扩展文件系统增加root分区存储容量

大家好 我是寸铁👊

【CentOS 7】深入指南:使用LVM和扩展文件系统增加root分区存储容量 ✨

喜欢的小伙伴可以点点关注 💝

在这里插入图片描述


前言

在运行<code>CentOS 7服务器或虚拟机时,管理根分区的存储空间是系统管理者必须面对的重要问题之一。随着应用程序和数据的增长,根分区可能会迅速耗尽空间,影响系统的正常运行。传统上,扩展根分区的方法可能会涉及重新分区和重新安装系统,这些操作不仅繁琐,还会导致系统停机时间,给业务和用户带来不便。

然而,利用LVM(逻辑卷管理)和扩展文件系统的高级技术,您可以在不重新安装系统的情况下扩展根分区的存储容量,从而满足不断增长的存储需求。LVM技术允许您动态地管理硬盘空间,将物理硬盘划分为逻辑卷,而扩展文件系统则使得逻辑卷能够利用新增的空间,无需中断系统运行。

步骤概述:

- 备份数据:在进行任何系统更改之前,务必备份所有重要数据。尽管LVM和扩展文件系统的操作通常是安全的,但预防措施总是值得的。

扩展物理卷:如果您有未分配的磁盘空间,可以将其添加到LVM物理卷中。使用pvcreate命令将新磁盘或分区添加到物理卷组中。

扩展逻辑卷:使用vgextend命令将物理卷添加到现有的卷组中,然后使用lvextend命令扩展根逻辑卷的大小。

扩展文件系统:最后一步是使用适当的文件系统工具(如resize2fs或xfs_growfs)来扩展文件系统,使其能够利用新分配的空间。

验证和重启:在完成扩展操作后,验证新空间是否成功添加到根分区。根据需要,重启系统以确保所有更改生效。


实现

Step1

先将home分区进行备份

查看分区大小:

df -lh

在这里插入图片描述


备份home分区

在这里插入图片描述


Step2

再将<code>home分区全部删除释放出可以分配给root空间的内存。

卸载【home】目录

umount /home/

在这里插入图片描述


现在可以看到home分区不存在了

在这里插入图片描述


删除【home】所在的LVM逻辑卷

<code>lvremove /dev/mapper/centos-home

在这里插入图片描述


Step3

给<code>root分区分配需要的内存

增加【root】所在LVM逻辑卷的容量

lvextend -L +90G /dev/mapper/centos-root

在这里插入图片描述

命令中的<code>90G根据你的需求进行调整


同步【root】文件系统

xfs_growfs /dev/mapper/centos-root

在这里插入图片描述


同步完后可通过【df -lh】命令查看【root】所在分区扩容后的大小。

扩容成功!从<code>50G到140G

在这里插入图片描述


Step4

恢复创建<code>home分区,再将home分区的备份进行恢复。

重新创建【home】LVM逻辑卷

先根据命令【vgdisplay】查看剩余空间的大小

在这里插入图片描述

分配空间给<code>home目录

lvcreate -L 301.90G -n home centos

在这里插入图片描述


创建【home】文件系统

<code>mkfs.xfs /dev/centos/home

在这里插入图片描述


挂载【home】分区

在这里插入图片描述


将之前home的备份拷贝回来

在这里插入图片描述

查看<code>home分区是否创建成功!

/home分区创建成功!

在这里插入图片描述


实现效果如下:

在这里插入图片描述


结语

通过本文学习了如何利用<code>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稳定的有序遍历的方式



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。