叶毓睿
(VMware公司 北京 100190)
云计算时代的企业级存储之特性
叶毓睿
(VMware公司 北京 100190)
云计算势不可挡,在未来较长的时间段内,私有云和混合云是主流。作为数据中心的基础部件之一,企业级存储面临了新的挑战,云计算要求存储具有如下特性:自助服务、存储池化、弹性扩展、快速部署、按量计费等。软件定义存储是解决这一挑战的最佳选择。
企业级存储;云计算;软件定义数据中心;软件定义存储
企业对数据存储有着额外的需求,它的高标准体现在:高可靠性、高可用性、可维护性、高性能、大容量、可扩展性和高级的数据保护(备份和容灾)。
有别于个人用户使用的移动硬盘、U盘等消费级存储,企业级存储因为是企业信息资产存放的地方,需要极高的可靠性、稳定性。而且,在当今信息化逐渐深入的时代背景下,大多数行业都需要借助信息技术(简称IT)去提高管理效率,维护客户关系,快速响应讯息万变的商业环境,并给领导者提供值得信赖的决策信息。这使得IT数据的产生、存放、传输、保护变得日益重要,对于重要的关键业务应用,还需要通过备份、容灾等手段,更好地将数据保护起来,以应对可能突如其来的灾难事件。例如:15年前,也就是2001年的911事件中,许多金融机构聚集的世贸大厦里的大量数据化为乌有。其中,纽约银行的数据中心遭到严重破坏,由于缺乏可靠的灾备系统,在30天后关闭一些分支机构,几月后只能破产清盘。而摩根士丹利(Morgan Stanley)在世贸大厦租用了高达25层的办公室,许多人以为它的运营将受到重创。然而,摩根士丹利宣布,全球营业部第二天可以照常工作。因为先前建立的数据备份和远程容灾系统,保护了重要的数据。不得不承认,数据备份和远程容灾系统在这时挽救了Morgan Stanley。
据统计,金融业在信息系统遭到破坏的两天内,遭受的损失为日营业额的一半,如果14天内无法恢复信息系统,3/4的公司业务不得不停顿,43%的公司将永久停业,没有实施灾备措施的公司3/5将在灾难发生后的两到三年间破产。这里提到的灾难备份,都是企业级存储技术中的重要一环。
此外,数据7x24小时可以被持续访问,也越来越重要。有些企业,停机1分钟,甚至都会导致数十万,甚至数百万美元的损失;丢失数据则被视为更严重的事故。
云计算发端于十年前,至今已经推动着IT洪流,滚滚向前,极大地影响了整个IT产业的格局。云计算其实并不特指一种或几种技术,实际上是使用IT资源的模式的创新。虽然一万个人的眼里,就有一万个不同的云计算的定义,不过被大家公认的,接受度比较高的是NIST(美国国家标准与技术委员会)对于云计算的定义[1],如图1所示[2]。
图1美国NIST关于云计算的定义
NIST认为,云计算有如下五个核心本质特征:
1.按需提供的自助服务
消费者可以单方面地按需自动获取计算能力,如服务器时间和网络存储,从而免去了与每个服务提供者进行交互的过程。
2.通过网络广泛访问
网络中提供许多可用功能,可通过各种统一的标准机制从多样化的瘦客户端或者胖客户端平台获取(例如,手机、笔记本电脑、或台式机)。
3.资源的池化整合
服务提供者将计算资源汇集到资源池中,通过多租户模式共享给多个消费者,根据消费者的需求对不同的物理资源和虚拟资源进行动态分配或重分配。资源的所在地具有保密性,消费者通常不知道资源的确切位置,也无力控制资源的分配,但是可以指定较精确的概要位置(如,国家、省或数据中心)。资源类型包括存储、处理、内存、带宽和虚拟机等。
4.快速而弹性的部署
能够快速而灵活地提供各种功能以实现扩展,并且可以快速释放资源来实现收缩。对消费者来说,可取用的功能是应有尽有的,并且可以在任何时间进行任意数量的购买。
5.可量化的服务
云系统利用一种计量功能(通常是通过一个付费使用的业务模式)来自动调控和优化资源利用,根据不同的服务类型按照合适的度量指标进行计量(如存储、处理、带宽和活跃用户账户)。监控、控制和报告资源使用情况,提升服务提供者和服务消费者的透明度。
从业务交付模式来看,包括如下三种:
1.软件即服务(SaaS)
该模式的云服务,是在云基础设施上运行的,由提供者提供的应用程序。这些应用程序可以被各种不同的客户端设备,通过像Web浏览器(例如:基于Web的电子邮件)这样的瘦客户端界面所访问。消费者不直接管理或控制底层云基础设施,包括网络、服务器、操作系统、存储,甚至单个应用的功能,但有限的特定于用户的应用程序配置设置则可能是个例外。
2.平台即服务(PaaS)
该模式的云服务,是将消费者创建或获取的应用程序,利用资源提供者指定的编程语言和工具部署到云的基础设施上。消费者不直接管理或控制包括网络、服务器、运行系统、存储,甚至单个应用的功能在内的底层云基础设施,但可以控制部署的应用程序,也有可能配置应用的托管环境。
3.基础设施即服务(IaaS)
该模式的云服务,是租用处理、存储、网络和其它基本的计算资源,消费者能够在上面部署和运行任意软件,包括操作系统和应用程序。消费者不管理或控制底层的云计算基础设施,但可以控制操作系统、存储、部署的应用,也有可能选择网络构件(例如:主机防火墙)。
在笔者看来,这三种交付模式的不同,其实对应的就是三类不同的使用者的角色。SAAS对应业务应用的用户,例如著名的Salesforce,许多外企都在使用其云端的客户关系管理软件,通过浏览器即可使用;PAAS对应开发部署人员,例如开源PAAS平台提供商Cloud Foundry;而IAAS对应运维管理人员,公有云领域中,最著名的有亚马逊AWS、微软Azure,另外还有谷歌GCE、IBM Softlayer、VMware vCloud Air等。
从架构部署模型来看,包括如下四种:
1.公共云(Public cloud)
公共云对一般公众或一个大型的行业组织公开可用,由销售云服务的组织机构所有。
2.私有云(Private cloud)
私有云是为一个用户/机构单独使用而构建的,可以由该用户/机构或第三方管理,存在预置(on premise)和外置(off premise)两个状态。
3.团体云,也叫社区云(Community cloud)
社区云是指一些由有着共同利益(如任务、安全需求、政策、遵约考虑等)并打算共享基础设施的组织共同创立的云,可以由该用户/机构或第三方管理,存在on premise或off premise两个状态。
4.混合云(Hybrid cloud)
混合云由两个或两个以上的云(私有云、社区云或公共云)组成,它们各自独立,但通过标准化技术或专有技术绑定在一起,云之间实现了数据和应用程序的可移植性(例如,解决云之间负载均衡的云爆发(cloud bursting))。
在笔者看来,公有云意味着用户的所有权和使用权相分离;私有云意味着用户不仅有使用权还有所有权。团体云通常专注在具体行业或地域。混合云,顾名思义,业务可以在不同于以上三种不同部署模型云之间漂移。例如,铁路系统的购票网站12306,平时运行在铁道部自己的私有云上;春运高峰时期,12306会将车票查询业务放到阿里云(公有云)计算平台上。从长远来看,公有云的份额或越来越大,但在中期、近期的时间段内,考虑到安全性、政府合规、管理、兼容性、惯性、迁移成本等因素,许多用户仍然会选择将业务继续存放在私有云上,而一些非关键业务或许可能考虑放在公有云上,这意味着掌握混合云的技术越来越重要。
由于云计算涉及的范围过于广泛,难以在一篇文章中面面俱到。本篇文章里所提到的云计算主要指私有云,是当前绝大多数企事业单位主流的部署模型。图2为传统数据中心的典型的拓补图,可以看到传统数据中心中,包含了几个基础组件:服务器、网络和存储。存储实际上应对场景的不同,包含了NAS(提供文件共享空间,存放非结构化数据)和SAN(提供块数据的访问,通常用于存放结构化数据,例如数据库、邮件等业务应用的数据)。企业级存储通常还包含了备份或容灾体系,例如图2所示,其中还有专门的备份存储[3]。
云计算出现以后,对数据中心提出了新的挑战和要求,不过仍然包含服务器、网络和存储这三大基础组件,但是对于组件的呈现形态,以及控制方式有了很大的变化,即软件定义的数据中心(Software Defined Data Center,简称SDDC)。SDDC可以视为私有云的云计算平台的最佳落地方式,而软件定义的存储(Software Defined Storage,简称SDS)是其中的重要组成部分。实际上可以说:软件定义,为云而生。
图2传统数据中心拓补图
结合NIST对云计算的定义可知,云计算对于新一代存储提出了如下要求:存储即服务(Storage as a Service),存储资源池化,能够快速而弹性地部署存储资源,存储资源可以按量计费。而这些要求,刚好与软件定义存储的特征十分吻合。云计算时代所需要的企业级存储,即软件定义存储,当今IT正在逐渐踏入软件定义的世界。
2011年8月21日,Netscape创始人马克·安德森在华尔街日报上发表《软件正在吞噬整个世界》,认为当今的软件应用无所不在,并且正在吞噬整个世界: “越来越多的大型企业及行业将离不开软件,网络服务将无所不在,从电影、农业到国防。许多赢家将是硅谷式的创新科技公司,它们侵入并推翻了已经建立起来的行业结构。未来十年,我预计将有更多的行业被软件所瓦解”。安德森以亚马逊颠覆图书零售巨头Borders(已于2011年2月破产)、Netflix颠覆视频行业、苹果颠覆音乐行业、Skype颠覆电信行业、LinkedIn颠覆招聘、PayPal颠覆支付等为例,指出基于互联网的服务将让新创建全球性软件初创公司变得容易。时至今日,新的颠覆仍然不断出现,例如Uber颠覆出租车行业,Airbnb颠覆住宿业。
中国也是如此,包括BAT(百度阿里腾讯)、京东、滴滴、美团、大众点评、小米、去哪儿、饿了吗等互联网公司在内的软件公司,深刻地影响了我们每一个人的生活,也已经或正在逐步地颠覆着教育、零售、金融、通信、交通、物流、医疗等行业。
2013年10月Gartner发布的2014年十大战略技术中,重要的组成部分就有:软件定义一切。Gartner认为:软件定义一切囊括了在基础设施可编程性标准提升下不断增长的市场势头,由云计算内在自动化驱动的数据中心互通性,DevOps和快速的基础设施提供等。软件定义一切还包括各种举措,如OpenStack、Open Flow、Open Compute Project和Open Rack,共享相同的愿景。开放性将成为供应商的目标,SDN(网络)、SDDC(数据中心)、SDS(存储)和SDI(基础架构)技术的供应商都力图成为所在领域的领导。
2012年8月,VMware在其VMworld 2012大会上首次提出软件定义数据中心(SDDC)的概念[4]。
图3VMware首次提出软件定义的数据中心
如图3所示,VMware认为,软件定义的数据中心,是 IT 演变的下一个阶段,是迄今为止最有效、恢复能力最强和最经济高效的云计算基础架构方法。SDDC方法论将对存储、网络连接、安全和可用性应用抽象、池化和自动化,整个数据中心由软件自动控制。基础架构提供的服务将聚合起来,并与基于策略的智能调配、自动化和监控功能结合在一起使用。应用编程接口和其它连接器支持无缝延展到私有云、混合云和公有云平台。SDDC概念的核心包括:1)软件定义的数据中心由软件自动控制;2)软件定义包括三个阶段:抽象、池化和自动化;3)软件定义的数据中心包括五大组成部分:计算、存储、网络、管理和安全。
它与传统的数据中心的最大的不同在于:SDDC旗帜鲜明地提出了数据中心由软件自动控制。在传统的数据中心里,用户的IT基础架构是“烟囱式”的,或称“竖井式"的,如图4所示。传统的数据中心里,通常一个业务应用需要配备一套系统,包含计算、存储、网络等IT基础架构的各个组件。这种模式普遍存在如下问题:
(一)初次采购浪费较严重
一般需要考虑新应用未来3~5年,甚至更长时间,以及最高负载时对系统资源的需求,往往会在初次采购时,选择高出实际需求许多的硬件规格。而实际上新应用上线后的很长时间,负载需求都远低于初次采购的硬件规格,硬件利用率低,造成了很大的浪费。并且,硬件的发展速度日新月异,相同的硬件配置几年后成本会降低不少,很难做到按需购买。
(二)难以共享使用
传统模式下,每一个业务应用有自己专属的IT系统,即使某些应用在某一时段,所需资源远低于其硬件配置能提供的,也无法共享给其它应用使用。这样,整体资源利用率都比较低下,而且占用过多的空间和能源。随着应用系统的增多或者应用的规模迅速增大,扩展性和可管理性都面临巨大的挑战。
(三)难以即刻交付
新上线的业务应用,经过调查需求、申请购买软硬件设备、批复、采购、安装、部署等多个环节,通常需要几个星期、几个月、甚至半年以上的时间周期。
图4传统的数据中心 - 烟囱式或竖井式
然而,软件定义的数据中心(SDDC),通过抽象、池化,将计算、网络和存储都聚合成资源池,能够按需分配,灵活扩展,也能在资源使用停止后进行回收。再通过自动化,即可实现按照用户对服务水平的要求(类似QoS),动态地,即刻地交付新上线业务的资源。将资源的分配和部署从原来几十天,缩短到几十分钟,甚至几分钟。
软件定义的存储(SDS)是一个不断进化的概念,在现阶段看来,SDS是指存储资源由软件自动控制,通过抽象、池化和自动化,将标准服务器内置存储、外置存储甚至云存储等存储资源整合起来,实现基于策略驱动的部署、变更、管理和监控,最终达到存储即服务的目标。不过,截止目前为止,对于SDS尚未出现一个被大多数人员或机构所认可的定义。
(1)VMware对SDS的定义
作为VMware软件定义数据中心五大组成部分之一,软件定义存储(Software Defined Storage,简称SDS)的概念在2012年8月,也在全球范围内,首次被提出。VMware认为:软件定义的存储是将工业标准服务器的存储提供出来并通过软件控制层面实现存储的自动化和池化。它将存储的置备和管理的方法简化到了极致,并利用工业标准服务器的存储大大降低了成本[5]。
VMware的软件定义存储主要分为两大部分,如图5所示。
图5VMware 的SDS 定义
1) 控制平面,即Storage Policy Based Management(基于存储策略的管理),简称SPBM。
2) 数据平面,即Virtual Data Services。分别有三个子类构成:Virtual SAN,Virtual Volumes和Cloud/Object Storage。
(2)SNIA对SDS的定义
全球网络存储工业协会SNIA(Storage Networking Industry Association)在SDS的定义中提到,SDS允许异构的或者专有的平台。必须满足的是,这个平台能够提供部署和管理其虚拟存储空间的自助服务接口。除此之外,SDS应该包括:
·自动化-简化管理,降低维护存储架构的成本;
·标准接口-提供应用编程接口,用于管理、部署和维护存储设备和存储服务;
·虚拟数据路径-提供块、文件和对象的接口,支持应用通过这些接口写入数据;
·扩展性-无需中断应用,也能提供可靠性和性能的无缝扩展;
·透明性-提供存储消费者对存储使用状况及成本的监控和管理。
SNIA认为,存储服务的接口需要允许数据拥有者(存储用户)同时表达对于数据和所需服务水准的需求。数据的需求,就是SDS建立在数据路径(Data Path)的虚拟化,而控制路径(Control Path)也需要被抽象化成为存储服务。云数据中心和存储系统,或者数据管理员能够被用于部署这个服务(指Control Path)。
在SNIA对SDS的定义中,贡献最大,也是最有价值的部分,应该是SNIA关于Data Path(数据路径)和Control Path(控制路径),以及手动传送数据请求和应用通过元数据来传送请求的对比描述。这有助于清晰地了解两者的区别,并描绘了未来理想的SDS的蓝图,为如何发展SDS指明了方向。
SDS包括数据路径和控制路径。数据路径由以往的标准接口(块、文件和对象)组成。控制路径在传统存储中,是指存储管理员为数据提供部署数据的服务。在使用传统存储的大多数情况下,每一个数据服务有着各自的管理接口。变更数据服务,会导致所有存放在相应虚拟存储空间的数据都受到影响。
i)传统方式下传递数据请求的方式
图6SNIA 传统方式下传递数据请求
如图6所示,存储用户的控制路径是在带外,通过传统、人工的方式将数据请求传递给存储管理员,例如对于数据保护、可用性、性能、安全性的要求。存储管理员进入存储管理界面,按存储用户的请求分配存储资源。这种情况是当前普遍存在的主流方式。其实是:存储管理员定义。这种存储部署方式存在一个最大的问题,扩容或升级非常艰难。由于刚性架构限制系统资源只能静态分配,这就意味着后续新部署的资源难以归入原先存储体系。
ii)理想方式下传递数据请求的方式
图7SNIA 理想方式下传递数据请求
如图7所示,理想的SDS,其传递数据请求的方式是:让应用通过元数据来请求相应的数据服务。如:空间部署,数据保护(快照、克隆),数据高可用(容灾、双活),性能,安全等。理想的SDS实现了存储基础架构的自动化机制,极大地降低了人工管理运维成本,数据请求需直接传达至自动化软件。它能够直接应对请求,分配应用人员所需的存储资源,而无需人工干预。存储管理员可以从枯燥重复的建卷、映射卷等工作中,从疲于修补那些导致存储服务水准降低的突发故障中脱身出来,转向更高级的任务,例如定义存储策略。
iii)SNIA之SDS全局示意图
图8为SNIA关于理想的SDS的全局示意图,很好的概括了未来理想的SDS所涵盖的各个方面。(1)存储管理。将来自服务器本地的闪存盘、机械盘、存储阵列、JBOD等存储资源,通过存储管理协议(如SMI-S等),进行特性描述和虚拟化,构建出存储资源池。(2)数据服务。存储资源池化后,数据服务即可按照用户对存储服务级别(如金银铜)的要求提供。数据服务包含:空间部署、数据保护、数据可用性、性能、数据安全性。(3)数据请求。存储资源的使用者,如软件开发人员通过数据管理接口(如CDMI),向SDS发起数据请求。由于SDS开放了丰富的API供调用,因此SDS能够满足用户的数据请求,按照服务级别,提供相应的存储资源。
图8SNIA之SDS全局示意图
除了VMware、SNIA之外,Gartner、IDC,以及EMC、IBM、HP、DELL等,都提出了各自对SDS的定义或阐述。虽然对SDS的定义各有不同,但易于扩展(主要指在线横向扩展)、自动化、基于策略或者应用的驱动都几乎成为大家定义中的必备特征。而这也是软件定义数据中心的重要特征,只有具备自动化的能力,才能实现敏捷交付,简单管理,节省部署和运维成本。自动化也成为各家SDS方案是否愿意走向更高阶段的试金石。
(3)笔者对SDS的定义
笔者不揣浅陋,尝试着作出了如下定义[7]:软件定义的存储(SDS),是指存储资源由软件自动控制,通过抽象、池化和自动化,将标准服务器内置存储、直连存储、外置存储或云存储等存储资源整合起来,实现应用感知,或者基于策略驱动的部署、变更和管理,最终达到存储即服务的目标。
软件定义存储的概念很大,笔者试着将SDS分两大类:控制平面和数据平面,如图9。
图9SDS的分类
i)Control Plane (控制平面)
SDS的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.还有其它一些产品。
衡量产品是否属于控制平面这个分类,关键在于它是否能驱动底层存储资源的部署,并调用底层存储的数据服务(也即存储功能)。VMware SPBM、OpenStack Cinder、EMC ViPR和ProphetStor的Federator都能做到。
ii)Data Plane (数据平面)
SDS的Data Plane(控制平面)所做的事情,就是所谓的Data Service(数据服务)之类的存储功能,由它来完成数据的处理和优化。这里面包含了很多的内容,包括分级、快照、去重、压缩等。需要注意的是,控制平面和数据平面并不是泾渭分明的,随着技术的发展,控制平面的功能会逐渐从数据平面中逐渐解耦、抽取出来,进一步增强它的功能。
在SDS数据平面这一层,老牌存储厂商和初创存储厂商的类型和数量非常多,构成也比较复杂。笔者试着将数据平面分为:
1) Based on Commodity Hardware (基于商用的硬件)
基于商用的硬件(Based on Commodity Hardware)是最难分类的,种类繁多,命名还不容易。首先,它包括了IDC分类中Virtual Storage Appliance(简称VSA,存储控制器运行在虚机上)和Physical Storage Appliance两类。笔者认为,控制平面与数据平面的分离之意义大于硬件与软件的分离,部署方式的这两种不同,并没有带来本质的差异。举例来说,分布式文件系统VSAN FS(VSAN File System)之于EVO:RAIL或EMC VxRail,或NDFS(Nutanix Distributed File System)之于Nutanix一体机,差别主要在于是否与硬件捆绑。
Server SAN属于这个子类。Server SAN在它的原始定义里,是一个Hyperscale(横向扩展)的分布式存储。笔者认为Server SAN既然是SAN的一种,它还需要支持Block(块)的访问方式,或者对外(如iSCSI),或者对内。Server SAN在它的原始定义里,应该是一个横向扩展的分布式存储,它至少需要支持3个以上节点。这样,对于那些仅支持两个控制器做为集群的存储,就不在Server SAN这个分类里了。需要注意的是,有些Server SAN 支持融合模式和分离模式两种部署方式,例如EMC ScaleIO和华为Fusion Storage。后面提到的超融合架构仅指该存储在融合模式下。下面以EMC ScaleIO为例,简要介绍融合模式和分离模式。
a)分离模式,计算资源和存储资源分开,存储服务器不运行应用程序。
如图10的EMC ScaleIO选择单独的存储服务器作为存储集群,运行ScaleIO分布式块存储软件[8]。
b)融合模式,计算资源和存储资源在一起,存储服务器同时运行应用程序。
如图11的EMC ScaleIO集群里,服务器运行应用程序,同时运行ScaleIO分布式块存储软件。
图10 EMC ScaleIO 分离模式
图11EMC ScaleIO 融合模式
HCI(超融合架构)属于Server SAN的一种,它不仅提供存储资源,还提供计算资源。HCI比较著名的产品有:Nutanix、VMware VSAN或EVO:RAIL或EMC VxRail、融合模式下的EMC ScaleIO、HP StoreVirtual、思科HyperFlex、联想ThinkCloud AIO、SimpliVity、Scale Computing、Pivot3、Maxta;国内有:融合模式下的华为FusionStorage、华三 UIS、青云HCI一体机、志凌海纳SmartX、深信服HCI、爱数AnyVM、领航盛辉ZettaKit、杉岩、鹏云网络、凯翔;开源的有Open vStorage(类似Nutanix架构)。不过,由于HCI(以及应用一体机)还提供了计算资源,把它归类为存储这个大类,并不完全准确。但为了容易理解,本文在分类时,暂且只考虑它的存储属性。
而属于Server SAN,但不属于HCI的,指的就是节点只提供存储资源,不提供计算资源。这里还包括利用商用的标准硬件实现存储虚拟化的产品。这类产品有:分离模式下的EMC ScaleIO和华为FusionStorage、Ceph、DELL Fluid Cache、Microsoft Storage Spaces、达沃时代YeeStor、华云网际FusionStor等;一些基于分布式文件系统衍生出来的存储,如基于GlusterFS衍生出来的存储。
仅支持两个控制器做为集群的存储,虽然不在Server SAN这个分类里,但它支持商用的硬件,如果还支持被控制平面的产品驱动调用,依然属于软件定义存储这个大的分类里。这类存储有:Nexenta,以及其它由Solaris ZFS衍生出来的存储,如开源的FreeNAS。
另外还有一些存储虚拟化的专业产品,主要实现的是将异构存储统一管理起来,例如飞康Freestor、EMC VPlex、IBM SVC是其中的佼佼者,其他还有DataCore、信核等。
注意在Server SAN这个分类里,不包括传统的外置磁盘阵列。此外,商用的硬件,并不只有X86服务器,也包括ARM等其它架构的服务器。
2) Traditional SAN/NAS(External Storage)
指的是传统的外置磁盘阵列,包括SAN存储或者NAS存储。例如:EMC VNX,NetApp FAS系列,HDS HUS,DELL SC系列和PS系列,HP 3PAR,IBM V系列和DS系列;国内的有华为OceanStor系列、宏杉存储等。这些存储劲旅,不甘人后,也纷纷加入到SDS浪潮里,采取的方式有:
一是与Control Plane更多的API对接,例如,支持VMware SPBM之下的Virtual Volumes,或者支持OpenStack Cinder(可查询https://wiki.openstack.org/wiki/CinderSupportMatrix 获得)等。考虑到目前VMware SPBM的技术先进性和丰富性,存储厂商与VMware SPBM对接,也即支持VMware的Virtual Volumes应当是首选。
二是通过收购或自己研发,去逐步实现SDS抽象(解耦)、池化、自动化的阶段,典型的就有HP将LeftHand与原有硬件解耦,形成VSA版StorVirtual;NetApp推出Data ONTAP的VSA版ONTAP Edge VSA;IBM推出XIV的软件版Spectrum Accelerate;EMC推出VNX的虚拟化版本,也即vVNX等。另外,DELL的Fluid Cache脱胎于之前收购的内存虚拟化软件RNA,本身已经具备抽象池化的SDS基因。
相信随着SDS浪潮的到来,会有越来越多的传统大牌存储支持与控制平面对接或者推出类似的方案。
3) Cloud/Object Storage
它作为Data Plane的组成部分,实际上是以后端存储的身份为VM/App提供存储资源。VM/App可以通过RESTful API等接口与对象存储进行数据的输入输出,目前有三种RESTful API:亚马逊S3、SNIA CDMI和OpenStack SWIFT。
从云存储来看,随着混合云的逐渐深入,用户自然会期待在自己的私有云和公有云之间,能够实现除了在VM/App级别,还能在存储级别,也能实现如同本地数据中心之间的同构存储之间的高级功能,例如备份、归档和容灾。此时,运行在公有云之上的VSA,也即虚拟存储控制器(其实与在Hypervisor之上的VSA相类似),即可与本地存储建立数据连接。
以NetApp的Cloud ONTAP为例。它是在AWS EC2的实例中运行Data ONTAP(FAS存储的操作系统)软件,充当虚拟存储控制器,对下接管AWS EBS作为自己的存储空间,对上给运行业务应用的EC2实例提供存储服务,包括块(iSCSI)和文件(NFS、CIFS)。把NetApp的FAS存储直接放到AWS或Microsoft Azure里去,是不太现实的。但NetApp可以通过软件定义的方法,把存储控制器做成虚机,后端磁盘柜换成块存储服务(AWS EBS),为业务虚机提供专业的、高级的存储服务。类似的还有SoftNAS,也是以虚机方式运行在AWS EC2实例上,可以为运行业务应用的EC2实例提供包括块(iSCSI)和文件(NFS、CIFS)的存储服务。
4) 其它
被OpenStack Cinder驱动的是块存储。实际上,业务或应用软件可以通过RESTful API驱动Openstack Swift,这个Swift就是分布式对象存储,可以把它视为可被应用软件定义的存储。Swift除了使用X86服务器之外,还可以采用ARM等架构的服务器。在国内,初创公司北京优立方就推出了基于ARM的服务器,并基于ARM服务器研制出功耗低、灵活高效的冷存储。冷存储的出现,也是源于数据迅猛增长,据统计,冷数据一般占数据总量的80%以上。冷存储适用于包含备份、存档、灾难恢复和图片、文档、音频、视频及社交媒体等,这些场景有着类似的特征:较低的数据访问频率,而且需要最大限度地降低每一GB存储数据的成本。
人类各项发明、创新,大多都是为了更加的高效、方便、灵活,并且节省成本。例如,从种植业、畜牧业的出现,到蒸汽机的发明,到自来水、集中供电的出现,再到互联网的出现(信息传递更快更高效,更省成本),无一不是如此。IT也不例外,存储也不例外。伴随着需求,还有两大背景:一是随着个性化、物联网、万联网的发展,数据以前所未有的速度迅猛增长;2014年4月,IDC发现数据的增长超过其在2012年的预期,预计2020年将达44ZB的数据量。因此,数据需要更高效,更省成本的方式存放。二是虚拟化、云计算和硬件技术的发展,使得软件定义成为可能。随着虚拟化和云计算的普及,用户的思维方式也发生了转变,逐渐意识到,快速、敏捷、灵活地获取计算资源已经成为可能,并且逐渐要求能按需使用,按需付费。因此,做为虚拟化和云计算里重要的组成部分,存储也应适应新的需求而不断完善,做到存储即服务,实现快速交付,动态调整。
下面剖析一下,是哪些技术的发展,使得SDS,尤其是SDS的重要组成部分Server SAN在未来5年内会成为主流?
二三十年前,CPU的处理能力较弱,内存较小,单块磁盘的性能和容量都较小。为了不抢占宝贵的CPU和内存资源,也为了提高数据的性能、可靠性(如RAID保护)、可用性(如快照,容灾,双活等)、扩展性,以及提供方便易用的集中管理,诞生了外置磁盘阵列(也叫集中存储),阵列本身自带智能控制器,能够组织管理数据,并提供快照、容灾等高级的软件功能。有些高端存储甚至能在一个单一阵列里提供1000乃至数千块盘,如EMC VMAX,HDS VSP和华为OceanStor等。
然而,近几年来,新的技术显著地改变了存储架构。包括:
(1)SSD
SSD的延时从磁盘的毫秒级缩短到亚毫秒级(0.1毫秒),读写性能从单块15K(1万5千转)磁盘的180 IOPS,猛增到单块SSD的8000 IOPS(当SSD内嵌在外置磁盘阵列里),甚至到单块SSD的36000 IOPS(内嵌在服务器里的SAS或SAT接口的SSD,或者PCIe SSD);闪存价格的下降速度比硬盘更快,根据IDC预测,两者价格曲线将于2015至2017年出现交叉,届时单位GB的SSD的价格甚至低于单位GB的15K磁盘的价格。
2014年4月,SanDisk发布世界上第一款4TB SSD,并计划2015年发布8TB,2016年发布16TB SSD。2015年3月,SanDisk推出的InfiniFlash全闪存阵列里内置了64个单卡容量达8TB的闪存卡。2015年3月,在美国2015 OCP峰会上,来自中国的初创公司NetBric全闪存阵列也是内置了8TB闪存卡,每个阵列共64个。2015年08月,三星在闪存峰会上公布世界容量最大的2.5英寸SSD盘:16TB SSD PM1633a。相比之下,当时希捷或西部数据制造的容量最大的机械硬盘只有8TB或10TB。2015年9月,东芝在IFA2015(柏林国际消费电子展)宣布,2018年将推出128TB SSD。如图12所示[9],东芝计划在2016年推出32TB,2017年推出64TB。而HDD硬盘在2020也只有20-40TB。可以断定,SSD的发展远远快于磁盘的发展。
图12东芝在IFA2015宣布,2018年将推出128TB SSD
除了国外Intel、西部数据、Fusion-IO(2014年6月被SanDisk收购)、Micron、SanDisk(2015年10月被西部数据收购)、SamSung、Seagate、Toshiba、HGST(2011年3月被西部数据合并,2015年10月中国政府放行此次合并)、Greenliant(绿芯)等SSD厂商之外,中国也涌现出不少SSD厂商,除了华为自研SSD之外,还有MemBlaze(忆恒创源)、Shannon(中文名叫宝存,2015年4月被Silicon Motion公司收购)、RunCore(源科)、苏州恒成芯兴等SSD厂商。
(2)存储控制器标准化
实际上,早在四、五年前甚至更早时期,各大外置磁盘阵列的存储厂商的存储控制器(包括EMC, IBM, DELL等)都已经是X86架构,各个部件也都逐渐采用业界的标准硬件和标准服务器差别不大。因此硬件已经趋于同质化,存储厂商也早已开始比拼丰富的软件功能。不过,值得思考的是,即便是外置磁盘阵列的控制器,除了X86架构之外,未来是不是会出现ARM架构或者其它呢?
(3)CPU多核技术
服务器的CPU多核早已被业务应用利用起来,尤其在虚拟化环境里,多核处理器功不可没,既提高了处理器利用率,也提高了单台服务器上用户对更多I/O的需求,这其实也驱动着底层存储的变革。如前所述,绝大多数存储控制器采用了X86架构,但真正利用其多核处理I/O,大约从最近三、四年才逐渐开始。例如,DELL Compellent Storage Center 6.3在2012年11月推出多核技术;EMC VNX 2在2013年9月推出MCx多核技术;而作为纯软件方式的存储Nexenta,也利用多核技术去实现其在线的压缩功能;正是有了CPU多核的利用,分布式存储才能在处理业务应用之外,心有余力地去处理I/O,实现丰富多彩的软件功能。
(4)高速网络技术
分布式存储借助于节点之间的缓存(用SSD存放)的同步复制来确保数据的冗余性,也得益于近些年来网络的高速发展。通常推荐采用万兆网络,甚至有的采用四万兆(40GbE)的网络。目前,万兆网络的延迟非常小,大约在100 微秒左右,远小于PCIe闪存的延迟1毫秒;如果采用RDMA技术,延迟能更小,低至微秒级。
(5)大容量服务器和磁盘
分布式存储借助于大容量的服务器和磁盘,也能够提供以往外置磁盘阵列才能支持的大存储容量。例如,DELL PowerEdge R730XD支持高达16个3.5寸近线SAS盘,采用6TB的盘,可达近100TB的裸容量。而且,单块的机械磁盘容量也越来越大,例如,2015年03月,HGST首次向公众展示了10TB的机械硬盘。不远的未来,仅凭服务器内置磁盘,即可支持数百TB的裸容量。如果分布式存储还支持服务器连接JBOD、直连存储来进行Scale Up(纵向扩展),容量就更大了。
(6)存储技术逐渐成熟
分布式存储的技术逐渐成熟,互联网巨头如Google、Facebook、Yahoo和百度阿里腾讯大规模采用分布式存储验证了这一技术的可行性。另外,面向对象存储的技术逐渐成熟。
(7)虚拟化和云计算逐渐普及
虚拟化和云计算要求更智能的存储,能够调用API,配合上层实现更灵活敏捷地部署、管理和变更存储资源。在这些需求和技术的推动下,软件定义存储(当前以分布式存储为主流)做为软件定义数据中心不可或缺的一环,已经逐渐普及开来。九、SDS的现状
其实,前面提到的SDS分类相当于描述了SDS的现状。目前,存储市场上绝大多数都是做数据平面的。做控制平面的SDS厂商,尤其是初创厂商,需要巨大的勇气和魄力。因为复杂度高,而且在短时间内很难看到回报。大部分做数据平面的厂商,绝大部分还在抽象、池化这两个阶段。其中,抽象做的是软硬件解耦。池化做的是存储虚拟化。
池化包括存储虚拟化和存储标准化,而存储虚拟化指所有存储资源的虚拟化,包括:1)外置磁盘阵列内的虚拟化;2)跨外置磁盘阵列的虚拟化(也即异构存储的管理);3)分布式存储服务器内的存储虚拟化。
抽象是第一步,没有解耦,硬件被锁定,无法灵活调用;第二步,池化,这样才能随需分配,动态扩展;第三步是自动化,存储资源由软件(Hypervisor,云管理)来自动分配和管理。目前观察到的自动化其实是根据不同的工作负载来动态分配或管理存储资源。
以何来判断工作负载的特点?最好是Hypervisor/OS ,或者云管理软件,它们具有先天的优势。所以,存储通过和Hypervisor、云管理软件对接,是一个比较现实可行的方法。这就是前面提到的与VMware SPBM对接,或者与OpenStack Cinder,EMC ViPR,先智Federator等对接。
云计算已然成为不可阻挡的趋势,在当前占绝大多数用户主流的是私有云平台的建设,其实也是从传统数据中心逐步转向软件定义数据中心的过程。在这一过程中,信息存放之地——企业级存储,也面临前所未有的挑战。如何实现私有云技术平台所需的自助服务,快速部署,弹性扩展以及按量计费? 软件定义存储是迄今为止最好的方式,也是被IT领袖厂商验证过的最佳实践。总结为一句话就是:云计算时代,我们需要软件定义存储。
[1] NIST云计算定义[EB/OL].http://blog.csdn.net/seu_lyr/article/details/9169391 ,2013-06-25.
[2] 企业核心业务应用系统支撑云平台[EB/OL].http://www.zxin.net.cn/product/ProductIntroduce.aspx?pid=7315.
[3] 华为融易存储共建数字法院[EB/OL].http://www.doit.com.cn/article/2014-10-30/3824055.shtml,2014-10-30.
[4] VMware软件定义的数据中心[EB/OL].http://www.vmware.com/cn/solutions/software-defined-datacenter.html.
[5] VMware软件定义的存储[EB/OL].http://www.vmware.com/cn/products/software-defined-storage.html.
[6] 全球网络存储工业协会(SNIA)对SDS的阐述[EB/OL]. http://www.snia.org/sds.
[7] 叶毓睿,雷迎春,李炫辉,王豪迈.《软件定义存储:原理、实践与生态》[M].北京:机械工业出版社,2016.
[8] EMC SCALEIO[EB/OL].http://china.emc.com/storage/scaleio/index.htm.
[9] 东芝公布SSD固态硬盘路线图:2018年容量可达128TB[EB/OL].http://mt.sohu.com/20150826/n419737385.shtml.
(责任编辑夏侯国论)
The characteristic of Enterprise Storage during the Cloud Computing Era
YEYu-rui
(VMware, Inc. Beijing 100190, China)
With the growing fast of Cloud Computing, as the important part of data center, Enterprise Storage faced much more challenge from private cloud and hybrid cloud. According to the definition of NIST for cloud, customer need storage have features: self-service, storage pooling, elastic, storage provisioning automatically and quickly, can be charge and billing. Actually, Software Defined Data Center (SDDC) is the best practice for the new data center under cloud time, and Software Defined Storage (SDS) is the best for private and hybrid cloud.
enterprise storage, cloud; SDDC, SDS, control plane, data plane
2016-08-20
叶毓睿,男,VMware存储架构师,曾任职于EMC, Compellent, DELL, "乐生活与爱IT" 微信公众号的作者。
TP309.2
A
1674-0408(2016)03-0037-11