控制器为什么必须冗余
控制器承担阵列的全部关键职能:响应主机 IO、管理缓存与写策略、维护逻辑到物理的映射、执行快照与复制。单控制器故障会让整台设备不可用,因此企业级阵列普遍采用双控制器架构,两者共享后端盘资源并互为接管。真正的冗余设计要求配套:盘需要双端口以便两个控制器同时访问;控制器之间需要心跳与缓存镜像通道,确保接管时未落盘的写数据不丢;主机侧需要多路径软件,才能在路径变化时自动切换;供电也要双路独立。任何一环缺失,控制器故障时仍会出现中断甚至数据丢失。
冗余要素清单
| 要素 | 作用 | 缺失后果 |
|---|---|---|
| 双控制器 | 互为接管,支持在线维护 | 控制器维护或故障即业务中断 |
| 缓存镜像通道 | 保证接管时写缓存数据不丢 | 接管后出现数据丢失或损坏 |
| 双端口盘 | 两条路径访问同一块盘 | 部分盘在接管后不可访问 |
| 主机多路径 | 路径切换与负载分担 | 切换期间长时间卡顿 |
| 双路独立供电 | 单路供电故障不影响运行 | 供电故障导致整机停机 |
基本信息
| 接管方式 | 自动接管或人工切换,取决于产品与配置 |
|---|---|
| 切换影响 | 通常为秒级中断,期间主机侧会出现 IO 重试 |
| 缓存保护 | 需带掉电保护的缓存模块,确保断电时写入不丢 |
| 在线升级 | 双控制器支持轮流升级,保持业务可用 |
| 验证方式 | 通过下线控制器或拔线演练测量真实切换时间 |
典型使用场景
- 核心业务存储:要求控制器可维护、可升级且不中断业务
- 虚拟化共享存储:主机与存储两侧都需消除单点,避免迁移失败
- 双活与容灾架构:站点内的冗余是跨站点容灾的前置条件
- 固件维护窗口:具备冗余才能做在线升级,减少计划停机
- 故障演练:按计划下线一台控制器,验证业务无感知
两台控制器要保证固件与配置一致:版本不一致时的接管行为可能异常,甚至出现路径不可用。升级应遵循厂商推荐的顺序,并在升级后确认双控状态正常。
控制器冗余不等于全链路冗余:交换机、线缆、机柜供电与主机 HBA 都可能是单点。冗余设计要覆盖从主机到介质的所有环节,并在图纸上逐个标注单点直到全部消除。