超融合技术解决了以往传统硬件、软件复杂的选型过程,简化了厂商服务用户的中间环节,加快了新一代数据中心的实现,具有明确的市场应用前景。目前,超融合技术与应用蓬勃发展,已经在政府、教育、企业、医疗、电力、金融等领域获得大量部署和应用。在2016中国超融合技术论坛上,笔者非常有幸的采访到了华云网际创始人游峰先生和王劲凯先生,就超融合的相关话题以及华云网际的裸金属技术进行了交流。
一、像用手机一样使用超融合技术
谈到超融合,游峰先生认为超融合是把服务器、存储和网络设备三合一了。
华云网际创始人游峰先生
在2000年以后,无论网络设备还是存储设备,硬件的本质上其实并没有太大的变化,如果把思科的交换机和EMC的存储设备拆开来你会发现它们实际上并没有太多的差别,也就是说在服务器上加入一些网卡就是交换机硬件,加入大量硬盘就是存储硬件,配合不同的操作系统就构成了不同的应用设备。
这种分别部署的方式,存在着很多的问题,其中最为突出的就是CPU的利用率比较低。游峰先生表示,即然硬件本质上并没有太多的差别,那何不在一台服务器中放入三颗CPU,分别运行计算系统、存储系统和网络系统,这就是超融合的三合一。这样的好处是不但提高了设备的利用率,而且让三台机器变成一台,中间的连线少了,占地少了,成本降低了,可靠性提高了。
超融合技术不但解决了分布式存在以上各种问题,最重要的是要解决了易用性的难题。游峰先生认为,个人电脑是大型计算机的超融合,手机是个人电脑的超融合,把个人计算机框化到一个手机上,加入了触摸技术,这样老人小孩都可以用了,就把使用门槛无限降低了。所以,超融合的重点是解决易用性的问题。工厂就应该只有工人,学校就应该只有老师,没有专业的IT人员。超融合让易用难度大幅降低,因此工人和老师也可以管、可以用他们的IT设备,游峰先生这么认为。
此外,超融合不单单是解决了易用性的问题,同时也让使用成本进一步降低。比如现在笔记本电脑基本上是人手一个,但是只有上过大学,会打字的才会用,一般老人小孩都不会用。超融合同样存在这样的问题。此前,医院、工厂和学院的传统IT必须需要专家,但医院、工厂和学校里没有专家,所以超融合不仅仅是解决一个易用性,还解决了买的起用不起的问题,因为买的时候并没有花多少钱,但大部分都不会用,必须请专家;另外,坏了也没人修。所以,超融合就很好的解决了这些问题,让使用成本降到最低。
二、软件定义存储,不应该成为制约系统性能的瓶颈
软件定义存储是超融合里面必不可少的一点。
在Flash之前,存储介质性能要严重滞后于其它硬件性能的发展。在Flash时代,介质性能已经不再是问题了,但操作系统却成为了影响系统整体性能的瓶颈,这是因为Linux标准的API并没有提供高性能的场景设计。
谈到软件定义存储,华云网际联合创始人王劲凯先生在采访开始就给笔者介绍了在Flash时代软件定义存储所面临的性能无法提升的难题。他表示,大多数软件定义存储都是实现在linux用户空间。无论你在一个设备上插入多少硬件,插入多少资源,都会发现一个节点一二十万iops就到了这些软件定义存储的上限了,这是因为Linux系统的任务调度,内存管理,以及系统调用,都是非常缓慢,完全不适合Flash时代的需求。如何解决绕开Linux系统,充分表现出Flash的性能呢?
这里主要通过两个层面来考虑,1、硬件的访问绕过操作系统(stack-bypass),2、软件的运行绕过操作系统(os-bypass)
stack-bypass这部分业内已经有相对成熟的技术,相对来说容易实现。比如英特尔提供的DPDK/SPDK,Mellanox的RDMA,都不需要经过操作系统就可以直接访问硬件,我们推出的裸金属架构采用了这样的解决方案。
os-bypass难度相对较大。比如内存访问,裸金属技术首先要绕过操作系统的内存管理,直接访问物理内存,自己来实现内存管理,这中间要考虑NUMA,染色等问题。这部分工程量非常大。其次,任务调度也要考虑的非常清楚。过去解决高并发问题的时候,大家就会采用多线程的机制。但是,你会发现多线程一般在数百并发的时候会变得比较困难。在这种情况下,我们引入了协程技术,就是通过任务之间协作来分配时间片,每个任务处理完之后自动放弃时间片,而不是操作系统让他强制放弃时间片
另外,在事件处理上,过去通过操作系统标准的实现,每个都跟时间有关,包括硬件系统的时钟中断。但是,这个技术并不是非常的高效,在这方面我们采用polling技术,没有时间延期的。在多核同步上,目前 CPU的核数越来越多,过去编程的时候大家会采用生产者、消费者模型,用线程用来处理任务,但是到现在不再合理了,多核同步并不是一个非常高效的方案,这主要是因为NUMA和cachemiss问题,虽然大家说NUMA问题CPU解决的还可以,但是不够好。
虽然无锁队列能够一定程度上解决这个问题,但是我们几乎没有使用,大部分情况下采用run-complete模型,每个CPU的核从他接受到任务,到完成任务中间不再任何跳转。避免隐性的CPU开销。
通过以上的方案,我们已经拿掉尽可能多的环节,包括进出Linux的网络堆栈,包括Linux的存储堆栈,拿掉之后除了我们自有的软件堆栈之外,剩下的流程全是在硬件上运行的。我们自有的软件堆栈,每个IO目前压缩到6微秒,并且还有一些优化空间。
通过裸金属软件定义存储技术的应用,让存储的性能与硬件性能几乎完全一致,它不带来硬件性能的任何衰减。
三、存储系统必须做到百分之百的万无一失
在采访的过程中,谈到创业历程和产品演变。游峰先生表示,之所以选择存储行业,一是因为存储的成本非常高。在基础设施建设上,软件是数据库最贵,硬件是存储最贵。例如银行的数据是存放在数据库上面的,能够让我们很容易的访问数据,但是数据库是存在存储上,存储是把硬件介质组成一个高可用的大存储设备,这里面放的都是用户的数据,是不能丢的。所以这个就是为什么软件数据库最贵,硬件是存储最贵,因为他都是有状态的。一台服务器,一台交换机,出了故障可以随时换掉,但是数据库和存储必须保证百分之百的万无一失。
二是当时国内几乎没有核心的存储技术,都是被非中国企业垄断的。在当时,服务器已经国产化了,有联想、曙光、浪潮、长城;网络也国产化了,有中兴、华为、华三等。但是,存储在国产化进程中非常缓慢,所以最后选择了存储行业。
从2007年开始技术研发,时至今日已经有九年的时间了,为何会选择此时走出来,游峰先生有自己的观点。他认为,一个技术产品,不管是Orace还是微软,一般都要到第三个版本才会真正稳定下来,我们已经演进到了第四个版本,不但稳定好、功能强大,包括性能出色,可以把硬件性能全部发挥出来。这是为什么我们低调了这么多年现在终于可以亮相了的最主要原因,因为我们认为我们已经把产品跟技术做好了,可以放心给用户使用了,已经对我们的产品有着足够的信心,可以走到前台,也能够拿出来与大家进行分享了。
作者:ZC
来源:51CTO