Linux分卷怎样优化磁盘空间使用
小樊
34
2025-12-06 02:59:29
Linux 分卷优化磁盘空间使用的实用方案
一、用 LVM 提升空间利用率的核心思路
- 通过 LVM(逻辑卷管理) 将多块磁盘聚合成 卷组 VG,按需切分 逻辑卷 LV,避免传统分区“分死”的问题。
- 空间不足时,先从 VG 空闲空间给 LV 在线扩容;若 VG 不足,新增磁盘创建 PV 后加入 VG 再分配。
- 需要回收空间时,先对文件系统做离线缩容,再缩 LV;缩容顺序务必为:检查文件系统 → 缩小文件系统 → 缩小 LV。
- 典型对象与命令:PV(pvcreate/pvdisplay)、VG(vgcreate/vgextend/vgdisplay)、LV(lvextend/lvreduce/lvdisplay)。
二、在线扩容的标准流程
- 场景 A(VG 内还有空闲 PE):
- 查看:df -h、lvs、vgs
- 扩容 LV:lvextend -L +50G /dev/vg0/lv_data(或 -l +100%FREE 用尽空闲)
- 扩容文件系统:
- ext2/3/4:resize2fs /dev/vg0/lv_data
- xfs:xfs_growfs /mount/point(XFS 按挂载点扩)
- 场景 B(VG 已满,新增磁盘):
- 分区并设类型:fdisk /dev/sdb → t → 8e(Linux LVM) → w
- 通知内核:partprobe /dev/sdb
- 创建 PV/VG/LV:pvcreate /dev/sdb1 → vgextend vg0 /dev/sdb1 → lvextend -L +100G /dev/vg0/lv_data
- 扩文件系统(同上)
- 要点:ext4 可在线扩;XFS 仅支持在线扩容,不支持在线缩容。
三、安全缩容与空间回收
- 原则:缩容前必须确保 文件系统已缩小到目标大小或更小,否则会损坏数据。
- 步骤(以 ext4 为例):
- 卸载:umount /data
- 强制检查:e2fsck -f /dev/vg0/lv_data
- 缩文件系统:resize2fs /dev/vg0/lv_data 20G
- 缩 LV:lvreduce -L 20G /dev/vg0/lv_data
- 重新挂载:mount /data;核对:df -h
- 风险提示:缩容有数据风险,务必先备份;XFS 不支持缩容,如需缩容应先备份、重建为 ext4 或迁移数据。
四、空间回收与迁移的高级操作
- 磁盘退役/更换:
- 数据迁移:pvmove /dev/sdb1(将 PV 上数据迁走)
- 从 VG 移除:vgreduce vg0 /dev/sdb1
- 清理:pvremove /dev/sdb1
- 跨 LV 调整空间(示例:从 /home 回收空间给 /):
- 卸载 /home:umount /home
- 缩 /home 文件系统:resize2fs -p /dev/mapper/vg0-lv_home 20G
- 缩 /home LV:lvreduce -L 20G /dev/mapper/vg0-lv_home
- 扩 / LV:lvextend -L +200G /dev/mapper/vg0-lv_root
- 扩 / 文件系统:resize2fs /dev/mapper/vg0-lv_root
- 挂载 /home 并核对:mount /home && df -h
- 故障与启动修复要点:
- 无法卸载时用 fuser -m /mount 查占用并终止;
- 启动异常可进 救援/单用户修复,必要时 fsck 检查;
- /etc/fstab 挂载项错误会导致无法启动,必要时以 rw 模式挂载后注释问题行。
五、容量规划与文件系统选择
- 分区建议:/boot ≈ 500M;Swap ≈ 内存 1–1.5 倍,通常不超过 8G;/ ≥ 50G;/home 按业务实际分配并预留余量。
- 文件系统:>2TB 磁盘优先 XFS;通用场景 ext4 成熟可靠。
- 分区表:<2TB 可用 MBR;需要更大容量或更多分区时使用 GPT。