Ubuntu 环境下 Cobbler 的磁盘空间管理
一 定位占用与快速清理
- 查看整体使用:使用 df -h 重点关注 /var/www/cobbler、/var/lib/cobbler、/boot、/var/log 等分区;用 du -sh /var/www/cobbler/ | sort -h* 或安装 ncdu(sudo apt install ncdu)精确定位大目录与文件。
- 清理 APT 缓存与无用包:执行 sudo apt clean、sudo apt autoclean、sudo apt autoremove,可快速回收镜像与依赖占用的空间。
- 清理 systemd 日志:查看 journalctl --disk-usage,并按时间或容量清理,例如 sudo journalctl --vacuum-time=3d 或 sudo journalctl --vacuum-size=100M。
- 清理旧内核与 Snap 版本:旧内核可通过 apt autoremove --purge 清理;Snap 旧版本会占用 /var/lib/snapd/snaps,可用 snap list --all 查看并按需移除旧修订。
- 处理被删除但仍被占用的文件:执行 lsof | grep deleted,对占用进程执行重启(如 systemctl restart cobblerd)以释放句柄占用的空间。
- 装机阶段空间不足排查:安装报错如 “No space left on device” 时,除检查目标机磁盘外,也要检查 Cobbler 服务器 的 /tmp 与 /var 分区,必要时将 /tmp 临时挂载到更大分区(如 mount --bind /data/tmp /tmp)后再重试安装。
二 迁移与扩容 Cobbler 存储目录
- 选择更大磁盘或分区,先挂载到临时目录(如 /new/mount/cobbler),用 rsync -av /var/www/cobbler/ /new/mount/cobbler/ 完整迁移数据。
- 停止相关服务:sudo systemctl stop cobblerd apache2(或 nginx)。
- 调整挂载:将新分区写入 /etc/fstab(如 UUID=xxx /var/www/cobbler xfs defaults 0 0),然后 mount -a 验证。
- 同步配置并重启:sudo cobbler sync,随后 sudo systemctl start cobblerd apache2。
- 若 /var/lib/cobbler 也很大,可按同样方法迁移,并确保权限一致(常见属主 cobbler:cobbler)。
- 扩展场景(LVM):添加新盘创建 PV → vgextend 卷组 → lvextend -l +100%FREE 扩容 LV → 按文件系统执行在线扩容(如 xfs_growfs 或 resize2fs)。
三 装机阶段的空间规划与分区策略
- 预置分区建议:为 /boot 预留约 250–512MB(ext2/ext4 皆可),根分区 **/ ** 建议 20–50GB(视用途调整),swap 依据内存与用途设置(如内存 ≤4GB 可配 ≥4GB,容器/数据库节点可酌情减少或关闭),其余空间按需分配给 /var、/home、/opt 等。
- 使用 LVM 的两种方式:
- 原子模式:由安装器自动创建卷组(常见为约 10GB 的 VG),其中 swap≈内存大小,其余空间分配给 /,适合快速标准化部署。
- 手工模式:显式定义各 LV 大小与文件系统,便于精确控制(如 boot 单独分区、VG 使用剩余空间的百分比等)。
- 大容量磁盘与文件系统:当单盘或阵列容量超过 16TB 时,避免使用 ext4(传统限制),优先 XFS 或 ext4 启用 64 位支持;若已用 ext4 装完仅识别到 16TB,需重装并使用合适文件系统。
- 装机临时目录:若 /tmp 空间不足,可在装机引导或 preseed 中调整 TMPDIR 指向更大分区,或在 Cobbler 服务器上临时 bind mount 更大目录到 /tmp 后再 PXE 安装。
四 自动化监控与维护
- 定期清理脚本:在 /etc/crontab 加入每日任务(示例)
- 0 3 * * * root /usr/bin/apt clean && /usr/bin/ncdu -xq /var/www/cobbler && /usr/bin/journalctl --vacuum-time=7d
- 容量告警:当使用率超过阈值(如 80%)发送邮件
- 0 8 * * * root df -h | awk ‘$5+0 > 80 {print "WARN: " $0}’ | mail -s “Disk usage alert” admin@example.com
- 变更后同步:每次调整镜像、配置或目录后执行 sudo cobbler sync,确保 DHCP+TFTP+HTTP 与导入镜像等资源一致。