沙子、塑料和铜——《大话存储》冬瓜头的软件定义数据中心

DOIT 12月11日原创报道 以“数据造化 智见未来”为主题的2013中国存储峰会今日在北京盛大开幕。作为一年一度的中国信息产业界领袖级会议,本次大会得到了中国软件行业协会、中国计算机学会存储技术专业委员会、武汉国家光电实验室和国防科技大学计算机学院的大力支持。共有10位第三方专家和23位业界领袖/专家出席峰会,并发表了25场极具前瞻性的主题演讲。Gartner和Forrester两家全球知名机构的分析师还与与会嘉宾就大数据浪潮下的存储进化与应对策略进行了两场高质量的高峰对话,现场吸引了超过千名参会嘉宾,给大家带来了丰盛的存储盛宴,再次引领中国存储产业发展的深度思考。

 

2013中国存储峰会

今年是DOIT正式成立十周年,也是中国存储峰会连续举办第九年。十年前成立DOIT传媒时,还没有Facebook、微博和微信,转眼十年过去了,互联网和IT技术都发生了翻天覆地的变化。也正在经历从传统互联网向移动互联网变革的过程,IT技术正在越来越融合,云计算、大数据的兴起,社交网络和海量数据的出现使传统企业IT架构越来越难以满足需求。

软件定义数据中心最近比较火,到底什么是软件定义?有硬件定义么?谁定义了谁?软件定义是新概念么?《大话存储2》作者张冬为您阐释他所理解的“软件定义”。

 

《大话存储》作者冬瓜头张冬

在业界看来,想玩转存储,一般至少要看一下《大话存储》这本书,而今天,这本书的作者,网络人气颇高的存储意见领袖@冬瓜头张冬,也来到了2013中国存储峰会的现场,并在软件定义数据中心分论坛分享了《软件定义,无处不在无时不有》的主题演讲。

另外,与以往会议不一样的是,在本次会场的最后,现场观众没有陆续减少,反而陆续有人进场,这我想这就是内容的影响力。

那么,在张冬看来,软件定义数据中心到底是怎么回事呢?

没有概念的炒作,也没有产品的宣传推广,今天,冬瓜头张冬以一个严谨真诚地学术的角度,做了一场实实在在的干货分享,识货的,赶紧mark!

以下是演讲实录:

非常荣幸今天有这个机会给大家做这次演讲,那么我现在是在PMC公司工作,但是我这个演讲完全是个人的一些观点,跟公司跟厂商没有任何关系。刚才听了Nutanix的同行介绍,有一些我感觉非常共鸣,尤其他刚才说到SAN控制器,你翻开SAN主板你看一下它的CPU跟你现在用的到底哪个更新。我今天这个主题叫做软件定义,无处不在无时不有,其实软件定义这个概念,也是去年或者前年炒起来的,不知道被谁出来这么个词,刚才主持人已经介绍了我就不再多做介绍了,那么软件定义这个概念的起源,是从SDN这三个字母起源的就是软件定义网络,那么之前网络是什么样呢?之前网络就是硬件底层接口一直到上面路由,为什么叫软件定义,有一帮人不管是用户还是运营商还是大学里面的教授还是MIT的天才,他们对这个产品有自己的诉求,比方说我没有这个能力来做底下高速的编码接口,但是我脑子里有一些思想,我这个路由协议要改一改,我那个算法要改一改,这些都是很上层的功能,那么传统这些做网络路由器交换机的厂商,比如思科还有国内的厂商,他们软件开发的时候不是那么容易就能满足用户所有需求,厂商的规划总是慢于用户的需求,而且用户的需求是百般多样的,不能用一两种产品满足所有用户,那么这部分用户就发起了我们要软件定义你的设备,你提供硬件我提供软件,或者你把你软件开发接口提供给我,我来开发软件,那对于传统软件是不接受的,我本来身体有大脑,有躯干,你现在把大脑拿掉,我就是一堆烂铁,厂商肯定是抵触的。

那么SDN这个词我自己理解了一下就是上面看到了这个应该说是技术叫法,那软件定义又出来了这就是SDN市场名词,那么软件定义真正目的我个人看法,其实这些硬件厂商不管是网络还是存储还是什么设备厂商,只要不是非常底层的设备它里面的软硬件基本都已经解耦了,解放软件模块的生产力。厂商早已解耦,比如最典型的软件存储厂商,不管你底下用什么存储软件,它都会给你虚拟化起来,还有一个比方说典型的厂商它的OS很早就是软件定义的,他的厂商一开始就是写软件的厂商,再加上跟别人合作的硬件,它的模拟器直接就是内核模拟器,所以说这种厂商只要稍微成一点体系还是比较老的厂商,它的软件都已经解耦,软件定义一开始就存在,现在用户开始要求解耦。

我们看一下软件定义这个东西谁在炒作它,那么二线三线的存储厂商集成商这些人非常喜欢这个概念,因为这个市场已经被几大SAN存储厂商基本垄断了,其他二三线的厂商如果产品往外推的话是比较难的,品牌我们有没人敢用,所以有了这些概念之后,二三线厂商甚至一些集成商,可以拿一些开源的东西加上一些硬件形成自己的东西,所以说谁在炒作它二三线厂商集成商。另外一个比较大的团体在炒作这个概念就是互联网,互联网的这帮企业这帮工程师,那他们为什么炒作这概念呢,其实他们没必要炒作这个概念,他们一开始就在软件定义,2007年包括腾讯阿里巴巴他们也在用SAN,包括阿里巴巴跟钱有部分的支付宝他们也在用SAN,而且也在新采购一些SAN,这些并不是绝对的SAN就不行,还是看应用场景,所以说他们自身在用这种软件定义方案,那他们为什么有这个概念,他们并非是炒作主体,只不过他们这种做法被其他人拿来炒作了。

好,我们看一下整体生态的环境,那么上下游几个角色互联网企业,网络运营商,传统企业客户,然后集成商,这个集成商大部分都依赖于传统的企业客户这块来做生意。再就是底下一线二线三线厂商,到底谁在抵触谁在炒作呢,刚才已经基本描述清楚了那些关系。那么对于软件定义这个概念,我们看一下几个厂商的态度,当然这是我的猜测,仅代表个人观点大家看一下就可以了。也就说其实这些厂商对软件定义,一定是各有各的态度,各有各的反映,这就不可言谈了。那说软件定义我想先从硬件说起,到底谁定义了谁,对以后架构会有什么影响,我想从源头上谈一谈这个事情,那么最硬的东西是沙子(音译),把沙子做成芯片,做成芯片的时候又有了一个层次最硬的层片就是什么数字电路。那么它实现逻辑非常快,当然它是不可软件定义的,比方说你把代码写成一次,这个东西就在这儿了,就是软件定义芯片-FPGA,软硬解耦,用户自行开发逻辑,可现场更换,需要重启,耗费数分钟。如果你发现电路里面有bug,我再把代码重新写一遍,把它上传上去。比方说你把它定义成一块CPU可不可以,当然可以。

那我们再把脑子换到存储里面,说到存储里面大家可能知道RAID,一开始相当于把磁盘做RAID,RAID上划分逻辑空间,那么RAID其实也是发展的,那么一开始软件把物理盘定义了,这算是一种软件定义,那么后来就最近这段时间RAID2.0这个技术其实也在被炒作,RAID2.0相当于把传统RAID又给定义了,传统RAID我不知道大家清不清楚RAID5义(音译),那么RAID2.0做了什么事,把RAID5义(音译)的条带动起来了,我见缝插针每个磁盘上有空闲空间就放到哪个磁盘,那么为什么要把它浮动起来还是为了灵魂,比方说我可以定义条带深度,这样的话可以适配不同东西,那么RAID2.0浮动起来之后把数据重构之后这些条带可以乱写的,这个时候可以做到充分的多盘并发读并发写,那相当于把RAID5义做了深化,平时读写的时候你发现要有一些代价,这是RAID软件定义思想的发展。

那么在这里我想和大家分享一下我之前所设计的一些东西,我之前没有把它叫做应用定义,那大家都在说软件定义,我可不可以再高一层,我可以来一个应用定义,或者用户定义存储,怎么用户定义,比方说我在这个存储里面我给开放接口,你应用各种程序各种需求通过我的接口部署上来可以二次开发,我这算不算用户定义,这也是一个新概念,我在这里想讲一下应用定义概念。传统RAID1.0上面这图,或者下面这图RAID1.5,池就是RAID50,其实这都是一些概念,底层就是RAID50,那么不管是RAID1.0,还是RAID1.5它们对数据布局都没有充分考虑,你像上面这种那么3个RAID组,逻辑资源之间无隔离性,多数场景下访问冲突。不灵活没有解耦,那解耦之后是什么结果,我给不同应用分配不同属性的空间,比方说你多路视频,我可以把不同路视频把它用尽量少的盘来操作没有问题,这样做是没有任何冲突的,而且不会影响其他数据,当你这个空间真正需要这种大规模访问时候可以把它跨到盘上,然后我可以给你提供接口。你底下是没有被隔离的,你再扩性能也是无济于事,这个时候需要用扩容来换性能的方式。应用定义这方面在不改变容量情况下把底下布局给变掉,相当于一个变形金刚一样,根据应用来布局这个数据,而且是动态的。

这是在一个控制器内部的一些盘,同样对于多控制器操作系统,假设说刚才Nutanix,那么在Nutanix多个节点上部署这套思想,我可以文件把逻辑空间把各种资源动态的横向的在各个节点之间做规划,那么你根据什么去做这个规划,你可以跟每个节点上面每个资源的利用率去做。那么所有这些步骤你都可以用鼠标动态操作,那么有了这么一种操作方式之后我们的存储就不是之前傻傻提供一个卷,性能怎么差我也管不了,它是真正一款我也可以把它叫做软件定义,现在我的用户资源跟硬件完全是解耦的,而且是灵活的,我也可以把它叫做应用定义,而且是动态在线的。

那么我们再回来看一下云计算,云计算这块我不打算扩开说了,云计算一直用资源定义数据中心的资源,用一个数据中心级的资源管理软件你叫它管理软件也好,既然是操作系统里面有很多模块,当然这是它发展的雏形,单机操作系统里面有进程,内存,对于数据中心里面每一个进程把进程力度扩大了,每个进程就是一个VI(音译)本质是一样的。那么我在这里还想表达一点软件定义这个概念它对上游厂商它是一个机遇,为什么是一个机遇,就说软硬充分解耦之后会导致一个什么问题,会导致两极分化,软的更软,软件的人我就做软件,硬的更硬,那么当然你这个解耦过程中它不是说一刀就切断了有很多扯皮,上下仓耦合很紧你要给它拆开会有很多藕断丝连,这是上游厂商的机遇,这种角色越容易别软件定义掉,数字电路你能定义掉吗,你拿英特尔CPU写一个编码器会运行吗,能运行,但随着非常慢。对于整机厂商,它们角色更多是集成的角色,软硬件集成,这些厂商看到危机的苗头,所以说他一开始响应最快比方说一体化设备,这个动作叫做软件定义可以,里面就是把软件装到硬件上,叫做硬件定义可不可以,也可以,就是厂商把握这个资源,软硬件定义这个东西,最终是个利益的雏形定义过程。

好,我们例举一下各种软件定义,从操作系统,到单机无处不在,无时不有,代码指令定义了CPU里的电路,驱动定义了各种外设,TCPIP和Socket定义了以太网,Raid定义了物理盘,OS卷定义了Lun等等。好,我们最后看一下软件定义炒作了哪些概念,软硬解耦/服务器+开源软件,软硬耦合更紧(一体机、一体盘)底层的计算和存储虚拟化。云计算/异构统一管理调度(管理软件,操作系统)。对象存储它当时我记得是80年代就有人提出对象存储,它当时的设计就是在磁盘里面直接提供类似于文件的数据,你像这种思想80年代就有为什么到了现在才真正被细节做出来,包括虚拟机概念都是从大型机下来的,在应用到PC机上。那你说它是不是一种软件定义磁盘,我觉得是。那么我们看一下软件定义最终本质是什么?是利益的重定义,本来软件到底由谁开发,厂商开发还是用户开发,那这种其实是利益的重定义,软件厂房开放了它的架构,那么这个厂商就要寻找另外的盈利机会了。那么上下游角色的重定义到底谁是厂商谁是用户,被重定义也不好说了,好,我的分享就到此结束。