软件定义存储及其在医学图书馆中的应用

2017-03-21 06:06,,
中华医学图书情报杂志 2017年12期
关键词:存储设备虚拟化平面

,,

随着医学图书馆信息化的不断发展,数据量持续快速增长,数据的存放、管理、利用成为难题[1]。数据存储也面临诸多问题,如存储利用率低,数据僵化在某些硬件组件里,难以支持不断变化的应用服务级别,部署和调整存储资源流程复杂,自动化程度低,对应用请求的响应速度慢等。随着基础架构的日益复杂和业务应用的不断增多,医学图书馆传统存储架构面临的压力,以及应对这种压力并从根本上解决当前存在问题的需求与日俱增,软件定义存储(software defined storage,SDS)应运而生。

1 软件定义存储的概念

软件定义就是将原来高度耦合的一体化硬件进行解耦,形成不同的抽象层,通过API接口实现原来必须由硬件才能提供的功能,由管理软件自动控制进行硬件资源的部署和管理,为应用提供服务[2]。

软件定义存储作为一个不断进化的概念,是指存储资源由软件自动控制,从工业标准服务器的存储中抽象出来,通过软件控制层面实现存储的自动化和池化,保证数据的存储访问能在一个精准的水平上更灵活地管理,通过基于策略的自动化管理进行部署和供应,实现应用感知,最终达到存储即服务的目标[3]。

2 软件定义存储的特点

2.1 抽象化

传统意义上的存储大多数是集中存储(以外置磁盘阵列为主流),逻辑卷一旦创建,就不能更改(如更改RAID、增加大小),除非允许数据全部丢失,删除这个逻辑卷再重新创建一个新的逻辑卷。逻辑卷与存储的前端端口、后端端口、物理磁盘都紧密地绑定在一起,耦合度非常高。在这种情况下,即使是为多个业务应用提供存储资源的集中存储,也在内部形成了一个个孤岛,孤岛的存储资源不能相互共享,数据不能自由流动。因此存储首要解决的问题就是解耦,将逻辑卷与硬件解耦,打破孤岛之间的疆界,让存储资源能够共享,数据能够在各个存储的硬件组件间自由流动。

软件定义存储将存储阵列与硬件剥离开来,实现虚拟存储阵列。虚拟存储阵列能够为业务应用提供可靠、丰富的存储服务,支持NAS和SAN协议、支持动态存储分级、重删、压缩、精简配置、快照和远程复制等功能。将原本绑定在物理控制器的存储控制器操作系统解耦出来,形成虚拟存储阵列,将同类硬件的不同细节的部分隐藏起来,并与上层隔离,这样上层就不必因为下层硬件的不同而修改。因此,增加了可移植性和灵活性。

2.2 池化

软件定义存储通过池化使存储资源打破以往各自为政的割据局面,不再受硬件的限制,存储资源能够被自由地分配、使用和调度。池化包括存储虚拟化和存储标准化。

存储虚拟化通过对不同类型的物理存储介质进行聚合,构成一个共享的存储池,所有的存储资源在一个存储池进行统一管理和分配[4]。存储虚拟化改变了存储的调配和管理方式,存储池基于存储策略分配存储资源,降低了存储管理的复杂度,实现了存储资源的自动化管理和分配。存储虚拟化可以在系统的多个层面实现,主要分为基于主机的虚拟化、基于存储设备的虚拟化和基于网络的虚拟化。

存储标准化的提出源于存储行业各厂商的存储管理各自为政,缺乏互联互通,使用户的存储管理面临巨大的挑战。用户一直希望通过存储标准化使各存储厂商解决互操作性的问题,即各家的存储管理软件都能管理并灵活调用其他异构存储的资源。

2.3 自动化

软件定义存储能够根据业务应用的合规性、高可用性、工作负载等要求,通过存储API,自动地按需部署存储资源(如块存储逻辑单元甚至RAID子设备、文件系统共享、存储对象等),提供业务应用所需的数据服务级别。

软件定义存储包含两个部分:一部分是控制平面(Control Plane),实现基于策略或者基于应用的存储资源分配、变更和管理;另一部分是数据平面(Data Plane),负责数据的存放、处理和优化。这两个平面的逐渐分离,使软件定义存储逐渐呈现出更丰富的API供各类系统平台调用,实现更高程度的自动化。软件定义存储不仅提供了高效、敏捷、灵活的存储架构,提高了存储利用率,同时也降低了存储基础架构运维的复杂度和成本,使用户有更多的精力去关注上层应用或业务系统的创新。

3 软件定义存储的分类

软件定义存储整体分为控制平面和数据平面两大类。控制平面负责数据的流向、调度,存储服务的调用,存储策略的设定和分发;数据平面负责数据的处理、优化,存储功能的提供和实现(图1)。

图1 软件定义存储的分类

3.1 控制平面

在整个软件定义存储体系架构中,控制平面的实现难度最大,需要考虑和各种数据平面存储的兼容性,复杂度非常高。在软件定义存储控制平面这一层,全球IT厂商中参与研发并在市场上销售的屈指可数,比较有代表性的有VMware SPBM、OpenStack Cinder和EMC ViPR。

VMware采用基于存储策略的管理(Storage Policy Base Management,SPBM)模式,SPBM将存储资源池化后,借助VMware虚拟化软件的诸多高级功能实现存储资源的动态调配,或是虚拟磁盘的备份、归档和容灾;Cinder作为OpenStack云平台中的块存储服务组件,通过抽象和自动化传统块存储设备,提供软件定义块存储;EMC ViPR首先将物理存储资源进行存储虚拟化,然后以服务目录(Service Catalog)的方式组织并提供存储空间和服务[5]。

3.2 数据平面

在软件定义存储数据平面这一层,存储种类数量繁多,构成比较复杂,组成部分也较多。数据平面主要包括商用硬件(Based on Commodity Hardware)、传统外置磁盘阵列(Traditional External Storage)和云存储/对象存储(Cloud/Object Storage)。

基于商用的硬件主要包括基于服务器的分布式存储(Server SAN)和超融合(Hyper Converged)。Server SAN是包含闪存盘的、具备横向扩展特征的软件定义存储。这种分布式存储的特点是高度分布式(去中心化、无共享),采用标准的商用硬件(如服务器)形成一个全局共享存储池,能够在线进行横向扩展。超融合指的是基于标准的X86服务器,在每个物理服务器节点通过虚拟存储设备(Virtual Storage Appliance,VSA),管理节点内的各类磁盘,并与其他节点中的VSA一起构建一个集群的分布式存储。传统外置磁盘阵列包括SAN存储或者NAS存储,其实现方式有两种:一是与控制平面对接,二是通过研发去逐步实现抽象、池化、自动化。云存储/对象存储作为数据平面的组成部分,只涵盖作为数据平面的形态,以后端存储的身份为云平台上的应用提供存储资源。

4 软件定义存储在医学图书馆中的应用

随着物联网、万联网(Internet of Things,IoT)的发展,数据的增长速度在很多时候超越了摩尔定律(即半导体芯片上集成的晶体管将每一两年翻一番)。作为医学信息集散地的医学图书馆,数据的增速将超过存储容量的增速,这意味着优化数据的存放,提高存储利用率,将成为医学图书馆存储建设应该考虑的首要问题[6]。在存储的诸多要求中,简单易用、方便扩展对于医学图书馆存储管理工作人员而言尤为重要。

4.1 应用需求

医学图书馆当前多采用SAN或NAS的存储架构,存储设备多为磁盘阵列和磁带库,普遍存在资源浪费、难以共享等问题。考虑到未来业务的发展,以及最高负载时应用对系统资源的需求,采购存储设备时往往会选择高出实际需求很多的硬件配置[7]。传统模式下,业务应用所需资源远低于其硬件配置资源,导致存储设备利用率低,造成资源浪费,而且无法共享给其他应用使用,扩展性和可管理性都存在问题。

随着业务的发展及信息系统的应用,医学图书馆需要购置大量的存储空间用于存放系统及海量数字化数据[8]。由于数据量大、硬件种类繁多、系统交互频繁,使存储系统管理复杂,传统的存储架构难以满足需求。云计算、移动互联、物联网、大数据等技术在医学图书馆的应用对医学图书馆现有的基础设施,包括计算、存储、网络等资源都提出了更高的要求,特别是存储架构必须具备足够的灵活性和可扩展性。软件定义存储将存储资源虚拟化,形成一个不受物理系统限制的存储资源池,存储资源通过软件进行部署和供应,实现存储架构的自动化,从而能够最有效地利用资源,极大地降低管理运维成本。通过软件定义的存储,能够降低存储管理的复杂度,提高存储利用率,降低总体拥有成本,提升系统性能,使存储系统发挥更大的价值。

4.2 体系结构

软件定义存储将多台标准服务器组成的集群内的本地存储、直连存储等存储资源进行整合,形成一个全局共享存储池。软件定义存储采用弹性横向扩展和数据冗余(副本)的方式,提供与集中存储(外置磁盘阵列)相媲美的存储服务和高级功能。软件定义存储体系结构如图2所示。

图2 软件定义存储体系结构

如图2所示,软件定义存储通过汇聚各个服务器的存储资源形成一个共享存储池,向上层系统和应用提供服务。相对于传统存储阵列,软件定义存储具有更好的扩展性、可靠性及灵活性。软件定义存储可以根据业务需求进行横向扩展(增加集群存储服务器节点数量),采用多副本的数据保护机制保障系统的高可靠性,确保系统出现故障时不会造成上层业务的中断,允许存储服务器灵活地采用不同硬件配置,适配对存储资源的不同需求。

4.3 应用模式

4.3.1 异构存储统一管理

软件定义存储通过将异构存储资源进行抽象化,创建成一个简单的存储池,屏蔽了底层异构存储的复杂性,将传统的存储设备级操作转变成面向存储资源的操作。用户能够在一个平台中实现存储资源的集中管理,根据自动化的策略添加、调配和共享存储资源。通过定义不同种类的虚拟存储池,可以满足适合特定工作负载所需的存储的性能或功能。软件定义存储能够向用户提供快捷、自助的存储服务,帮助用户快速地访问存储资源,而不用等上几天甚至几周。而且它还帮助用户节省了管理时间,从而将更多精力专注在业务应用上。

4.3.2 存储资源自动化调配

目前的存储设备大多是按照过量配置的方式进行部署的,容量和性能都极大地超过了实际需求。由于部署和扩容周期长,无法按照存储的实际使用情况减少资源。通过软件定义存储,实现存储资源的自动化调配,用户可以快速创建存储资源,在几分钟内就可以投入使用。通过基于策略的自动化,可以实现灵活地扩容和缩容,提高存储利用率。此外,通过自动化,降低存储管理的复杂度,消除由于手工操作给整个存储资源稳定性带来的风险。

4.3.3 可扩展性

软件定义存储易于扩展,具有较强的横向扩展能力。传统存储架构底层采用共享存储设备,共享存储设备的扩展性受限于其控制单元。随着业务的发展,数据量不断增加,存储单元的扩展必然伴随着存储性能的下降。软件定义存储采用超融合架构,由若干作为节点的存储服务器组成,每个节点均包含控制单元和存储单元,扩展时仅需要添置节点主机即可,新添置的节点与原有节点构成新的集群,不仅增加了整个存储系统的存储容量,而且提升了系统的整体性能。

4.3.4 高可靠性、高可用性

传统存储架构底层采用单点的共享存储设备,当存储设备出现故障时对整个系统而言就是巨大的灾难。软件定义存储在数据保护层面采用多数据副本机制,当一个节点出现故障时,仍然可以依靠在其他节点上的数据副本继续对外提供服务。因此,集群中任意一个节点的损坏都不会对整个系统的正常运行造成影响,从而保障系统运行的高可靠性、高可用性。

4.3.5 灵活性开放性

软件定义存储作为开放平台,可以轻松地增加对新存储的数据服务,或者为软件基础架构增加新的特性,因此所有的管理功能都开放了API。软件定义存储还通过一致的API提供资源的访问,这些API用于新的数据服务的开发,使软件定义存储能够与各种上层管理软件,如VMware、OpenStack、Microsoft等相结合。软件定义存储通过开放API,使任何存储都能够被存储厂商或者第三方厂商加入到软件定义存储平台里,而且提供API可以使任何数据服务能够被轻松地内嵌在软件里[9]。

5 结语

随着医学图书馆需求的变化和技术的变革,软件定义存储能够为医学图书馆提供更高的灵活性和开放性、更强的扩展性、更简单的管理及更少的投入。从投入成本看,由于省却了外置磁盘阵列的存储控制器、存储光纤交换机和服务器HBA光纤卡等硬件的投入,可以降低到普通机架式服务器硬盘的价位[10];而且它将传统存储的专用硬件转变成通用硬件,通过融合计算、存储达到降低成本的目的。从开放性看,只要通过兼容性验证,它支持业界标准的硬件,并且能在最快时间内采纳新的硬件,灵活性极高。从扩展性看,软件定义存储支持在线的横向扩展,能够自动地在一个资源池里线性地、同时地增加计算资源和存储资源,使用户获得可预测的性能和容量。软件定义存储能够满足医学图书馆的业务需求,有效提升信息服务的能力和水平。

猜你喜欢
存储设备虚拟化平面
玩转高考真题——平面解析几何篇
立体几何基础训练A卷参考答案
基于OpenStack虚拟化网络管理平台的设计与实现
对基于Docker的虚拟化技术的几点探讨
浅析虚拟化技术的安全保障
H3C CAS 云计算管理平台上虚拟化安全防护的实现
参考答案
浅析铁路视频监控存储设备设计
Windows环境下禁用USB存储设备程序设计与实现
平面和立体等