凌峰创科服务平台

CentOS服务器分区方案如何合理规划?

下面我将从通用原则推荐方案特殊场景以及操作步骤四个方面,为您提供一份详尽的 CentOS 服务器分区指南。

CentOS服务器分区方案如何合理规划?-图1
(图片来源网络,侵删)

核心原则

在动手分区前,请务必理解以下几个核心原则:

  1. /boot 分区必须单独分

    • 原因:这是系统启动时加载内核和初始内存盘所必需的。 (根分区) 是 LVM 或其他复杂结构,或者未来需要调整根分区大小,单独的 /boot 可以避免启动问题。
    • 大小:建议 1 GiB,对于新安装的系统,512MB 通常足够,但 1GB 可以更从容地应对未来内核更新和固件需求。
  2. (根分区) 建议使用 LVM

    • 原因:LVM (Logical Volume Manager) 提供了无与伦比的灵活性,您可以在线扩展、缩减、快照文件系统,这对于需要长期运行且数据量不断增长的服务器至关重要,如果未来磁盘空间不足,无需重装系统,只需添加新磁盘并扩展 LVM 即可。
    • 注意:根分区缩减操作风险较高,不推荐在生产环境中随意进行。
  3. swap 交换分区的考量

    CentOS服务器分区方案如何合理规划?-图2
    (图片来源网络,侵删)
    • 作用:当物理内存耗尽时,用作虚拟内存,对于物理机,swap 是必要的;对于绝大多数云服务器,内存已经足够大,且云厂商通常不推荐或限制使用本地盘作为 swap,可以不创建或创建得非常小。
    • 大小
      • 传统物理机:内存 <= 8GB,swap 设为内存的 1-2 倍;内存 > 8GB,swap 设为与内存相等或略小(8GB-16GB),对于内存巨大的服务器(如 64GB+),swap 设为 32GB 通常足够。
      • 云服务器:通常建议 1 GiB2 GiB,甚至不创建,如果不确定,可以创建 2 GiB,如果云平台提供“内存交换”功能,优先使用平台功能而非本地 swap 分区。
  4. 数据与系统分离

    • 原因:将网站数据、数据库文件、日志等用户数据放在独立的分区(如 /data/var),可以带来以下好处:
      • 安全:即使系统分区()因日志文件写满而崩溃,用户数据(如数据库)通常是安全的。
      • 性能:可以为不同数据类型分配不同的 I/O 调度策略或挂载选项(如 noatime)。
      • 管理:独立备份、扩容和维护,可以只备份 /data 分区,而忽略系统文件。
  5. /var 分区的重要性

    • 原因/var 目录存放着日志、邮件、缓存、Web 服务器文件等,这些内容会持续增长,并且写入频繁。/var 和 在同一个分区,很容易因为日志或缓存文件激增而填满整个根分区,导致系统服务异常甚至无法登录。
    • 建议:对于任何可能产生大量日志或文件的服务(如 Web 服务器、数据库服务器),强烈建议为 /var 单独划分空间。

推荐分区方案

根据服务器的用途,推荐以下几种经典方案。

通用生产服务器(推荐首选)

这是最均衡、最通用的方案,适用于大多数 Web 服务器、应用服务器、数据库服务器等。

CentOS服务器分区方案如何合理规划?-图3
(图片来源网络,侵删)
挂载点 文件系统 大小建议 说明
/boot xfs 1 GiB 存放内核和启动文件,独立分区以保证启动安全。
swap swap 2 GiB 或按需 交换分区,云服务器可设为 2GB 或不创建,物理机根据内存大小调整。
(根分区) xfs 50-100 GiB 系统核心目录,LVM 逻辑卷,50GB 对大多数应用足够,留出余量。
/var xfs 50-100 GiB 存放日志、包缓存、应用数据,独立分区,防止其增长影响系统稳定性。
/home xfs 剩余空间20-50 GiB 存放用户数据,如果服务器不面向多用户,可以合并到 /data 或不创建。
/data (可选) xfs 剩余空间 专门用于存放应用数据,如数据库文件、网站源码、备份文件等,强烈推荐。

为什么选择 XFS?

  • 高性能:特别是在处理大文件和高并发 I/O 时表现优异。
  • 在线扩容:支持在线扩展文件系统,非常适合 LVM 环境。
  • 健壮性:日志文件系统,崩溃后恢复速度快,数据一致性有保障。
  • 云原生:是 CentOS 7/8/9 的默认文件系统,与云环境兼容性好。

轻量级或资源受限服务器

适用于小型 VPS、测试环境或对磁盘空间要求不高的场景。

挂载点 文件系统 大小建议 说明
/boot xfs 1 GiB 保证启动安全。
swap swap 1 GiB 基础交换空间。
(根分区) xfs 30-50 GiB 系统和应用全部放在根分区,LVM 逻辑卷。
/data (可选) xfs 剩余空间 如果有少量数据需要独立存放,可以创建此分区。

专用数据库服务器

数据库服务器对 I/O 性能和数据可靠性要求极高。

挂载点 文件系统 大小建议 说明
/boot xfs 1 GiB 保证启动安全。
swap swap 8-16 GiB 根据数据库服务器内存大小设置。
(根分区) xfs 50-100 GiB 系统文件和二进制程序,LVM 逻辑卷。
/var/log xfs 20-50 GiB 数据库会产生大量慢查询日志等,独立存放。
/var/lib/mysql xfs 剩余空间 数据库数据文件专用分区,这是最重要的分区,应使用高性能磁盘(如 SSD)。
/backup xfs 剩余空间 或单独磁盘 存放数据库备份,如果可能,使用独立的物理磁盘以提高备份和恢复速度。

特殊场景考量

  • 云服务器 (AWS, 阿里云, 腾讯云等)

    • 通常会提供一个系统盘(40GB)和一个或多个数据盘。
    • 最佳实践:在系统盘上只创建 /boot, swap, 分区。
    • 数据盘上创建 /data, /var/lib/mysql 等数据分区。
    • 这样做的好处是,即使系统盘出现问题,数据盘上的数据通常是安全的,并且可以轻松地将系统盘挂载到另一台相同配置的机器上恢复。
  • 使用 ZFS 文件系统

    • ZFS 是一个功能极其强大的文件系统,集卷管理、快照、校验、压缩等功能于一身。
    • 适合对数据完整性要求极高的场景,如虚拟化平台、存储服务器。
    • 配置比 LVM 复杂,需要单独编译或安装 ZFS on Linux,如果追求极致的简单和稳定,LVM+XFS 仍是首选。

实践操作(使用 fdiskmkfs

以下是在安装 CentOS 时,或通过 Live CD/USB 对未分区磁盘进行操作的示例。

假设新硬盘为 /dev/sdb,我们按照方案一进行分区。

使用 fdisk 进行分区

# 进入 fdisk 交互模式
fdisk /dev/sdb

fdisk 提示符下,执行以下命令:

# 查看当前分区表(可选)
p
# 创建新分区
n
# 选择分区类型(主分区或扩展分区)
# 创建 /boot,选择 p (Primary)
p
# 分区号,默认 1
1
# 起始扇区,直接回车使用默认值
# 大小,+1G
+1G
# 创建 swap 分区
n
p
2
# 直接回车
# +2G
+2G
# 创建根分区 /,使用剩余所有空间
n
p
3
# 直接回车
# 直接回车,使用剩余所有空间
# 创建 /var 分区
n
p
4
# 直接回车
# +50G (根据实际情况调整)
+50G
# 创建 /home 分区,使用剩余空间
n
p
5
# 直接回车
# 直接回车,使用剩余所有空间
# 设置分区类型
# /boot (sdb1) 设置为 bootable
a
1
# swap (sdb2) 设置为 swap 类型
t
2
# 输入 swap 的类型码,通常是 82
82
# 确认分区表
p
# 写入并退出
w

格式化分区

# 格式化 /boot 为 XFS
mkfs.xfs /dev/sdb1
# 格式化 / 为 XFS
mkfs.xfs /dev/sdb3
# 格式化 /var 为 XFS
mkfs.xfs /dev/sdb4
# 格式化 /home 为 XFS
mkfs.xfs /dev/sdb5
# 格式化 swap 分区
mkswap /dev/sdb2

创建挂载点并挂载

# 创建挂载点
mkdir -p /mnt/{boot,var,home}
# 挂载分区
mount /dev/sdb3 /mnt          # 挂载根分区
mount /dev/sdb1 /mnt/boot     # 挂载 boot
mount /dev/sdb4 /mnt/var      # 挂载 var
mount /dev/sdb5 /mnt/home     # 挂载 home
# 启用 swap 分区
swapon /dev/sdb2
# (在系统安装过程中,安装程序会自动完成挂载,如果是手动操作,需要配置 /etc/fstab 实现开机自动挂载)

一个优秀的分区方案是稳定服务器的基础,对于绝大多数 CentOS 服务器用户,方案一(通用生产服务器) 是最安全、最灵活的选择,请根据您的服务器具体用途、硬件配置和未来预期,灵活调整分区大小和挂载点。

最后提醒:在进行任何磁盘分区操作前,务必备份所有重要数据! 操作失误可能导致数据永久丢失。

分享:
扫描分享到社交APP
上一篇
下一篇