Linux磁盘管理实战——从分区规划到在线扩容(MBR/GPT、LVM合并、热扩展)详解
1. 磁盘管理基础概念想象你的服务器是个大仓库磁盘就是货架。当货架快满时管理员需要决定是换个更大的货架换硬盘还是把相邻空货架合并使用LVM扩容。Linux磁盘管理核心就是解决三个问题怎么划分货架区域分区、怎么给货物贴分类标签文件系统、怎么让仓库员工快速找到货物挂载。我遇到过最典型的场景是某电商平台促销期间日志目录/var/log突然爆满导致服务崩溃。当时用df -h查看发现使用率100%紧急扩容后才发现根本原因是日志轮转配置错误。这个教训告诉我们磁盘管理不仅要会扩容更要提前做好容量规划。MBR与GPT分区表区别就像仓库的两种管理台账MBR老账本最多记录4个主货架分区单个货架不超过2TBGPT新账本支持128个货架单个货架最大8ZB1ZB10亿TB查看分区表的命令# 查看现有磁盘 lsblk # 查看分区表类型 sudo parted -l | grep Partition Table2. 生产环境分区规划实战去年给某金融客户设计的分区方案要求满足系统隔离/home独立分区防止用户挤占系统空间日志隔离/var/log独立分区避免日志爆盘影响系统数据安全采用LVM实现灵活扩容推荐的分区方案以1TB SSD为例/boot 1GB (标准分区) swap 32GB (根据内存大小调整) / 100GB /home 200GB /var/log 50GB /data 剩余空间 (LVM管理)使用parted创建GPT分区的实操sudo parted /dev/nvme0n1 (parted) mklabel gpt (parted) mkpart primary ext4 1MiB 1GiB (parted) set 1 boot on (parted) mkpart primary linux-swap 1GiB 33GiB (parted) mkpart primary ext4 33GiB 133GiB3. LVM在线扩容完整流程当监控报警显示/data目录剩余空间不足10%时LVM扩容是最佳解决方案。上周刚帮客户完成不停机扩容具体步骤3.1 添加新磁盘# 扫描新磁盘适用于热插拔 echo 1 /sys/class/scsi_host/host0/scan3.2 创建物理卷pvcreate /dev/sdb3.3 扩展卷组vgextend vg_data /dev/sdb3.4 扩展逻辑卷# 查看剩余PE数量 vgdisplay vg_data | grep Free # 扩展200G lvextend -L 200G /dev/vg_data/lv_data3.5 在线扩容文件系统# 对ext4文件系统 resize2fs /dev/vg_data/lv_data # 对xfs文件系统 xfs_growfs /data关键提示操作前务必用lsblk确认设备名我曾经把sdb错看成sdd差点酿成事故4. 文件系统扩容技巧不同文件系统的扩容方式文件系统扩容命令是否支持缩容最大文件大小ext4resize2fs是16TBxfsxfs_growfs否8EBbtrfsbtrfs filesystem是16EB扩容时遇到的坑用df看到的容量不准确试试lsblk查看真实分配空间扩容后du和df显示不一致可能是被删除文件仍被进程占用# 查找被删除但未释放的文件 lsof L15. 自动化挂载与故障处理持久化挂载的三种方法/etc/fstab标准方式推荐UUIDxxxx /data xfs defaults 0 0自动挂载服务适合NFSsystemctl enable --now automountsystemd挂载单元适合需要依赖关系的场景# /etc/systemd/system/data.mount [Unit] Requiresnetwork-online.target [Mount] What/dev/vg_data/lv_data Where/data Typexfs Optionsdefaults挂载故障排查步骤检查dmesg | grep error是否有磁盘错误使用fsck修复文件系统需先umount测试挂载mount -o ro /dev/sdb1 /mnt只读模式更安全6. 磁盘管理实用命令集监控类# 实时监控磁盘IO iotop -oP # 查看磁盘健康状态 smartctl -a /dev/sda性能测试# 测试随机读写速度单位MB/s fio --namerandwrite --ioenginelibaio --rwrandwrite --bs4k --size1G --numjobs4 --runtime60 --time_based --end_fsync1安全擦除# 快速擦除全写0 dd if/dev/zero of/dev/sdX bs1M statusprogress # 安全擦除需要硬盘支持 hdparm --user-master u --security-erase Pass /dev/sdX7. 企业级最佳实践容量规划按照20/80法则预留空间生产环境建议使用率不超过80%监控策略对/、/var、/home分别设置报警阈值备份方案LVM快照异地备份的组合拳# 创建快照 lvcreate -L 10G -s -n db_snapshot /dev/vg_data/lv_db # 恢复快照 lvconvert --merge /dev/vg_data/db_snapshot性能优化对数据库分区使用noatime,nodiratime挂载选项最近处理的一个案例某MySQL服务器频繁卡顿发现是默认的ext4日志导致IO瓶颈。改用datawriteback挂载选项后TPS提升了40%。这提醒我们不同业务场景需要匹配不同的文件系统参数。