摘要:2011年8月21日,Netscape创始人马克·安德森(Marc Andreessen, 硅谷著名投资人, 投资了Facebook、Groupon、Skype、Twitter、Zynga和LinkedIn等高科技新秀),在华尔街日报上发表《软件正在吞噬整个世界》,认为当今的软件应用无所不在,并且正在吞噬整个世界: “越来越多的大型企业及行业将离不开软件,网络服务将无所不在,从电影、农业到国防。 |
window.getPageInfoURLFileName('0') |
2011年8月21日,Netscape创始人马克·安德森(Marc Andreessen, 硅谷著名投资人, 投资了Facebook、Groupon、Skype、Twitter、Zynga和LinkedIn等高科技新秀),在华尔街日报上发表《软件正在吞噬整个世界》,认为当今的软件应用无所不在,并且正在吞噬整个世界: “越来越多的大型企业及行业将离不开软件,网络服务将无所不在,从电影、农业到国防。许多赢家将是硅谷式的创新科技公司,它们侵入并推翻了已经建立起来的行业结构。未来十年,我预计将有更多的行业被软件所瓦解”。安德森以亚马逊颠覆图书零售巨头Borders(已于2011年2月破产)、Netflix颠覆视频行业、苹果颠覆音乐行业、Skype颠覆电信行业、LinkedIn颠覆招聘、PayPal颠覆支付等为例,并指出基于互联网的服务,将让新创建全球性软件初创公司变得容易。
中国也是如此,包括BAT(百度阿里腾讯)、滴滴、快的、美团、大众点评等互联网公司在内的软件公司,深刻地影响了我们每一个人的生活,也已经或正在逐步地颠覆着教育、零售、通信、交通、医疗、政府等行业。
2013年10月Gartner发布2014年十大战略技术中,重要的组成部分就有:软件定义一切。Gartner认为:软件定义一切囊括了在基础设施可编程性标准提升下不断增长的市场势头、由云计算内在自动化驱动的数据中心互通性、DevOps和快速的基础设施提供等。软件定义一切还包括各种举措,如OpenStack、Open Flow、Open Compute Project和Open Rack,共享相同的愿景。开放性将成为供应商的目标,SDN(网络)、SDDC(数据中心)、SDS(存储)和SDI(基础架构)技术的供应商都力图成为所在领域的领导。
那么,什么是软件定义? 难道以前没有软件定义? 都是硬件定义吗?
我们先来看一下,什么是软件?
·软件是用户与硬件之间的接口界面。
用户主要是通过软件与硬件进行交流。
·早期,为了大规模生产,降低制造的复杂度和成本。许多功能都固化在硬件里,我们可以称之为硬件定义。随着人民日益增长的多样化、个性化定制的需求,以及云计算所要求的,更加智能、更加灵活的自动化的需求,由软件定义来操控硬件资源的需求将越来越多、越来越广。
最早的空调里面也有软件,但相对固化,不提供或者提供非常少的接口,缺乏灵活性。那时,我们只能选择温度,或者开关;后来出现了更多的选择,如风速、风向等的设定。到了智能家居的时代,通过向应用软件开放空调的编程接口,使得我们能在回家之前,就借助手机或者平板,开启并设置空调了。
软件定义,究其本质,就是将原来高度耦合的一体化硬件,通过标准化、抽象化(虚拟化),解耦成不同的部件。围绕这些部件,建立起虚拟化软件层,以API(应用编程接口)的方式,实现原来硬件才提供的功能。再由管理控制软件,自动地进行硬件资源的部署、优化和管理,提供高度的灵活性,为应用提供服务。
简而言之,就是更多地由软件来驱动并控制硬件资源。
需要注意的是,软件定义其实是一个过程,不是一蹴而就的目标,它分成不同阶段。软件定义逐渐将硬件与软件进行解耦,将硬件的可操控成分按需求,分阶段的,通过编程接口或者以服务的方式逐步暴露给应用,分阶段地满足应用对资源的不同程度、不同广度的灵活调用。
什么是软件定义存储
当我们讨论软件定义存储的时候,避免不了要先回顾一下软件定义这个词汇出现的历史。
在IT基础架构领域,最早出现的软件定义,是软件定义网络(Software Defined Network)。SDN起源于2006年斯坦福大学的Clean Slate研究课题。2009年,Mckeown教授正式提出了SDN概念。通过将网络设备的控制平面与数据平面分离开来,并实现可编程化控制,实现了网络流量的灵活控制,为核心网络及应用的创新提供了良好的平台。
随后,在2012年8月,VMware在其VMworld 2012大会上首次提出软件定义数据中心(Software Defined Data Center,简称SDDC)的概念。
VMware认为,软件定义的数据中心,是 IT 演变的下一个阶段,是迄今为止最有效、恢复能力最强和最经济高效的云计算基础架构方法。SDDC方法论将对存储、网络连接、安全和可用性应用抽象、池化和自动化,整个数据中心由软件自动控制。 基础架构提供的服务将聚合起来,并与基于策略的智能调配、自动化和监控功能结合在一起使用。应用编程接口和其他连接器支持无缝延展到私有云、混合云和公有云平台。
总结一下,SDDC概念的核心包括:
1.软件定义的数据中心由软件自动控制;
2.软件定义包括三个阶段:抽象、池化和自动化;
3.软件定义的数据中心包括五大组成部分:计算、存储、网络、管理和安全。
作为VMware软件定义数据中心五大组成部分之一,软件定义存储(Software Defined Storage,简称SDS)的概念也在全球范围内,首次被提出。
VMware认为:软件定义的存储产品是一个将硬件抽象化的解决方案,它使你可以轻松地将所有资源池化并通过一个友好的用户界面(UI)或API来提供给消费者。一个软件定义的存储的解决方案使得你可以在不增加任何工作量的情况下进行纵向扩展(Scale-Up)或横向扩展(Scale-Out)。
实际上,SDS的定义出现至今已经三年多了,但仍没有统一的标准,VMware的定义也只是一家之言。各家权威咨询机构,各大厂商,都对这一概念有着不同的定义或描述。下面我们再来看看SNIA对SDS描述。SNIA是Storage Networking Industry Association的简称,也即全球网络存储工业协会,做为曾经制定过SAN,NAS,对象存储,云存储等标准的第三方协会,我们有理由相信,SNIA对SDS的看法比较权威。其内容也确实有助于大家更深刻地理解SDS。
SNIA在SDS的定义中提到,SDS允许异构的或者专有的平台。必须满足的是,这个平台能够提供部署和管理其虚拟存储空间的自助服务接口。除此之外,SDS应该包括:
·自动化:简化管理,降低维护存储架构的成本;
·标准接口:提供应用编程接口,用于管理、部署和维护存储设备和存储服务;
·虚拟数据路径 :提供块、文件和对象的接口,支持应用通过这些接口写入数据;
·扩展性:无需中断应用,也能提供可靠性和性能的无缝扩展;
·透明性:提供存储消费者对存储使用状况及成本的监控和管理。
SNIA认为,存储服务的接口需要允许数据拥有者(存储用户)同时表达,对于数据和所需服务水准的需求。数据的需求,就是SDS建立在数据路径(Data Path)的虚拟化,而控制路径(Control Path)也需要被抽象化成为存储服务。云、数据中心和存储系统,或者数据管理员能够被用于部署这个服务(指Control Path)。
在SNIA对SDS的看法中,贡献最大,也是最有价值的部分,应该是SNIA关于Data Path(数据路径)和Control Path(控制路径),以及手动传送数据请求和应用通过元数据来传送请求的的对比描述。它帮助大家清晰地了解了两者的的区别,并描绘了未来理想的SDS的蓝图,为如何发展SDS指明了方向。
SDS包括数据路径和控制路径。数据路径由以往的标准接口(块、文件和对象)组成。那么控制路径呢?在传统存储中,其实就是指存储管理员为数据提供部署数据的服务。在使用传统存储的大多数情况下,每一个数据服务有着各自的管理接口。变更数据服务,会导致所有存放在相应虚拟存储空间的数据都受到影响。
1.传统方式下传递数据请求的方式
存储用户的控制路径是在带外,通过传统、人工的方式将数据请求传递给存储管理员,例如对于数据保护、可用性、性能、安全性的要求。存储管理员进入存储管理界面,按存储用户的请求分配存储资源。
这种情况是当前普遍存在的主流方式。其实是:存储管理员定义。
这种存储部署方式存在一个最大的问题,扩容或升级非常艰难。由于刚性架构限制系统资源只能静态分配,这就意味着后续新部署的资源难以归入原先存储体系。
2.理想方式下传递数据请求的方式
理想的SDS,其传递数据请求的方式是:让应用通过元数据来请求相应的数据服务。如,空间部署,数据保护(快照、克隆),数据高可用(容灾、双活),性能,安全等。
理想的SDS实现了存储基础架构的自动化机制,极大地降低了人工管理运维成本,数据请求需直接传达至自动化软件。它能够直接应对请求,分配应用人员所需的存储资源,而无需人工干预。存储管理员可以从枯燥重复的建卷、映射卷等工作中,从疲于修补那些导致存储服务水准降低的突发故障中,脱身出来,转向更高级的任务,例如定义存储策略。
3.SNIA之SDS全局示意图
图4是SNIA关于理想的SDS的全局示意图,很好的概括了未来理想的SDS所涵盖的各个方面。
·存储管理
将来自服务器本地的闪存盘、机械盘,存储阵列,JBOD等存储资源,通过存储管理协议(如SMI-S等),进行特性描述和虚拟化,构建出存储资源池。
·数据服务
存储资源池化后,数据服务即可按照用户对存储服务级别(如金银铜)的要求提供。数据服务包含:空间部署、数据保护、数据可用性、性能、数据安全性。
·数据请求
存储资源的使用者,如软件开发人员通过数据管理接口(如CDMI),向SDS发起数据请求。由于SDS开放了丰富的API供调用,因此SDS能够满足用户的数据请求,按照服务级别,提供相应的存储资源。
除了VMware、SNIA之外,Gartner、IDC,以及EMC、IBM、HP、DELL等,都提出了各自对SDS的定义或阐述。虽然每家对SDS的定义都各有不同,但易于扩展(主要指在线横向扩展)、自动化、基于策略或者应用的驱动都几乎都成为大家定义中的必备特征。而这也是软件定义数据中心的重要特征,只有具备自动化的能力,才能实现敏捷交付,简单管理,节省部署和运维成本。自动化也成为各家SDS方案,是否愿意走向更高阶段的试金石。
SDS的分类
软件定义存储的概念很大。我们所熟知的,存储虚拟化、Server SAN、超融合架构(HCI)都是SDS的一部分。
下面笔者不揣浅陋,尝试着对纷繁复杂的SDS进行分类,用来帮助大家对SDS进行深入理解。
1.Control Plane(控制平面)
在SDS Control Plane这一层,比较著名的有:
1)VMware SPBM (Storage Policy Base Management, 基于存储策略的管理);
2)OpenStack Cinder 。Cinder是OpenStack云平台的一个组件,用来提供块存储服务;
3)EMC ViPR。目标是实现EMC存储、异构存储、商用硬件本地存储资源的存储虚拟化(包括互操作性);
4)ProphetStor (希智)的Federator;
5)FalconStor(飞康)的 Freestor;
2.Data Plane (数据平面)
在SDS Data Plane这一层,比较复杂,组成部分较多。