1.需求
当今世界“云概念”大行其道,面对各种各样亦真亦假的云产品,企业该如何选择?又会有怎样的风险,这是每一个企业需要认真考虑的问题。Emc²的Atmos提供了一种解决方案,在提供较强云特性的同时,又大大降低了直接向云迁移可能会遇到的各种问题。通过查阅了一些官方、非官方的PDF资料,作者对其有了一些浅薄的认识,并加入了自己的理解(因资源限制,作者并未实际使用)。本文展示了Atmos的特性,如果发生与官方文档向冲突的地方,请以官方文档为主。
l 实时产生的大量非结构化数据(包括图片、EMail、视频、文档等),正在以创记录的速度爆炸式增长,数据规模的描述经历了P-E-Z-Y的改变,迫使我们去寻找更有效的方式,以支持信息能够更长时间的存储。
l 数据周期性的变化增长,需求模式不可预知,无法制定准确的存储规划方案。
l 进行存储的扩容、升级时,需要大量的人工劳动,容易出现问题且耗时长,甚至需要停机倒数据,进行额外的复制和保护工作,对IT部门的压力非常大。
l 多种访问终端的发展,也需要应用程序额外开发相应的HTTP支持
l IT部门需要考虑消除信息孤岛,优化基础的共享存储架构。
2.简介
Atmos提供针对非结构化数据进行存储、归档服务。通常是直接面向企业和服务提供商,提供私有云、共有、混合云的使用模式。再由其自行搭建应用或者二次开发,来服务终端用户。
l 共享存储池:存储资源利用最大化(相对于云存储的提供者来说),减少资源的浪费,从而帮助降低成本。使用者按需获取自己需要的存储空间。
l 统一的访问空间:提供大规模数据的存储、整合,中心集中管理;通过一个接入点,即可具有访问全局数据的能力。
l 位置透明:用户不管关注存储所在的实际位置,也就消除了物理位置、存储空间的限制
l 无缝线性扩展:易于进行容量扩展,在添加应用、租户时无需进行任何配置,降低管理时间,
l 自动化策略:设置后即可按预期获得执行,降低管理的复杂度,例如:副本保护、位置服务、数据压缩、数据分类等,大大减少了人工干预的成本,以及可能带来的不良后果。
l 多种访问接口,满足多设备访问需求,支持传统服务程序、Web程序、Windows、Linux、移动系统的直接访问。
l 存储即服务:在云交付平台下,在租户级别自动记录其使用量、容量,支持自助管理和计费。因此非常适合服务提供商搭建共有云平台,可以省下不少工作。
l 数据安全隔离:多租户间的数据互不可见
l 配置实用简单,企业可以将精力集中在关键的业务领域
l 数据保护机制,异地存储多副本,保证数据可用性,实现了Active-Active模式
在用户管理、访问上,Emc做了很多工作,感觉比较专业,毕竟这是从用户角度看到的系统的样子,是最直接的用户体验,后续会详细说明。
名词解释:
l Cloud Delivery Platform:在atmos平台上的附加服务,云交付平台,提供存储即服务的访问
l GeoMirror:采取同步、异步方式生成的副本
l GeoParity:数据分块、压缩机制,即Erasuring Code
l RMG:Resource Management Group,资源管理组
l RMS:Resource management service,管理本地存储资源,包括监控数据服务状态,分配文件所在的MDS和OSS,
l MDLS: meta data location service,记录对象元数据所在的MDS。只能配置在每个site的前两个node
l PM:Policy manager,提供策略管理、查询,决定对象写服务的处理策略
l JS:Job service,执行副本任务
l SS:Storage Service,直接存储数据
l MDS:存储用户、系统、布局的信息
l CS:Client service,访问接口,NFS、CIFS、IFS、WebAPI
l DAE:disk array enclosures,后端磁盘阵列,挂载在node上
3.结构
下边从几个方面分析下Atmos的结构
3.1访问结构
可以看到,在广域网环境下,都是通过REST接口接入进来的。广域环境下也可以使用NFS,但是性能应该很差;局域网环境下,用户可以通过NFS、CIFS、安装客户端(FUSE)方式,最终以Native API进行访问。无论什么方式,都可以访问到整个系统的巨大存储资源池。
3.2部署结构
l System:一个Atmos系统由分散在广域环境中的若干个Site组成。
l Site: Site也称为RMG,资源管理组。每个Site由若干个IS组成,所有IS都位于同一个子网当中。Site统一管理和监控内部的所有节点。
l Install Segment:每个IS由若干个Node和DAE组成,通常是一个机架
l Node:物理或者虚拟节点,保存数据和元数据。在内部会分配为每个Node一个编号,Node之间以千兆网或者万兆网连接。
l DAE:物理的或者虚拟机存储,每个node可以接最多4个DAE,每个DAE可以包含15个1或2T的空间,与node以SAS方式连接。
下图是集中可选的物理设备:
3.3元数据
以对象为基础的存储结构,为每个数据分配一个唯一的对象ID,用户根本不需要关心文件的位置和任何映射关系。每个对象包括元数据:
l 系统元数据:文件信息、长度等常见的文件属性
l 用户元数据:文件更偏向于专有应用的属性,如歌曲对应的艺术家、唱片等,也可对文件添加制定的标签。
根据这两类元数据,可以将文件分成不同的对象组。在分类之后,对不同的对象组实施不同的管理策略,非常灵活。
元数据在Node内部有多个存储副本,在其他Node上,存储元数据的可读副本;每个MDS负责一部分元数据信息,每个文件的元数据通常会保存3份副本。从这一点可以看出,Atmos在元数据管理上的分区方式。通常操作会选取本地就近的MDS进行,降低访问广域的延迟。
文件的访问有如下几种方式:
l OID:Object id,即文件在全局的唯一标示
l Path:文件在文件系统中的路径
l Tag:制定给文件的标签。
3.4数据流向
数据创建过程如下,只描述主要过程,可能与图中不符
- Client询问RMS,数据在哪个mds
- 发送到主mds
- mds生成唯一文件id;并询问策略服务PM,获取文件的布局方式
- PM返回xml形式的策略,包括位置、副本数、副本方式、触发条件
- mds填写用户信息和文件属性等
- 查询RMS,决定在本地的资源存储方式
- 生成LSO,分配给SS,会生成本地副本
- Client并发发送到多个ss上
- ss创建后台数据,并将对象ID返回给client
- client收集多个ss的id并发送给mds
- 执行异步同步策略,mds生成任务发送给js
文件读过程如下:
- 向RMS查询,获取相应的MDLS
- Client到MDLS查询文件的主、从MDS、远程MDS分布
- Client获得回应,得到对象的布局状况
- Client解析后,向最近的ss发送请求
- SS返回给Client
3.4用户管理
l 租户:可以拥有自己独立的存储空间、存储访问策略、安全控制机制。不同租户之前是完全隔离的。租户主要是起到管理作用,并以节点为单位分配管理单元给租户,即一个Node只能属于一个租户。通常在一个系统中,只会设置1-2个租户。租户可以被认为是对数据和策略进行了分组管理。
l 子租户:由租户创建,一个租户下可以有多个子租户。子租户有自己独立的名字空间,子租户之前的数据也是隔离的。可以为每个子租户设置不同文件管理策略;CIFS和NFS也在子租户级别导出。子租户对应的数据拥有者,这可以是某个部门、应用、个人用户。
l 用户:子租户下可以创建自己的用户,也就是最终端使用者
可以看到,Atmos做了一些本该由运营提供商或者企业自己做的事情,这样可以更快的部署和迁移,运用到核心系统中去。
3.5访问模式
Atmos尽可能全面的提供了一系列访问接口,不同的使用者选取不同的接口
l 终端用户:通常与应用直接打交道,不需要直接访问Atmos;在有需要的情况下,可以通过挂载的方式使用FUSE接入(IFS方式),或者是NFS/CIFS
l 应用:Web接口如SOAT、REST,更好的跨平台性
NFS方式:注意,在NFS方式下,每个Node都是独立配置的。但允许使用两个Node对NFS导出做HA
IFS方式:可安装的文件系统方式,使用FUSE将用户接入到某个子租户上;可自动获得集群化特性,比如可以在某些服务故障时,自动进行访问重定向。
l 用户像访问本地文件系统一样,访问整个Atmos中的数
l 提供close-to-open一致性
GeoDrive:为Atmos生成一个逻辑磁盘驱动器,类似于个人存储方式
REST:如果仅仅使用REST接口,可以不建立名字空间,使用专用的创建接口。
3.6策略管理
策略用来对数据分类。在数据变化、被访问时,不同类型的数据触发不同的动作。策略的目的是,降低管理成本,自动化。比如可执行的策略有:
l 副本类型、数量、副本数、存放位置
l 执行压缩、重复数据删除策略
l 文件锁定、自动清理,在多久时间内锁定文件、多长时间后自动删除等
通过数据分类和策略执行,不同应用之间,甚至相同应用的不同数据、不同时间,都可以执行更合适策略。
3.7副本机制
副本用来容灾,提高可用性、内容分发、提高读性能(就近)。副本分为两类:本地的同步副本,远程的异步副本,当然也可以在远程使用同步副本,但是访问延迟很大,因此通常不使用此方式
GeoParity机制,借鉴通讯领域中的Erasure Coding机制。
l 编码阶段,将文件划分成m块数据和K块编码信息,存放在系统中不同的机柜、不同的Node、不同的site;采用名为Cauchy Reed-Solomon的算法,需要额外的33%存储空间(对比:RAID1需要额外100%的空间占用,RAID5 需要25%的空间占用)
l 解码阶段,只需要获取m+k的一个子集,即可恢复完整文件,同时用MD5值来验证数据正确性
需要注意的是,在编码和解码阶段可能会产生额外的开销。适合保存长久不用的归档数据,只是增加了写入时一次的开销。
3.8扩展性
无缝扩展。在Site内部增加机柜、node、磁盘数量,无需任何配置;也可增加新的Site,但需要保证能够与已有site的MDS建立相应的对称结构(即需要有足够的Node存在)。
3.9容灾
每个Node内部所有的服务器都是冗余的,部分故障发生,系统仍然可以正行服务;系统内部对故障的服务会不断重试,其恢复后能立即对外服务。
系统级的数据副本保证,在发生硬件故障时,数据始终是可用的。
后记
云似乎是现代企业信息存储的救命稻草,但发展尚需时日,目前的服务状况无法令人满意。云产业还在的一步步成长中,也许对每个人来说都是机会。
资料:主页http://www.emc.com/storage/atmos/atmos.htm