I、【理论研究】漫谈云计算IT基础设施05-超融合技术

其实超融合这一块,放在云计算IT基础设施里面,不算是完全合适。 你说它是分布式存储,但是它同时又是硬件服务器与存储;你说它算硬件,但是它又离不开分布式存储软件。

传统的IT基础设施架构,主要分为网络、计算、存储三层架构。 但随着云计算与分布式存储技术的发展以及x86服务器的标准化,逐渐出现了一种将计算、存储节点融合在一起的架构--超融合架构。 超融合将三层的IT基础设施架构缩小变成了两层。

2019年11月的Gartner超融合产品魔力象限中,导者象限有5家:Nutanix、DELL、VMware、CISCO、HPE。 (其中DELLvxRail一体机里面用的分布式存储软件也是VMware的VSAN,而VMware提供的则是VSAN纯软件的解决方)

Nutanix能够成为超融合导者中的导者,自然是经过场的充分验证,得到场的认可。 而且由于其公开资料(Nutanix圣经)比较齐备,因此我们可以通过Nutanix一窥超融合的究。

这边就不搬运了,可以直接搜索引擎搜索“Nutanix圣经”或“Nutanix-Bible”,可以找到相应的方文档。

引用自NUTANIX圣经-“Nutanix解决方是一个融合了存储和计算资源于一体的解决方。 该方是一个软硬件一体化平台,在2U空间中提供2或4个节点。

每个节点运行着hypervisor(支ESXi,KVM,Hyper-V)和Nutanix控器虚机(CVM)。 NutanixCVM中运行着Nutanix核心软件,服务于所有虚机和虚机对应的I/O作。

得益于IntelVT-d(VM直接通路)技术,对于运行着VMwarevSphere的Nutanix单元,SCSI控(管理SSD和HDD设备)直接传递到CVM。 ”

个总结:从以上方文档可知,2U的空间可以安装2~4个Nutanix节点(每个节点相当于1台物理服务器),所以设备装机密度非常高。 每个节点都安装着虚拟化软件,并且在虚拟化层之上再运行着一台Nutanix的控虚机(CVM),该虚机主要负责不同的Nutanix节点之间控平面的通信。 单个节点中配置有SSD硬盘与HDD硬盘,替代磁盘阵列作为存储使用,单个节点有独立的CPU与内存,作为计算节点使用。

1、基础架构

以3个Nutanix节点为例,每个节点安装有Hypervisor,在Hypervisor之上运行着客户虚拟机,并且每个节点有一台Nutanix控器虚机ControllerVM,配置有2块SSD与4块HDD,通过SCSIController作读写。

2、数据保护

Nuntanix与传统磁盘阵列通过Raid、LVM等方式作数据保护不同,而是与一般的分布式存储一样,通过为数据建立副本,拷贝到其他Nutanix节点存放,来对数据进行保护,Nutanix将副本的数量称作RF(一般RF为2~3)。

当客户虚机写入数据“见图上1a)流程”,数据先写入到本地Nutanix节点的SSD硬盘中划分出来的OpLog逻辑区域(相当于Cache的作用),然后执行“1b)”流程,本地节点的CVM将数据从本地的SSD的OpLog拷贝到其他节点的SSD的OpLog,拷贝份数RF而定。 当其他节点CVM确定数据写入完成,会执行“1c”流程,给出应答写入完成。 通过数据副本实现对数据的保护。

数据从SSD中的OpLog写入到SSD以及HDD的ExtentStore区域,是按照一定的规则异步进行的,具体详见下面的部分。

3、存储分层

Nutanix数据写入以本地落盘为主要写入原则(核心原则)。
当客户虚机写入数据是,优先考虑写入本地SSD(如果SSD已用容量未达到阀值),如果本地SSD满了,会将本地SSD的最冷的数据,迁移到集群中其他节点的SSD,腾出本地SSD的空间,写入数据。 本地落盘的原则,是为了尽量提高虚机访问存储数据的速度,使本地虚机不需要跨节点访问存储数据。 (这点应该是与VSAN与其他分布式文件系统最大原理性区别)

当整个集群的SSD已用容量达到阀值(一般是75%),才会将每个节点的SSD数据迁移到该节点的HDD硬盘中。

SSD迁移数据到HDD,并非将所有数据全部迁移到HDD,而是对数据进行访问度冷热的排序,并且将访问较少的冷数据优先迁移到HDD硬盘中。

如SSD容量达到95%的利用率,则迁移20%的冷数据到HDD;如SSD容量达到80%,则默认迁移15%的冷数据到HDD。

4、数据读取与迁移

Nutanix圣经引用-“<ustyle="text-decoration:none;border-bottom:1pxdashedgrey;">I/O和数据的本地化(datalocality),是Nutanix超融合平台强劲性能的关键所在。 所有的读、写I/O请求都藉由VM的所在节点的本地CVM所响应处理。 所以基本上不会出现虚机在一个节点,而需要访问的存储数据在另外一个物理节点的情况,VM的数据都将由本地的CVM及其所管理的本地磁盘提供服务。 </u>

<ustyle="text-decoration:none;border-bottom:1pxdashedgrey;">当VM由一个节点迁移至另一个节点时(或者发生HA切换),此VM的数据又将由现在所在节点中的本地CVM提供服务。 当读取旧的数据(存储在之前节点的CVM中)时,I/O请求将通过本地CVM转发至远端CVM。 所有的写I/O都将在本地CVM中完成。 DFS检测到I/O请求落在其他节点时,将在后台自动将数据移动到本地节点中,从而让所有的读I/O由本地提供服务。 数据仅在读取到才进行搬迁,进而避免过大的网络压力。 </u>”

个总结:即一般虚机读写数据都是读本地节点的硬盘,如果本地节点硬盘没有该数据,会从其他节点先拷贝过来本地节点硬盘,再为本地虚机提供访问,而不是虚机直接访问其他节点。 即要贯彻本地落盘的核心思想。

5、Nutanix解决方的优缺点

Nutanix方优点:

1)本地落盘策略,确保虚机访问存储速度:虚机写入的数据都在本物理节点的磁盘上,避免跨节点存储访问,确保访问速度,减轻网络压力。

2)采用SSD磁盘作为数据缓存,大幅提升IO性能:

见上表数据,从随机的读写来看,SSD的IO及带宽性能比SATA的性能提升了约1000倍。 而结合Nutanix的本地落盘策略,虚机数据写入,仅有本地的2块SSD硬盘作为数据缓存负责写入数据。

但由于单块SSD硬盘的IO比传统阵列的SATA高出1000倍,IO性能大幅提升。 (相当于要超过2000块SATA硬盘做Raid,才能提供近似的IO性能)。

3)永远优先写入SSD,确保高IO性能

数据写入HDD不参与,即使本地SSD容量满了会将冷数据迁移到集群其他节点SSD,然后还是SSD进行读写,确保高IO。 异步将SSD冷数据迁移到HDD。

4)数据冷热分层存储

冷数据存放在HDD,热数据保留在SSD,确保热点数据高IO读取。

5)设备密度高,节机房机架空间

2U可以配置4个节点,包含了存储与计算,比以往机架式/刀片服务器与磁盘阵列的解决方节了大量的空间。

Nutanix方缺点:

1)本地落盘及SSD缓存方确保了高IO,但是硬盘的带宽得不到保证。

传统磁盘阵列,多块SATA/SAS硬盘加入Raid组,数据写入的时候,将文件拆分为多个block,分布到各个硬盘中,同个Raid组的硬盘同时参与该文件的block的读写。 通过多块硬盘的并行读写,从而提升IO与带宽性能。

而Nutanix的解决方中,单个文件的读写遵循本地落盘的策略,因此不再对文件拆分到多块硬盘进行并行读写,而只有本地节点的SSD硬盘会对该文件进行写入。

虽然SSD硬盘的IO与带宽都是SATA/SAS的数百上千倍,但是SSD对比SATA/SAS硬盘在带宽上面只有2~3倍的速率提升,而传统Raid的方式,多块硬盘并行读写,虽然IO比不上SSD,但是带宽则比单块/两块SSD带宽高出很多。

因此Nutanix的解决方适合用于高IO需求的业务类型,但是因为它的读写原理,则决定了它不合适低IO、高带宽的业务类型。

三)行业竞争对手对比:

VMWAREEVORAIL软件包:VMware没有涉足硬件产品,但EVO:RAIL软件捆绑包可供合格的EVO:RAIL合作伙伴使用。 合作伙伴转而将硬件与集成的EVO:RAIL软件一起出售,并向客户提供所有硬件和软件支。

而EVO:RAIL的核心,其实就是VSphere虚拟化软件+VSAN软件的包。

但VSAN与Nutanix最大的一个区别,就是不必须完全遵循Nutanix的本地落盘的策略。 可以通过设置条带系数,将本地虚机的数据读写设置为横跨多个节点的硬盘,默认条带系数为1,最大可设置为12个,即一个虚机的数据写入,可以同时采用12个节点的SSD硬盘并行读写。

通过这种方式,VSAN可以一定程度的弥补了Nutanix方不适用于带宽要求高,IO要求低的业务类型的缺点。

但是这种横跨物理节点的访问流量,在虚机数量众多的情况下,肯定会给网络带来压力,网络带宽可能会成为另一个瓶颈。

其次VSAN可以集成在Hypervisor层,而不需要像Nutanix在Hypervisor上面运行一个控虚机CVM。

再次,Nutanix支KVM、Hyper-V、ESXI等多种Hypervisor,而VSAN仅支自家的ESXI。

其他待补充:由于暂时未对VSAN进行实际部署测试,仅停留在对其原理的研究,因此,关于VSAN的部分待平台上线测试完成后继续补充。

点赞 (4442) 收藏 (4442)

云计算怎么开发

云服务器1核2g能干什么

大数据和云计算哪个工资高

云计算考什么证比较好(云计算考证从哪考)

云计算运维和普通运维