恢复使用 DAOS 第 2 层存储

HCL Domino 当前不提供将 DAOS 对象从第 2 层存储移动到第 1 层存储的自动方法。以下步骤描述了如何手动恢复。

关于此任务

完整步骤如下。请参阅详细步骤以了解更多信息。
  1. 禁用 DAOS 第 2 层
  2. 验证第 2 层中是否有对象。
  3. 将第 2 层的所有对象复制到第 1 层存储。
  4. 执行快速重新同步。
  5. 验证 DAOS 不再具有第 2 层引用。
  6. 删除第 2 层对象。
  7. 执行完全重新同步。

过程

  1. 禁用 DAOS 第 2 层存储:
    1. 在服务器文档的 DAOS 选项卡上,禁用 DAOS 第 2 层字段。
    2. 重新启动进行更改的 Domino 服务器:
      restart server
    3. 服务器重新启动后,在服务器控制台上输入以下命令:
      tell daosmgr status
      验证输出是否显示 DAOS Tier2 is Disabled
      注: 尽管禁用了第 2 层,但是 Domino 仍可以下载存储在第 2 层的现有对象,因为它的对象索引仍然知道这些对象存储在第 2 层。不过,此时不会将其他对象推到第 2 层。
  2. 通过在服务器控制台上发出以下命令,验证第 2 层中是否存在 DAOS 对象:.
    tell daosmgr objectinfo summary
    如果输出表明没有第 2 层对象,请跳过此过程中的其余步骤。以下输出示例表明有 32 个第 2 层对象:
    [1998:0002-082C] DAOS TIERED STORAGE SUMMARY
    [1998:0002-082C] TIER 1 STORAGE:
    [1998:0002-082C] 	OBJECTS      - 0
    [1998:0002-082C] 	MB           - 0 MB
    [1998:0002-082C] TIER 2 STORAGE:
    [1998:0002-082C] 	OBJECTS      - 32
    [1998:0002-082C] 	MB           - 70 MB
    [1998:0002-082C] TOTAL STORAGE :
    [1998:0002-082C] 	OBJECTS      - 32
    [1998:0002-082C] 	MB           - 70 MB
    [1998:0002-082C] 	AVERAGE AGE  - 1521 days
  3. 将第 2 层的所有对象复制到第 1 层存储。这些步骤假定使用 AWS CLI(命令行界面),因此必须安装和配置 AWS CLI。但是,您可以使用与 S3 后端兼容的任何工具进行复制。
    1. 确定配置文件名称。AWS 命令行界面 (CLI) 通常从用户主目录下的 ".aws" 子目录中名称为 "credentials" 的文件中获取 S3 凭证。凭证文件可以具有多个凭证;每个凭证的配置文件名均以括号括起,例如 [dominocos]aws_access_key_idaws_secret_access_key。如果使用 [缺省] 凭证,则无需担心配置文件名称。否则,您将需要在 S3 命令中指定正确的配置文件名称。
    2. 要收集其他必需信息,请在服务器控制台上发出以下命令:
       tell daosmgr status
      从命令输出中收集以下信息:
      • 基础第 1 层存储路径:在输出中显示为 baseStoragePath
      • S3 端点:在输出中显示为 DAOS Tier2 Endpoint。如果使用 AWS S3,则可能不需要端点。如果使用 MinIO,请使用 MinIO 服务器的端点,例如:https://minio.myserver.renovations.com
      • S3 存储区:在输出中显示为 DAOS Tier2 Bucket
      • S3 服务器标识:在输出中显示为 DAOS Tier2 Server ID
    3. (可选)要列出所有第 2 层对象,请编写以下形式的命令。请注意,该命令可能需要较长的时间才能完成。
      aws s3 [--profile <profile-name>] [--endpoint-url <s3-endpoint>] ls 
         s3://<s3-bucket>/obj/<s3-server-id>/<s3-server-id>/ --recursive
      注: 大小写必须与源路径完全匹配,在非 Windows 系统上,必须与目标路径完全匹配。

      例如:

      aws s3 --profile dominocos ls 
         s3://aws-hcl-dominocos/obj/96A6456FB0F12AE91178C9A8AE0DAB7DB6F1130D/
         96A6456FB0F12AE91178C9A8AE0DAB7DB6F1130D/ --recursive
      列出两个对象的示例输出。可能会有更多的对象。
      2019-10-09 15:55:02    1777421 obj/96A6456FB0F12AE91178C9A8AE0DAB7DB6F1130D/
         96A6456FB0F12AE91178C9A8AE0DAB7DB6F1130D/
         040E4598A2A287490B8DD7784FEB7150B876313E001B1D64.nlo
      2019-10-09 15:55:01    1771669 obj/96A6456FB0F12AE91178C9A8AE0DAB7DB6F1130D/
         96A6456FB0F12AE91178C9A8AE0DAB7DB6F1130D/
         0E597BF9C316422FCA869567755CD882C8DCC469001B06EC.nlo
    4. 将第 2 层对象复制到第 1 层。您可以选择任意 DAOS 子容器作为 Domino 服务器上的目标目录。在此示例中,我们假设为 0001。执行以下形式的某个命令。该命令可能需要较长的时间才能完成。
      aws s3 [--profile <profile-name>] [--endpoint-url <s3-endpoint>] cp s3://<s3-bucket>/obj/<s3-server-id>/
         <s3-server-id>/<base-tier1-storage-path>/0001 --recursive
      例如:
      aws s3 --profile dominocos cp 
         s3://aws-hcl-dominocos/obj/96A6456FB0F12AE91178C9A8AE0DAB7DB6F1130D/
         96A6456FB0F12AE91178C9A8AE0DAB7DB6F1130D/ C:\Domino\MyServer\Data\DAOS\0001 --recursive
      控制台输出示例:
      download: 
      s3://aws-hcl-dominocos/obj/96A6456FB0F12AE91178C9A8AE0DAB7DB6F1130D/
         96A6456FB0F12AE91178C9A8AE0DAB7DB6F1130D/
         1FAE990C593D66B44923C1C0E41740F9628DDD170000D902.nlo to .\
         1FAE990C593D66B44923C1C0E41740F9628DDD170000D902.nlo
      download:
      s3://aws-hcl-dominocos/obj/96A6456FB0F12AE91178C9A8AE0DAB7DB6F1130D/
         96A6456FB0F12AE91178C9A8AE0DAB7DB6F1130D/
         11FCA4B81120D5650D67C9427C80D6B8256AFCF30000D902.nlo to .\
         11FCA4B81120D5650D67C9427C80D6B8256AFCF30000D902.nlo
  4. 通过在服务器控制台上发出以下命令来执行快速重新同步:
    tell daosmgr resync quick force

    此操作会致使 DAOS 刷新其在第 1 层和第 2 层中的对象的索引,但不执行完全重新同步。如果发出 tell daosmgr status 命令,结果显示 catalogState = RESYNCING。DAOS 会在此状态下继续运行,但不会删减任何已删除的对象。

  5. 通过在服务器控制台上发出以下命令来验证是否不再具有第 2 层对象:
    tell daosmgr objectinfo summary
    输出应显示 0 第 2 层对象,例如:
    [1D1C:0002-6170] DAOS TIERED STORAGE SUMMARY
    [1D1C:0002-6170] TIER 1 STORAGE:
    [1D1C:0002-6170]        OBJECTS      - 32
    [1D1C:0002-6170]        MB           - 70 MB
    [1D1C:0002-6170] TIER 2 STORAGE:
    [1D1C:0002-6170]        OBJECTS      - 0
    [1D1C:0002-6170]        MB           - 0 MB
    [1D1C:0002-6170] TOTAL STORAGE :
    [1D1C:0002-6170]        OBJECTS      - 32
    [1D1C:0002-6170]        MB           - 70 MB
    [1D1C:0002-6170]        AVERAGE AGE  - 1521 days
  6. 通过发出以下形式的命令,从 S3 中删除第 2 层对象。此命令与步骤 3c 中用于列出第 2 层对象的命令一样,除非您使用 rm 替换 ls 标志:
    aws s3 [--profile <profile-name>] [--endpoint-url <s3-endpoint>] rm 
       s3://<s3-bucket>/obj/<s3-server-id>/<s3-server-id>/ --recursive
    例如:
    aws s3 --profile dominocos rm s3://aws-hcl-dominocos/obj/96A6456FB0F12AE91178C9A8AE0DAB7DB6F1130D/
       96A6456FB0F12AE91178C9A8AE0DAB7DB6F1130D/ --recursive

    控制台输出示例:

    delete:
    s3://aws-hcl-dominocos/obj/96A6456FB0F12AE91178C9A8AE0DAB7DB6F1130D/
       96A6456FB0F12AE91178C9A8AE0DAB7DB6F1130D/
       040E4598A2A287490B8DD7784FEB7150B876313E001B1D64.nlo
    delete:
    s3://aws-hcl-dominocos/obj/96A6456FB0F12AE91178C9A8AE0DAB7DB6F1130D/
       96A6456FB0F12AE91178C9A8AE0DAB7DB6F1130D/
       11FCA4B81120D5650D67C9427C80D6B8256AFCF30000D902.nlo
  7. 通过以下任一方式执行 DAOS 完全重新同步。
    • 如果已安排“Domino 目录”程序文档运行 tell daosmgr resync 目录,请等待其运行。
    • 否则,请在服务器控制台中发出命令 tell daosmgr resync force。完全重新同步可能需要较长的时间才能完成,因此最好在非工作时间运行。
    注: 您在步骤 4 中发出的 tell daosmgr resync quick force 命令可确保 DAOS 具有所有现有对象的索引。但是该命令不能确保对象的所有引用计数都是精确的。精确的引用计数要求执行完全重新同步,这涉及通过迭代所有启用了 DAOS 的数据库中的所有附件引用从头开始重建对象索引。