IBM Active Cloud Engine 简介

数据管理

本文提供了 IBM® Scale Out Network Attached Storage (SONAS) 中新的 IBM Active Cloud Engine™ 功能简介。Active Cloud Engine 为 IBM 网络连接存储 (NAS) 产品提供了更强的竞争优势。

Trishali Nayar, AIX 文件系统开发人员, IBM

Trishali Nayar 在 IBM India Storage Lab 工作。她毕业于 University of Pune,获得计算机工程学士学位。她原来是开发 Cluster Aware AIX 操作系统的开发团队的成员。她具有分布式文件系统开发方面的经验。她还与别人合作撰写了 IBM Redbook Implementing NFSv4 in the Enterprise: Planning and Migration Strategies



Tushar Gosavi, 文件系统开发人员, IBM

Tushar Gosavi 在 IBM India Storage Lab 工作。他持有印度理工学院的计算机科学硕士学位,目前是 ACE 开发团队的成员。



2012 年 12 月 17 日

Active Cloud Engine 简介

Active Cloud Engine 是随 IBM SONAS 提供的新的文件管理功能。

在当今的时代,数据在不断增长,而组织又分布在不同的地域和站点。这导致了对数据共享的巨大需求。SONAS 可以帮助存储海量数据,而 Active Cloud Engine 有助于非常有效地管理这些数据。

Active Cloud Engine 集成了 IBM General Parallel File System (IBM GPFS™),并通过存储池、文件集和策略引擎提供了本地数据管理功能。 Active Cloud Engine 还在 SONAS 中增加了远程数据管理功能。它提供了 SONAS 集群和站点之间的轻松的无缝数据移动。它可以根据需要定期、连续地执行数据移动,这使得数据移动变得非常灵活。

Active Cloud Engine 提供了一个跨所有站点的单一文件视图,无论文件的物理位置在哪里。用户可以采用全局名称空间整合来访问远程文件,就像这些文件是本地文件一样。任何组织都可以从数据协作中获益,因为关键信息是全局共享的,并且很容易找到。不管用户位于哪个站点,Active Cloud Engine 都可以快速向用户提供数据。

Active Cloud Engine 是可扩展的,通过使用 GPFS 缓存大规模数据集,即使远程存储站点不可用,也可以实现数据访问和修改,从而避免广域网 (WAN) 延迟和中断造成的影响。此外,Active Cloud Engine 能够将更新异步发送到远程集群,使应用程序能够继续运行,不会受到有限传出网络带宽的限制。

Active Cloud Engine 让缓存数据的管理变得非常简单。它也可以根据策略自动从缓存中删除过时的数据。Active Cloud Engine 实现使用 GPFS 的固有可扩展性,在主集群中提供多节点的、一致的数据缓存。

Active Cloud Engine 术语

主集群 (Home cluster):这是存储数据的主副本的站点。

缓存集群 (Cache cluster):这是缓存数据的远程站点。

网关节点 (Gateway node):在缓存站点上,集群中的一些节点被分配了充当网关节点的特殊责任。这些网关节点用于发送数据和从主集群接收数据。SONAS 集群中接口节点用于向客户端提供文件。管理员可以对一个节点进行配置,使其可以同时用作接口节点和网关节点。

应用程序节点 (Application node):应用程序节点缓存集群中从应用程序中获得 I/O 请求的任何节点。SONAS 接口节点就是一个典型的应用程序节点。

文件集 (File sets):它们提供了一个对文件系统进行分区的方法,并实现了比整个文件系统更细粒度的管理操作。

主文件集 (Home file set):主文件集是主站点上的一个文件集。主站点被配置为一个 Network File System (NFS) V3 服务器,并使用 mkwcachesource 命令导出文件集。

缓存文件集 (Caching file set):缓存站点 使用 mkwcache 命令创建一个文件集,并将它关联到主站点导出的数据。缓存可以支持以下模式之一:single-writer、read-only 和 local-update。从主站点导出的一个文件集可以供多个 缓存站点 使用。Active Cloud Engine 缓存也可以支持兼容 GPFS 的稀疏文件和访问控制列表 (ACL)。

操作模式

  • Read-only

    在将缓存配置为此模式时,缓存的数据仅可用于读取。如果在主站点上修改了数据,那么在重新验证期限过后,会将该数据载入缓存。缓存的行为就像一个只读文件系统,并且不允许创建和修改文件。

  • Single-writer

    在将缓存配置为此模式时,缓存站点只可以写入数据。写入缓存中的数据被异步推送到主站点,这掩盖了 WAN 延迟的影响。这样做还有助于在完成回写缓存时向应用程序提供更好的性能。目前,对于在主站点的文件集,Active Cloud Engine 只支持一个 single-writer 缓存,这样做可以避免因多个写入程序试图写入同一个文件而造成的任何冲突。

  • Local-update

    在将缓存配置为此模式时,缓存的数据可用于读取和写入。但是不会将缓存站点上修改的数据发送给主站点。因此,这种模式可充当一个临时缓存。在缓存中修改数据之后,主站点上针对该数据对象执行的新更新不会下载到缓存中。


设置 Active Cloud Engine 关系的命令

以下命令提供了关于如何配置和建立两个站点之间的 Active Cloud Engine 关系的快速介绍。

主 SONAS 的配置

1. 创建一个文件集,并将其链接到文件系统。这个步骤不是强制性的。如果您已经创建了一个文件集,那么可以使用它来执行后续步骤。

清单 1. 创建文件集的命令
[root@st002.mgmt002st002 ~]# mkfset gpfs0 home_data --junction /ibm/gpfs0/home_data
(1/2) Creating file set
EFSSG0070I File set home_data created successfully.
(2/2) Linking file set
EFSSG0078I File set home_data successfully linked.
EFSSG1000I The command completed successfully.

2. 从 SONAS 上现有的目录树创建缓存源。在创建缓存树时,需要提供一个 IP 地址和模式,客户端将使用该地址和模式来访问数据。下面的示例使用读写访问将 /ibm/gpfs0 下的 home_data 目录导出到 10.0.100.30 缓存。

清单 2. 使用 mkwcachesource 导出文件集的命令
[root@st002.mgmt002st002 ~]
# mkwcachesource home_data /ibm/gpfs0/home_data --client "10.0.100.30(rw)"
EFSSG1000I The command completed successfully.

3. 将文件集导出至缓存之后,验证它在 lswcachesource 中是可见的。

清单 3. 列出从主站点导出的文件集的命令
[root@st002.mgmt002st002 ~]# lswcachesource
WCache-Source Name WCache-Source Path   ClientClusterId      ClientClusterName
WCache-Source Access Mode Is Cached Remote system name
home_data          /ibm/gpfs0/home_data 12402849612037252644 st003.virtual1.com
rw                        no        st003.virtual1.com
EFSSG1000I The command completed successfully.

缓存 SONAS 的配置

1. 在创建任何缓存文件集之前,需要使用 mkwcachenode 命令将一些接口节点指定为网关。在以下示例中,int001st003、int002st003 和 int003st003 节点被授予了网关的角色。

清单 4. 在缓存添加网关节点
[root@st003.mgmt001st003 ~]
# mkwcachenode --nodelist int001st003,int002st003,int003st003
EFSSG1000I The command completed successfully.

2. mkwcache 命令用于缓存文件集的创建,并建立该文件集与主 Active Cloud Engine 导出之间的关联。mkwcache 命令需要使用以下参数:

--cachemode 参数为缓存指定操作模式。有效值是 single-writerread-onlylocal-update。如果没有指定默认模式,则将默认模式设置为 read-only

--remotepath 参数必须设置为主站点 IP 地址和主站点导出路径,类似于 NFS 安装。

--homeip 参数必须设置为主管理节点的 IP 地址。

清单 5. 创建 Active Cloud Engine 文件集的命令
[root@st003.mgmt001st003 ~]
# mkwcache gpfs0 cache_ro /ibm/gpfs0/cache_ro --cachemode read-only --remotepath
 10.0.100.142:/ibm/gpfs0/home_data --homeip 10.0.100.20
EFSSG1000I The command completed successfully.

3. 使用 lswcache 命令验证新创建的缓存文件集是可见的。

清单 6. 列出 ACE 文件集
[root@st003.mgmt001st003 ~]# lswcache gpfs0
ID Name     Status Path                CreationTime    Comment
RemoteFilesetPath                 CacheState CacheMode Remote system name
1  cache_ro Linked /ibm/gpfs0/cache_ro 8/6/12 11:15 AM
10.0.100.142:/ibm/gpfs0/home_data enabled    read-only st002.virtual1.com
EFSSG1000I The command completed successfully.

4. 使用 lswcachestate 命令验证缓存文件集的状态。

清单 7. 列出 Active Cloud Engine 文件集的状态
[root@st003.mgmt001st003 ~]#  lswcachestate gpfs0 --connectionstatus -r
EFSSG0015I Refreshing data.
FilesetName FilesystemName Remote Fileset Path               Remote Fileset Status
Cache-Gateway Assigned Cache-Gateway Status QueueLength QueueNumExec Remote system name
cache_ro    gpfs0          10.0.100.142:/ibm/gpfs0/home_data Active
int003st003            Active               0           8            st002.virtual1.com
EFSSG1000I The command completed successfully

现在已设置好 Active Cloud Engine 关系,并且文件集已随时可用。


Active Cloud Engine 缓存的工作原理

在配置了主集群和缓存集群后,SONAS 客户端好就可以开始从缓存集群上的接口节点访问数据。

图 1. SONAS Active Cloud Engine 架构
图 1. SONAS Active Cloud Engine 架构

读取:若在接口节点收到读取 I/O 请求,并且已经缓存了数据,那么数据将由接口节点直接提供。如果缓存中没有提供该数据,那么接口节点会向网关发送一个提取请求。网关节点从主服务器读取数据,并将数据存储在本地。然后,它会向请求的接口节点发送一个回复。在收到这一回复后,接口节点会从本地存储中读取数据,并实现客户端的请求。只要所请求的数据部分是可以提供的,就会立即将这部分数据发送给应用程序,而不会等待从主服务器中提取完整的文件。但在后台,仍然会提取和缓存该文件的其余部分。

写入:Active Cloud Engine 异步处理写入 I/O。当客户端发送一个写请求给接口节点,它会在本地存储写入内容,并将一个远程过程调用 (RPC) 发送到网关节点。然后,它会完成客户端的写入,不需要真的等待主站点上发生的写操作。

网关节点将该数据异步发送到主站点。异步写入可以掩盖主站点和缓存站点之间的网络延迟带来的影响。网关也可以智能地将小型写入合并为更大的写入,并删除重复的写操作,以提高网络的效率。Active Cloud Engine 还支持断开连接的操作模式,也就是说,当由于网络或硬件问题而无法连接到主站点时,客户端仍然可以访问缓存的数据。在缓存中写入的任何数据都会被记住。在恢复主站点的连接后,就会将已更改的数据发送给主站点。


Active Cloud Engine 提供的功能

预提取

Active Cloud Engine 根据需要从主站点中下载数据。但是,如果所请求的数据尚未缓存,那么应用程序需要等待通过网络从主站点中下载数据。Active Cloud Engine 还提供了预填充特性,在应用程序开始访问相同的数据之前,将全部所需数据下载到缓存站点。如果用户希望在任何访问之前将数据下载到缓存中,那么用户可以使用策略扫描或其他任何方法生成一个自己感兴趣的文件的列表。然后可以启动使用此文件列表的预填充。

此特性还有助于更好地利用网络带宽。预提取是在后台进行的,还可以将它设置为一个 cron 作业。例如,您可以每天晚上执行预提取,将最新的数据填充到缓存。当用户在早上开始访问数据时,数据已经在缓存站点中。

缓存回收

用户可以通过设置缓存文件集配额,将缓存站点的存储配置为小于主站点上的文件集大小。如果在缓存中的数据大小超过分配的配额,Active Cloud Engine 将监控文件集的使用,并自动触发回收。缓存回收通常会找出最近最少使用的文件,然后清空他们的数据块,释放空间供新数据使用。使用回收也可以从缓存中删除不需要的文件和临时文件。

断开连接的模式和过期

文件集若失去与主站点的连接,就会进入断开连接的状态。如果连接断开较长的时间,那么缓存中的数据将变得不可用,而客户端不会访问只读文件集的过时数据。过期在默认情况下是禁用的,但可以使用 chwcache 命令赋予过期超时值来启用它。当断开连接的时间超过该值之后,缓存文件集被设置为过期的。

当主站点的连接恢复时,数据被提供给客户端。在将数据发送到客户端之前,要与主站点执行一次重新验证,以检查在主站点的数据是否已经改变。使用 ctlwcache 命令,还可以手动设置缓存文件集为过期的或未过期的。

清单 8. 在只读文件集上设置过期超时
[root@st002.mgmt002st002 ~]
# chwcache gpfs0 cache_ro --expirationtimeout 60
EFSSG0071I File set cache_ro changed successfully.
清单 9. 在主站点或网络出现故障之后,文件集断开连接
[root@st002.mgmt002st002 ~]# lswcachestate gpfs0 cache_ro --connectionstatus -r
EFSSG0015I Refreshing data.
FilesetName FilesystemName Remote Fileset Path              Remote Fileset Status
Cache-Gateway Assigned Cache-Gateway Status QueueLength QueueNumExec Remote system name
cache_ro    gpfs0          10.0.100.38:/ibm/gpfs0/home_data Disconnected
int001st002            Active               0           5         10.0.100.38 (non-sonas)
EFSSG1000I The command completed successfully.
清单 10. 在过期超时之后,文件集就会过期
[root@st002.mgmt002st002 ~]
# sleep 60 ; lswcachestate gpfs0 cache_ro --connectionstatus -r
EFSSG0015I Refreshing data.
FilesetName FilesystemName Remote Fileset Path              Remote Fileset Status
Cache-Gateway Assigned Cache-Gateway Status QueueLength QueueNumExec Remote system name
cache_ro    gpfs0          10.0.100.38:/ibm/gpfs0/home_data Expired
int001st002            Active               0           5      10.0.100.38 (non-sonas)
EFSSG1000I The command completed successfully.

[root@st002.mgmt002st002 ~]# ls /ibm/gpfs0/cache_ro
ls: cannot access /ibm/gpfs0/cache_ro: No such file or directory
清单 11. 手动设置未过期并访问缓存数据
[root@st002.mgmt002st002 ~]# ctlwcache gpfs0 cache_ro --unexpire
EFSSG0015I Refreshing data.
EFSSG1000I The command completed successfully.


[root@st002.mgmt002st002 ~]
#  lswcachestate gpfs0 cache_ro --connectionstatus -r
EFSSG0015I Refreshing data.
FilesetName FilesystemName Remote Fileset Path              Remote Fileset Status
Cache-Gateway Assigned Cache-Gateway Status QueueLength QueueNumExec Remote system name
cache_ro    gpfs0          10.0.100.38:/ibm/gpfs0/home_data Disconnected
int001st002            Active        0           5        10.0.100.38 (non-sonas)
EFSSG1000I The command completed successfully.
[root@st002.mgmt002st002 ~]# ls /ibm/gpfs0/cache_ro
bash  tar

恢复

有时候,由于 Active Cloud Engine 异步推送的性质,缓存站点上所做的更改可能会丢失,并且无法到达主站点。如果网关节点出现故障,那么在以单写模式将这些变更发送到主站点之前,很可能会发生这种情况。网关节点也有可能因为其他原因而遭到破坏,例如,它的内存用尽或发生了集群配置变更(比如将新节点添加为网关节点,或删除现有的网关节点)。

Active Cloud Engine 在磁盘上保留足够的信息来处理这种情况。而且,为了从各种错误或变更中恢复,会触发恢复。恢复进程能够找出缓存中被修改的所有数据,并将它们发送给主站点。使用快照可发现此变更增量,使得文件系统不会暂停较长的时间,并获得更好的性能。

在发送所有新的更新之前,先将这些数据与主站点同步,从而保持数据的一致性。在执行恢复的过程中,缓存上的客户端仍然可以访问数据。

故障转移

当主站点或其相关的存储丢失的时,使用 Active Cloud Engine 的故障转移功能可以还原主站点。故障转移功能会发现缓存上所有有效的数据,并将它们发送给新的主服务器。然后,这个新的主服务器可以执行原来的主站点的所有功能,例如,作为一个备份站点。

重新同步

如果主站点被意外破坏,并且管理员认识到此问题,那么可能需要手动运行称为重新同步的操作。这有助于同步缓存和主站点之间的数据。重新同步在缓存发现有效数据,并对其与在主站点的数据进行比较。更新主站点上任何不匹配的数据,并与缓存站点上的数据同步。


结束语

IBM Active Cloud Engine 在一组连接到主集群的远程集群上提供一个持久的、可扩展的、兼容可移植操作系统接口 (POSIX) 的缓存。这有助于为 IBM SONAS 添加新的数据管理功能。Active Cloud Engine 透明地跨站点移动数据,不需要任何管理员手动干预,这有助于提高生产力。Active Cloud Engine 也称为 Active File Management,是在 IBM GPFS 第 3 版的第 5 次发布中提供的。本文概述了 Active Cloud Engine 及其功能。

参考资料

学习

  • Why IBM SONAS with IBM Active Cloud Engine
  • Automated file management with IBM Active Cloud Engine
  • Managing Wide Area Network (WAN) caching
  • 用于 AIX 和 Linux 环境的 IBM SONAS 存储:本文介绍基本的 IBM SONAS 设置以及如何在 AIX® 等 UNIX 环境中使用它实现集中的数据存储。
  • AIX and UNIX 专区:developerWorks 的“AIX and UNIX 专区”提供了大量与 AIX 系统管理的所有方面相关的信息,您可以利用它们来扩展自己的 UNIX 技能。
  • AIX and UNIX 新手入门:访问“AIX and UNIX 新手入门”页面可了解更多关于 AIX 和 UNIX 的内容。
  • AIX and UNIX 专题汇总:AIX and UNIX 专区已经为您推出了很多的技术专题,为您总结了很多热门的知识点。我们在后面还会继续推出很多相关的热门专题给您,为了方便您的访问,我们在这里为您把本专区的所有专题进行汇总,让您更方便的找到您需要的内容。
  • AIX and UNIX 下载中心:在这里你可以下载到可以运行在 AIX 或者是 UNIX 系统上的 IBM 服务器软件以及工具,让您可以提前免费试用他们的强大功能。
  • IBM Systems Magazine for AIX 中文版:本杂志的内容更加关注于趋势和企业级架构应用方面的内容,同时对于新兴的技术、产品、应用方式等也有很深入的探讨。IBM Systems Magazine 的内容都是由十分资深的业内人士撰写的,包括 IBM 的合作伙伴、IBM 的主机工程师以及高级管理人员。所以,从这些内容中,您可以了解到更高层次的应用理念,让您在选择和应用 IBM 系统时有一个更好的认识。

讨论

  • 加入 developerWorks 中文社区。查看开发人员推动的博客、论坛、组和维基,并与其他 developerWorks 用户交流。

条评论

developerWorks: 登录

标有星(*)号的字段是必填字段。


需要一个 IBM ID?
忘记 IBM ID?


忘记密码?
更改您的密码

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件

 


在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。

所有提交的信息确保安全。

选择您的昵称



当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

标有星(*)号的字段是必填字段。

(昵称长度在 3 至 31 个字符之间)

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

 


所有提交的信息确保安全。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=AIX and UNIX
ArticleID=852048
ArticleTitle=IBM Active Cloud Engine 简介
publish-date=12172012