回復使用 DAOS tier 2 儲存體

HCL Domino 目前未提供將 DAOS 物件從 tier 2 儲存移動至 tier 1 儲存的自動化方式。下列步驟說明如何手動還原。

執行這項作業的原因和時機

完整步驟如下所示。請參閱詳細步驟以取得詳細資訊。
  1. 停用 DAOS tier 2。
  2. 驗證 tier 2 中有物件。
  3. 將所有 tier 2 物件複製到 tier 1 儲存。
  4. 執行快速重新同步。
  5. 驗證 DAOS 不再具有 tier 2 參考。
  6. 刪除 tier 2 物件。
  7. 執行完整重新同步。

程序

  1. 停用 DAOS tier 2 儲存:
    1. 在「伺服器」文件的「DAOS」標籤上,停用「DAOS Tier 2」欄位。
    2. 重新啟動您進行變更的 Domino 伺服器:
      restart server
    3. 當伺服器回復上線時,在伺服器主控台輸入下列指令:
      tell daosmgr status
      驗證輸出訊息為 DAOS Tier2 is Disabled
      註: 雖然 tier 2 已停用,儲存的現有物件仍可供 Domino 下載,因為其物件索引仍知道這些物件儲存在 tier 2。但此時不會將任何其他物件推送至 tier 2。
  2. 在伺服器主控台中發出下列指令來驗證 tier 2 中有 DAOS 物件 :.
    tell daosmgr objectinfo summary
    如果輸出指出沒有任何 tier 2 物件,請略過此程序中的其餘步驟。下列範例輸出指出有 32 個 tier 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. 將所有 tier 2 物件複製到 tier 1 儲存。這些步驟假設使用 AWS CLI(指令行介面),您必須先行安裝和配置。但您可以使用能搭配您 S3 後端的任何工具進行複製。
    1. 判斷設定檔名稱。AWS 指令行介面 (CLI) 一般會在您的使用者主目錄下,從 ".aws" 子目錄中名為 "credentials" 的檔案取得 S3 認證。認證檔案可以有多個認證;每個認證有一個設定檔名稱括在方括弧中,例如 [dominocos]、一個 aws_access_key_id,以及一個 aws_secret_access_key。如果您使用 [default] 認證,則不需在意設定檔名稱。否則您必須在您的 S3 指令中指定正確的設定檔名稱。
    2. 若要取得其他必要資訊,請在伺服器主控台發出下列指令:
       tell daosmgr status
      由指令輸出取得下列資訊:
      • 基礎 Tier 1 儲存路徑:在輸出中顯示為 baseStoragePath
      • S3 端點:在輸出中顯示為 DAOS Tier2 Endpoint。如果使用 AWS S3,則可能不需要此端點。如果使用 MinIO,請使用您的 MinIO 伺服器的端點,例如 https://minio.myserver.renovations.com
      • S3 雜湊桶:在輸出中顯示為 DAOS Tier2 Bucket
      • S3 伺服器 ID:在輸出中顯示為 DAOS Tier2 Server ID
    3. (選用)若要列出您的所有 tier 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. 將 tier 2 物件複製到 tier 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 更新整理其 tier 1 和 tier 2 中物件的索引,但不會進行完整重新同步。如果您發出 tell daosmgr status 指令,則結果會顯示 catalogState = RESYNCING。DAOS 會繼續以此狀態運作,但不會清除任何刪除的物件。

  5. 在伺服器主控台中發出下列指令,驗證 tier 2 中不再有任何 DAOS 物件:
    tell daosmgr objectinfo summary
    輸出應該指出 0 個 tier 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 刪除 tier 2 物件。此指令與步驟 3c 中列出 tier 2 物件的指令相同,除非您將 ls 旗標改為 rm
    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 重新同步。
    • 如果有排定執行 tell daosmgr resync 指令的 Domino 名錄「程式」文件,請等候執行。
    • 否則請在伺服器主控台發出指令 tell daosmgr resync force。完整重新同步可能需要一段時間才能完成,因此建議在非工作時間執行。
    註: 您在步驟 4 中發出的 tell daosmgr resync quick force 指令可確保 DAOS 包含所有現有物件的索引。但該指令無法確保物件上的參考計數是精確的。精確參考計數需要完整的重新同步,其中牽涉到利用疊代對所有啟用 DAOS 資料庫的所有附件參考,從頭重新建立物件索引。