// PC530 技术论坛 v1.0
● online 登录 / 注册
返回列表
运维与云原生 #运维

【运维】Linux 服务器实战(3):磁盘查看与 LVM/云盘扩容


Linux 服务器实战 · 第 3 篇
磁盘满了、云盘扩了但 df 没涨?本篇讲 查看占用 + LVM/分区扩容


1. 先看清楚磁盘结构

df -h
lsblk -f
sudo fdisk -l
命令 用途
df -h 各挂载点使用率
lsblk 磁盘 → 分区 → LVM 树
du -sh /* 2>/dev/null | sort -rh | head 根目录谁占空间

可选现代工具:

sudo apt install -y ncdu
sudo ncdu /

2. 场景 A:云盘已在控制台扩容,单分区 ext4(无 LVM)

假设 /dev/sda3 已变大,文件系统未跟涨:

# 1. 扩分区(Growpart 来自 cloud-guest-utils)
sudo apt install -y cloud-guest-utils
sudo growpart /dev/sda 3

# 2. 扩文件系统(ext4)
sudo resize2fs /dev/sda3

df -h /

分区号 3lsblk 实际修改。XFS 用 sudo xfs_growfs /


3. 场景 B:Ubuntu 默认 LVM(/dev/mapper/ubuntu--vg-ubuntu--lv

3.1 先看 VG 有没有空闲

sudo vgdisplay
sudo pvdisplay
sudo lvdisplay

Free PE / Size 有剩余 → 直接扩 LV:

# 吃掉全部 VG 空闲
sudo lvextend -r -l +100%FREE /dev/ubuntu-vg/ubuntu-lv
# 路径也可能是 /dev/mapper/ubuntu--vg-ubuntu--lv

df -h /

-r 会自动 resize2fs

3.2 分区大了,但 PV 未扩

sudo growpart /dev/sda 3
sudo pvresize /dev/sda3
sudo lvextend -r -l +100%FREE /dev/mapper/ubuntu--vg-ubuntu--lv

3.3 指定扩到目标大小

sudo lvresize -L 50G /dev/mapper/ubuntu--vg-ubuntu--lv
sudo resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv

4. 场景 C:ESXi / 本地虚拟机加盘

  1. hypervisor 侧增大虚拟磁盘
  2. 客户机内:
sudo partprobe
lsblk
# 若需新分区:sudo cfdisk /dev/sda  或 growpart
sudo pvresize /dev/sda3
sudo lvextend -r -l +100%FREE /dev/mapper/ubuntu--vg-ubuntu--lv

扩完后 fdisk -l 不应再报 GPT PMBR size mismatch(若仍报,重启或 partprobe 后再查)。


5. 清理空间(非扩容)

# journal 过大(详见第 4 篇)
sudo journalctl --disk-usage
sudo journalctl --vacuum-time=7d

# 不用 snap 时可清理 loop 占用
sudo apt autoremove --purge snapd

# 删 10 天前备份
find /home/backup -mtime +10 -type f -delete

6. 磁盘 IO 谁在写(预告第 6 篇)

sudo apt install -y iotop
sudo iotop -oPa

常见坑

现象 原因
控制台扩了盘,df 不变 只扩了虚拟盘,未 growpart / pvresize / resize2fs
lvextend 报 insufficient free space PV 未 resize,或扩错分区
生产环境 先快照/备份;LVM 操作前 lvdisplay 确认路径

系列导航

主题
1 /forum/13/ 初始化
2 /forum/14/ SSH 安全
3 磁盘与 LVM(本文)
4–8 日志 / 网络 / 监控 / 诊断 / Cron

本篇速查

df -h && lsblk && sudo vgdisplay
sudo growpart /dev/sda N && sudo pvresize /dev/sdaN
sudo lvextend -r -l +100%FREE /dev/mapper/ubuntu--vg-ubuntu--lv