本文原文为英文 Some Open Thoughts on SNIA CDMI, 作者于2010年6月22日发表在EMC Community Network (EMC社区网络,见: https://community.emc.com/community/labs/blog/2010/06/22/some-open-thoughts-on-snia-cdmi

 
最近存储行业标准组织SINA发布了“云数据管理接口” 文档( Cloud Data Management Interface, CDMI, http://cdmi.sniacloud.com/ , April 12, 2010)。这是云存储标准化工作开端的一个重要步骤。简单介绍之,CDMI的主要内容是在客户端平台和数据中心服务器,在这两个平台之间定义描述了一个数据交换的标准界面。该标准界面采用通常web服务(web service)的HTTP协议来包装REST通信命令,由客户端主动请求web服务,数据中心被动响应请求并提供web服务。这个标准接口足以让程序员在这两种平台上实现应用程序间API的对接实现交互,即:客户端(平台上跑的应用程序)指令服务器端(服务器上跑的应用程序),对云中存储的数据对象进行以下若干操作:创建,读取,更新和删除(Create, Read, Update, Delete, 所谓CRUD操作)。采用web服务的另一个好处是,任一数据对象(数据块)都可被唯一标识定位到一个URI(Universal Resource Identifier),就像web中的URL唯一标识定位到一个网页一样。如此,无所不在的(如移动)客户端就可以在任何地点用URI的方式接入使用云存储服务。
 
我认为当前版本的CDMI标准化了一个客户端数据管理系统。按照此标准可以实现客户端应用程序使用与管理存储在数据中心里的数据,这样的数据使用与管理就有以下几个有用性质:按需使用,具有弹性的存储空间大小,无所不在的便利访问。这些都是典型的web service特性,也具有很强的云特征(见NIST有关云服务的定义, http://csrc.nist.gov/groups/SNS/cloud-computing/cloud-def-v15.doc)。但我认为这些web service性质自身并不足以涵盖云存储服务的本质及许多其它要素。比如云存储服务的一个本质性要素可以称之为“存储虚拟化”(Storage Virtualization)。云存储(包括云计算)服务的另一个本质性要素是使服务提供方兑现服务水平协议中承诺的服务质量保证。为实现这些本质性要素,云存储服务提供商(Cloud Storage Service Provider,以下简称CSP)必须在数据中心里主动操作执行一系列程序过程(以下会列出几个例子)。这些由CSP在数据中心里主动操作执行的程序与过程大多没有API接口可以暴露给客户端的应用程序,所以它们所实现的功能不可能以web service的形式提供给(比如包装入一个XML文件传输到)客户端。若一定要用“服务”来表述这些操作,它们都只能属于CSP自行消费的服务种类。CSP需要通过(消费)它们来实现在服务水平协议上的服务质量保证。在“如何在XaaS上有所不为中,我提出并非所有的云计算服务都适合交付给用户。对于云存储我也持同样看法。
 
一个CSP要自行消费的许多服务项目并不以web service的形式传输给客户端平台或用户。下面举几个例子:(1)自动跨阵列存储器甚至跨数据中心的负载均衡明显是一个非常重要的存储虚拟化任务,CSP需要执行这样的任务为了保证高标准级别的服务响应时间并保持较高的资源利用率。(2)高性能灾难恢复和业务连续性备份也是个明显的例子。(3)对于关键业务相关的应用,备份中心需要和主叫发起(Primary)中心进行同步。(4)两个主动进行同步的数据中心完全可能配备了不同厂商的异构硬件/软件资源,跨异构存储架构的存储虚拟化技术是一个在云存储标准工作中格外需要考虑的问题。(5)重复数据删除也是一个CSP自我执行任务的好例子。(6)“云溢出”(Cloud Bursting):当一个数据中心的服务器,存储空间,电力,冷却等能力将要超限的情况下,云溢出允许一个CSP卸载一部分的工作负载到另一个CSP。以上例子都可以看做是实现存储虚拟化的方法。还有许多其他类型的,可用于兑现服务水平协议中承诺的服务质量保证。在“云安全之要点所在”中,我提出了“安全作为自助服务”,就是让数据中心自我检查其软件环境,确保始终处于安全服务状态。另外不同用户的数据隔离与安全策略的实施不应只在一个CSP中得到保证,还应该是跨数据中心的,因为数据可能会在多个CSP 之间迁移。举一个和GRC(Governance, Risk and Compliance,即监控管理,风险控制和法规遵从)以及政策相关的一个例子:一个国家的法律可能要求某些数据永远不能被迁移到这个国家管辖之外的CSP中。
 
从上述云存储数据中心为了实现存储虚拟化以及兑现服务水平协议中所承诺服务质量保证而必须从事的一系列主动操作例子我们可以看到,云存储数据中心,哪怕是专营客户端数据管理的那一类,是以主动方式在运行的。一个这样的数据中心始终处于主叫状态。然而请注意由Web Service包装的RESTful协议却是以主动—被动的方式工作的,而且CDMI制定了客户端平台始终为主叫方,主动请求服务,云数据中心服务器始终为被叫方,被动响应做出CRUD操作。这有点让我疑惑当前版本CDMI标准是否并未充分涵盖了云存储服务的本质。当然我们完全可以设计一个云数据中心包含两部分:主动部分与被动部分,这两部分相互协作来完成存储服务。在目前或近期(或许若干年)内,客户端平台还需要与数据中心的被动部分发生联系。今后随着客户端平台越变越瘦,客户端将越来越只会与数据中心的主动部分发生联系,联系将以主动—主动的形式。而且这两者之间的数据交换若以内存页面更新的方式将会比上传下载完整数据块(如XML文件)的传输方式更加合适,原因是一个瘦客户端没有必要也不可能与数据中心保持在数据块上的一一对应。所以作为本文结论我认为:下一步云存储标准化工作应该主要集中在云数据中心主动被动部分之间的数据交换,以及实现存储虚拟化,服务水平协议等操作等内容上。