3. ThinkSystem存储高可用基础
在业务连续性体系中,服务器本地存储是最容易被忽视、却又是最底层的一环。ThinkSystem服务器通过RAID控制器(如ThinkSystem RAID 5350/9350系列、或板载Intel VROC)把多块物理硬盘组织成逻辑卷,再配合热备盘、双路径SAS拓扑与控制器固件中的故障切换逻辑,构成"盘级—链路级—控制器级"三层冗余。理解这三层如何协同,是判断一次磁盘故障是否会导致业务中断的关键。
一、RAID级别的选择逻辑
RAID级别不是越高越好,而是要在容量利用率、读性能、写性能和容错能力之间做取舍。ThinkSystem常用的级别及其适用场景如下:
| 级别 | 最少盘数 | 容量利用率 | 容错能力 | 典型用途 |
|---|---|---|---|---|
| RAID 0 | 2 | 100% | 无 | 临时缓存、可重建的中间数据 |
| RAID 1 | 2 | 50% | 1块盘 | 操作系统盘、日志盘 |
| RAID 5 | 3 | (n-1)/n | 1块盘 | 读多写少的文件服务 |
| RAID 6 | 4 | (n-2)/n | 2块盘 | 大容量近线SAS/SATA归档 |
| RAID 10 | 4 | 50% | 每镜像对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的固件会按以下顺序动作:
- 故障判定:控制器通过SMART、介质错误、超时重试等条件判定磁盘为Failed。此时该盘从阵列中剔除,阵列进入"降级(Degraded)"状态。
- 热备盘接管:若配置了兼容的热备盘,控制器自动将其加入阵列并开始重建。重建期间阵列仍可读写,但无冗余保护。
- 路径切换:若故障发生在链路而非磁盘,MPIO或控制器固件把I/O切换到备用路径,磁盘本身仍在线,阵列不降级。
- 重建完成:重建结束后阵列恢复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级别、热备盘、路径冗余和故障切换放在一起看,本质上是让"单点故障"在盘、链路、控制器三个层面都被覆盖。配置完成后,建议主动做一次演练:拔掉一块非系统盘,观察阵列是否降级、热备是否自动接管、重建进度是否正常、业务是否无感知。只有验证过的冗余,才是真正可用的冗余。