存储 频道

云下的虚拟化 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环境中的单个数据存储。

2
相关文章