存储 频道

云下的虚拟化 Nutanix虚拟计算平台评测

  【IT168 评测】本篇评测编译自InfoWorld网站:如果将四台独立服务器、大容量内存、标准的SATA硬盘与固态硬盘、万兆网络设备以及定制软件集成至同一个机箱中,会是一台怎样的设备?答案就是Nutanix NX-3000。从严格意义上来说,NX-3000不属于任何一个传统类别。虽然Nutanix将其定位为一台“应用设施”,但是实际上这是一款包括四台独立服务器、可实现共享存储的DAS(直连存储设备)的集群组合,它不需要配备后端SAN或NAS。

云下的虚拟化 Nutanix NX3000平台评测
▲Nutanix NX-3000虚拟计算平台

  具体来看,Nutanix NX-3000的四个节点上所运行的都是3.51版的Nutanix操作系统。这里需要特别指出的是,Nutanix计算平台可以实现集群和文件复制等功能而无需任何托管虚拟系统的支持。因此,一台Nutanix集群可以自动处理节点、硬盘以及网络方面的故障、以本地硬盘的速度提供I/O吞吐量,并使用本地固态硬盘提高最频繁使用数据的访问速度。Nutanix系统支持VMware vSphere和微软公司的Hyper-V虚拟机管理程序,以及针对基于Linux操作系统工作负载的KVM。

  Nutanix公司成立于2009年9月,在全球20个国家共有200名员工,很多高管人员也是来自知名IT公司,如Google、Facebook、VMware、甲骨文、微软、希捷等,拥有丰富的IT从业经验。这些专业人士对于如何创建优秀的分布式系统,以及开发可扩展高性能产品的关键软件都非常了解。在这样一个复杂的分布式集群管理服务中,大量的创新与新颖设计是随处可见的,这些独到的设计可以消除任何的单点故障,而诸如硬盘分区数据指纹这样的功能可以使用一个特殊的Intel指令集(用于计算一个SHA-1数字签名算法的哈希值)以执行重复数据删除操作,从而确保相关数据的完整性和冗余性。

  从技术上来说,当Nutanix NX-3000集群设备的一个节点发生故障时,其余三个节点都可正常运行,并可扩展至任意数量的节点。NDFS (Nutanix分布式文件系统)可为你的所有虚拟机提供一个单一的存储,处理所有硬盘和I/O的负载平衡,而且无需使用诸如VMware的Storage DRS这样虚拟化平台功能。否则,你管理你虚拟机的方式就与你使用VMware或微软的本机管理工具管理其他任何基础设施没有区别了。

  NX-3000架构篇

  NX-3000的硬件来自于SuperMicro公司。它除了将四个双处理器刀片服务器塞入一个2U机箱之外,并无其他特别之处。真正的不可思议之处都在软件之中。Nutanix使用了一组开源软件(例如Apache Cassandra和ZooKeeper)和一堆的内部开发工具。Nutanix主要在ZooKeeper的基础上对集群配置管理服务进行开发,而对Cassandra进行大刀阔斧的修改以便于将其用于集群的主要对象存储。

云下的虚拟化 Nutanix NX-3000评测
▲NX-3000的各项评测分数

  硬件节点和特殊软件的组合造就了Nutanix分布式文件系统。每个集群节点的核心就是Nutanix控制器虚拟机。这个特定虚拟机管理程序的虚拟机(Nutanix针对vSphere、Hyper-V以及KVM分别提供了精心调试的不同版本)可以处理服务器节点之间的所有通信任务以及作为NDFS一部分而运行的所有服务。换而言之,这个控制器虚拟机不仅为虚拟机管理程序管理着作为中央数据存储的集群与服务器,而且还管理着它的众多客户虚拟机。

云下的虚拟化 Nutanix NX-3000评测
▲Nutanix虚拟计算平台架构

  上图显示了控制器虚拟机中一些关键软件组件之间的相互关系。系统可以自动检测节点、硬盘、网络等故障,甚至控制器的故障也可被自动检测出。在集群中,NDFS可通过 把I/O重新定向至其他的控制器虚拟机来处理控制器的故障。

  在这个架构的中心处是Curator,这是一个基于MapReduce的集群管理应用程序,它可以通过集群处理分布式任务(如硬盘平衡、主动清理等等)。它是由一个被选择的Curator Master所控制的,它可作为任务和作业委派管理器。

  Stargate是主数据I/O管理器。它使用NFS、iSCSI或SMB进行通信,它可处理来自于虚拟机管理程序的所有存储请求。Medusa是一个基于Apache Cassandra的分布式元数据存储,它可使用Paxos算法来加强数据跨所有节点的严格一致性。

  Prism是配置和监控整个Nutanix集群的管理网关。它是以一种类似于其他组件的方式来选择一个领导节点。用户可供过一个基于HTML5的网络界面、一个类似于控制台的CLI、以及一个基于REST的API访问这个管理系统。

  Zeus是一个基于Apache ZooKeeper的集群配置管理器。领导节点的责任包括接收和转发所有配置变更的请求。如果领导节点发生故障,那么运行在其它节点上的Zeus服务将会为系统选择一个新的领导节点。

  其他的组件主要包括用于作业和任务调度的Chrono、处理复制和灾难恢复的Cerebro、以及管理虚拟硬盘配置数据的Pithos。

  在得到正式承认之前,所有对硬盘的写操作都会被同步复制,以防任何的硬盘或节点发生故障。对硬盘的主要写操作都是通过基于固态硬盘的OpLog进行的,这实际上就是一个硬盘操作的日志项。事实上,OpLog是作为针对所有硬盘写操作的超高速持久性存储设备的。而对于读操作,在本地内存和固体硬盘上部署有一个内容缓存区。如果在内容缓存区无法找到一个特定的硬盘数据块,那么系统会在硬盘上定位和检索这个数据块。

  虽然硬盘的写操作是分布在整个集群中的,但是运行在单个节点上的虚拟机只能够使用这个节点的资源。客户虚拟机把本地控制器虚拟机作为虚拟硬盘的中央数据存储;当虚拟机在节点之间进行迁移时,I/O可从一个控制器虚拟机迁往另一个控制器虚拟机。因此,VMware的分布式资源调度程序或微软的System Center工具可在整个集群中分发虚拟机负载,同时也可在多个控制器虚拟机之间平衡存储负载。所有的节点间通信都是通过一个万兆以太网络进行的,这意味着你将需要一台万兆交换机来连接各个节点。

  Nutanix把一组物理存储设备定义为一个存储池,其中可能会包括PCIe 固体硬盘、固体硬盘以及硬盘等。当然,一个存储池也可跨多个节点,并当集群扩展至包含新节点时还可进一步扩展容量。而一组虚拟机或文件则被定义为一个容器,这也是一个存储池的一个逻辑子集。例如,每一个容器通常对应于一个VMware环境中的单个数据存储。

  NX-3000管理篇:日常无需管理介入   直接监控单个功能

  NX-3000架构的魅力就在于,设备可以日复一日地运行而基本不需要管理的介入。一旦系统配置完成,它就可以正常运行而无需任何操作人员的介入,直至用户需要扩大容量。通常当用户想要在网络中增加其它设备并希望在集群中扩展节点数量时,这一情况就会发生。对于这一应用场景,在标有Expand Cluster的管理主页上的菜单选项将可以引导你完成新系统上线的完整流程。操作人员的其他操作可能包括通过创建容器和存储池来管理可用存储资源。

  Nutanix设备的主要管理工作是通过网络浏览器进行的。用户还可以在任何节点上使用SSH来打开一个终端会话,并通过运行脚本程序或手动操作来启动和停止服务。在配置参数中,有很多控制不同进程运行频率或触发特定事件的设置被称为GFlag,用户可以通过使用浏览器界面来对它们进行设置。

  除了标准的HTML5管理页面,Nutanix还提供了先进的管理和监控功能。这些功能包括直接监控单个功能,例如Curator和Stargate。如需访问这些页面,只要简单地输入Nutanix控制器虚拟机的URL和把路径添加至特定的服务中。之前所提及的每一个主要功能都拥有它们自己的页面号码或专用URL。下面的图2显示了一个典型的信息面板,其信息部件的布局是默认的。用户可自行配置这个页面,而涉及的部件包括几乎所有你能够想到的系统级细节信息。


▲Nutanix参数显示界面

  如果你能够足够深入地进行研究,那么你将会发现很多关于NDFS内部工作的更多详细信息。NDFS大量使用日志记录,而这些日志可提供对关键性能参数的监控。如果你在信息界面上没有看到你感兴趣的信息,那么你只需从一个很长的选项列表中添加新的图表。

  Nutanix对于其管理界面使用了一个RESTful API,而为VMware vCenter和其他虚拟化管理工具使用了插件。如果你真的很有想法,那么你就可以使用诸如Python这样的编程语言来编写你自己的代码。通过这种方法,用户只需使用10行左右的代码就能够获得大量与运行虚拟机相关的信息。虽然用户可能并不希望在生产机器上如此做,但是如果你有足够的好奇心,那么就可以通过主门户页面浏览REST API以便于进行手动浏览界面。

  NX-3000性能篇:以最高性能提供虚拟化支持

  所有Nutanix旗下的产品都是采用由下至上设计理念的,其性能和规模是它的两个主要驱动因素。一般情况下,数据会通过本地OpLog,并将一个副本通过网络发送至集群中的另一个节点以实现数据冗余。顺序写操作跳过OpLog而直接写入硬盘,而他们可以有选择地针对特定用例而完全地跳过固体硬盘层。这就减少了固体硬盘层所需的存储资源数量,同时也充分利用了HDD顺序写操作适宜性的优势。

  由于数据进出底层存储设备的动作是完全由NDFS控制,所以它还应该可以监控和跟踪移动中的数据块以便于识别所有的瓶颈之所在。vDisk状态页面的截图显示了可用的不同类型性能测试。

  当使用lometer进行性能测试时,我发现使用这样一个工具基本无需对基础架构有所较深的了解。在设计阶段,Nutanix的软硬件开发人员就充分考虑到高性能和高吞吐量的要求。事实上,如果你没有让系统满负荷运行,那么用户使用诸如lometer这样的工具就会发现其性能有所下降。我能够使用一个单一的lometer和使用多个生成相同近似的负载进行比较,以便于验证这一点。其中的差异性是极具戏剧性的,多个lometer要比一个lometer能够提供明显更多的IOPS。

  此外,Nutanix还为用户提供了一个诊断工具,这个工具可为一个虚拟机每节点配置连接六个虚拟硬盘。一旦虚拟机已被完全配置,这个工具可启动diskperf和fiotool以便于测量在已知负载下的不同性能参数。一旦完成性能参数的测量,就可汇总测量结果以确定整个集群的性能。一个典型的用户是不会运行这些工具的,但是Nutanix的系统工程师们就可以使用它们作为后安装过程的一部分。

  Nutanix NX-3000系列产品为虚拟化部署提供了一套特别的解决方案。虽然每台设备高达14万4千美元的成本价略显高昂,但其带来的——高可用性、高性能、无额外开销的集中存储——这些优点也同样极具吸引力。对于一直寻求以最少存储资源,获得最高虚拟化资源的高端数据中心来说,这是一个理想的解决方案。

2
相关文章