软件定义指将高度耦合的一体化硬件解耦成不同部件,并围绕部件建立虚拟化的软件层,通过 API(应用编程接口)实现原来高度耦合的一体化硬件所能提供的功能,再通过软件管理控制,使硬件资源实现自动化部署、优化和管理。软件定义由软件驱动并控制资源,相比高度耦合的一体化硬件更为灵活地为应用提供服务。
软件定义分成不同阶段将硬件与软件进行解耦,按需求通过编程接口或以服务的方式将硬件的可操控成分逐步提供给应用,分阶段满足应用对资源的不同程度、不同广度的灵活调用:(1)第一阶段:抽象,即解耦,实现存储资源灵活调用;(2)第二阶段:池化,即虚拟化,满足按需分配、动态拓展需求;(3)第三阶段:自动化,存储资源由软(Hypervisor、云管理等)自动分配和管理。
根据云计算开源产业联盟定义,软件定义存储(SDS,Software-defined Storage)指将存储物理资源通过抽象、池化整合,并通过智能软件实现存储资源的管理,实现控制平面和数据平面的解耦,最终以存储服务的形式提供给应用,满足应用按需(如容量、性能、服务质量、服务等级协议等)使用存储的需求。
软件定义存储产品是将硬件抽象化的解决方案,其核心为存储虚拟化技术,通过将存储资源抽象化、池化和自动化,利用服务管理接口的虚拟存储,虚拟化存储设备与服务器间的连接,将数据从底层硬件架构中剥离,并将标准服务器内置存储、直接存储、外置存储等存储资源整合,实现应用感知,基于策略驱动的部署、变更和管理,达到存储及服务的目标。
软件定义存储的解决方案允许企业用户通过用户界面(UI)或应用编程接口(API)以自身需求自由操作,快速灵活通过软件层实现存储数据资源池的管理。
软件定义存储产品实现存储基础架构的自动化机制,通过应用以元数据请求相应的数据服务,数据请求直接传达至自动化软件,并对应请求分配用户所需的存储资源,大幅降低人工管理运维成本。
软件定义存储包含以下特征:
软硬件解耦:SDS 允许异构的或通用的平台,支持在专有硬件及通用硬件上自行部署;
灵活性:SDS 框架能持续不断根据管理者需求而做出相应调整和改变;
拓展性:SDS 存储基础架构纵向扩展(Scale-Up)及横向扩展(Scale-Out)能力强,
无需中断应用便可提供容量、可靠性和性能的无缝扩展;
自动化:数据传达自动化软件后自动请求分配存储资源,可降低维护和运营存储框架的成本和复杂度;
虚拟数据路径:提供块/文件/对象存储接口,支持异构,可实现统一池化管理,支持应用通过这些接口写入数据;
标准接口:SDS 提供应用编程接口,平台需对应提供部署和管理其虚拟存储空间的自
助服务接口,用于管理、部署和维护存储设备和存储服务。
软件定义存储包含控制平面和数据平面两部分,两个平面互相独立;控制平面负责数据调度,实现自动化;数据平面负责数据处理和数据优化,负责抽象和池化。由于控制平面产品复杂度高、回报期长,目前存储市场数据平面产品居多。
控制平面(Control Plane):
控制平面负责数据的流向、调度,存储服务的调用,存储策略的设定、分发和驱动管理,基于策略或者基于应用的存储资源分配、变更和管理。存储向上与数据中心、云管理软件、应用软件配合,联动应用编程接口(API)管理,组成控制平面。
知名的应用包括 VMware SPBM(Storage Policy Base Management,基于存储策略的管理)、OpenStack Cinder(OpenStack 云平台的组件,提供块存储服务)、EMC ViPR、华为 OceanStor DJ 等。
数据平面(Data Plane):
数据平面负责数据的存放、处理和优化,存储功能的提供与实现。空间配置、自动分级、快照和克隆、压缩、去重、高可用等功能组成了数据平面。
(1) 基于商用的硬件(Based on Commodity Hardware),包括 Server San 下的超融合架构(HCI)(提供存储和计算资源)和非超融合架构(不提供计算资源),知名的超融合架构包括 VMware vSAN、EMC ScaleIO、Nutanix、Maxta 等以及中国的FusionStorage、志凌海纳 SmartX、青云 HCI、深信服 HCI 等;非超融合架构有 DELLFluid Cache、HP StorVirtual、RedHat Inktank Ceph、Microsoft Storage Spaces、H3C ONEStor、优铭云 UMStor、中兴通讯 CloveStorage、大道云行 SSAN、思华MegaBric 等。
(2) 传统 SAN/NAS(传统外置磁盘阵列),通过:①与控制平面更多的 API 对接、②收购或研发后实现 SDS 抽象、池化、自动化阶段,推出 SDS 解决方案;包括 EMC VNX,NetApp FAS 系列,HDS HUS,DELL SC 系列和 PS 系列,HP 3PAR,IBM V 系列和DS 系列,华为 OceanStor 系列等。
(3) 云存储/对象存储,作为后端存储为 VM/App 提供存储资源。云存储在存储级别实现如备份、归档和容灾的高级功能,使运行在公有云上的 VSA(虚拟存储控制器)可与本地存储建立数据连接。知名的对象存储包括亚马逊的S3,天翼云的OOS,阿里云的OSS等。
虽说软件定义存储有上述诸多优势,但也有缺陷:
传统阵列由昂贵、专用的硬件组装而成,发生硬件故障的概率低,软件定义存储大都部署在廉价的标准 x86 服务器上,发生硬件故障的概率较高。且软件定义存储的分布式系统意味着需要管理几十台、乃至成千上万台 x86 服务器,发生硬件故障的概率加大。
随着各行各业全球化脚步的加速,拥有多区域多数据中心的企业亟需解决数据跨区域存放的难题。同时,在不影响生产的情况下灵活调度、将应用迁移至异地数据中心等问题仍存考验。现阶段许多软件定义存储的解决方案不能提供完整的数据服务功能性。数据容灾备份和迁移的可执行性仍存在瓶颈,跨数据中心的容灾实现困难,采用软件定义存储的方案仍需购买额外的存储系统来弥补软件定义存储方案的缺失功能。历史数据迁移的高成本在一定程度上阻碍了软件定义存储的大规模普及。
随着存储技术的快速发展,传统存储的部署价格也在逐年下降,其稳定、可靠、高性能和低延迟的特点在某些特定场景的应用中依然无法替代,传统存储在市场上仍将占有一席之地。
传统存储单块磁盘的容量越来越大,服务器内置磁盘的裸容量达数百 TB(万亿字节),加之近年来 SSD(固态硬盘)技术发展使延时大幅缩减和读写性能升级,传统存储可以适用更多的业务场景。技术的普及推广带动传统存储价格的快速下调,软件定义存储的性价比优势并不明显。
在使用的便捷性方面,传统存储更为方便,可实现开箱即用,硬件由厂家提供,具备完善的文档和服务。而软件定义存储大多为开源项目或公司基于开源系统提供支持的服务,版本迭代比较快,需要较强的技术能力和运维能力,出故障的概率高且没有固定的解决方案。
在对数据一致性要求较高的应用场景(如 ORACLE RAC,真正应用集群),软件定义存储中的数据同步性能稍弱,分布式的结构导致数据同步存在缺陷。而传统存储设备数据存储方式更为可靠,传统存储更占优势。
目前自主研发的软件定义存储技术产品较少,中国仅少数头部企业有独立研发的软件定义存储产品,初创企业产品更多基于开源软件二次开发。中国 SDS 软件定义存储专业人才缺乏。软件和信息技术服务产品的研发对人员的技术要求较高,人才培养周期长,导致了相关研发人才队伍建设不能充分满足行业发展的需求。
与此同时,中国软件和信息技术服务行业起步较晚,经验丰富、技术能力强的专业技术人才和管理人才较为缺乏。随着行业的不断发展,软件定义存储产品市场规模稳步扩大增长,专业人才缺乏的问题将会更加突出。软件定义存储特别是控制平面的产品研发和投入试用需要非常长的周期,资金投入大且见效慢,较少国内企业拥有资金实力支撑自主产品研发,而国内投资机构缺少对纯技术投资的传统,制约 SDS 产品技术发展,因此,近年来对软件定义存储的主要突破很反常规地来自于国企:中国电信。
中国电信最近发行的存储产品HBlock可以说完美避免了上述软件定义存储的固有问题。HBlock是只有140M大小的纯软件。HBlock的分布式双控架构可以避免任何单点故障,再配合远程诊断功能,足以支持系统7*24小时运行。HBlock采用真正的“硬件异构”,即可以将任何装载Linux系统的硬件接入存储集群,在原有系统上直接扩展节点,降低历史数据迁移成本。
HBlock在性价比和安全上的优势更加突出,由于“硬件异构”的特性,用户可以使用手头已有的硬件资源构建存储集群,而无需专门采购,任何在本地的数据都可以自定义配置多副本和纠删码安全模式。用户还可以选择接入OOS云存储系统,作为本地磁盘的扩展,或者当做容灾备份,OOS采用业内现进的“全局元数据”技术,可以保证数据的全局一致性,任何时候都能通过云端恢复全部数据。