1. 创建物理卷(PV)
pvcreate /dev/sdb1 /dev/sdb2
2. 创建卷组(VG)
vgcreate myvg /dev/sdb1 /dev/sdb2
3. 创建逻辑卷(LV)
lvcreate -L 10G -n mylv myvg
4. 格式化并挂载
mkfs.ext4 /dev/myvg/mylv
mount /dev/myvg/mylv /mnt/data
**LVM 优势**:
| 功能 | 命令 | 说明 |
|------|------|------|
| **动态扩容** | `lvextend -L +5G /dev/myvg/mylv` | 在线扩展,无需卸载 |
| **动态缩容** | `lvreduce -L -5G /dev/myvg/mylv` | 需先缩文件系统,风险高 |
| **快照** | `lvcreate -s -n snap -L 1G /dev/myvg/mylv` | 用于备份 |
| **迁移** | `pvmove /dev/sdb1` | 在线迁移数据到新磁盘 |
【延伸追问】
- LVM 的优缺点?(灵活性提升 vs 性能略微下降)
- 如何在 LVM 上扩展文件系统?(`resize2fs` 或 `xfs_growfs`)
【易错坑点】
- **LVM 缩容必须先缩文件系统再缩 LV**,顺序反了会损坏数据
- XFS 文件系统不支持缩容,只能扩容
---
## 查看磁盘使用情况
【题目】
如何查看 Linux 系统的磁盘使用情况?
【参考答案】
```bash
# 查看文件系统磁盘使用
df -h
# 示例输出:
# Filesystem Size Used Avail Use% Mounted on
# /dev/sda1 98G 45G 53G 46% /
# 查看目录/文件大小
du -sh /var/log # 查看目录总大小
du -sh * | sort -rh # 按大小排序当前目录下所有项目
# 查看磁盘设备
lsblk # 查看磁盘和分区
fdisk -l # 查看磁盘详情
df 关键字段:
| 字段 | 说明 |
|------|------|
| Size | 总容量 |
| Used | 已用空间 |
| Avail | 可用空间(非 root 用户的实际可用) |
| Use% | 使用率 |
| Mounted on | 挂载点 |
【延伸追问】
-
df显示的 Avail + Used ≠ Size,为什么?(预留空间 5%) -
磁盘使用率 100% 会导致什么后果?
【易错坑点】
-
du不统计已删除但仍有进程持有的文件,df显示的空间可能比du大 -
root 用户有 5% 的预留空间,普通用户无法使用
KVM 虚拟化
【题目】
简单介绍 KVM 虚拟化?
【参考答案】
KVM(Kernel-based Virtual Machine) 是一个开源的系统虚拟化模块,将 Linux 内核转变为 Type-1 Hypervisor。
核心架构:
| 组件 | 作用 |
|------|------|
| KVM 模块 | CPU 虚拟化 + 内存虚拟化(硬件辅助) |
| QEMU | IO 虚拟化(磁盘、网络、USB) |
| libvirt | 管理 API / 工具集 |
KVM vs VMware:
| 特性 | KVM | VMware vSphere |
|------|-----|---------------|
| 许可证 | 开源免费 | 商业收费 |
| 底层 | Linux 内核模块 | 专有 Hypervisor |
| Linux 支持 | ✅ 原生优势 | 一般 |
| 管理工具 | libvirt + virt-manager | vCenter |
| 生产使用 | 广泛(OpenStack 默认) | 企业传统选择 |
【延伸追问】
-
KVM 的三种网络模式(NAT、Bridge、隔离网络)的区别?
-
raw 和 qcow2 磁盘格式的区别?(性能 vs 功能:快照、动态扩容)
【易错坑点】
-
KVM 需要 CPU 硬件虚拟化支持(Intel VT / AMD-V)
-
KVM 本身只做 CPU 和内存虚拟化,IO 虚拟化需要 QEMU 配合
关联文档
- ../Ceph 分布式存储 — 分布式存储
- ../../linux/故障排查/服务器坏道诊断与修复 — 磁盘故障排查
