软件定义存储:原理、实践与生态
上QQ阅读APP看书,第一时间看更新

1.2.7 SNIA眼里的SDS

SNIA是Storage Networking Industry Association(全球网络存储工业协会)的缩写,作为一家非营利的行业组织,SNIA拥有420多家来自世界各地的公司成员以及7100多位个人成员,遍及整个存储行业。SNIA曾先后定义了DAS、SAN、NAS、对象存储及云存储等标准。所以,SNIA对SDS的看法非常有参考价值。

SNIA认为,SDS是带有服务管理接口的虚拟化存储。SDS包括具有数据服务特性的存储池,这些服务特性可以通过服务管理接口去实现,以满足需求。

SDS需要满足的是:提供自助的服务接口,用于分配和管理虚拟存储空间。

SDS应该包括如下功能。

1)自动化:简化管理,降低存储基础架构的维护成本。

2)标准接口:API(应用编程接口),用于管理、部署和维护存储设备与服务。

3)虚拟化数据路径:块级、文件级和对象级接口,这些接口支持应用写入。

4)扩展性:无须中断业务,即可无缝扩展存储基础架构,达到预期的可用性或性能。

5)透明性:存储用户对存储消耗、可用资源以及成本进行监控和管理。

传统存储部署中,存储管理员需要为数据所在的虚拟设备部署数据服务,多数情况下,每一个数据服务需配备属于自己所有的管理接口。改变这些数据服务将影响所有存放在虚拟设备的数据。数据请求的通信通常在任何存储接口之外,以带外的方式传输,一般是直接传输给存储管理员,如图1-11所示:

图1-11 SNIA SDS观点:传统方式——手动传送数据需求

如图1-11所示,该存储并不是“软件定义”,而是“存储管理员”定义和部署。这种方式的问题是,请求存储的过程非常麻烦,而且耗时。因此存储空间的消费者倾向于在一开始时申请过量的存储空间,以防将来麻烦存储管理员。这通常意味着存储空间一旦部署,超额的部分不再返还给存储管理员。这种传统存储部署方式会导致较高的存储TCO(总体拥有成本)。

为了将自动化引入存储基础架构,降低人工管理的成本,需要有一种方法,将数据请求直接传输给自动化软件。这些请求的粒度至少需在当前常见的独立虚拟化存储设备级别。为了达到未来的自动化,每个数据对象需独立传达自己的请求,独立于其所在的虚拟存储设备。数据对象应被分组和抽象,使得用户能够理解他们的选择。否则,用户必须是存储专家。

为将请求传输至存储系统,应用或用户需将请求标记至每个文件或对象。采用元数据,或数据的“数据”的方式,是非常完美的机制。将元数据(记录了请求)标记在数据对象上,存储系统能够定位这些含有数据服务的请求信息。如图1-12所示。

图1-12 SNIA SDS观点:理想方式——通过元数据传送数据需求

如图1-12所示,理想的SDS,其传递数据请求的方式是:让应用通过元数据来请求相应的数据服务。如空间部署、数据保护(快照、克隆)、数据高可用(容灾、双活)、性能、安全等。

理想的SDS实现了存储基础架构的自动化,极大地降低了人工管理运维成本,数据请求需直接传达至自动化软件。它能够直接应对请求,分配应用人员所需的存储资源,而无须人工干预。存储管理员可以从枯燥重复的建卷、映射卷等工作中,从疲于修补那些导致存储服务水准降低的突发故障中,脱身出来,转向更高级的任务,例如定义存储策略。

图1-13是SNIA关于理想的SDS的全局示意图,很好地概括了未来理想的SDS所涵盖的各个方面。

图1-13 SNIA SDS观点:全局示意图

1.存储管理

将来自服务器本地的闪存盘、机械盘、存储阵列、JBOD等存储资源,通过存储管理协议(如SMI-S等),进行特性描述和虚拟化,构建出存储资源池。

2.数据服务

存储资源池化后,即可按照用户对存储服务级别(如金银铜)的要求提供数据服务。数据服务包含空间部署、数据保护、数据可用性、性能、数据安全性等。

3.数据请求

存储资源的使用者,如软件开发人员通过数据管理接口(如CDMI),向SDS发起数据请求。由于SDS开放了丰富的API供调用,因此SDS能够满足用户的数据请求,按照服务级别,提供相应的存储资源。