SNIA云存储标准
SNIA的云存储标准(Cloud Data Mamangement Interface,CDMI)出来有一段时间了,目前云存储战场竞争激烈,标准的到来给云存储服务提供了指导作用,期待未来有美好的一天,所有的云存储提供商都遵循这个标准,让标准真正的发挥作用,让互联网用户受益。
理想很丰满,现实很骨感,制定标准跟标准落地还有很长的一段距离,标准的合理性首先需要得到检验并不断的改善,而且忽悠大的服务商遵循标准太难,比如S3、百度云这样的大的服务商,他们已经有自己的一套服务接口,而且已经有千万级用户,他们巴不得自己的接口成为标准,短期内这些大户不会遵循标准的,而大户们都各搞各的一套标准的话,SNIA的标准也就只是形同虚设,但对行业后来者的指导意义不可忽略。CDMI标准主要针对对象存储,类似Amazon S3这样的服务,CDMI在标准的设计上应该也是参考了S3;S3是领域内绝对的权威,很多后来者在服务接口的设计上都选择兼容S3,好忽悠那些S3的老用户迁移服务;本文主要描述CDMI跟存储相关的接口,不涉及与安全访问相关的接口。
对象模型
CDMI的包含包含container和object两个层次,与S3采用bucket、object组织模式类似,container全局唯一,container中可以包含多个object,也可包含sub-container,借助sub-container可实现对象的层次结构组织,与S3通过object name的分隔符实现层次结构的思路基本相同。
S3的访问对象的方式: http://bucket-name.hostname/object-name
CDMI的方式:http://hostname/MyContainer/MyOtherDataObject.txt
对于对象访问的方式,基于bucket(container)的唯一性,个人觉得S3的方式更优。
CDMI的对象访问还可根据对象ID,比如上面的对象还可通过如下方式访问:(假设MyContainer的对象ID是00006FFD0010AA33D8CEF9711E0835CA)
http://hostname/cdmi_objectid/00006FFD0010AA33D8CEF9711E0835CA/MyDataObject.txt
CDMI对象ID的格式总共40bytes,起实际标识作用的35字节(3字节的enterprise number 和 32字节的用户自定义信息),35字节对于大型的云存储系统来说是远远不足的,不知道SNIA在这块是怎么考虑的。
元数据
CDMI的标准也考虑到了对象元数据的扩展,通过 key:value对描述扩展信息,从目前云存储实际需求来说,个人用户主要要求数据安全及方便的CRUD接口,直接使用这个元数据扩展的情况并不多见;企业用户会在云存储上做各种封装,才会面向个人用户,比如某照片分享服务使用S3存储数据,并向用户提供了对打标签的功能,这个标签即可认为是照片的扩展元数据,如果云存储服务能友好的支持扩展元数据,肯定会更受用户青睐,而且随着社交网络的不断发展,扩展元数据的需求会越来越强烈。
引用、复制、移动
在CDMI标准中,规定了引用、复制、移动对象的接口,这些接口对应本地存储的快捷方式、复制文件、移动文件的操作,引用是指你put一个对象A,这个对象实际是对象B的引用,以后你访问A就是在访问B;复制只是你在put的对象A的时候,A实际上是复制了已有的对象B移动相当于直接把A重命名为B(注:标准对实现方式没有要求)。
队列对象
CDMI定义了队列、队列本质上也是一个对象,但其拥有更多的特性,对象按先后顺序组织(先入队的放在前面,入队的每个元素拥有一个队列内部唯一的标识),并提供了一系列根据不同限制访问队列的接口;目前尚不能理解提供这个接口的意义何在。
国内云存储现状
我最早使用能跟云存储扯上关系的产品是网易网盘,网易网盘最早是网易邮箱的附属品,但由于其在存储容量提供上太不给力,而且一直在存储服务上也没做太多的工作,以至于这个产品一直表现平平,对此我感到非常惋惜,幸好网易把握住了云笔记的机会,也算在云存储领域站稳了脚跟。后来我先后用了115网盘、联想网盘、DBank,但后期的服务都不怎么稳定,直到后来百度推出云存储,凭借其超大免费空间和技术优势后来居上,用户已过千万,我比较看好百度云的发展;金山快盘做得比较早,用户也突破千万,并成立独立公司单独运作;新浪微盘凭借微博的优势也积累了不少用户,但我一直觉得微盘适合“分享”不适合“存储”,很多人只是在想分享文件的时候才把它上传到微盘;在企业云存储方面,阿里云,又拍云(主打图片存储、还提供与图片相关的其他服务,比如缩放、防盗链、图片管理等)、七牛云存储等在国内知名度较高。
在云存储服务上,大公司有天然的优势,成本投入、技术积累、营销推广等,目前提供云存储的小作坊的用户会不断减少,投入到大公司的怀抱,再过一段时间的优胜劣汰,活下来的云存储产品也就那么几个,创业者(开发者)们也会逐渐把思路转移到借助云存储服务提供更好的扩展产品上。