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 共享数据

实践建议

  • 生产环境:选 Ext4XFS
  • 高级需求:尝试 Btrfs / ZFS(谨慎)
  • 跨平台:用 VFAT / NTFS

四、常用磁盘管理命令

命令 作用 常用选项
df 查看磁盘空间使用情况 -h(人类可读)、-T(显示文件系统类型)
du 统计目录/文件占用空间 -s(汇总)、-h(人类可读)
lsblk 列出块设备树状结构 无参数即可
blkid 查看分区 UUID 和文件系统 blkid /dev/sda1
mount / umount 挂载/卸载文件系统
mkfs.* 创建文件系统(格式化) mkfs.xfs /dev/sdb1

🔍 df vs du

  • 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 交换分区设置

  1. 创建分区(如 4GB):
    parted /dev/sdb
    mkpart primary linux-swap 1MiB 4GiB
    
  2. 格式化为 swap
    mkswap /dev/sdb1
    
  3. 启用 swap
    swapon /dev/sdb1
    
  4. 永久生效(编辑 /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 常用扩展操作

  • 扩展 VGvgextend 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:成本低,灵活,适合多数场景。


九、总结与最佳实践

  1. 新磁盘 → 优先 GPT 分区
  2. 生产环境 → 选 XFS 或 Ext4
  3. 需要弹性扩容 → 使用 LVM
  4. 高可用/高性能 → 考虑 RAID10
  5. Swap 空间 → 建议单独分区(尤其内存 < 8GB)
  6. 自动挂载 → 编辑 /etc/fstab(注意备份!)

📌 核心流程
加磁盘 → 分区(GPT)→ 格式化(mkfs)→ 挂载(mount)→ 永久配置(/etc/fstab)

posted @ 2025-12-29 10:53  ShiLiCoder  阅读(27)  评论(0)    收藏  举报