温馨提示×

Linux swap和RAID硬盘组合

小樊
38
2026-01-12 05:02:51
栏目: 智能运维

Linux 中 Swap 与 RAID 的组合实践

一、总体原则

  • /boot 必须是 RAID1 镜像,且通常不做 LVM;多数安装器只允许 /boot 使用 RAID1,以确保引导可靠性。其余数据分区(如 //home)可按需求选择 RAID5/RAID10 或结合 LVM 做灵活扩容。
  • Swap 可以使用 RAID0 提升吞吐,也可用 RAID1 提升可用性;若更看重可靠性,优先 RAID1;若更看重性能且能容忍故障,可用 RAID0。很多安装器也支持把 swap 做成 RAID
  • 不要把 /boot 放进 LVM,也不要把 swap 放进 LVM(常见做法是让 /boot 与 swap 直接使用 MD 设备),以减少启动与故障场景的复杂度。

二、常见组合与适用场景

组合 可靠性 性能 适用场景 要点
/boot: RAID1;Swap: RAID0;/: RAID5/RAID10 中(swap 无冗余) 高(RAID0 并行) 写入密集、可容忍 swap 故障的通用服务器 安装器通常支持;swap 用 RAID0 提升换页吞吐
/boot: RAID1;Swap: RAID1;/: RAID5/RAID10 中-高 稳定性优先的数据库/应用服务器 swap 镜像避免换页中断;容量减半
/boot: RAID1;Swap: 单盘分区(多盘多优先级);/: RAID10 中(单盘 swap 风险) 中-高 已有多盘,想简单并行化 swap 多 swap 分区设相同优先级实现并行
/boot: RAID1;LVM on RAID5/10;Swap: RAID1 中-高 需要后期灵活扩容的系统 /、/home 等放进 LVM;swap 仍用 MD 镜像

说明:上表的做法与限制与常见安装器行为一致(如 /boot 仅 RAID1、支持 swap 做 RAID),且社区有将 swap 做成 RAID0/RAID1 的实操示例。

三、容量与配置建议

  • Swap 容量:可按容量阶梯设置——≤4GB 内存:swap≈2×内存;4–8GB:swap≈内存;8–64GB:swap≈8GB;64–256GB:swap≈16GB。内存很大(如 ≥16GB)且非内存数据库场景,可仅保留 4–8GB 的 swap 作为缓冲与安全垫。
  • /boot 容量:建议 500MB–1GB,仅放内核与 initramfs,使用 RAID1 两盘镜像即可。
  • 并发与优先级:多块盘做 swap 时,给每个 swap 分区相同的优先级(如 pri=1),让内核并行使用;若追求可靠性,优先使用 RAID1 而非 RAID0
  • 条带与对齐:做 RAID0/RAID10 时选择合适的条带大小(如 256KB–512KB),并对齐分区与文件系统,减少写放大与抖动。

四、安装与配置要点(简版)

  • 分区规划:每块盘划分出相同大小的 100MB(/boot)N GB(swap),其余空间用于 RAID5/RAID10 的数据卷;/boot 分区类型设为 raid,swap 分区类型设为 linux swap
  • 创建 MD 设备:先建 MD0(RAID1,/boot),再建 MD1(RAID0/RAID1,swap),其余空间建 MD2(RAID5/RAID10,数据);随后在 MD2 上创建 LVM 以容纳 //home 等。
  • 格式化与挂载:/boot → ext4(或 ext3)swap → mkswap + swapon/ 与 /home → ext4/xfs;在 /etc/fstab 中写入对应条目,swap 可设 pri=1 实现并行。
  • 验证与维护:用 cat /proc/mdstat 查看阵列状态;用 free -h 检查 swap;必要时用 mdadm 进行故障演练、热移除/添加磁盘。

五、运维与风险提示

  • swap 在 RAID0 下无冗余:一旦一块盘故障,swap 数据可能丢失并导致进程异常;对稳定性敏感的业务优先 RAID1
  • /boot 只做 RAID1:不要放入 LVM,避免引导链复杂度与恢复困难。
  • 容量规划留有余量:RAID 会牺牲部分可用容量(如 RAID1 减半RAID5 损失 1 块盘),并在扩容时优先考虑 加盘重建LVM 动态扩展 数据卷。
  • 监控与健康检查:定期用 /proc/mdstatsmartctl 等工具巡检阵列与磁盘健康,提前更换劣化盘,降低故障窗口。

0