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

正所谓“养兵千日 , 用兵一时” , 当一个节点不能正常工作的时候 , 另一个节点就要揣着一直在同步的数据和状态“挺身而出”了 , 这就是我们通常所说的(节点级)高可用 。 为了验证这一特性 , 我们将应用虚机设置为“高可用”之后 , 通过将其所在节点突然断电的手段 , 验证应用是否能够继续运行 。


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

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

视频解读:ZStackMini中的节点1因为上一个测试中拔掉其中一块硬盘 , 正处于“重建”状态 , 在这测试中 , E企研究院模拟这一“故障”节点突发断电 , 以验证ZStackMini的高可用功能 。

在节点1上有4个虚机 , 其中“渲染服务器”、“转码服务器”和“网管平台”设置为高可用 , 作为对比 , 另一个名为“CentOS7.2”的虚机则不使用高可用功能 。 在转码服务器中 , E企研究院将上一测试渲染好的视频导出 , 并使用XCoder软件进行转码 。

在转码过程中(大约已完成三分之一的转码进度时) , 不经过任何操作 , 直接关闭节点1电源 , 以模拟突发掉电 。 在节点1断电后 , ZStackMini提示节点1失联 , 并报告“网管平台”失联 。 随后 , ZStackMini启动“高可用”进程 , 开始迁移开启了“高可用”功能的应用虚机 , 大约1分钟后 , 原来位于节点1上 , 并开启了“高可用”功能的虚机在节点2上重启 。

“转码服务器”重启之后 , XCoder之前的任务进度清零 , 并自动重新开始任务 。 我们经过测试证明 , 当ZStackMini上任一节点掉电后 , 其上开启了“高可用”功能的虚机将自动迁移到另一正常运行节点 。

通过上述的两阶段验证 , 可以看出 , 不管是在硬盘组件故障 , 还是节点级故障 , ZStackMini都具有良好的可用性 , 应用能够无间断或经历短暂停顿后继续运行 , 不会造成数据丢失 。

计算存储:效率和数据持久性

在使用这套ZStackMini的过程中 , 我们与一些对此产品有兴趣的潜在用户进行了沟通 , 发现有一个很有代表性的问题:两个节点一主一备 , 可用性是保证了 , 但是硬件的利用率岂不是只有一半?会不会很浪费?

这个问题可以从计算和存储资源两个层面来看 。

从应用的层面来说 , 如前面的测试环节中所提到的 , 应用所在的虚机 , “高可用”功能是可选的 , 也就是说只有开启这一功能 , 虚机才会同时占用两个节点的计算资源 , 这也是为了保证应用持续运行所必须付出的代价 。 如果某个应用对可用性的要求没有那么高 , 就可不开启“高可用” , 也就省去了不必要的浪费 。

从存储的层面来说 , ZStackMini所有的用户数据都在两个节点上镜像存储 , 这样即使一个节点完全损坏 , 数据也不至于丢失 。 从数据盘的存储利用率来看 , 节点间是1+1(镜像) , 节点内是3+1(4个盘的RAID5) , 所以总体效率是0.5×0.75=0.375 , 即不到一半的水平 。

看起来不高是么?作为对比 , 三副本的超融合系统 , 存储利用率为三分之一 , 即0.333——如此看来 , ZStackMini还略占优势呢 。


推荐阅读