【编者按】本文曾在CSDN、程序猿等媒体发表过。这是首次在“乐生活与爱IT"刊发,略有更新。限于笔者本人的水平,不免有些错误或者贻笑大方的地方,欢迎指正。可以直接在文章后面通过留言的方式提出意见和建议。下图是本篇文章的综述。
---Begin---
2011年8月21日,Netscape创始人马克·安德森(MarcAndreessen, 硅谷著名投资人, 投资了Facebook、Groupon、Skype、Twitter、Zynga和LinkedIn等高科技新秀),在华尔街日报上发表《软件正在吞噬整个世界》,认为当今的软件应用无所不在,并且正在吞噬整个世界:“越来越多的大型企业及行业将离不开软件,网络服务将无所不在,从电影、农业到国防。许多赢家将是硅谷式的创新科技公司,它们侵入并推翻了已经建立起来的行业结构。未来十年,我预计将有更多的行业被软件所瓦解”。安德森以亚马逊颠覆图书零售巨头Borders(已于2011年2月破产)、Netflix颠覆视频行业、苹果颠覆音乐行业、Skype颠覆电信行业、LinkedIn颠覆招聘、PayPal颠覆支付等为例,并指出基于互联网的服务,将让新创建全球性软件初创公司变得容易。
中国也是如此,包括BAT(百度阿里腾讯)、京东、滴滴、美团、大众点评、小米、去哪儿等互联网公司在内的软件公司,深刻地影响了我们每一个人的生活,也已经或正在逐步地颠覆着教育、零售、金融、通信、交通、物流、医疗、政府等行业。
2013年10月Gartner发布2014年十大战略技术中,重要的组成部分就有:软件定义一切。Gartner认为:软件定义一切囊括了在基础设施可编程性标准提升下不断增长的市场势头、由云计算内在自动化驱动的数据中心互通性、DevOps和快速的基础设施提供等。软件定义一切还包括各种举措,如OpenStack、OpenFlow、Open Compute Project和OpenRack,共享相同的愿景。开放性将成为供应商的目标,SDN(网络)、SDDC(数据中心)、SDS(存储)和SDI(基础架构)技术的供应商都力图成为所在领域的领导。
那么,什么是软件定义? 难道以前没有软件定义? 都是硬件定义吗?
我们先来看一下,什么是软件?
软件是用户与硬件之间的接口界面。
用户主要是通过软件与硬件进行交流。
早期,为了大规模生产,降低制造的复杂度和成本。许多功能都固化在硬件里,我们可以称之为硬件定义。随着日益增长的多样化、个性化定制的需求,以及云计算所要求的,更加智能、更加灵活的自动化的需求,由软件定义来操控硬件资源的需求将越来越多、越来越广。
举个空调的例子:
最早的空调里面也有软件,但相对固化,不提供或者提供非常少的接口,缺乏灵活性。那时,我们只能选择温度,或者开关;后来出现了更多的选择,如风速、风向等的设定。到了智能家居的时代,通过向应用软件开放空调的编程接口,使得我们能在回家之前,就能借助手机或者平板,开启并设置空调了。
软件定义,究其本质,就是将原来高度耦合的一体化硬件,通过标准化、抽象化(虚拟化),解耦成不同的部件。围绕这些部件,建立起虚拟化软件层,以API(应用编程接口)的方式,实现原来硬件才提供的功能。再由管理控制软件,自动地进行硬件资源的部署、优化和管理,提供高度的灵活性,为应用提供服务。
简而言之,就是更多地由软件来驱动并控制硬件资源。
需要注意的是,软件定义其实是一个过程,不是一蹴而就的目标,它分成不同阶段。软件定义逐渐将硬件与软件进行解耦,将硬件的可操控成分按需求,分阶段的,通过编程接口或者以服务的方式逐步暴露给应用,分阶段地满足应用对资源的不同程度、不同广度的灵活调用。
1、什么是软件定义存储
当我们讨论软件定义存储的时候,避免不了要先回顾一下软件定义这个词汇出现的历史。
在IT基础架构领域,最早出现的软件定义,是软件定义网络(SoftwareDefined Network)。SDN起源于2006年斯坦福大学的Clean Slate研究课题。2009年,Mckeown教授正式提出了SDN概念。通过将网络设备的控制平面与数据平面分离开来,并实现可编程化控制,实现了网络流量的灵活控制,为核心网络及应用的创新提供了良好的平台。
随后,在2012年8月,VMware在其VMworld 2012大会上首次提出软件定义数据中心(SoftwareDefined Data Center,简称SDDC)的概念。
VMware认为,软件定义的数据中心,是 IT 演变的下一个阶段,是迄今为止最有效、恢复能力最强和最经济高效的云计算基础架构方法。SDDC方法论将对存储、网络连接、安全和可用性应用抽象、池化和自动化,整个数据中心由软件自动控制。 基础架构提供的服务将聚合起来,并与基于策略的智能调配、自动化和监控功能结合在一起使用。应用编程接口和其他连接器支持无缝延展到私有云、混合云和公有云平台
总结一下,SDDC概念的核心包括:1)软件定义的数据中心由软件自动控制;2)软件定义包括三个阶段:抽象、池化和自动化;3)软件定义的数据中心包括五大组成部分:计算、存储、网络、管理和安全。
作为VMware软件定义数据中心五大组成部分之一,软件定义存储(SoftwareDefined Storage,简称SDS)的概念也是在2012年8月,全球范围内首次被提出。
VMware认为:软件定义的存储是将工业标准服务器的存储提供出来并通过软件控制层面实现存储的自动化和池化。它将存储的置备和管理的方法简化到了极致,并利用工业标准服务器的存储大大降低了成本。
而软件定义的存储产品是一个将硬件抽象化的解决方案,它使你可以轻松地将所有资源池化并通过一个友好的用户界面(UI)或API来提供给消费者。一个软件定义的存储的解决方案使得你可以在不增加任何工作量的情况下进行纵向扩展(Scale-Up)或横向扩展(Scale-Out)。
实际上,SDS的定义出现至今已经三年多了,但仍没有统一的标准,VMware的定义也只是一家之言。各家权威咨询机构,各大厂商,都对这一概念有着不同的定义或描述。下面我们再来看看SNIA对SDS描述。SNIA是StorageNetworking Industry Association的简称,也即全球网络存储工业协会,做为曾经制定过SAN,NAS,对象存储,云存储等标准的第三方协会,我们有理由相信,SNIA对SDS的看法值得参考。实际上,其内容也确实有助于大家更深刻地理解SDS。
SNIA在SDS的定义中提到,SDS允许异构的或者专有的平台。必须满足的是,这个平台能够提供部署和管理其虚拟存储空间的自助服务接口。除此之外,SDS应该包括:
·自动化 - 简化管理,降低维护存储架构的成本;
·标准接口–提供应用编程接口,用于管理、部署和维护存储设备和存储服务;
·虚拟数据路径 – 提供块、文件和对象的接口,支持应用通过这些接口写入数据;
·扩展性 – 无需中断应用,也能提供可靠性和性能的无缝扩展;
·透明性 – 提供存储消费者对存储使用状况及成本的监控和管理;
SNIA认为,存储服务的接口需要允许数据拥有者(存储用户)同时表达,对于数据和所需服务水准的需求。数据的需求,就是SDS建立在数据路径(Data Path)的虚拟化,而控制路径(ControlPath)也需要被抽象化成为存储服务。云、数据中心和存储系统,或者数据管理员能够被用于部署这个服务(指Control Path)。
在SNIA对SDS的看法中,贡献最大,也是最有价值的部分,应该是SNIA关于Data Path(数据路径)和ControlPath(控制路径),以及手动传送数据请求和应用通过元数据来传送请求的的对比描述。它帮助大家清晰地了解了两者的的区别,并描绘了未来理想的SDS的蓝图,为如何发展SDS指明了方向。
SDS包括数据路径和控制路径。数据路径由以往的标准接口(块、文件和对象)组成。那么控制路径呢?在传统存储中,其实就是指存储管理员为数据提供部署数据的服务。在使用传统存储的大多数情况下,每一个数据服务有着各自的管理接口。变更数据服务,会导致所有存放在相应虚拟存储空间的数据都受到影响。
1)传统方式下传递数据请求的方式
如上图所示,存储用户的控制路径是在带外,通过传统、人工的方式将数据请求传递给存储管理员,例如对于数据保护、可用性、性能、安全性的要求。存储管理员进入存储管理界面,按存储用户的请求分配存储资源。
这种情况是当前普遍存在的主流方式。其实是:存储管理员定义。
这种存储部署方式存在一个最大的问题,扩容或升级非常艰难。由于刚性架构限制系统资源只能静态分配,这就意味着后续新部署的资源难以归入原先存储体系。
2)理想方式下传递数据请求的方式
如上图所示,理想的SDS,其传递数据请求的方式是:让应用通过元数据来请求相应的数据服务。如,空间部署,数据保护(快照、克隆),数据高可用(容灾、双活),性能,安全等。
理想的SDS实现了存储基础架构的自动化机制,极大地降低了人工管理运维成本,数据请求需直接传达至自动化软件。它能够直接应对请求,分配应用人员所需的存储资源,而无需人工干预。存储管理员可以从枯燥重复的建卷、映射卷等工作中,从疲于修补那些导致存储服务水准降低的突发故障中,脱身出来,转向更高级的任务,例如定义存储策略。
3)SNIA之SDS全局示意图
下面这张SNIA关于理想的SDS的全局示意图,很好的概括了未来理想的SDS所涵盖的各个方面。
(1)存储管理
将来自服务器本地的闪存盘、机械盘,存储阵列,JBOD等存储资源,通过存储管理协议(如SMI-S等),进行特性描述和虚拟化,构建出存储资源池。
(2)数据服务
存储资源池化后,数据服务即可按照用户对存储服务级别(如金银铜)的要求提供。数据服务包含:空间部署、数据保护、数据可用性、性能、数据安全性。
(3)数据请求
存储资源的使用者,如软件开发人员通过数据管理接口(如CDMI),向SDS发起数据请求。由于SDS开放了丰富的API供调用,因此SDS能够满足用户的数据请求,按照服务级别,提供相应的存储资源。
除了VMware、SNIA之外,Gartner、IDC,以及EMC、IBM、HP、DELL等,都提出了各自对SDS的定义或阐述。虽然每家对SDS的定义都各有不同,但易于扩展(主要指在线横向扩展)、自动化、基于策略或者应用的驱动都几乎都成为大家定义中的必备特征。而这也是软件定义数据中心的重要特征,只有具备自动化的能力,才能实现敏捷交付,简单管理,节省部署和运维成本。自动化也成为各家SDS方案,是否愿意走向更高阶段的试金石。
2、SDS的分类
软件定义存储的概念很大。下面笔者不揣浅陋,尝试着对纷繁复杂的SDS进行分类,希望对大家进一步理解SDS有些帮助。我们所熟知的,存储虚拟化、ServerSAN、超融合架构(HCI)都是SDS的一部分。
1)Control Plane (控制平面)
SDS的Control Plane(控制平面)所做的事情,就是将以往通过存储管理员传送的数据请求,转为由软件来处理。简而言之,控制平面负责存储资源的部署和管理,它包括分发数据请求(也即存储策略驱动),控制数据流向,完成数据的部署、管理和保护,从而增加了存储的灵活性、扩展性和自动化能力。
在SDSControl Plane这一层,比较著名的有:
I. VMwareSPBM (Storage Policy Base Management, 基于存储策略的管理);
II. OpenStack Cinder 。Cinder是OpenStack云平台的一个组件,用来提供块存储服务;
III. EMC ViPR。目标是实现EMC存储、异构存储、商用硬件本地存储资源的存储虚拟化(包括互操作性);
IV. 先智数据(ProphetStor)的Federator。
V. 还有其他一些产品;
衡量产品是否属于控制平面这个分类,关键在于它是否能驱动底层存储资源的部署。显而易见的是,VMwareSPBM、OpenStack Cinder和EMC ViPR等都能做到。
2)Data Plane (数据平面)
SDS的Data Plane(控制平面)所做的事情,就是所谓的DataService(数据服务)之类的存储功能,由它来完成数据的处理和优化。这里面包含了很多的内容,包括分级、快照、去重、压缩等。需要注意的是,控制平面和数据平面并不是泾渭分明的,随着技术的发展,控制平面的功能会逐渐从数据平面中更逐渐解耦、抽取出来,进一步增强它的功能。
在SDS DataPlane这一层,比较复杂,组成部分较多。
1)Basedon Commodity Hardware (基于商用的硬件)
其实,这一部分是最难分类的,种类繁多,命名还不容易。首先,笔者认为超融合架构(HCI)是Server SAN的一个子集,超融合架构不仅提供存储资源还提供计算资源,多数是以软硬件一体机形式出现的。
注意在这个分类里,不包括传统的外置磁盘阵列。另外,需要注意的是,商用的硬件,并不只有X86服务器,也包括ARM等其他架构的服务器。
另外想说明的是,Based on Commodity Hardware这个分类里,包括了IDC分类中Virtual StorageAppliance(简称VSA,存储控制器运行在虚机上)和PhysicalStorage Appliance两类,注意在这个分类里,后者并不包括传统的外置磁盘阵列。
超融合架构里有: VSAN Ready Nodes或EVO:RAIL、HP ConvergedSystem(内嵌StoreVirtual,前身是LeftHand)、Nutanix;国内有:华为FusionStorage(融合部署)、EMC ScaleIO(融合部署)、联想ThinkCloud AIO、浪潮HCI(基于EVO:RAIL)、华云网际HCI、天玑数据HCI、青云HCI、云和恩墨HCI等;
在Server SAN里,还有华为FusionStorage(分离部署)、EMC ScaleIO(分离部署)、RedHat Ceph、Microsoft Storage Spaces、Maxta、ZadaraStorage、SimpliVity、Scale Computing、Pivot3、DELL Fluid Cache等,以及国内的达沃时代、大道运行SSAN、XSKY(基于Ceph)、BigTera(基于Ceph)、志凌海纳SmartX等;另外还包括一些基于分布式文件系统衍生出来的存储,如GPFS、GlusterFS等;
笔者认为Server SAN既然是SAN的一种,它还需要支持Block(块)的访问方式,或者对外(如iSCSI),或者对内。Server SAN在它的原始定义里,应该是一个横向扩展的分布式存储,它至少需要支持3个以上节点。这样,对于那些仅支持两个控制器做为集群的存储,就不在Server SAN这个分类里了。但它们依然属于软件定义存储这个大的分类里,这类存储有:Nexenta、DataCore、国内的InfoCore(信核),及其他一些基于Solaris ZFS衍生出来的存储。另外还有一些存储虚拟化的专业产品,主要实现的是将异构存储统一管理起来,例如EMC VPlex、IBM SVC、飞康Freestor是其中的佼佼者。
2)Traditional SAN/NAS(External Storage)
指的是传统的外置磁盘阵列,包括SAN存储或者NAS存储。例如:EMC VNX,NetAppFAS系列,HDS HUS, DELL SC系列和PS系列,HP 3PAR,IBMV系列和DS系列;国内的有华为OceanStor系列、宏杉存储等。这些存储劲旅,不甘人后,也纷纷加入到SDS浪潮里,采取的方式有:
一是与Control Plane更多的API对接,例如,支持VMware SPBM之下的Virtual Volumes,或者支持OpenStack Cinder等。考虑到目前VMwareSPBM的技术先进性和丰富性,存储厂商与VMware SPBM对接,也即支持VMware的Virtual Volumes应当是首选。
二是通过收购或自己研发,去逐步实现SDS抽象(解耦)、池化、自动化的阶段,典型的就有HP将LeftHand与原有硬件解耦,形成VSA版StorVirtual;NetApp推出DataONTAP的VSA版ONTAP Edge VSA;IBM推出XIV的软件版SpectrumAccelerate;EMC推出VNX的虚拟化版本,也即vVNX等。另外,DELL的Fluid Cache脱胎于之前收购的内存虚拟化软件RNA,本身已经具备抽象池化的SDS基因。
相信随着SDS的浪潮,会有越来越多的传统大牌存储厂商推出类似的方案。
3)Cloud/Object Storage
它作为Data Plane的组成部分,实际上是以后端存储的身份为VM/App提供存储资源。
VM/App可以通过RESTfulAPI等接口与对象存储进行数据的输入输出,目前有三种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)的存储服务。另外,还有Zadara Storage。
4)其他
软件定义存储(SDS)是一个不断发展的概念,其构成部分数据平面所涉及的存储也将不断发展。例如,前面我们曾提到基于商用的硬件,除了包括X86服务器之外,还包括ARM等架构的服务器。在国内,初创公司北京优立方就推出了基于ARM的服务器,并基于ARM服务器研制出功耗低、灵活高效的冷存储,OpenStack的子项目之一Swift(对象存储)就能运行在其冷存储之上,国内已经有些客户了。冷存储的出现,也是源于数据迅猛增长,据统计,冷数据一般占数据总量的80%以上。冷存储适用于包含备份、存档、灾难恢复和图片、文档、音频、视频及社交媒体等,这些场景有着类似的特征:较低的数据访问频率,而且需要最大限度地降低每一GB存储数据的成本。
PMC(2015年11月被Microsemi收购)的SAS Expander、希捷的对象存储Kinetic和Marvell的FLC(终极高速缓存),以及Docker对SDS的影响,SSD对SDS的影响,高速网络对SDS的影响,生物存储技术和量子存储技术,还有未来无处不在的可穿戴设备、传感器,里面的存储空间如何使用和管理,也许是未来软件定义存储在数据平面,乃至控制平面都需要考虑的事情。
其实,谈到软件定义,无论SDN、SDS,都离不开控制平面Control Plane,数据平面Data Plane的提法。控制平面负责存储管理,实现自动化;而数据平面负责数据处理和数据优化,负责抽象和虚池化。
最近两年流行的概念 - Server SAN和HCI(超融合架构),多数产品目前还只是围绕着数据平面做些工作,是当前阶段SDS的主要形态,离理想的SDS尚有一些距离。不过,我们也注意到,已经有一些Server SAN将要在控制平面做些工作了,例如尝试与VMware SPBM(主要指Virtual Volume)对接。
可以肯定的是,在最近几年内,Server SAN和HCI(超融合架构)仍然是充满着创业生机的沃土,与之相关的初创公司会如同雨后春笋般冒出来。但是,需要注意的是,在数据中心三大基础架构中,存储相对于服务器和网络,是最难被替换的,因为它是数据的命脉。初创公司存储的安全性(数据不丢失)、稳定性是首要需要保证的。除此之外,用户在选择时,对于关键业务应用,如OLTP数据库等,应选择体量较大或者运营较为稳定,技术较为先进,存活时间可能较长的公司的存储,对于数据资产的长期稳定可靠的保存,相对会更有保障些。而一些非关键业务,例如备份、归档、视频监控等,可以考虑成本较为低廉的存储。
3、SDS的发展
1)为什么出现SDS?
人类各项发明、创新,大多都是为了更加的高效、方便、灵活,并且节省成本。例如,从种植业、畜牧业的出现,到蒸汽机的发明,到自来水、集中供电的出现,再到互联网的出现(信息传递更快更高效,更省成本),无一不是如此。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千转)磁盘的180IOPS,猛增到单块SSD的8000 IOPS(当SSD内嵌在外置磁盘阵列里),甚至到单块SSD的36000 IOPS(内嵌在服务器里的SAS或SAT接口的SSD,或者PCIeSSD);闪存价格的下降速度比硬盘更快,根据IDC预测,两者价格曲线将于2015至2017年出现交叉,届时单位GB的SSD的价格甚至低于单位GB的15K磁盘的价格。从公开的消息,我们可以看到
2014年4月,SanDisk发布世界上第一款4TB SSD,并计划2015年发布8TB,2016年发布16TBSSD。2015年3月,SanDisk推出的InfiniFlash全闪存阵列里内置了64个单卡容量达8TB的闪存卡。
2015年3月,在美国2015 OCP峰会上,来自中国的初创公司NetBric全闪存阵列也是内置了8TB闪存卡,每个阵列共64个。
2015年08月,三星在闪存峰会上公布世界容量最大的2.5英寸SSD盘:16TBSSD PM1633a. 相比之下,当时希捷或西部数据制造的容量最大的机械硬盘只有8TB或10TB。
2015年9月,东芝在IFA2015(柏林国际消费电子展)宣布,2018年将推出128TB SSD。如下图所示,东芝计划在2016年推出32TB,2017年推出64TB。而HDD硬盘在2020也只有20-40TB。
图1-1 东芝在IFA2015宣布,2018年将推出128TBSSD
可以断定,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月被SiliconMotion公司收购)、RunCore(源科)、苏州恒成芯兴等SSD厂商。
2. 存储控制器X86化
实际上,早在四、五年前甚至更早时期,各大外置磁盘阵列的存储厂商的存储控制器(包括EMC,IBM, DELL等)都已经是X86架构,各个部件也都逐渐采用业界的标准硬件,和标准服务器差别不大。因此硬件已经趋于同质化,存储厂商也早已开始比拼丰富的软件功能。
不过,值得思考的是,即便是外置磁盘阵列的控制器,除了X86架构之外,未来是不是会出现ARM架构或者其他呢?
3. CPU多核技术
服务器的CPU多核早已被业务应用利用起来,尤其在虚拟化环境里,多核处理器功不可没,既提高了处理器利用率,也提高了单台服务器上用户对更多I/O的需求,这其实也驱动着底层存储的变革。如前所述,绝大多数存储控制器采用了X86架构,但真正利用其多核处理IO,大约从最近三、四年才逐渐开始。例如,DELL Compellent Storage Center 6.3在2012年11月推出多核技术;EMCVNX 2在2013年9月推出MCx多核技术;而做为纯软件方式的存储Nexenta,也利用多核技术去实现其在线的压缩功能;正是有了CPU多核的利用,分布式存储才能在处理业务应用之外,心有余力地去处理IO,实现丰富多彩的软件功能。
4. 高速网络技术
分布式存储借助于节点之间的缓存(用SSD存放)的同步复制来确保数据的冗余性,也得益于近些年来网络的高速发展;通常推荐采用万兆网络,甚至有的采用四万兆(40GbE)的网络。目前,万兆网络的延迟非常小,大约在100微秒左右,远小于PCIe闪存的延迟1毫秒;如果采用RDMA技术(网络厂商Mellanox),延迟能更小,低至微秒级。
5. 大容量服务器和磁盘
分布式存储借助于大容量的服务器和磁盘,也能够提供以往外置磁盘阵列才能支持大存储容量。例如,DELL PowerEdge R730XD支持高达16个3.5寸近线SAS盘,采用6TB的盘,可达近100TB的裸容量。而且,单块的机械磁盘容量也越来越大,例如,2015年03月,HGST首次向公众展示了10TB的机械硬盘。
不远的未来,仅凭服务器内置磁盘,即可支持数百TB的裸容量。如果分布式存储还支持服务器连接JBOD、直连存储来进行ScaleUp(纵向扩展),容量就更大了。
6. 存储技术逐渐成熟
分布式存储的技术逐渐成熟,互联网巨头如Google、Facebook、Yahoo和百度阿里腾讯大规模采用分布式存储验证了这一技术的可行性。另外,面向对象存储的技术逐渐成熟。
7. 虚拟化和云计算逐渐普及
虚拟化和云计算要求更智能的存储,能够调用API,配合上层实现更灵活敏捷地部署、管理和变更存储资源。
传统的IT基础架构是"烟囱式"的,或称“竖井式"的,通常一个业务应用需要配备一套系统,包含计算、存储、网络等IT基础架构的各个组件。这种模式普遍存在如下问题:
1)初次采购浪费较严重
一般需要考虑新应用未来3~5年,甚至更长时间,以及最高负载时对系统资源的需求,往往会在初次采购时,选择高出实际需求许多的硬件规格。而实际上新应用上线后的很长时间,负载需求都远低于初次采购的硬件规格,硬件利用率低,造成了很大的浪费。并且,硬件的发展速度日新月异,相同的硬件配置几年后成本会降低不少。很难做到按需购买。
2)难以共享使用
传统模式下,每一个业务应用有自己专属的IT系统,即使某些应用在某一时段,所需资源远低于其硬件配置能提供的,也无法共享给其他应用使用。这样,整体资源利用率都比较低下,而且占用过多的空间和能源。锁着应用系统的增多,或者应用的规模迅速增大,扩展性和可管理性都面临巨大的挑战。
传统的数据中心–烟囱式或竖井式(硬件定义或管理员定义)
解决这些问题的办法就是采用软件定义的数据中心,它依托于现有的虚拟化和云计算的各种技术。软件定义的数据中心体系结构是一个一体化的混合云,能够提供一流的计算、存储、网络连接虚拟化和管理产品与服务。
软件定义的数据中心–抽象、池化、自动化
在这些需求和技术的推动下,软件定义存储(当前以分布式存储为主流)做为软件定义数据中心不可或缺的一环,已经逐渐普及开来。目前,在市场上,已经有很多SDS存储公司或方案,如国外的:VMware VSAN,Nutanix,HP StoreVirtual,IBM GPFS,EMC ScaleIO,NetApp Data ONTAP,DELL Fluid Cache,Redhat Gluster和Redhat Inktank Ceph,Oracle,飞康FreeStor,先智数据(ProphetStor) Federator,DataCore,Nexenta,微软Storage Space,Maxta,Zadara,Simplivity,Pivot3, Scality, Pernixdata,Atantis,Sanbolic,Tarmin,Primary Data,DataGravity,Gridstore等;
国内的SDS公司或产品,也如同雨后春笋般兴起,或者是新兴的初创公司,或者由传统存储转型而来,如:华为FusionStorage、联想ThinkCloud AIO、达沃时代(Daowoo)、星辰天合(XSky)、BigTera、华云网际(FusionStor)、华三、青云、深信服aSAN、爱数、志凌海纳(SmartX)、大道云行(SSAN)、Zettakit、天玑数据、云和恩墨、沃趣、成都文武、信核、中科蓝鲸、金山云、九州云、海云捷迅、中兴等。
2)SDS的现状如何呢?
其实,前面提到的SDS分类其实已经涉及到了大部分内容。
目前,存储市场上更多的是做数据平面的。做控制平面的SDS厂商,尤其是初创厂商,是需要巨大的勇气和魄力,因为复杂度高,而且在短时间内很难看到回报。
大部分做数据平面的厂商,绝大部分还在抽象、池化这两个阶段。其中,抽象做的是软硬件解耦。池化做的是存储虚拟化。
池化包括存储虚拟化和存储标准化,而存储虚拟化指所有存储资源的虚拟化,包括
1)外置磁盘阵列内的虚拟化
2)跨外置磁盘阵列的虚拟化(也即异构存储的管理)
3)分布式存储服务器内的存储虚拟化
抽象是第一步,没有解耦,硬件被锁定,无法灵活调用;第二步,池化,这样才能随需分配,动态扩展;
第三步是自动化,存储资源由软件(Hypervisor,云管理)来自动分配和管理。目前观察到的,自动化其实是根据不同的工作负载来动态分配或管理存储资源。那么,谁来判断工作负载的特点?最好是Hypervisor/OS,或者云管理软件,它们具有先天的优势。所以,存储通过和Hypervisor、云管理软件对接,是一个比较现实可行的方法。这就是前面提到的与VMwareSPBM对接,或者与OpenStack Cinder等对接。
4、综述
总结一下,对于SDS的分类,可以概括为下表:
---End---
欢迎加入软件定义存储讨论 QQ群:122295009,可下载原创的一些文章,及其他有参考价值的文档。
欢迎您扫描微信公众号:“乐生活与爱IT”。
关注后,可以通过点击左下角的“文章目录”,详细了解如何查看历史文章。