3. ThinkSystem存储高可用基础

在业务连续性体系中,服务器本地存储是最容易被忽视、却又是最底层的一环。ThinkSystem服务器通过RAID控制器(如ThinkSystem RAID 5350/9350系列、或板载Intel VROC)把多块物理硬盘组织成逻辑卷,再配合热备盘、双路径SAS拓扑与控制器固件中的故障切换逻辑,构成"盘级—链路级—控制器级"三层冗余。理解这三层如何协同,是判断一次磁盘故障是否会导致业务中断的关键。

一、RAID级别的选择逻辑

RAID级别不是越高越好,而是要在容量利用率、读性能、写性能和容错能力之间做取舍。ThinkSystem常用的级别及其适用场景如下:

级别最少盘数容量利用率容错能力典型用途
RAID 02100%无临时缓存、可重建的中间数据
RAID 1250%1块盘操作系统盘、日志盘
RAID 53(n-1)/n1块盘读多写少的文件服务
RAID 64(n-2)/n2块盘大容量近线SAS/SATA归档
RAID 10450%每镜像对1块数据库、虚拟化、高写负载

选择时先问三个问题:数据能否重建?写负载有多重?单盘容量多大?例如用8块4TB SATA盘做RAID 5,单盘重建时间可能超过10小时,期间再坏一块盘即全盘丢失,因此大容量盘更推荐RAID 6或RAID 10。而数据库的随机写会触发RAID 5的写惩罚(一次逻辑写需4次物理I/O),此时RAID 10的镜像写通常更划算。

二、热备盘:把"人工换盘"变成"自动重建"

热备盘(Hot Spare)是一块不参与日常读写、随时待命的物理盘。当RAID组中某块成员盘被判定为故障(Failed或Offline)后,控制器自动把热备盘加入该阵列并启动重建(Rebuild),业务在重建期间仍可继续访问,只是性能下降。

热备盘分两种:全局热备(Global Hot Spare)可被控制器下任意阵列使用,适合盘位紧张的小型配置;专用热备(Dedicated Hot Spare)只服务于指定阵列,避免多阵列争抢同一块备盘。ThinkSystem的XClarity Controller(XCC)与Storcli/StorCLI2工具都能查看和设置。

# 查看当前控制器与阵列状态(StorCLI2示例)
storcli2 /c0 show
storcli2 /c0/vall show

# 将第7号槽位磁盘设为全局热备
storcli2 /c0/e252/s7 add hotsparedrive

# 将第7号槽位磁盘设为VD 0的专用热备
storcli2 /c0/e252/s7 add hotsparedrive dgs=0

需要注意:热备盘必须与阵列成员盘在接口类型、转速、容量上兼容,容量不得小于阵列中最大成员盘。若热备盘容量偏小,控制器会拒绝重建或只使用其部分空间。此外,RAID 0不支持热备重建,因为RAID 0本身没有冗余信息。

三、存储路径冗余:双端口SAS与双控制器

在ThinkSystem的2.5/3.5英寸SAS背板中,每块SAS盘通常有两个端口(双端口),可分别连接到两个SAS扩展器或两个RAID控制器。这样即使一条链路(线缆、扩展器端口、控制器PHY)失效,I/O仍可走另一条路径到达同一块盘。这就是存储路径冗余的物理基础。

路径冗余要真正生效,需要满足:硬盘为双端口SAS(SATA盘只有单端口,无法做真正双路径)、背板支持双扩展器、控制器支持多路径(MPIO)。在操作系统层,Linux的multipath -ll或Windows的MPIO可看到同一LUN的两条路径,状态应为active/active或active/ready。

ThinkSystem 本地存储三层冗余与故障切换路径 操作系统 / 应用 I/O MPIO 多路径驱动 RAID 控制器 A 主路径 / 缓存 RAID 控制器 B 备用路径 / 缓存 SAS 扩展器 1 PHY 端口组 SAS 扩展器 2 PHY 端口组 双端口 SAS 硬盘 端口 P1 / 端口 P2 RAID 组 + 热备盘 × 主路径中断 自动切换 活动路径 备用路径 故障点 故障切换动作

四、本地磁盘故障切换机制

当一块成员盘被控制器判定为故障,ThinkSystem的固件会按以下顺序动作:

  1. 故障判定:控制器通过SMART、介质错误、超时重试等条件判定磁盘为Failed。此时该盘从阵列中剔除,阵列进入"降级(Degraded)"状态。
  2. 热备盘接管:若配置了兼容的热备盘,控制器自动将其加入阵列并开始重建。重建期间阵列仍可读写,但无冗余保护。
  3. 路径切换:若故障发生在链路而非磁盘,MPIO或控制器固件把I/O切换到备用路径,磁盘本身仍在线,阵列不降级。
  4. 重建完成:重建结束后阵列恢复Optimal状态。此时应尽快更换故障盘,并把新盘重新设为热备盘。

判断当前状态最直接的方式是查看虚拟磁盘(VD)与物理磁盘(PD)状态:

# 查看虚拟磁盘状态,Optimal为正常,Degraded为降级
storcli2 /c0/vall show

# 查看物理磁盘状态,Online正常,Failed为故障,Rebuild为重建中
storcli2 /c0/eall/sall show

# 查看重建进度
storcli2 /c0/v0 show rebuild

需要特别提醒:RAID降级期间是业务最脆弱的窗口。如果此时再有一块盘故障,RAID 5会彻底丢失数据,RAID 6可再容错一块,RAID 10则取决于故障是否落在同一镜像对。因此监控告警必须覆盖"阵列降级"和"重建失败"两类事件,而不是只监控磁盘是否在线。

热备盘不是备份。热备盘只能应对磁盘硬件故障,无法防止误删除、勒索软件、控制器故障或机箱级灾难。业务连续性仍需配合快照、异地备份与高可用集群。

五、配置检查清单

  • 操作系统盘建议RAID 1或RAID 10,避免RAID 5写惩罚影响启动与日志。
  • 大容量SATA盘阵列优先RAID 6,并至少配置一块全局热备盘。
  • 确认硬盘为双端口SAS,背板与控制器支持双路径,操作系统已启用MPIO。
  • 热备盘容量不小于阵列最大成员盘,接口类型一致。
  • 在XCC或StorCLI2中开启邮件/SNMP告警,覆盖Degraded、Rebuild、Failed事件。
  • 定期执行一致性校验(Consistency Check),提前发现潜在介质错误。

把RAID级别、热备盘、路径冗余和故障切换放在一起看,本质上是让"单点故障"在盘、链路、控制器三个层面都被覆盖。配置完成后,建议主动做一次演练:拔掉一块非系统盘,观察阵列是否降级、热备是否自动接管、重建进度是否正常、业务是否无感知。只有验证过的冗余,才是真正可用的冗余。