根分区不够用了:openEuler 上 LVM 逻辑卷在线扩容实操

服务器跑了半年,某天 df -h 一看,根分区用到九成多:日志、业务数据、Docker 镜像全往根里塞,告警已经开始刷屏。好消息是 openEuler 默认安装就是 LVM 布局,而 LVM 的逻辑卷支持在线扩容——业务不用停、机器不用重启,这篇按步骤走一遍。

一、先看清现状

第一步确认两件事:哪个分区满了、它是不是 LVM 设备。

df -h

根分区如果显示为 /dev/mapper/xxx-root 这样的设备名,就是逻辑卷;openEuler 默认装法直接满足。再看卷组有没有余粮:

vgdisplay

盯两处:卷组名(后面命令要用),以及 Free PE 那一行——还有空闲物理块,直接跳到第三节扩逻辑卷;是 0,就先按第二节给卷组加空间。

二、卷组扩容:加一块新盘

物理机插盘、云平台挂盘,假设新盘识别为 /dev/sdb(盘符以实际为准)。先把它建成物理卷:

pvcreate /dev/sdb

再把物理卷加进现有卷组:

vgextend vg1 /dev/sdb

vg1 换成自己的卷组名。跑完再 vgdisplay,Free PE 从 0 变成新盘容量,弹药到位。

三、逻辑卷在线扩容

核心就一条命令(卷组名、逻辑卷名、增量换成自己的):

lvextend -L +100M /dev/vg1/lv1

官方文档对这条命令的说明值得记住:可以动态在线扩展逻辑卷的空间大小,而不中断应用程序对逻辑卷的访问。也就是说根分区扩容期间,跑着的服务照常跑。根分区对应的设备名用 df -h 里看到的那个,比如 /dev/卷组名/root,增量按需给足,如 -L +50G。

顺带一个警告:同族的 lvresize、lvreduce 能缩逻辑卷,但官方文档明确提示操作不慎可能导致数据丢失。收缩场景先备份、再三确认,日常扩容只碰 lvextend 就够。

四、别漏了最后一步:文件系统

很多人扩完就去看 df -h,发现容量没变——因为逻辑卷变大了,文件系统还停在老大小,这层要单独跟一步。openEuler 默认根分区是 ext4:

resize2fs /dev/mapper/xxx-root

装系统时如果选了 xfs,则用 xfs_growfs 加挂载点(注意 xfs 用的是挂载点不是设备名,且只扩不缩):

xfs_growfs /

跑完再 df -h,容量到位。整条链路:pvcreate → vgextend → lvextend → 文件系统跟一步,全程不停业务。

五、防复发的两个习惯

第一,日志和业务数据别长期堆在根分区,/var 或数据目录单独建卷,把增长源隔离出去;第二,监控把根分区阈值设在八成报警,留出加盘采购的时间——扩容是手艺,不被动才是运维。

企业存储选型参考|贵州诚鑫致达

做备份容灾一体机方案,群晖机型参考:DP7400 · DP520 · DP320。需要选型建议或上门评估,搜「诚鑫致达」即可找到我们。