作者:范军 (Frank Fan) 新浪微博:@frankfan7   微信:frankfan7

上篇我们介绍了融合式架构的基本概念,本文带你一步步探寻其中的玄机。

先不说那些传统的服务器巨头们,一个刚出江湖的厂商Nutanix引起了我的注意。市场业绩不是本文重点,咱直接谈技术吧。我的分析完全是依据厂商资料纸上谈兵,还没有机会亲自测试。


融合式架构Nutanix深入分析一_第1张图片


上图是一个2U的Block,其中集成了4台服务器。


我认为Nuntanix突出的几个特点如下:

低成本,高性能

用本地存储的低成本,却能达到SAN的高性能。也就是说,少花钱,可性能却一点都不差。这不是吹呢么,咱细细道来。

曾经的虚拟化设计中共享存储一直是推荐的,因为没有共享存储,就无法利用vMotion,HA,DRS等特性了。但近年来,本地存储慢慢的在虚拟化设计中登上舞台,首先是因为成本比SAN等共享存储低很多,其次管理相对简单,实施也快,第三,软件层可以用本地存储实现分布式的文件系统,从而达到共享,冗余,易扩展和高性能的目的。


融合式架构Nutanix深入分析一_第2张图片

vMotion

融合式架构Nutanix深入分析一_第3张图片


以第一台主机上VM为例,每一次写操作写到本地存储,同时写到被同一个主Controller管理的其他主机的本地存储,从而达到冗余。

假设vMotion该VM从第一台主机到第三台主机,Controller会比较第三台主机是否有该VM的的存储信息,发现红色和橙色的部分缺失,然后会把缺失的部分拷贝到第三台主机的本地存储中。然后vMotion启动。


高可用(HA)

融合式架构Nutanix深入分析一_第4张图片

至少需要三台服务器来实现高可用性。每一个服务器包括运算、存储和虚拟层。还有整个方案的司令部ControllerVM,是完全有软件实现的。

每一台主机上的Controller都和其他Controller都是互相通讯的,其中有一个是主,其他的是从。主Controller宕机是,某个从Controller自动成为主Controller。

拿第三台主机上的VM举例,每一次写操作写到本地存储,同时写到被同一个主Controller管理的其他主机的本地存储,从而达到冗余。假如此时第三台主机宕机,虚拟层HA会将该VM在第二台主机重启,因为在第二台主机本地存储中已经有了该VM的一个备份。


易扩展,性能可预测

SAN的设计时需要考虑到光纤交换机、StorageProcessor等各个节点可以支持的IOPS,Throughput等因素。如果计划不周的话,SAN的容量扩展会因为某处的瓶颈造成性能下降。

Nutanix的扩展看上去简单的多,本地的存储和运算集成在一起,只需要增加主机数就可以实现扩展。

融合式架构Nutanix深入分析一_第5张图片

Nutanix提供的资料称扩展后性能是线性增长的,特别适合桌面虚拟化的实践。这就意味着你可以在初期用较少的投入来测试,虚拟机数量大规模增长时再增加主机数,而性能和以前是一样的。不会有性能瓶颈。


三 存储分层

融合式架构Nutanix深入分析一_第6张图片

从上图可以看到,本地存储由软件层控制,以iSCSI/NFS的方式共享给所有主机。每次虚拟机对共享存储的读写,都有Controller来调度。常用的数据会由速度最快的FusionIO来处理。不常用的数据还是在本地硬盘内。


疑问:

有些疑问需要实践和进一步验证:

首先,因为每一次虚拟机发起的Write IO,在多个主机的本地存储都要完成的Write IO, 这是一个Transaction.所有Transaction都成功后,该次Write才是有效的。如果在很多节点被一个Controller控制的情况下,不知道对性能上的影响如何。

其次Controller的稳定性也需要验证。在主Controller宕机的情况下,其他从Controller能否无缝接管群集?切换时间如何?

第三Nutanix在一个数据中心实施的高可用性是没有问题的。但在大企业需要两个数据中心之间灾难恢复时,往往涉及到数据在数据中心之间的同步。不知道Nutanix的本地存储数据如何在异地同步。

我的理论分析是完全基于厂家提供资料,希望以后能看到更多的真实环境中的数据。请关注下文对Controller以及Nutanix文件系统的进一步分析。