在 CentOS(尤其是 CentOS 7/8,或其继任者 Rocky Linux/AlmaLinux 等 RHEL 兼容发行版)中,系统盘(即 / 根分区)的推荐大小需结合使用场景、软件规模、日志策略、更新频率及是否启用快照(如 LVM/LVMSnap)综合考虑。以下是经过实践验证的分层建议:
✅ 基础原则
- 避免过小:
< 10 GB极易因更新、日志、缓存填满导致系统故障(如yum update失败、服务崩溃)。 - 不盲目求大:若数据/应用单独挂载(强烈推荐),根分区无需过大,便于维护和备份。
📏 推荐分配方案(以传统分区或 LVM 方式)
| 使用场景 | 最小建议 | 推荐分配 | 说明 |
|---|---|---|---|
| 最小化安装(仅基础命令 + SSH) (如跳板机、轻量监控节点) |
8–10 GB | 15–20 GB | 包含内核更新(保留旧内核)、/var/log 日志轮转(默认保留约1个月)、临时缓存 |
| 标准服务器(Web/Nginx/Apache、数据库客户端、常用工具) | 15 GB | 25–40 GB | 足够容纳多个内核版本、/var/cache/yum、/var/lib/rpm 数据库、常规日志增长 |
| 开发/测试环境(含 Docker、Java/Python 运行时、编译工具) | 25 GB | 40–60 GB | Docker 镜像/容器默认存于 /var/lib/docker(⚠️但强烈建议单独挂载 /var/lib/docker!否则极易撑爆根分区) |
| 生产数据库服务器(MySQL/PostgreSQL) | 30 GB | 50–80 GB | 同样强调:数据目录(如 /var/lib/mysql)必须单独分区! 根分区仅存放系统+配置+日志 |
⚠️ 关键提醒:
/var/log、/var/lib/docker、/var/lib/mysql、/home等高增长目录务必单独分区或挂载,这是 CentOS 系统稳定的核心实践。- 若使用 LVM,可初始分配较小空间(如 20 GB),后续在线扩容,更灵活安全。
📌 其他重要分区建议(与根分区协同规划)
| 挂载点 | 推荐大小 | 说明 |
|---|---|---|
/boot |
1–2 GB(EFI 分区需 500MB+) | 存放内核和 initramfs;UEFI 模式需额外 EFI System Partition (ESP)(500MB FAT32) |
/swap |
0–2×RAM(或使用 swapfile) | 现代服务器常禁用 swap(尤其云环境),或用 swapfile 替代分区更灵活 |
/home |
按需(用户数据) | 若多用户,建议独立分区;单服务器可合并到 / |
/var |
单独分区:20–50 GB+ | 包含日志、缓存、数据库文件等——最易膨胀的目录! |
/tmp |
2–5 GB(或 tmpfs) | 可设为内存文件系统(tmpfs)提升性能并防磁盘占满 |
💡 最佳实践总结
- 永远不要把
/var或/var/lib目录留在根分区(除非是嵌入式极简场景); - 使用 LVM 安装:便于未来无中断扩容(
lvextend + xfs_growfs或resize2fs); - 启用 logrotate 并定期检查
/var/log(journalctl --disk-usage,du -sh /var/log/*); - 清理旧内核(保留 1–2 个最新):
# 查看已安装内核 rpm -q kernel # 删除旧内核(保留当前和上一个) sudo yum remove $(rpm -q kernel | grep -v $(uname -r)) - 云服务器注意:某些云平台(如 AWS EC2)根卷默认仅 8GB,首次启动后务必立即扩容(需
growpart+xfs_growfs)。
✅ 一句话结论:
CentOS 生产环境根分区(
/)建议分配 25–40 GB,并严格将/var、/home等高增长目录单独分区;最小化部署不低于 15 GB,且必须配合 LVM 或明确规划扩容路径。
如需,我可提供:
- 完整的 LVM 分区脚本(Anaconda Kickstart 示例)
- 自动化清理旧内核 + 日志的 cron 任务
- 云服务器扩容详细步骤(AWS/Aliyun)
欢迎随时告知您的具体场景(如:K8s 节点?MySQL 主库?Docker Swarm?)我可以给出定制化方案。
PHPWP博客