一、 中东市场,国际安防厂家活跃
Milestone、Genetec、Thales、Honeywell、Bosch、Hikivision、Dahua , Tyco, Samsung, AXIS,Peclo, ISS, axxon
二、除了专业存储厂家,还有大量的视频监控垂直领域存储厂家
前者有EMC、IBM、Netapp、Fujitsu、 Quantum、Dell
后者有Rasilent、Pivots、Promise、Veracity、Nexsan、infortrend、 Fibrenetix
从华为云提供的对象存储服务(ObjectStorage Service,简称OBS)
对象(Objects)
对象是存储在OBS中的基本数据单位。用户上传的数据以对象的形式存储在OBS的一个或多个桶中。
对象的属性包括以下几部分:
■Key: 对象的名称,为经过UTF-8编码的长度大于0且不超过1024的字符序列,一个桶里的每个对象必须拥有唯一的对象名称。用户可使用桶名 对象名来存储和获取对应的对象。
■Metadata: 对象元数据,用来描述对象的信息。元数据又可分为系统元数据和用户元数据。系统元数据由OBS系统产生,在处理对象数据时使用。系统元数据包括:Date,Content-length, last-modify, Content-MD5等。用户元数据由用户上传对象时指定,是用户自己对对象的一些描述信息。这些元数据以键值对(Key-value)的形式随http头域一起上传到OBS系统。
■Version ID: 对象的版本号。用户上传对象时,可能不希望覆盖相同对象名称的旧的对象版本。OBS提供对象的多版本控制功能。默认情况下,桶没有设置多版本功能。用户可设置桶的多版本状态,用来开启或暂停桶的多版本功能。设置桶的多版本状态为Enabled,开启桶的多版本功能:
a.上传对象时,系统为每一个对象创建一个唯一版本号(Version ID),上传同名的对象将不再覆盖旧的对象,而是创建新的不同版本号的同名对象;
b.可以指定版本号下载对象,不指定版本号默认下载最新对象;
c.删除对象时可以指定版本号删除,不带版本号删除对象仅产生一个带唯一版本号的删除标记,并不删除对象;
d.列出桶内对象列表时默认列出最新对象列表,可以指定列出桶内所有版本对象列表;
e.除了删除标记外,每个版本的对象存储均需计费(不包括对象元数据)。
设置桶的多版本状态为Suspended,可暂停桶的多版本功能:
a.旧的版本数据继续保留;
b.上传对象时创建对象的版本号为null,上传同名的对象将覆盖原有同名的版本号为null的对象;
c.可以指定版本号下载对象,不指定版本号默认下载最新对象;
d.删除对象时可以指定版本号删除,不带版本号删除对象将产生一个版本号为null的删除标记,并删除版本号为null的对象;
e.除了删除标记外,每个版本的对象存储均需计费(不包括对象元数据)。
只有桶的所有者可以设置桶的多版本状态。版本控制可在客户意外覆盖或删除数据元的情况下提供一种恢复手段,从而提供另一层保护。这使您能够从无意用户操作或应用程序故障中轻松恢复。还可将版本控制用于数据保留和存档。
■对象ACL( Access Control List):对象的接入权限控制列表。对象的每次接入都需要校验该权限控制列表,以实现对象的安全接入。每个对象在创建时都会生成默认的ACL, ACL列表的每项包含了对被授权用户授予什么样的权限,如读权限(READ)、写权限(WRITE)、完全控制权限(FULL_CONTROL)等。对存在的对象也可以调用更改ACL接口生成新的ACL。
官方网站的管理控制台里面,有“文件夹”的概念,我们有时也将“对象”直接称呼成“文件”。但这并不意味着桶里面真的有文件夹,也不意味着对象就是“文件”,这只是提供了一种用户习惯的文件系统的表述方式。通过在对象的名称中增加“/”,如abc/123.jpg,abc就可以模拟成文件夹了,123.jpg就可以模拟成文件名了,而对象名称(key)仍然是abc/123.jpg。
桶(Buckets)
桶(Bucket)是对OBS中的一个存储空间的形象称呼,是存储对象的容器。对象存储是一种非常扁平化的存储方式,桶中存储的对象都在同一个逻辑层级,不像文件系统那样有一个很多层级的文件结构。在OBS中,桶的命名是全局唯一的。每个桶在创建时都会生成默认的桶ACL(AccessControl List),桶ACL列表的每项包含了对被授权用户授予什么样的权限,如读权限(READ)、写权限(WRITE)、完全控制权限(FULL_CONTROL)等。用户只有对桶有相应的权限,才可以对桶进行操作,如创建、删除、查询、设置桶ACL等。一个用户最多可创建100个桶,但每个桶中存放的对象的数量和大小总和没有限制,用户不需要考虑数据的可扩展性。
OBS面向用户提供基于对象的存储服务功能。用户所上传的数据以对象的形式存储在OBS的桶中,可以用文件系统进行类比:“对象”就像是文件,“桶”就像是文件夹(或目录)。对象可以存放在不同或者同一个桶中,数据模型如图所示。
桶管理与传统文件目录管理不同,无法按层次结构来管理,不能把桶放到桶中进行管理,如图所示。用户通过临时授权、ACL或Policy等授权方式进行权限控制,将桶和桶内的对象共享给其他用户。
对象数据实际存放在相同或者不同硬件存储设备的对象存储节点中。通过对对象元数据的管理,OBS可建立对象数据和用户映射关系。
估计到这里,大家一看就明白了对象和桶的关系了,看来确实和传统存储的数据布局不一样。其实还有一点,其访问方式也和传统存储不同,因为不是采用FC或iSCSI或文件接口访问的,而是采用REST接口访问。
REST接口
REST(RepresentationalState Transfer表述性状态转移)是一种针对网络应用的设计和开发方式,可以降低开发的复杂性,提高系统的可伸缩性。
OBS提供的交互接口遵循REST规范(HTTP1.1版本),兼容AWS S3接口。使用OBS提供的REST接口,用户可以发送标准的HTTP请求完成创建、取回、删除桶或对象的操作。用户可以使用任何支持REST请求的工具向OBS发送请求。REST接口使用标准的HTTP头域和状态码,除此以外,OBS还在头域中加入了鉴权信息以支持不同用户的不同权限,提高安全性。
华为推出OBS服务,进入云存储市场。从OBS的定位看,更多以AWS为标杆,实现AWS几乎一样的功能。虽然目前在特性上还是没有AWS丰富,但是华为有强大的研发能力,如果能够适应公有云这种devops的开发模式,相信补全特性指日可待。
但今天西瓜哥还看到,国外的Bell Labs正在研究一种新的云存储架构,叫SEARS – Space Efficient And Reliable Storage。SEARS的思路是采取纠删码和重删结合,使得云存储的效率和速度都有提升。
实现的思路就是终端把文件切片上传之前,先和云里面的指纹进行匹配,只传输云上没有的数据。切片的大小对处理速度和重删率有比较大的影响,需要平衡,1KB~8KB之间效果比较好。Bell实验室宣传测试结果显示,3MB大小的文件,2.5s就可以取回,而亚马逊需要7s。
原来听说重删主要是为了提高速度,而不是为了节省空间,西瓜哥还将信将疑,现在我信了。华为的OBS可以借鉴一下贝尔实验室的思路,做出更多受用户欢迎的特性。
但华为除了有公有云外,还有自己传统的存储产品,这是不同于AWS的地方。华为应该在自己的存储(特别是高端存储)加入云存储网关功能,使得企业的数据可以根据需要在私有云和公有云之间无缝流动。华为也应该提供不带硬盘(可以有部分闪存做加速)的企业存储产品(特别是NAS形态),后端直接利用公有云的对象存储服务,但是提供企业级存储的特性,遵循企业用户的使用习惯。
当然,在生态链上,华为OBS也需要加强合作,吸纳爱数、英方这样的云灾备合作伙伴,一起把整个云存储的市场做大做强。