版权归原作者所有,如有侵权,请联系我们

[科普中国]-软件定义存储

科学百科
原创
科学百科为用户提供权威科普内容,打造知识科普阵地
收藏

软件定义存储(SDS)是一种数据存储方式,所有存储相关的控制工作都仅在相对于物理存储硬件的外部软件中。

软件定义存储中的软件一般由各个厂商或者高校的研究人员使用C语言或者其他编程语言编写的一套软件,主要实现的功能就是整合散落的硬盘或者磁盘阵列,提高存储服务

简介软件定义存储(SDS)是一种数据存储方式,所有存储相关的控制工作都仅在相对于物理存储硬件的外部软件中。这个软件不是作为存储设备中的固件,而是在一个服务器上或者作为操作系统(OS)或hypervisor的一部分。

软件定义存储是一个较大的行业发展趋势,这个行业还包括软件定义网络(SDN)和软件定义数据中心(SDDC)。和SDN情况类似,软件定义存储可以保证系统的存储访问能在一个精准的水平上更灵活地管理。软件定义存储是从硬件存储中抽象出来的,这也意味着它可以变成一个不受物理系统限制的共享池,以便于最有效地利用资源。它还可以通过软件和管理进行部署和供应,也可以通过基于策略的自动化管理来进一步简化。1

困难使用软件定义存储进行长期存储充满了诸多风险,例如数据位错误、硬盘故障、网络攻击、人为失误以及自然灾害等等。然而对数据进行长期存储除了要面对以上风险,还要考虑到其他问题,例如硬件架构、软件平台、应用以及数据格式的变化等等。

与此同时,对于数据可访问性、协同性以及大数据分析与日俱增的需求也使得问题不仅仅停留在储存时限层面,还要考虑到其可用性。

当今很多企业的数据中心都正在经历从传统架构向云架构的转型。在转型过程中,存储往往是最重要、又是最艰难的一环。用户需要利用软件定义,来解除供应商锁定,消除专有平台孤,降低日益增长的复杂性,从而将物理的存储设备,转化为服务云计算的存储资源。同时,如何在企业自建的数据中心、外包数据中心和不同的云服务商之间,实现存储的统一管理和数据的自由流动,也是云计算落地过程中的重大挑战。

优势软件定义存储允许客户将存储服务集成到服务器的软件层。软件定义存储将软件从原有的存储控制器中抽离出来,使得它们的功能得以进一步的发挥而不仅仅局限在单一的设备中。软件定义存储将数据去重功能或者是精简配置局限在单一的硬盘上与把其扩展到全部存储平台层面相比,前者实在是没有什么太大意义。在这一点上,软件定义存储的从业者们并没有拖大家的后腿。

软件定义存储的一大好处,那就是将软件功能从阵列控制器中剥离出来,这样它可以用于管理数据中心中的所有存储。

但是获取软件定义存储的方式仍然有很多。其中获得广泛关注的就是最近曝光频繁的软件定义存储装置模型
软件定义存储装置的另外一个好处是,迁移更加容易。与其他的软件定义存储配置不同,软件定义存储装置并不要求数据必须被拷贝一份到各个节点,也就是说,不会要求额外的存储空间。数据仅存储在一个位置,将应用从一个位置迁移到另外一个位置无需复制。

但是软件定义装置通常也是专有的,这也是很多IT专家希望在存储技术采用中所规避的。2

隐形成本然而,业内却鲜少提及SDS相关的潜在隐性成本。SDS可能带来的硬件混合以及匹配将反转集成软硬件到终端用户的成本或风险。
在选择SDS产品时,评估厂商是否能够提供SDS的利好十分关键。
时代和技术都发生了某种程度的改变,有些人说驱动器的标准已经改进。但我认为,新的硬件技术,像是固态存储每一天都在演进。如果我们延伸存储软件抽象化的能力到最大,它应该能够协调任何硬件。如果这将作为SDS部署的理想状态,那么一个系统中可能的技术组合将是无限的。在这种设想之下,验证和集成新硬件技术的职责和成本都将归于IT。1

三种选择软件定义存储的第一种选择就是与Hypervisor集成或作为其堆栈的一部分存在。VMware目前开发了Virtual SAN,该公司所谓的软件定义存储层正是作其软件堆栈的一部分存在。Hyper-V则拥有所谓的集群存储空间并且直接集成进微软的Hyper-V堆栈。

第二种软件定义存储架构就包含了第三方,hypervisor无关的产品,它们能够与VMware、Hyper-V、KVM或是思杰的产品协同,有一些软件产品功能完备,甚至在某些方面超越领先厂商,像是Maxta、Starwind Software 、 StoreMagic。它们提供同样的功能,但并非致力于某一特定Hypervisor。它们创建的存储仓库能够在多个不同的hypervisor间共享。

第三种是虚拟存储,已经出现相当长的时间。这一类型包含IBM Spectrum Virtualize、DataCore SANsymphony产品,它们将虚拟所有的硬件资源,将其抽象为软件层以更高效的分配资源。当某个应用负载需要配置具有特定数据保护机制的存储,你只需要从管理界面选择配置,它将随存储自动分配。

软件定义存储的概念很大。目前存储领域内的诸多形态的存储产品,如:存储虚拟化、Server SAN、超融合架构(HCI)都是SDS的一部分。

1. Control Plane(控制平面)

在SDS Control Plane这一层,比较著名的有:

1)VMware SPBM (Storage Policy Base Management, 基于存储策略的管理);2)OpenStack Cinder ,Cinder是OpenStack云平台的一个组件,用来提供块存储服务;Cinder通过统一的存储软件接口,可以访问业界的大多数SAN存储产品。3)EMC ViPR为代表的一类存储管理软件,目标是实现对单一存储品牌或多个存储品牌的存储产品的统一管理、存储空间异构等存储资源池化、整合。

2. Data Plane (数据平面)

在SDS Data Plane这一层,涉及到多种存储形态。

1) Based on Commodity Hardware (基于商用的硬件),这一部分又包含两个大类:

超融合架构(HCI),它应该是Server SAN的一个子集,比较著名的有: VMware VSAN或EVO:RAIL、EMC ScaleIO、Nutanix、Maxta等等。

非超融合架构,即独立的分布式存储系统,比较著名的有DELL Fluid Cache、HP StorVirtual、RedHat Inktank Ceph、浪潮AS13000等。

Traditional SAN/NAS(External Storage),包括SAN存储或者NAS存储

通过收购或自己研发,逐步实现SDS抽象(解耦)、池化、自动化的阶段,典型的有HP将LeftHand与原有硬件解耦,形成VSA版StorVirtual;NetApp推出Data ONTAP的VSA版ONTAP Edge VSA;IBM推出XIV的软件版Spectrum Accelerate;DataCore SANsymphony;EMC推出VNX的虚拟化版本 vVNX等。

Cloud/Object Storage

通过RESTful API等接口与对象存储进行数据的输入输出,目前有三种RESTful API:亚马逊S3、SNIA CDMI和OpenStack SWIFT。比较著名的有:EMC Atmos、浪潮AS13000等等。2

搭建原则软件定义存储(SDS)技术可能提供使存储更灵活和更敏捷的手段,因此虚拟存储卷可以在运行中被创建、轻而易举地与工作负载关联并在服务器之间与虚拟机一起被移动或者被转换。此外,SDS使你能够把增值服务与虚拟存储卷互相关联(仅举几例,这些服务可能包括镜像、复制、精简配置和重复数据删除/压缩),从而使存储应用程序如量身定做一样符合工作负载的需求。另外,好的SDS技术应该提供路径管理和互连负载均衡,以更好地利用要么托管了物理工作负载、要么托管了虚拟化的客户机(或者两者皆有之)的物理存储设备和服务器之间的网络和结构连接。1

目标软件定义存储(SDS)的目标是把存储应用程序与物理的数据存储基础设施分离。理论上,这将实现存储资源的“灵活”分配、重新分配和不分配。换言之,SDS提供一种把存储服务从存储包中分离出来的方法,即使基本的硬件和互连被变更,仍然能提供卷的持续性。

这项能力尤其适用于从服务器硬件被提取出来的或者“被虚拟化”并能够在服务器、网络或者存储堆栈之间移动的应用程序。

通过使用SDS,对于物理资源而言,呈现给一个虚拟化的工作负载或者一台客户机的存储卷本身就是一个抽象层,而非一个物理连接。这个SDS卷可以与工作负载一起在主机之间移动,通过SDS服务提供与相同的联机存储资源的新路径。因此,不必复制每台可能的主机的数据。2

本词条内容贡献者为:

曹慧慧 - 副教授 - 中国矿业大学