Information Lifecycle Management (ILM) 是管理信息的各种实践和过程的总称,涵盖了从起源到消亡的所有阶段。ILM 的目标之一就是根据信息的业务价值使用经济合理的 IT 基础架构。通常的经验表明,组织会从自身决策角度出发,或者是根据数据的业务价值来保留旧的数据。但是,根据各种合规性法规(如美国的 Sarbanes-Oxley、HIPAA、FFIEC 和欧盟的 European Data Privacy Directive),组织必须保留并控制数据很长一段时间。因此,他们必须改变管理数据的方式。他们现在必须在特定时间内保存一些特定的数据。因此,为了能以最小的代价满足保存数据的规定要求,这些组织都试着以最低的成本保留最多的数据。通常,组织会将最近的和最重要的数据保存在高性能、高价格的存储设备中,而将存档数据存放在价格低廉的存储设备中。因此,组织需要知道数据如何产生,判断数据如何增长,观察数据随着时间的使用模式,并决定数据应该存放并且符合相关规则和法规的时间有多长。另外,与普通数据不同的是,还要在安全的存储设备上保存机密数据。ILM 能够解决这些问题,它使用了一种技术,能自动对生命周期各个阶段的数据进行存储。
在本文中,我们将讨论当 IBM SONAS 作为后端来存储 AIX 系统时如何将 ILM 责任转交给它。这样就能帮助各行业的各类 AIX 用户对数据分级,从而高效利用基础架构,获得最大产出。
IBM SONAS 是具有高度伸缩性的存储系统,它通过利用卓越的存储子系统和 IBM General Parallel File System (GPFS) 来提供高性能。它通过利用其高级的扩展潜力以及自动数据放置和统一管理功能,能够让用户以最小的代价迅速扩展存储基础架构。了解更多关于 IBM SONAS 的信息,请参阅 参考资料。
图 1. IBM SONAS 作为后端来存储 AIX 系统数据
IBM SONAS 能够让多个客户端连接和访问 SONAS 系统上的数据。图 1 演示了一个设置示例,其中 SONAS 系统作为 AIX 主机的后端 NAS 过滤器。IBM SONAS 系统(Version 1.1.1.0-19)充当一个文件服务器,使用 NFS 协议导出路径。该 IBM SONAS 系统拥有 almari.in.ibm.com 域名,可解析成 3 个 IP 地址(9.122.122.151 至 9.122.122.153)。在本文中,我们将会使用一个 AIX 系统(playstation.in.ibm.com),该系统配置为 IBM SONAS 系统中的 NFS 客户端。关于将 SONAS 系统配置成 AIX 后端的基础知识,在 developerWorks 文章 “用于 AIX 和 Linux 环境的 IBM SONAS 存储” 中有所探讨(请参阅 参考资料)。最终用户可从该主机中访问文件,而这些文件实际存储在 IBM SONAS 中。我们将会看到 AIX 中创建的文件在 IBM SONAS 系统中如何根据已定义的策略自动放置、迁移和删除。
我们首先使用 cliuser 通过 ssh 进入 SONAS 集群 almari.in.ibm.com 的管理节点,再执行 SONAS CLI 命令。然后使用 mkexport 命令在 IBM SONAS 系统 almari.in.ibm.com 上创建 NFS 输出,并在 AIX 主机上加载 NFS 输出。
cliuser 是一个特殊用户,只能执行 SONAS CLI 命令,并且只能在 chroot 范围内使用。
代码 1:在 IBM SONAS 上创建输出并在 AIX 客户端上加载
-bash-3.2# hostname playstation.in.ibm.com -bash-3.2# ssh cliuser@almaric1.in.ibm.com cliuser@almaric1.in.ibm.com's password: [almari.in.ibm.com]$ lscluster ClusterId Name PrimaryServer SecondaryServer 12402779238933128657 almari.in.ibm.com strg001st001 strg002st001 [almari.in.ibm.com]$ mkexport Sonas_Test /ibm/gpfs0/Sonas_Test --nfs "*(rw,no_root_squash)" EFSSG0019I The export Sonas_Test has been successfully created. [almari.in.ibm.com]$ lsexport -v Name Path Protocol Active Timestamp Options Sonas_Test /ibm/gpfs0/Sonas_Test NFS true 9/6/10 7:00 PM *(rw,no_root_squash,fsid=2135594380) [almari.in.ibm.com]$ logout Connection to almaric1.in.ibm.com closed. -bash-3.2# mkdir /mnt/Sonas -bash-3.2# mount 9.122.122.151:/ibm/gpfs0/Sonas_Test /mnt/Sonas -bash-3.2# mount node mounted mounted over vfs date options -------- --------------- --------------- ------ ------------ --------------- /dev/hd4 / jfs2 Jul 26 19:22 rw,log=/dev/hd8 .....9.122.122.151 /ibm/gpfs0/Sonas_Test /mnt/Sonas nfs3 Sep 06 19:24 ..... |
IBM SONAS 能让我们创建三种类型的策略:放置策略、迁移策略和删除策略。我们可以将这三种策略应用到在 IBM SONAS 主机的共享目录下创建的文件上并使用各种 SONAS CLI 策略命令来设置不同种类的策略。
- 放置策略:
该策略定义了用于确定池的规则,可根据文件名、路径、所有者等文件属性将用户新建的文件放置于相应池中。例如,如果有一些被频繁访问的文件属于某个特定的目录,我们会将其存储到执行较快的池中。不常访问或不太重要的文件会放到执行慢的池中。
- 迁移策略:
该策略定义了文件在池间迁移的规则,可根据访问时间、修改时间、文件名、路径、所有者等文件属性将文件从某个池迁移另一个池。例如,如果有一些文件在过去的一个月中都没被访问,那说明对这些文件的需求不积极,那么我们可以将其移到成本较低的池中,尽管使用该策略会降低一些性能。
- 删除策略:
该策略定义了从系统中删除文件的规则,可根据访问时间、修改时间、文件名、路径、所有者等文件属性对系统中的文件进行删除。例如,如果有一些文件属于离职的用户,而且其他人也不用,那么我们可以通过此策略删除这些文件。
使用以下命令进行 SONAS 策略创建和管理。
mkpolicy通过使用
mkpolicy命令可以创建一条策略并设置其规则。chkpolicychkpolicy验证某个策略设置的规则。它会验证策略规则的语法并检查这些规则中涉及的池或信息是否确实存在。setpolicy使用
setpolicy命令可以为文件系统设置放置策略。runpolicy使用
runpolicy可以为文件系统中已有的文件应用迁移或删除策略。lspolicylspolicy命令会列举出 SONAS 主机上创建的所有策略,并检查哪些策略应用到文件系统中。
在以下章节中,我们将讨论如何对 ILM 使用这些命令。
下一步,我们将讨论如何创建和使用这些策略,它们可以帮助您利用数据分级,但对于创建显性分级的讨论已超出本文所涉及的范围。
在本节中,我们将讨论如何使用 IBM SONAS 放置策略来确保特定类型的文件存放在特定的池中。使用 secret 和 system 这两种不同池来配置 IBM SONAS 上的 gpfs0 文件系统,如 lspool 命令的输出结果所示。secret 池是使用具有更高安全性和更高性能的磁盘配置的,因此我们可以将所有重要和机密的文件放在该池中,而将次要的文件放在性能较低的 system 池中。我们可以通过使用 mkpolicy 命令来创建一个名为 “Placement” 策略来完成此项设置。该策略有一条名为 “Place_Confidential” 的规则,它会将所有名称包含 “Confidential-” 前缀的文件放入 secret 存储池中。chkpolicy 命令会验证策略的所有规则并检查在 gpfs0 文件系统中是否确实存在名为 secret 的有效存储池。如果该命令执行失败,则表示在 gpfs0 中没有 secret 存储池。我们一旦创建了策略,就必须运行 setpolicy 命令来激活它。lspolicy 命令可以检查当前设置的策略。
代码 2:通用的 SONAS Policy 命令
-bash-3.2# hostname playstation.in.ibm.com -bash-3.2# ssh cliuser@almaric1.in.ibm.com cliuser@almaric1.in.ibm.com's password: [almari.in.ibm.com]$ lspool Filesystem Name Size Usage Available fragments Available blocks Disk list ... gpfs0 secret 7.05 TB 0.0% 248 kB 7.05 TB array0_sata_60001ff0732e40988c40003 gpfs0 system 7.05 TB 2.8% 37.72 MB 6.86 TB array0_sata_60001ff0732e40d88cd0007 ... [almari.in.ibm.com]$ mkpolicy Placement -R "RULE 'Place_Confidential' SET POOL 'secret' WHERE name like 'Confidential-%'" EFSSG1000I The command completed successfully. [almari.in.ibm.com]$ lspolicy -P Placement Policy Name Declaration Name Default Declarations Placement Place_Confidential N RULE 'Place_Confidential' SET POOL 'secret' WHERE name like 'Confidential-%' [almari.in.ibm.com]$ chkpolicy gpfs0 -P Placement EFSSG1000I The command completed successfully. [almari.in.ibm.com]$ setpolicy gpfs0 -P Placement EFSSG1000I The command completed successfully. [almari.in.ibm.com]$ lspolicy -A Cluster Device Policy Set Name Policies Applied Time Who applied it? ... almari.in.ibm.com gpfs0 Placement Placement 9/6/10 6:45 PM root ... [almari.in.ibm.com]$ logout Connection to almaric1.in.ibm.com closed. |
既然已经将策略应用到 IBM SONAS 系统,我们现在可以在加载目录 “/mnt/Sonas/” 下的 AIX NFS 客户端(playstation.in.ibm.com)中创建名称前缀为 “Confidential-” 的新文件。如果要确认这些文件是否确实放置到 SONAS 系统的 secret 池中,我们使用 root 用户连接到 SONAS 系统并对创建的文件执行 GPFS 命令 mmlsattr。它会告诉我们文件是否确实放置到了 secret 池中。这样,就可以使用此策略对各个池中数据的自动放置进行管理了。
请注意,cliuser 没有执行 GPFS 命令 mmlsattr 的权限。我们使用该命令来检查文件是否确实存储到了特定池中。
代码 3:IBM SONAS 中的文件放置策略
-bash-3.2# hostname
playstation.in.ibm.com
-bash-3.2# cd /mnt/Sonas/
-bash-3.2# echo "Confidential Sales File" > Confidential-Sales.txt
-bash-3.2# echo "Confidential Development File" > Confidential-Development.txt
-bash-3.2# echo "Confidential Report File" > Confidential-Report.txt
-bash-3.2# ls
Confidential-Development.txt Confidential-Report.doc Confidential-Sales.txt
-bash-3.2# ssh root@almaric1.in.ibm.com
root@almaric1.in.ibm.com's password:
[root@almari.mgmt001st001 ~]# cd /ibm/gpfs0/Sonas_Test
[root@almari.mgmt001st001 Sonas_Test]# ls
Confidential-Development.txt Confidential-Report.doc Confidential-Sales.txt
[root@almari.mgmt001st001 Sonas_Test]# mmlsattr -L Confidential-Development.txt
file name:Confidential-Development.txt
metadata replication:1 max 2
data replication:1 max 2
immutable: no
flags:storage pool name: secret
fileset name: root
snapshot name:
[root@almari.mgmt001st001 Sonas_Test]# logout
Connection to almaric1.in.ibm.com closed.
|
在本节中,我们将讨论如何使用 IBM SONAS 迁移策略来利用分级存储池迁移文件。假设我们想要将所有扩展名为 .txt 的文件迁移到 system 池。要完成此任务,我们需要通过使用 mkpolicy 命令创建数据迁移策略,并且使用 chkpolicy 命令来设置并验证其规则。对于迁移策略,不需要对 SONAS 系统设置迁移策略;我们只要使用 runpolicy 命令对将要迁移的文件运行策略即可。执行此策略后,已存于 system 池中的 *.txt 文件和存于 secret 池中扩展名不是 .txt 的文件都不会受到影响;但是 secret 池中后缀名为 “.txt” 的文件会被迁移到 system 池中。我们此前创建的 Confidential-Development.txt 文件将会迁移到 system 池中。为了确定文件确实已迁移,我们作为 root 用户登录到管理服务器,并对之前创建的文件运行 mmlsattr GPFS 命令。 输出结果显示 Confidential-Development.txt 文件的存储池改为 system,而 Confidential-Report.doc 文件的存储池仍然是 secret。因此,迁移策略成功地将符合特定规则的相关文件移动到了新池中。
代码 4:IBM SONAS 中的文件迁移策略
-bash-3.2# hostname playstation.in.ibm.com -bash-3.2# ssh cliuser@almaric1.in.ibm.com cliuser@almaric1.in.ibm.com's password: [almari.in.ibm.com]$ mkpolicy Migration -R "RULE 'Place_txt' SET POOL 'system' ; RULE 'Migrate_txt' MIGRATE TO POOL 'system' WHERE name like '%.txt'" EFSSG1000I The command completed successfully. [almari.in.ibm.com]$ lspolicy -P Migration Policy Name Declaration Name Default Declarations Migration Place_txt N RULE 'Place_txt' SET POOL 'system' Migration Migrate_txt N RULE 'Migrate_txt' MIGRATE TO POOL 'system' WHERE name like '%.txt' [almari.in.ibm.com]$ chkpolicy gpfs0 -P Migration EFSSG1000I The command completed successfully. [almari.in.ibm.com]$ runpolicy gpfs0 -P Migration [I] GPFS Current Data Pool Utilization in KB and % secret 24189440 7574913024 0.319336% system 30284032 7574913024 0.399794% [I] 2120151 of 100000256 inodes used: 2.120146%. [I] Loaded policy rules from /var/opt/IBM/sofs/PolicyFiles/policy1282223388136. ... EFSSA0094I A command was executed on node int001st001. EFSSG1000I The command completed successfully. [almari.in.ibm.com]$ logout Connection to almaric1.in.ibm.com closed. -bash-3.2# ssh root@almaric1.in.ibm.com root@almaric1.in.ibm.com's password: [root@almari.mgmt001st001 ~]# cd /ibm/gpfs0/Sonas_Test [root@almari.mgmt001st001 Sonas_Test]# ls Confidential-Development.txt Confidential-Report.doc Confidential-Sales.txt [root@almari.mgmt001st001 Sonas_Test]# mmlsattr -L Confidential-Development.txt file name: Confidential-Development.txt metadata replication: 2 max 2 data replication: 2 max 2 immutable: no flags: storage pool name: system fileset name: root snapshot name: [root@almari.mgmt001st001 Sonas_Test]# mmlsattr -L Confidential-Report.doc file name: Confidential-Report.doc metadata replication: 2 max 2 data replication: 2 max 2 immutable: no flags: storage pool name: secret fileset name: root snapshot name: |
为了降低管理负担,我们需要不时地删除无用和不相关的文件。我们将探讨如何使用删除策略对满足条件的文件进行自动删除。我们创建策略来设置条件。假设我们要删除所有名称前缀为 Confidential- 的文件。我们使用 mkpolicy 命令创建一条名为 Deletion 的策略,并使用 chkpolicy 命令来执行验证。与迁移策略一样,不需要对 SONAS 系统设置删除策略。可以根据需要使用 runpolicy 命令来删除文件。我们之前创建的所有文件在执行这条策略后都会被删除,因为它们都满足条件。当我们试着列出 AIX 客户端上的 NFS 加载目录时,输出结果为空,这表示执行此策略后所有文件都被删除。因此,我们确实已经删除所有满足条件的文件。
代码 5:IBM SONAS 中的文件删除策略
-bash-3.2# hostname playstation.in.ibm.com -bash-3.2# ssh cliuser@almaric1.in.ibm.com cliuser@almaric1.in.ibm.com's password: [almari.in.ibm.com]$ mkpolicy Deletion -R "RULE 'Place_data' SET POOL 'system'; RULE 'Delete_Confidential' DELETE WHERE name like 'Confidential-%'" EFSSG1000I The command completed successfully. [almari.in.ibm.com]$ lspolicy -P Deletion Policy Name Declaration Name Default Declarations Deletion Place_data N RULE 'Place_data' SET POOL 'system' Deletion Delete_Confidential N RULE 'Delete_Confidential' DELETE WHERE name like 'Confidential-%' [almari.in.ibm.com]$ chkpolicy gpfs0 -P Deletion EFSSG1000I The command completed successfully. [almari.in.ibm.com]$ runpolicy gpfs0 -P Deletion [I] GPFS Current Data Pool Utilization in KB and % secret 24189440 7574913024 0.319336% system 30284288 7574913024 0.399797% [I] 2120154 of 100000256 inodes used: 2.120149%. [I] Loaded policy rules from /var/opt/IBM/sofs/PolicyFiles/policy1282224298452. ... EFSSA0094I A command was executed on node mgmt001st001. EFSSG1000I The command completed successfully. [almari.in.ibm.com]$ logout Connection to almaric1.in.ibm.com closed. -bash-3.2# cd /mnt/Sonas/ -bash-3.2# ls -bash-3.2# |
通过使用 IBM SONAS 的放置、迁移和删除策略,我们可以在将管理员责任转交给 IBM SONAS 的同时,确保以最小代价自动遵从法规。因此,将 IBM SONAS 作为后端来存储 AIX 或其他 UNIX® ,可帮助我们实现信息生命周期管理,并且以经济高效的方式遵从相关法规。
本文作者诚挚感谢 IBM Corporation 的 Sandeep R. Patil(rsandeep@in.ibm.com)对本文提供有价值的见解、看法、鼓励,并帮助向社区、用户和参与者传递本文主题。
学习
- 用于 AIX 和 Linux 环境的 IBM SONAS 存储 (developerWorks,2010 年 11 月):将 IBM SONAS 存储应用于 UNIX 环境下不断增长的业务数据。
- IBM's Red Book Publication on SONAS 讲解了 SONAS 架构、规划和实施的基础知识。
- IBM SONAS
Information Center 提供了使用 IBM SONAS 进行规划和管理的详细文档。
- IBM General Parallel File System
-
developerWorks 中国网站 AIX and Unix 专区
developerWorks AIX 和 UNIX 专区中有上百篇信息丰富的文章,以及初级、中级、高级教程。
获得产品和技术
- 免费试用 IBM 软件 :下载试用版、登录到在线试用版、在沙箱环境下使用产品或通过云访问。有 100 多种 IBM 产品试用版可供选择。
-
AIX 扩展包和 web 下载包:现在开始下载。
讨论
-
developerWorksLive! 技术讲座:随时关注 developerWorks 技术活动和网络广播。
- 加入 developerWorks 中文社区。查看开发人员推动的博客、论坛、组和维基,并与其他 developerWorks 用户交流。
-
参与 AIX 和 UNIX® 论坛:

