Linux 磁盘管理
Linux 磁盘管理笔记(基于 CentOS Stream 9)
一、磁盘管理概述
磁盘管理是操作系统对存储设备(如 HDD、SSD、RAID)进行分区、格式化、挂载、卷管理等操作的过程,目的是让数据能被正常访问和存储。
在 CentOS Stream 9 中,磁盘管理主要包括:
- 磁盘分区(MBR / GPT)
- 文件系统管理(Ext4 / XFS / Btrfs)
- 挂载与卸载(
mount/umount//etc/fstab) - 逻辑卷管理(LVM)
- RAID 阵列管理(软/硬 RAID)
二、磁盘结构与接口
2.1 硬盘逻辑结构
- 最小存储单位:扇区(Sector),默认大小为 512 Byte
- 硬盘容量计算公式:
磁头数 × 柱面数 × 扇区数 × 每扇区字节数
2.2 常见磁盘接口
| 接口 | 特点 | 速率(理论最大) | 用途 |
|---|---|---|---|
| SATA | 消费级主流,兼容性强,支持热插拔 | 6.0 Gbps (600 MB/s) | HDD / SATA SSD |
| SAS | 企业级,高可靠,双端口 | 12.0 Gbps | 服务器/数据中心 |
| NVMe | 专为 SSD 设计,走 PCIe 通道 | PCIe 5.0 x4: 128 Gbps (~16 GB/s) | 高性能 NVMe SSD |
| IDE (PATA) | 已淘汰 | ≤133 MB/s | 老式设备 |
✅ 推荐:新系统优先使用 NVMe + GPT + XFS/Ext4
三、文件系统
3.1 文件系统组成
- 超级块(Superblock):记录元信息(大小、类型等)
- inode:存储文件元数据(权限、大小、时间戳)
- 数据块:实际存储文件内容
- 目录结构:组织和索引文件
3.2 常见文件系统对比
| 文件系统 | 最大单文件 | 最大卷 | 优势 | 劣势 | 适用场景 |
|---|---|---|---|---|---|
| Ext4 | 16TB | 1EB | 稳定、兼容性好、广泛支持 | 无快照、压缩等高级功能 | 通用 Linux 系统 |
| XFS | 8EB | 8EB | 高性能、并行 I/O、适合大文件 | 不支持收缩、修复工具少 | 数据库、虚拟化、NAS |
| Btrfs | 16EB | 16EB | 快照、压缩、子卷、RAID | 稳定性较差(不建议生产) | 实验环境、需快照场景 |
| F2FS | 4TB | 16TB | 专为闪存优化,减少磨损 | 社区支持弱 | SSD / 嵌入式设备 |
| ZFS | 16EB | 16EB | 数据完整性强、快照、内置 RAID | 内存消耗高、非内核默认 | 存档、云存储 |
| VFAT | 4GB | 2TB | 跨平台(Win/Linux) | 无权限、不支持大文件 | U 盘、移动硬盘 |
| NTFS | 16EB | 16EB | Win 默认,支持加密/压缩 | Linux 需 ntfs-3g,性能低 |
与 Windows 共享数据 |
✅ 实践建议:
- 生产环境:选 Ext4 或 XFS
- 高级需求:尝试 Btrfs / ZFS(谨慎)
- 跨平台:用 VFAT / NTFS
四、常用磁盘管理命令
| 命令 | 作用 | 常用选项 |
|---|---|---|
df |
查看磁盘空间使用情况 | -h(人类可读)、-T(显示文件系统类型) |
du |
统计目录/文件占用空间 | -s(汇总)、-h(人类可读) |
lsblk |
列出块设备树状结构 | 无参数即可 |
blkid |
查看分区 UUID 和文件系统 | blkid /dev/sda1 |
mount / umount |
挂载/卸载文件系统 | — |
mkfs.* |
创建文件系统(格式化) | mkfs.xfs /dev/sdb1 |
🔍
dfvsdu:
df:统计磁盘空间剩余量(准确)du:统计文件实际占用量(准确)
五、磁盘分区
5.1 分区表类型对比
| 属性 | MBR | GPT |
|---|---|---|
| 最大容量 | 2TB | >2TB(理论 8ZB) |
| 最大分区数 | 4 主分区(或 3+1 扩展) | 128+(无硬限制) |
| 引导支持 | BIOS | BIOS + UEFI |
| 数据安全 | 无备份,易损坏 | 多份备份 + CRC 校验 |
| 兼容性 | 老系统兼容好 | 现代系统标准 |
✅ 推荐:新磁盘一律使用 GPT
5.2 MBR 分区(fdisk)
fdisk /dev/sdb
# n → p → 回车(默认)→ w(保存)
5.3 GPT 分区(parted)
parted /dev/nvme0n2
(parted) mklabel gpt
(parted) mkpart primary xfs 1MiB 100%
(parted) print
(parted) quit
⚠️
parted操作立即生效,无“保存”步骤!
💡 也可用
gdisk(交互类似fdisk,但用于 GPT)
六、Swap 交换分区设置
- 创建分区(如 4GB):
parted /dev/sdb mkpart primary linux-swap 1MiB 4GiB - 格式化为 swap:
mkswap /dev/sdb1 - 启用 swap:
swapon /dev/sdb1 - 永久生效(编辑
/etc/fstab):/dev/sdb1 none swap sw 0 0
🔄 关闭:
swapoff /dev/sdb1
七、LVM(逻辑卷管理)
7.1 LVM 结构
- PV(Physical Volume):物理卷(整盘或分区)
- VG(Volume Group):卷组(多个 PV 合并)
- LV(Logical Volume):逻辑卷(可挂载的“虚拟分区”)
7.2 基本操作流程
# 1. 创建 PV
pvcreate /dev/sdb /dev/sdc
# 2. 创建 VG
vgcreate vg_data /dev/sdb /dev/sdc
# 3. 创建 LV(50GB)
lvcreate -L 50G -n lv_data vg_data
# 4. 格式化 & 挂载
mkfs.xfs /dev/vg_data/lv_data
mkdir -p /mnt/data
mount /dev/vg_data/lv_data /mnt/data
7.3 常用扩展操作
- 扩展 VG:
vgextend vg_name /dev/new_pv - 扩展 LV:
lvextend -L +10G /dev/vg_data/lv_data xfs_growfs /mnt/data # XFS resize2fs /dev/vg_data/lv_data # Ext4 - 移除 PV:
pvmove /dev/sdb # 迁移数据 vgreduce vg_data /dev/sdb pvremove /dev/sdb
7.4 快照(Snapshot)
# 创建 1GB 快照
lvcreate -L 1G -s -n lv_data_snap /dev/vg_data/lv_data
# 恢复快照
lvconvert --merge /dev/vg_data/lv_data_snap
✅ LVM 优势:动态扩容、快照备份、多盘整合
八、RAID(独立磁盘冗余阵列)
8.1 常见 RAID 级别
| RAID | 性能 | 冗余 | 空间利用率 | 最小盘数 | 适用场景 |
|---|---|---|---|---|---|
| 0 | ⬆️ 高 | ❌ 无 | 100% | 2 | 临时数据、高性能 |
| 1 | ➖ 读快 | ✅ 镜像 | 50% | 2 | 高可靠性(DB) |
| 5 | ➖ 读高写低 | ✅ 单盘容错 | (N-1)/N | 3 | 文件服务器 |
| 10 | ⬆️ 高 | ✅ 双盘容错 | 50% | 4 | 高性能+高可用(DB) |
8.2 软件 RAID(mdadm)
# 安装
dnf -y install mdadm
# 创建 RAID1
mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdb /dev/sdc
# 生成配置
mdadm --detail --scan --verbose >> /etc/mdadm.conf
# 更新 initramfs
dracut --force
8.3 清除 RAID
mdadm --stop /dev/md0
mdadm --remove /dev/md0
mdadm --zero-superblock /dev/sdb /dev/sdc
rm -f /etc/mdadm.conf
dracut --force
⚠️ 硬件 RAID:性能更好,需专用控制器;软件 RAID:成本低,灵活,适合多数场景。
九、总结与最佳实践
- 新磁盘 → 优先 GPT 分区
- 生产环境 → 选 XFS 或 Ext4
- 需要弹性扩容 → 使用 LVM
- 高可用/高性能 → 考虑 RAID10
- Swap 空间 → 建议单独分区(尤其内存 < 8GB)
- 自动挂载 → 编辑
/etc/fstab(注意备份!)
📌 核心流程:
加磁盘 → 分区(GPT)→ 格式化(mkfs)→ 挂载(mount)→ 永久配置(/etc/fstab)

浙公网安备 33010602011771号