边缘计算体验之二:简单高可用 ZStack Mini的巧妙设计

不管是中文的“健壮” , 还是英文的“Strong” , 通常用于形容人或动物的体格 , 并隐含拥有更高的生存能力 , 或者说在受伤失去部分生理机能后 , 拥有更快恢复正常的能力 。

正是因为这一词潜在的含义 , 也被借用以描述IT系统或应用程序的特点之一 , 比如应用程序/IT系统的健壮性 , 在遭遇bug或硬件故障的情况下 , 不会彻底“失能” , 而是可以继续工作并更快恢复常态 。

IT系统的健壮性可以用“RAS”来说明 , 即可靠性(Reliability)、可用性(Availability)和可维护性(Serviceability) 。 简单来说 , 可靠性意味着组成IT系统的各组件品质过关 , 不易故障 , 即使某一个或多个组件发生故障 , 也不影响应用程序的正常运行(可用性);并且在组件或系统故障时 , 其可即时启用替换机制 , 使得故障组件/系统快速恢复正常(可维护性) 。

可以看出 , 可靠性和可维护性设计在一定程度上是服从可用性设计的 , 其目的是为了提高可用性 , 满足业务连续运行(而尽可能不被中断)的需求 。

IT系统可用性通常用几个“9”来衡量 , 如5个9、6个9 , 指的是系统可用时间的百分比 , 相对应的是以年为单位计算(允许的)停机时间 。

试举两例:1个9即90%的可用性 , 每年允许的停机时间不超过36.5天;5个9即99.999%的可用性 , 每年的停机时间不能超过5分半钟 。


边缘计算体验之二:简单高可用 ZStack Mini的巧妙设计

----边缘计算体验之二:简单高可用 ZStack Mini的巧妙设计//----

图注:E企研究院整理的可用性与(允许)停机时间对照表 , 可用性每多一个9 , 单位时间内允许的停机时间下降到十分之一:譬如 , 可用性为4个9(99.99%)每年允许的停机时间接近53分钟 , 而5个9每年允许的停机时间则下降到5分半钟以内

我们知道 , 由于开机自检等过程耗时较长 , 服务器重启一次的时间可能超过5分钟 , 这意味着每年服务器只要宕机一次 , 哪怕立刻恢复 , 5个9的可用性就保不住了 。 然而 , 硬件的单点失效(SinglePointOfFailure , SPOF)是不可能彻底避免的 , 再加之有时软件系统出的故障最终也要通过服务器重启来解决 , 所以“2N”系统就成为保障高可用性的常见思路 。 譬如 , 两套一样的系统 , 运行一样的应用 , 访问一样的数据 , 平时一主一备(Active-Passive) , 主系统出故障之后备份系统接管 , 由于后者一直在运行着 , 不需要经历一遍耗时的软硬件启动工作 , 理论上服务中断的时间只取决于主备之间的切换速度 , 不要说5个9 , 就是6个9或者7个9 , 也是可以实现的 。

理论很简单 , 实现很复杂 , 包括如何保证两套系统的数据和(应用)状态尽可能一致 , 以便快速切换?

传统计算与存储分离的架构 , 最少需要两台服务器连接到一套双控的存储系统上 , 两台服务器之间同步应用 , 数据的高可用由双控制器的存储系统负责 , 后者使用的存储介质通常具备双端口功能(如FC或SAS硬盘) , 数据访问的控制权在必要时(如其中一个控制器故障)切换 。 相应的 , 网络子系统通常也是双冗余设置 , 整套解决方案的构成很是复杂 。 双端口硬盘减少了数据同步的工作量 , 但其本身又经常被划归专用设备的范畴 , 不符合标准化硬件结合“软件定义”的潮流 。


推荐阅读