ECS对象存储

ECS 对象存储系统概述

ECS是基于横向扩展架构的分布式云存储平台,该平台构建于X86硬件之上,通过软件,实现单一系统的大规模扩展。ECS提供:

·         通用协议支持:单一平台支持对象、HDFS、NFS多重访问方式。开发人员可以自由地专注于自己的应用程序。

·         简单易用的管理门户:为跨地域分布式的环境提供单一管理视图。企业可以任意进行横向或者纵向扩展,同时保持单一的管理视图。

·         全面的存储服务:提供管理一个存储云平台需要的所有功能,包括多租户,计量等多种功能。

ECS提供超大规模的存储架构,专门设计用于需要大规模扩展的应用程序,提供具有无与伦比的可用性,数据保护,管理、数据访问的简单性以及大规模的扩展性:

·         无限可扩展性:只需很低的成本即可满足应用程序或数据的存储要求,轻松扩展以满足PB级和EB级别的存储需求。

·         无限的应用和用户支持:单一系统为无限的应用程序和用户提供跨地域的存储系统支持,单一系统可以扩展到PB级和EB的规模上。

·         高持久性、低开销的数据保护:对象存储在ECS中的存储容器被称为块。当一个新的对象被写入,该对象被以块的方式存储在3个不同的节点上。当块存满后,使用擦除编码技术保护此块,从而将存储开销从3.0倍降低至1.33倍,并可以复制在其他站点上,以提供更高级的数据保护。

·         跨地域分布:跨地域多站点架构,可以让你将地理上分布式的存储环境作为一个单一的逻辑资源进行管理,且单一的全局命名空间。 ECS是提供了强一致性,无论应用程序何时何地读取它,ECS总会返回该对象的最新一个版本。

·         策略驱动的跨地理保护:通过专利技术,进行跨地域的数据复制,并能够自动感知应用对数据访问模式,以优化数据的存储存放位置,从而实现高效的存储数据访问,优化数据保护,兼顾存储效率和访问性能。

 

ECS 工作和网络架构

ü  单站点情况

数据访问图示

数据写入:

1.   应用程序在存储区中创建对象。

2.   存储引擎将对象写入到一个块。对应于此块的磁盘位置在三个不同的磁盘/节点上,因此以并行方式写入三个不同的磁盘/节点。存储引擎可以将对象写入属于存储区的复制组的任何节点。创建对象所在的 VDC 是对象的所有者。

3.   存储引擎将块的磁盘位置记录在块位置索引中,将块 ID 和偏移记录在对象位置索引中。

4.   存储引擎将对象位置索引写入到某个块,将对应于块的磁盘位置写入到三个不同的磁盘/节点,因此以并行方式写入三个不同的磁盘/节点。索引位置的选择独立于对象块位置。

5.   在成功写入所有磁盘位置后,存储引擎会确认写入应用程序。如果对象块已满,则存储引擎将对其执行擦除编码。它不对对象位置索引块执行擦除编码。

数据读取:

在单站点部署中,当客户端提交读取请求时,存储引擎会使用对象位置索引来查找哪些块在存储对象,并检索块或擦除编码的分段,重新构造,并将对象返回到客户端。

容错情况:

 

A级别(4节点)

B级别(8节点)

节点故障

容忍一个

容忍两个

磁盘故障

容忍四个

容忍四个

网络故障

容忍一个交换机

容忍一个交换机

阵列整体故障

停止服务

停止服务

站点故障

停止服务

停止服务

 

 

ü  双站点情况

数据访问图示

数据写入:  

在两个 VDC 的联合部署中,存储引擎将对象块写入到本地 VDC,同时写入到远程VDC。

1.   应用程序在存储区中创建对象。

2.   存储引擎将对象写入到接收它的站点上的某个块。对应于此块的磁盘位置在三个不同的  磁盘/节点上,因此以并行方式写入三个不同的磁盘/节点。存储引擎可以将对象写入属于  存储区的复制组的任何节点。存储引擎将块的磁盘位置记录在块位置索引中,将块 ID 和偏移记录在对象位置索引中。最初接收对象的站点是对象的所有者。

3.   在成功写入所有磁盘位置后,存储引擎会确认写入应用程序。

4.   存储引擎将块复制到联合站点中的三个节点。它将块位置记录在对象位置索引中,同时记录在联合站点的三个不同节点上。如果块已满,则存储引擎将对对象块执行擦除编码。它不对对象位置索引块执行擦除编码。

5.   如果两个 VDC 在复制组中,则两个 VDC 都有可读取的对象拷贝。

数据读取:

在双站点联合中,存储引擎会从连接应用程序的 VDC 上的节点中读取对象块或擦除编码的分段。在双站点联合中,两个站点上都存在对象块。

容错情况:

C级别(两个8节点站点)

节点故障

容忍两个/每个站点

磁盘故障

容忍四个/每个站点

网络故障

容忍一个交换机/每个站点

站点故障

容忍一个站点故障

 

ü  三站点以上情况

数据访问图示

数据写入:

1.   应用程序在存储区中创建对象。

2.   存储引擎将对象写入到接收它的站点上的某个块。对应于此块的磁盘位置在三个不同的磁盘/节点上,因此以并行方式写入三个不同的磁盘/节点。存储引擎可以将对象写入属于存储区的复制组的任何节点。存储引擎将块的磁盘位置记录在块位置索引中,将块 ID 和偏移记录在对象位置索引中。接收写入的VDC 是对象的所有者,其中包含对象的一个可读取拷贝。

3.   在成功写入所有磁盘位置后,存储引擎会确认写入应用程序。

4.   存储引擎将块复制到复制组内另一个 VDC 中的节点内。为了提高存储效率,存储引擎会将该块与已存储在该节点上来自其他站点对象中的数据块一起执行 XOR 操作。如果块已写满,则存储引擎将对完成 XOR 操作后的块执行擦除编码。在可能的情况下,它会直接将XOR 块以擦除编码后的格式写入,而无需先进行原数据的复制写入处理。对于对象的位置索引块不会执行擦除编码。

5.   在建立复制组时,如果选择的“复制到所以站点”的选项,则数据将会在复制组所包含的所有站点中存放一份,可以提供更好的数据持久性和所有站点上的本地访问性能,但会增加存储的有效成本。

数据读取:

如果发出请求的应用程序连接到拥有对象的 VDC,存储引擎会从 VDC 上的节点读取对象块或擦除编码的分段。如果发出请求的应用程序未连接到拥有对象的 VDC,存储引擎会从拥有对象的 VDC 检索对象块或擦除编码的分段,将其拷贝到连接应用程序的VDC,并将对象返回给应用程序。如果有另一个针对对象做出的请求,存储引擎将在其缓存中保留对象的一个拷贝。如果做出了另一个请求,存储引擎会将缓存中对象的时间戳与拥有对象的 VDC 中的对象的时间戳进行比较。如果它们的时间戳相同,则将对象返回给应用程序;如果不同,则重新检索并缓存对象。

容错情况:

D级别(三个及以上8节点站点)

节点故障

容忍两个/每个站点

磁盘故障

容忍四个/每个站点

网络故障

容忍一个交换机/每个站点

站点故障

容忍多个站点故障(启用复制到所有站点选项)

ECS 提供针对因灾难或其他问题而使站点离线或与地理联合部署中的其他站点断开连接而导致的站点故障的保护。

 

ü  站点故障转换和恢复

ECS 提供针对因灾难或其他问题而使站点离线或与地理联合部署中的其他站点断开连接而导致的站点故障的保护。

暂时站点故障

当联合 VDC 之间的网络连接中断,或者当 VDC 暂时停机时,就会发生暂时站点故障。 当VDC 停机时,VDC 显示Temporarily  unavailable 状态。如果配置存储区时将“Access During Outage”属性设置为“On”,则应用程序在连接到任何站点时可读取对象。如果应用程序连接到的站点不是存储区的所有者,则应用程序必须明确访问存储区才能向其写入或查看内容。如果应用程序在连接到非所有者的 VDC 时修改了对象或存储区,则存储引擎会将所有权转移到启动更改的站点。

在暂时站点故障恢复之前,不管“Access During Outage”设置是什么,都不能在地理联合中的任何站点上完成以下操作:

·         存储区:创建或重命名存储区、修改存储区属性、在命名空间所有者站点不可访问时列出其存储区

·         命名空间:创建命名空间

·         用户:创建用户

在重新连接站点后,存储引擎会在后台开始重新同步操作。在操作门户内可监视重新同的进度。

·

永久站点故障转移

如果在某个站点上发生灾难,并且 VDC 无法恢复在线,则必须将其删除。

ECS 协议、租户管理和权限管理

ü  ECS协议支持

ECS提供多种协议支持,支持以下存储服务:

对象服务

存储、访问和操作非结构化数据。EMC ECS对象服务与现有的 Amazon S3OpenStack Swift APIEMC CAS EMC Atmos API 兼容。

S3为例,ECS支持大部分Amazon S3 REST API功能;支持面向对象 API 的大量扩展,包括对象范围的更新、覆盖、添加和读取;除此之外,ECS兼容S3API并扩展了该API的元数据搜索,允许存储区中的对象根据其元数据进行索引编制,并且允许查询元数据索引以查找对象及其关联的数据。

HDFS

允许将门户存储基础架构用作可据以运行 Hadoop 分析应用程序(就地)的大数据存储库。

对于HDFSECS HDFS Hadoop 兼容文件系统 (HCFS),支持基于 ECS 存储基础架构运行 Hadoop 2.X 应用程序。可将 Hadoop 分发软件配置为基于内置的 Hadoop 文件系统、ECS HDFS 或者任何HDFSECS HDFS 或您环境中可用的其他 Hadoop 兼容文件系统组合进行运行。下图揭示了 ECS HDFS 如何与现有的 Hadoop 群集相集成。

 

ü  ECS租户管理

ECS 提供许多支持租户管理的功能。

用户                 

ECS可以为命名空间分配命名空间管理员,以及为命名空间创建对象用户。

配额           

ECS可以在命名空间上以及在命名空间内的存储区上设置软配额和硬配额。

软配额会导致记录事件以通知您已达到配额;硬配额提供可用于存储区或命名空间的对象存储量的硬限制 — 达到限制时,将阻止访问命名空间或存储区。

可以从 ECS 门户设置配额,也可以使用 API CLI 设置配额。

保留期和保留策略           

ECS 可用于在指定的保留期内防止数据被修改或删除。

可以在与对象和存储区关联的元数据中定义保留期和保留策略,并在每次做出修改对象的请求时进行检查。所有对象接口(S3SwiftAtmos CAS)上都支持保留期。但是,CAS 数据不可更改,因此在应用于 CAS 时,保留期仅指删除 CAS 对象的能力。

定义保留的方式有两种:保留期和保留策略。

保留期

在对象和/或存储区级别分配保留期。每次尝试修改或删除对象时,将计算到期时间,其中,对象到期时间 = 对象创建时间 + 保留期。如果在存储区上分配保留期,将选中该存储区的保留期,并根据在对象上设置的保留期和在存储区上设置的值来计算到期时间(以时间最长者为准)。

将保留期应用到存储区意味着,存储区中所有对象的保留期可随时更改,并可通过将其设置为更长时间来覆盖由对象客户端写入对象的值。

可以指定无限期保留对象。

保留策略

通过保留策略,可以获取保留使用情形并将其应用于对象。保留策略与命名空间关联,并且与命名空间关联的任何策略均可分配给属于该命名空间的对象。保留策略具有关联的保留期。

使用保留策略可以灵活地更改与策略关联的期限,并借此自动更改应用于已分配该策略的任何对象的保留期。

如果将保留策略应用到对象,则尝试修改或删除对象时,将检索与策略关联的保留期,并将该保留期与对象和存储区保留期结合使用,以确定是否允许该请求。

例如,可为下面每种类型的文档定义命名策略,并且每个命名策略均可具有相应的保留期:

    财务 — 3

    法律 — 5

    电子邮件 — 6 个月

锁定存储区和用户       

ECS 可用于阻止访问存储区以及阻止用户访问

计量      

ECS 为在命名空间和存储区级别计量对象存储的使用情况提供支持。

审核存储区        

ECS采用审核存储区的控制器 API,可用于审核 S3EMC Atmos OpenStack Swift 对象接口的使用情况。针对对象容器(S3 存储区、EMC Atmos 子租户和 OpenStack Swift 容器),可审核记录以下操作

·         创建存储区

·         删除存储区

·         更新存储区

·         设置存储区 ACL

·         更改存储区所有者

·         设置存储区版本控制

·         设置存储区版本控制源

·         设置存储区元数据

·         设置存储区头元数据

·         设置存储区到期策略

·         删除存储区到期策略

·         设置存储区 Cors 配置

·         删除存储区 Cors 配置

ü  ECS权限管理

ECS 通过定义不同的用户类型和角色以确定 ECS 管理工具以及对象存储区域的访问权限。用户类型ECS中有两种类型的用户:可以执行 ECS 管理的管理用户,以及可以使用支持的数据访问协议(S3EMC AtmosOpenStack Swift CAS)访问对象存储区域以读写对象和存储区的对象用户。管理用户可以访问 ECS 门户。对象用户不能访问 ECS 门户,但可以使用支持 ECS 数据访问协议的客户端访问对象存储区域。

管理用户

管理用户可以对 ECS 系统以及在 ECS 中配置的租户执行配置和管理。

对象用户

对象用户是 ECS 对象存储区域的终端用户,可通过使用 ECS 支持的对象协议(S3EMC AtmosOpenstack Swift CAS)的对象客户端访问该对象存储区域。也可为对象用户分配 Unix 样式的权限,以访问作为 HDFS 的文件系统导出的存储区。

定义对象用户时,使用可用于访问对象存储区域的用户名和密钥。用户名可以是本地名称,也可以是名称中带 @ 的域样式用户名。

管理用户可以创建对象用户帐户,可以在创建帐户时或此后的任何时间为对象用户帐户分配密钥。在管理用户创建对象用户时,会通过电子邮件或其他方式分发对象用户密钥。

对于域用户,通过与 ECS REST API 通信的客户端,对象用户使用 ECS 自助服务功能可获取密钥(对象用户不能访问 ECS 门户)。

角色类型

ECS 定义角色,以确定某个用户帐户在 ECS 门户上或者在使用 ECS Management REST API 访问 ECS 时可以执行的操作。可以在 ECS 中为管理用户和组分配管理角色;管理用户可以是本地用户或域用户。也可为角色分配 Active Directory 组名称。ECS定义了以下的管理角色:

系统管理员

系统管理员角色可以配置 ECS,以及指定用于对象存储区域的存储、存储区域的复制方式、租户的对象存储区域访问权限的配置方式以及哪些用户对分配的命名空间有权限。系统管理员还可配置命名空间和执行命名空间管理,或者将属于命名空间的用户指定为命名空间管理员。系统管理员可以访问 ECS 门户,还可通过使用 ECS 管理 REST API 的编程客户端执行系统管理操作。

系统监管员

系统监管员角色可查看所有 ECS 门户数据,但不能调配 ECS 系统。监管员无法通过该门户或 ECS 管理 API 创建、更新或删除存储池、复制组、命名空间、存储区、用户等等。监管员无法修改除自己的密码以外的任何其他门户设置。

命名空间管理员

命名空间管理员是可访问 ECS 门户来配置命名空间设置(如配额和保留期)的管理用户,并可将域用户映射到命名空间以及将本地用户指定为命名空间的对象用户。此外,还可使用 ECS 管理 REST API 执行命名空间管理员操作。

域和本地用户

ECS 为本地用户和域用户提供支持。

本地用户是其凭据由 ECS 存储的用户帐户。管理用户和对象用户可通过本地方式定义到 ECS。如果是对象用户,则凭据是全局资源并在所有ECS VDC中提供。本地用户可以非常简单地使用 ECS 进行启动,但是,使用 AD/LDAP 可让现有的用户数据库得到利用,并使大量用户可以获得对象存储区域的访问权限,而不必为他们创建帐户。

域用户是在 Active Directory AD/LDAP 数据库中定义的用户,ECS 必须与 AD LDAP 服务器通信来认证用户登录请求。ECS 使用名为身份认证提供程序的构造来提供其与 AD/LDAP 服务器通信所需的凭据,以及指定应向 ECS 提供的域和组。域用户以 user@domain.com 形式定义,ECS 将尝试使用配置的身份认证提供程序来对该形式的用户名进行认证。不带 @ 的用户名将根据本地用户数据库进行认证。

分配有管理角色的域用户可以根据其 AD/LDAP 凭据进行认证以允许其访问 ECS及执行ECS管理操作。可通过 ECS 门户执行管理操作,也可使用 ECS Management API 执行管理操作。域用户还可以作为对象用户分配。为了节省在 ECS 中手动创建大量对象用户帐户的管理开销,提供了自助服务功能,允许 ECS 认证域用户,并自动将其添加为对象用户,同时为其分配密钥。

用户范围

对象用户的范围取决于已设置的用户范围。该设置影响所有联合 VDC 中全部命名空间中的所有用户。

用户范围可以是 GLOBAL(全局)或 NAMESPACE(命名空间)。在全局范围中,对象用户名称在 ECS 系统中的所有 VDC 之间是唯一的。在命名空间范围中,对象在命名空间内部是唯一的,因此,在不同的命名空间中可能存在相同的对象用户帐户名称。

 

ECS 管理与监控

ü  ECS门户

门户服务包括接口配置、管理和监控存储资源。功能主要包括:

1.  图形界面(GUI):基于web的图形界面;

2.  REST: 基于REST的API,可以使用它们来开发自己的门户接口;

3.  命令行(CLI): 一个命令行界面,能够执行与基于浏览器的界面(GUI)相同的任务命令行界面。

ECS通过ECS门户提供统一的图形化界面,对多个数据中心内的多个ECS节点进行统一的管理和监控。从该界面可以查看整个系统的容量、性能以及故障情况,方便管理员进行统一管理和监控。

使用ECS门户,可以对租户进行管理和监控其命名空间以及在其命名空间中创建和配置存储区。该门户为 ECS 管理用户提供了访问权限:系统管理员、系统监控员和命名空间/租户管理员。对象存储用户使用支持的对象协议,通过支持这些协议的客户端访问 ECS

控制面板是登录后遇到的第一个页面。

Capacity”面板显示本地 VDC 上的未使用存储和可用存储及已用百分比。容量考虑了接收的数据、复制副本和系统数据。

Performance”面板为您显示网络读取和写入操作的当前执行情况,以及过去 24 小时的平均值。

Data”面板按用户数据和系统数据细分本地 VDC 存储。请记住,该用户数据是 ECS接收到的数据量。您的数据使用的容量将受到数据拷贝和处理这些拷贝的当前系统活动的影响。

Storage Efficiency”面板显示擦除代码 (EC) 进程当前的运行效率。该图形显示当前EC 进程的进度,而其他值显示等待 EC 进程的 EC 数据量以及 EC 进程的当前速率。

Geo Monitoring”面板显示本地 VDC 中等待异地复制的数据量以及复制速率。恢复点目标 (RPO) 是指您可恢复到的过去某个时间点。此处的值是最旧的数据,如果本地 VDC在复制完成之前出现故障,该数据将面临丢失风险。“Failover Progress”显示涉及本地 VDC 的联盟中发生的任何活动故障切换的进度。“Bootstrap Progress”显示用于将新 VDC 添加到联盟的任何活动进程的进度。

Nodes and Disks”面板显示磁盘和节点的运行状况(“Good”、“Bad”或“Suspect”)。

Alert”面板显示重要警报和错误的计数。单击“Alerts”可查看当前事件的完整列表。

ü  ECS配置和管理

通过ECS门户,可方便的对ECS进行管理。可进行的配置管理功能包括:

·         配置一个或多个站点,包括在站点中创建和配置存储池、虚拟数据中心(VDC)、复制组

·         创建和配置命名空间

·         配置身份认证和管理用户

·         管理租户,包括配置命名空间和存储区的配额、对对象或存储区配置保留期和保留策略、锁定存储区和用户、计量对象存储使用情况、对存储区进行多种配置操作等

·         删除站点

·         管理许可证

·         创建和管理存储区

·         配置NFS文件访问权限

·         设置基础URL

ü  ECS监控

ECS门户提供了丰富的监控功能,可方便的对ECS进行监控。通过与EMC ViPR SRM集成,SRM还可提供更久的监控信息保存时间,并且使用统一的监控管理平台管理ECS和其它存储设备,提高客户的管理效率和使用体验。

可进行的监控任务包括:

·         监控基础信息

·         监控计量:显示命名空间或命名空间中的存储区在指定时间段内的计量数据。

·         监控事件:可监控ECS 系统发起的警报,以及使用门户、ECS REST API 和 ECS CLI 的用户的所有活动。

·         监控容量利用率:监控存储池、节点和磁盘的容量利用率

·         监控流量指标:提供虚拟数据中心或单个节点级别的网络流量指标。

·         监控硬件运行状况:监控硬件的健康状态,包括ECS各硬件组件和硬盘的状态

·         监控节点和进程运行状况:评估 VDC、节点或节点进程的运行状况,对网络带宽、CPU使用率、内存使用率等多项指标进行监控

·         监控块摘要:本地分区中密封块的统计信息。密封块是不能再接受写入的块。密封块是不可修改的。

·         监控擦除编码:擦除编码显示屏监视用户数据总量和本地存储池中经过擦除编码的数据量。它还显示等待擦除编码的数据量、当前速度以及估计的完成时间。

·         监控恢复状态:监控导致数据(块)损坏的任何本地情况后重建数据的过程

·         监控磁盘带宽:监控虚拟数据中心或单个节点级别的磁盘使用情况

·         监控异地复制:对异地复制进行监控,包括监控异地复制的网络流量、等待复制组或远程分区 (VDC) 复制的块,RPO等指标

·         服务日志