1. 为什么你的Linux根目录总是不够用?
不知道你有没有遇到过这种情况,服务器用着用着,突然就弹出一个“磁盘空间不足”的警告,一看是根目录 / 快满了。这时候你急急忙忙登录服务器,输入 df -h 一看,发现一个很有意思的现象:根目录 /dev/mapper/centos-root 可能只有50G,已经红了,而隔壁的 /home 分区,也就是 /dev/mapper/centos-home,可能挂着几百个G,使用率却只有个位数。
这场景太典型了。很多云服务器或者自己安装的Linux系统,默认的LVM分区方案就是这么“豪放”,给 /home 分配了巨量空间,而给真正跑系统、装软件、存日志的根目录却抠抠搜搜。结果就是,/home 下面空空如也,根目录却天天告急,应用装不下,日志不敢留,动不动就要清理,运维起来特别头疼。
我接手过不少这样的服务器,每次看到这种分配都哭笑不得。但别慌,这个问题有非常优雅的解决方案,而且完全可以在线操作,不需要重启服务器,更不需要重装系统。核心武器就是Linux自带的 LVM(逻辑卷管理)。简单来说,LVM就像给你的硬盘空间搭了一个灵活的“乐高积木”平台。/home 和 / 根目录在LVM看来,只是两个用不同大小的“积木块”(逻辑卷)拼出来的分区。我们的目标,就是把 /home 那块闲置的大积木,切一部分下来,拼到根目录那块小积木上,实现空间的动态调配。
听起来是不是比想象中简单?没错,只要理解了LVM的基本概念,跟着步骤一步步来,这个操作其实风险可控,效果立竿见影。今天,我就把自己在生产环境里实操过多次的完整流程,包括每个命令背后的原理、可能踩的坑以及回退方案,毫无保留地分享给你。无论你是刚入行的运维新手,还是遇到类似困境的老手,这篇指南都能带你安全、平滑地完成这次“空间乾坤大挪移”。
2. 动手前,你必须知道的LVM核心概念与风险
在真正敲命令之前,我们得花点时间把LVM的“地图”搞清楚。盲目操作,尤其是在生产服务器上,无异于“裸奔”。理解下面这几个核心概念,能让你明白自己在做什么,以及万一出了问题该怎么找回去的路。
LVM的三大核心组件:PV、VG、LV 你可以把LVM想象成一个三层结构的存储池:
- 物理卷(Physical Volume, PV):这就是最底层的“砖头”,通常是一整块硬盘(比如
/dev/sda)或者硬盘上的一个分区。命令pvdisplay可以查看它们。 - 卷组(Volume Group, VG):把多块“砖头”(PV)堆在一起,就形成了一个大的“沙堆”(VG)。所有空间在这里被打通、汇总。我们常说的
centos就是一个VG的名字。命令vgdisplay可以查看卷组详情。 - 逻辑卷(Logical Volume, LV):这才是我们最终能用的“分区”。我们从“沙堆”(VG)里,挖出一定量的沙子,塑造成一个逻辑卷(LV),然后才能在上面创建文件系统(比如xfs, ext4)并挂载使用。
/dev/mapper/centos-root和/dev/mapper/centos-home就是两个LV。
我们这次操作的本质是什么? 我们的根目录(/)和家目录(/home)分别挂载在两个LV上。当前,centos-home 这个LV很大但很空,centos-root 这个LV很小但很满。目标是把 centos-home LV的空间释放一部分给VG,然后再从VG里分配更多的空间给 centos-root LV。
关键风险预警:数据无价! 整个操作最大的风险点在于 /home 目录的数据。因为我们需要先卸载并删除 centos-home 这个LV,才能释放其空间。这意味着:
- 备份是铁律! 必须确保
/home下的所有数据有完整、可用的备份。即使/home看起来是空的,也可能有隐藏的配置文件或用户数据。 - 进程占用是魔鬼! 如果有任何进程正在使用
/home下的文件(比如用户通过SSH登录着,某个服务在读取/home下的配置文件),你将无法卸载它。强制操作可能导致数据损坏或系统异常。 - 操作顺序是生命线!<

3818

被折叠的 条评论
为什么被折叠?



