// 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` | 根目录谁占空间 |

可选现代工具:

```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

```