【运维】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` | 根目录谁占空间 |
可选现代工具:
```bash
sudo apt install -y ncdu
sudo ncdu /
---
## 2. 场景 A:云盘已在控制台扩容,单分区 ext4(无 LVM)
假设 `/dev/sda3` 已变大,文件系统未跟涨:
```bash
# 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 /
> 分区号 `3` 按 `lsblk` 实际修改。XFS 用 `sudo xfs_growfs /`。
---
## 3. 场景 B:Ubuntu 默认 LVM(`/dev/mapper/ubuntu--vg-ubuntu--lv`)
### 3.1 先看 VG 有没有空闲
```bash
sudo vgdisplay
sudo pvdisplay
sudo lvdisplay
`Free PE / Size` 有剩余 → 直接扩 LV:
```bash
# 吃掉全部 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 未扩
```bash
sudo growpart /dev/sda 3
sudo pvresize /dev/sda3
sudo lvextend -r -l +100%FREE /dev/mapper/ubuntu--vg-ubuntu--lv
### 3.3 指定扩到目标大小
```bash
sudo lvresize -L 50G /dev/mapper/ubuntu--vg-ubuntu--lv
sudo resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv
---
## 4. 场景 C:ESXi / 本地虚拟机加盘
1. hypervisor 侧增大虚拟磁盘
2. 客户机内:
```bash
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. 清理空间(非扩容)
```bash
# 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 篇)
```bash
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 |
---
## 本篇速查
```bash
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
```