IBM Lotus Domino 环保化:新的 Lotus Domino 附件和对象服务(DAOS)

在 8.5 版本中,IBM® Lotus® Domino® 附件和对象服务(attachment and object service,DAOS)降低了总体拥有成本,并将所有文件附件存储在服务器上一个单独的储存库中,然后通过引用检索它们,从而帮助客户实现更加环保的计算操作。阅读本文了解更多内容,包括计划、设置、配置和管理 Lotus Notes® 大型对象相关主题。

Dinny A. Peter, 顾问 I/T 专家, IBM

Dinny Antony Peter 是 IBM 印度软件实验室的一名顾问 I/T 专家。他拥有 Lotus Domino、Lotus Domino Extended Products、WebSphere® Portal 和 WebSphere Application Server 方面的认证。他是一名经过认证的 Lotus 讲师。在担任当前职务之前,他是 IBM Lotus Brand Team 的一名技术顾问。



2009 年 6 月 02 日

在 8.5 版本中,IBM Lotus Domino 服务器采用了 Domino 附件和对象服务,通过在相同服务器上的数据库(应用程序)之间共享相同的数据,显著节省文件所占的空间。文档附件是首批使用 Lotus Domino 中 DAOS 特性的组件。

在使用 DAOS 的数据库中,Lotus Domino 不再保存每个文档附件的单独、完整的副本。相反,服务器在一个内部储存库中保存对每个附加文件的引用,并且从同一服务器上一个或多个数据库中的多个文档中引用相同的文件。当附加文件较大,并且需要将包含该文件的消息传播给数千个用户时,如果为每个收件人创建单独的消息副本,那么需要数 GB 的磁盘空间。在有多个回复的邮件线程中,同一个附件会生成多个副本。如果启用 DAOS,则可以大幅减少使用的磁盘空间。

图 1. DAOS 架构
DAOS 架构

计划 Lotus Domino 附件对象存储

使用附件对象存储是可选的,在 Lotus Domino 中实现它之前,需要充分地加以计划。

通过在 Server 文档中的 DAOS 选项卡上启用整合(consolidation),并确保要包括到整合中的每个数据库都选择了 “Use Domino Attachment and Object Service” 高级数据库属性,可以将 Lotus Domino 服务器上的数据库标记为参与附件整合(attachment consolidation)。DAOS 还要求启用事务日志记录。DAOS 在一个集中映射储存库中存储每个附件的一个单独的副本。在服务器上启用附件整合后,包括在整合中的服务器上的所有数据库都使用这个储存库存储附件。

一旦启用了附件整合,当用户保存附件时,存储在文档中的主体包含对附件的一个引用,有时也称作票据(ticket),以标识储存库中的附件。此时立即发生整合;您无需等待运行任何任务,就可以节省存放包含附件的文档的磁盘空间。


附件整合的界限、对象存储基本路径和 DAOS 未被引用对象的保留期限

管理员可以使用 server 文档中的 DAOS 选项卡指定一个最小大小,附件只有达到这个大小才会被整合,另外还可以在服务器上为储存库指定父目录。

附件整合对于用户是完全透明的。无论文档的数据库所在的服务器是否启用了整合,当收件人打开文档时,显示的附件图标都是一样的。用户可以删除、本地保存、替换附件,或者对附件执行任何其他类似的任务。如果用户删除或替换一个附件,或者创建新的包含已有附件副本的文档或消息,服务器必要时会调整对储存库中每个附件的引用,通过映射确定服务器上哪些附件是相同的。

在设置附件整合之前,要确定存放文件的位置,以及整合的文件应达到的大小。在使用附件整合的每个服务器上,应指定用于创建共享文件附件储存库的目录。如果储存库中 DAOS(.NLO)文件的数量太大,接近了操作系统的限制,Lotus Domino 将根据需要创建附加的子目录。

默认情况下,附件储存库是相对于服务器控制的逻辑目录结构创建的。可以通过指定完整的路径,在服务器或连接的文件驱动器上的任何位置创建该目录。


邮件文件的附件整合

当对邮件文件使用附件整合时,同时也会对服务器上的任何 MAIL.BOX 文件使用附件整合。

当计算一个邮件文件的大小,以判断它是否符合配置的邮件配额或警告阈值时,Lotus Domino 对待使用 DAOS 存储的附件的方式就好像是每个用户拥有整个附件文件一样。因此,交付到使用 DAOS 的邮件文件的每个消息的完整大小会计入邮件文件配额。同样,当一个用户删除一个被链接到启用 DAOS 的数据库的消息时,该消息的完整大小将从邮件文件配额中移除。

注意:使用附件整合的邮件服务器的实际文件大小不一定反映它的逻辑大小。


磁盘(On-disk)结构

附件整合适用于所有磁盘结构为 ODS 50 或更高版本的数据库。采用较早版本 ODS 的数据库的高级属性中将没有 DAOS 设置,不过可以在 Lotus Domino Administrator client 中预先启用它们,以便以后它们升级至 ODS 50 时将它们包括到整合中。

要将所有新创建的数据库升级至 ODS 50,以便将它们标记为参与附件整合,可在 NOTES.INI 文件中输入以下设置:

Create_R85_Databases=1

Windows®、Linux® SLES 10、AIX® 和 System i™ 上均支持附件整合。

附件整合并不仅限于邮件;当服务器上启用了该特性时,只要将一个附件保存在该服务器上任何数据库中的任何文档中,都会发生附件整合。

注意:启用 DB2® 的 Lotus Notes 数据库不支持附件整合。


压缩选项

除了启用 Lotus Domino 附件和对象服务属性以整合数据库中的新附件外,还可以使用表 1 中列出的 Compact 选项,将已有文档中的附件移动到 DAOS 储存库,并执行 copy-style 压缩。该选项不适用于直接(in-place)压缩。

表 1. Compact 选项
选项对应的命令行描述
Use Lotus Domino Attachment and Object Service-c -daos on|off该选项将附件从已有文档移动到 DAOS 储存库,然后压缩数据库。

附件整合的工作原理

下面的列表描述整合期间附件中所发生的操作。

  • 管理员在 Server 文档中的 DAOS 选项卡上为整个 IBM Lotus Domino 服务器启用该特性。
  • 数据库管理员、管理员或完全访问管理员设置 “Use Domino Attachment and Object Service” 数据库属性,将一个或多个已有数据库包括到整合中,或者任何用户从一个模板创建新的数据库,该模板的 DAOS 属性已被启用,并准备被继承。
  • 在任何启用了 DAOS 的数据库中,如果用户保存一个包含一个或多个文件附件的文档,且文件附件大于 DAOS 选项卡上指定的大小时,Lotus Domino 服务器将对文件附件的引用存储在文档的对象头部,并在服务器上的附件储存库中存储文件附件的惟一一个副本。
  • 当任何用户再次打开该文档时,头部激活了指向被存储的文件附件的链接。文件附件显示出来,就像该文件实际存储在文档中一样。
  • 如果用户编辑文档,并保存附件的一个新的版本,那么 Lotus Domino 将文件附件修改后的版本添加到附件储存库中,删除文档中对原有文件附件的引用,并创建对修改后的附件的新的引用。
  • 如果用户后来创建多个包含相同文件附件副本的文档(例如一个电子邮件线程中的回复),那么 Lotus Domino 服务器在每个文档中放置对储存库中文件附件惟一副本的一个引用。
  • 如果用户后来删除附件,Lotus Domino 只删除文档头部中的引用。储存库中的文件附件只要仍然被其他文档使用,就不会受影响。

如果所有用户在所有附带某个附件的文档中删除该附件,那么 Lotus Domino 将从附件储存库中移除该文件。除非管理员指定了推迟一定天数后删除,否则附件将被立即移除。


设置和启用 DAOS

要指定附件整合的服务器设置,可遵循以下步骤:

  1. 从 Lotus Domino Administrator 中,单击 Configuration 选项卡,展开 Server 区。
  2. 选择要编辑的服务器文档,单击 Edit Server。
  3. 单击 DAOS 选项卡。
  4. 通过填充表 2 列出的字段,启用或禁用附件整合。
表 2. 附件整合细节
字段名称输入
Store file attachments in选择其中一个:
  • DAOS。服务器对包括在整合中的任何数据库中的任何文档中保存的附件进行整合。当数据库的数据库属性 “Use Domino Attachment and Object Service” 被选中时,该数据库便包括到整合中。
  • NSF。服务器停止使用附件整合,参与整合的数据库中任何新的附件都存储在文档中。
  1. 输入表 3 列出的信息,然后单击 Save 和 Close。
表 3. 附件属性
字段名称输入
Minimum size of object before Lotus Domino stores it in DAOS要整合的任何附件应达到的最小大小,单位为字节(默认为 4096 字节)。输入一个数字。

整合非常小的附件并不能节省多少磁盘空间,不值得为此进行额外的处理
DAOS base path附件储存库的相对路径或完整路径。

例如,如果输入
DAOS
那么 DAOS 基本路径被放在 Lotus Domino 数据目录中,如下所示:
  • Windows 上的例子:
    C:\LOTUS\DOMINO\DATA\DAOS
  • Linux(SLES 10)或 System i 上的例子:
    /local/notesdata/DAOS
如果想使用服务器上其他位置的目录,可以输入一个完整路径,例如在 Windows 上:
C:\DAOS
如果指定的目录不存在,Lotus Domino 会创建该目录。

注意:应确保 Lotus Domino 管理用户拥有适合服务器操作系统的目录中的文件访问许可
Defer object deletion for n days从任何文档中删除对象的最后一个引用后,仍然在 DAOS 中保留对象,在经过一定天数后再删除。

输入从 0 到 9999 的一个数字。

如果一个未被引用的 DAOS 对象被误删,需要恢复,那么该设置可以起作用。

任何时候都可以使用 DAOS Prune 命令显式地删除所有未被引用的对象。
  1. 为了使新的配置生效,需要重新启动服务器。

图 2 显示了 DAOS 设置。

图 2. DAOS 设置
DAOS 设置

要将一个选中的数据库标记为参与附件整合,可遵循以下步骤:

  1. 从 Lotus Domino Administrator 中,选择 File - Application - Properties。
  2. 单击 Advanced 选项卡。(该选项卡上的图标是一个小便帽)。
  3. 启用 “Use Domino Attachment and Object Service” 选项。

    注意:如果数据库是一个邮件文件或 MAIL.BOX 文件,应确保启用了 “Use LZ1 compression for attachments” 选项(默认情况下已启用)。

要将多个选中的数据库标记为参与附件整合,可遵循以下步骤:

  1. 从 Lotus Domino Administrator 中,选择 Files - Advanced Properties。
  2. 启用 “Use Domino Attachment and Object Service” 选项。如图 3 所示。

    注意:如果数据库都是邮件文件或 MAIL.BOX 文件,应确保启用了 “Use LZ1 compression for attachments” 选项(默认情况下已启用)。

图 3. 高级选项
高级选项

管理 Lotus Domino 附件对象存储

随着 DAOS 储存库的扩大,为了容纳更多数量的附件,DAOS 基本路径上会自动创建多个子目录,以平衡数据负载。

注意:任何情况下都不需要修改、移动或删除储存库目录(默认情况下为 notesdatadirectory/DAOS)中的子目录,也不需要修改这些子目录中的 NLO 文件。

如果当前磁盘上的剩余空间有限,可以将储存库目录转移到有更多空间的磁盘上。而且,如果储存库在一个单独的驱动器上,并且因为服务器问题而被损坏,那么可以在一个新的位置(例如在一个不同的驱动器上)指定一个新的 DAOS 基本路径,并从备份恢复目录的内容。

要移动或恢复 DAOS 储存库,可遵循以下步骤:

  1. 执行以下步骤之一移动或恢复 DAOS 储存库:
    • 要移动 DAOS 储存库目录,可在新的位置创建新的目录,并使用操作系统将已有的 notesdatadirectory/DAOS 目录的整个内容复制到新目录中。
    • 要从备份文件恢复 DAOS 储存库目录,可将 notesdatadirectory/DAOS 目录的备份内容复制到新的文件位置。
  2. 从 Lotus Domino Administrator 中,单击 Configuration 选项卡,然后展开 Server 区。
  3. 选择要编辑的 Server 文档,然后单击 Edit Server。
  4. 单击 DAOS 选项卡。
  5. 在 DAOS base path 字段中,指定目录的新位置。保存 Server 文档。
  6. 重新启动 Lotus Domino 服务器。

删除 DAOS 未被引用的对象

通过启用 Server 文档中 DAOS 选项卡上的 “Defer object deletion for n days” 设置,可以在服务器范围内延期删除 DAOS 未被引用的对象。

当在任何引用 DAOS 对象的文档中删除对该 DAOS 对象的最后一个引用时,该 DAOS 对象被视作未被引用的对象。如果启用了延期删除,该对象仍会保留一段期限,这个额外的期限由 server 文档设置指定。如果再次需要对象,这段额外的时间有助于恢复对象。

可以用 “number of days old” 参数运行 DAOS Prune,以覆盖 server 文档中的设置。

语法:DAOS Prune [number of days old]

该参数删除存在时间大于 “number of days old” 参数值的所有未被引用的 DAOS 对象。

如果想独立于默认的延期删除间隔而清除所有对象,那么该命令可以起作用。

注意:如果运行 DAOS Prune 并输入 0 作为 number of days old 参数的值,它将立即移除所有未被引用的对象。


对参与 DAOS 的服务器进行备份

当某个服务器上的数据库被设为参与附件整合时,要备份该服务器,需要通过一个附加的步骤备份 DAOS 储存库中所有的 NLO 文件。那些文件通常不会频繁修改,所以在做了初始备份之后,可以执行增量备份,而不必花很多的精力和时间。

注意:该过程假设当出现故障时,将文件恢复到初始的 Lotus Domino 服务器上。如果 NLO 文件用初始服务器的密钥进行了加密,那么只有将它们恢复到初始的 Lotus Domino 服务器上,才可以读取它们。

  1. 如果为 DAOS 启用了延期删除,那么将延期时间间隔设置为长于备份时间间隔。例如,如果每周执行一次备份,那么在 Server 文档中的 “Defer deletion of DAOS objects n days” 设置中将值设置为 8 天。
  2. 使用与 NSF 文件兼容的备份实用程序备份服务器上的 NSF 文件。该实用程序必须能够使用 Lotus Domino C API Toolkit 的备份和恢复方法。
  3. 备份 DAOSCAT.NSF 和 DAOS.CFG 文件。这些文件位于数据目录中。
  4. 备份 DAOS 储存库中所有的 NLO 文件。可以使用任何纯文本文件备份实用程序(例如 Tivoli® Storage Manager)。如果 DAOS 已经创建了子目录,那么在备份中维持目录层次结构。
  5. 对 DAOS 储存库做了初次备份后,可在需要时对 NSF 和 NLO 文件做增量备份。
  6. (可选)强烈建议归档所有事务日志,以便重现上次备份后发生的变更,从而执行最完整的数据恢复。

关键点总结

下面是应该记住的关于 DAOS 的关键点:

  • DAOS 使用更少的磁盘空间、CPU 和 I/O,帮助您采用更加环保的计算实践。
  • 对 DAOS 对象的访问对于 Lotus Domino 服务器和应用程序是透明的:
    • Lotus Notes 大型对象由 Lotus Notes ACL 加密和控制。
    • DAOS 对于 C API 调用、代理和 LotusScript® 是透明的。
  • DAOS 可提高邮件性能:
    • 对于每个服务器,附件只写一次。
    • 其他用户只使用引用副本。
  • 显著减少了从启用 DAOS 的 MAIL.BOX 获取的字节数:
    • 相同的附件可以发给同一个服务器上的多个收件人。
    • 不需要为了容纳临时附件而扩展 MAIL.BOX。
    • 当 MAIL.BOX 完成邮件发送后,它删除附件的副本,有效地将引用传递给邮件收件人。
  • DAOS 避免在压缩过程中移动大型对象,只移动较小的引用,从而提高压缩性能。
  • DAOS 要求事务日志记录。
  • DAOS 对象计入配额,并作为文件大小的一部分。
  • DAOS 可显著降低增量备份成本,因为 DAOS 储存库将较大的数据块放在单独的、稳定的文件中。
  • DAOS 与已有的数据库和服务器兼容。对于未启用 DAOS 的数据库和通透(pass-through)请求,仍然复制整个附件。

结束语

Lotus Domino 附件和对象服务经过了严格的 beta 测试阶段,受到了 beta 测试客户热情、肯定的反馈。

参考资料

学习

获得产品和技术

讨论

条评论

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=Lotus
ArticleID=392993
ArticleTitle=IBM Lotus Domino 环保化:新的 Lotus Domino 附件和对象服务(DAOS)
publish-date=06022009