數據匯報總覽

本頁說明快照的用途和運作方式,並討論限制和最佳做法。

如要瞭解如何使用快照,請參閱下列指南:

什麼是快照?

Filestore 快照會保留建立快照時的檔案共用資料狀態。執行個體會維護在建立快照後修改的檔案狀態。如要將檔案還原至快照中保留的狀態,可以從相關快照目錄覆寫目前的檔案。

快照會儲存在 Filestore 執行個體中,是執行個體的子項資源。在修改執行個體上的資料之前,這些執行個體不會複製任何資料或耗用容量。執行個體的所有快照都會共用資料,也就是說,執行個體只會保留快照之間的差異。

與其他 Filestore 資料復原作業相比,快照確實能節省成本,但隨著檔案修改次數增加,可用執行個體容量會持續減少。

支援的層級

下表列出支援快照和 revert instance 作業的 Filestore 服務層級:

級別 建立快照 還原執行個體
基本傳統硬碟
基本固態硬碟
可用區
區域
Enterprise

先前推出的高規模 SSD 服務層級也支援快照和相關的 revert 作業。

企業服務層級支援快照,但無法與 Filestore 多重共用功能搭配使用。

建立快照

檔案共用的每個目錄都包含隱藏的 .snapshot 目錄。每個 .snapshot 目錄都包含您建立的父項目錄快照,例如:

volume1/
│   genomics-file.txt
│
└───.snapshot
    │
    ├───snap1/
    │        genomics-file.txt
    │
    ├───snap2/
    │        genomics-file.txt
    │
    └───snap3/
             genomics-file.txt

快照包含建立時父項目錄中的所有檔案和子目錄,但只能以唯讀模式檢視。所有檔案屬性 (例如 atimeownership,以及讀取和寫入權限) 都會保留。

建立快照通常不會超過兩分鐘,因為這項作業不涉及複製資料,也不會影響執行個體效能。

每個執行個體一次最多可以有 240 張快照。檔案共用區名稱和快照名稱的總長度最多可達 78 個字元。

快照一致性

Filestore 快照具有 NFSv3 一致性語意。啟動快照之前,Filestore 執行個體確認已寫入穩定儲存空間的任何寫入作業,或後續有確認的 COMMIT,都會納入快照。詳情請參閱 NFSv3 RFC-1813 的 3.3.7 節

備妥檔案共用區,以便建立一致性極高的快照

應用程式能否復原您在系統執行繁重寫入工作負載時所建立的快照,會影響快照的品質。多數情況下,即使應用程式正將資料寫入檔案共用區,您也能建立一致性良好的快照。不過,如果您的應用程式需要嚴格一致性,建議採取下列一或多項做法:

  • 使用 sync 掛接選項,或使用 O_DIRECT|O_SYNC 開啟檔案。這兩種方法都能提高一致性,但無法保證一定能達成。
  • 暫停會將資料寫入檔案共用的應用程式或作業系統程序,並在啟動快照前,讓這些程序將變更排清至檔案共用。詳情請參閱 fsync(2)
  • 如果應用程式需要多個共用磁碟之間皆具備一致性,請先暫停所有執行個體上正在寫入所有檔案共用磁碟的應用程式,並為所有檔案共用磁碟建立快照,再重新啟用應用程式。
  • 如果您需要應用程式層級的一致性,請先停止應用程式並卸載檔案共用,再建立快照。

.snapshot 目錄的 NFS 語意

.snapshot 目錄是特殊的隱藏目錄,內含其上層目錄的快照。所有 NFS 和 bash 指令都適用於這些目錄,但下列情況除外:

  • 您無法建立名為 .snapshot 的檔案或目錄,因為該名稱保留給快照使用。
  • .snapshot 目錄不會列在 READDIRREADDIRPLUS 指令的輸出內容中,也不會列在 ls -a bash 指令中。
  • 如要變更為 .snapshot 目錄,您必須明確輸入 .snapshot 字串。範例:cd somedir/.snapshot/
  • 殼層指令的自動完成功能不會將 .snapshot 列為選項。

刪除快照中擷取的檔案

如果檔案已擷取至快照,刪除該檔案不會增加執行個體的可用磁碟空間。

還原至快照狀態

將執行個體還原至快照狀態的功能已正式推出,但僅適用於可用區、區域和企業執行個體。

執行個體還原至快照擷取的狀態時,系統會刪除目標快照建立後寫入的所有新資料,且無法復原。還原程序也會刪除目標快照之後建立的快照。

功能限制

  • 還原快照是無法復原的操作,會刪除即時檔案系統中的資料,並刪除鏈結中每個後續較新的快照。因此,意外遺失資料的風險較高。與從備份還原相比,這項行為有顯著差異。從備份還原後,備份會維持目前狀態,方便您嘗試從多個備份還原,找出最合適的備份。請謹慎使用還原功能。

  • 還原程序開始時,系統會刪除目標快照建立後寫入的所有資料,且無法復原。目標快照之後的所有快照也會一併刪除。例如,snapshot1snapshot2snapshot3 是依序建立。將執行個體還原至 snapshot2 中擷取的狀態,表示系統會在還原程序中刪除 snapshot2 之後寫入的所有資料,以及 snapshot2 建立後的所有快照。

    系統可能需要六小時到十天,才能清除這些已刪除的資料。這段期間執行個體的容量和效能可能會受到影響。

  • 將執行個體還原至快照狀態時,NFS 檔案系統 ID (fsid) 會更新。如果嘗試使用現有掛接點存取用戶端,系統會傳回過時的檔案控制代碼錯誤。最佳做法是,在還原作業前先從執行個體卸載所有用戶端,並在作業完成後重新掛接。

  • 還原作業最多可能需要兩分鐘才能完成。

    • 還原作業的相關清理作業 (例如刪除鏈結中的後續快照) 可能需要 6 小時到 10 天才能完成,實際時間取決於檔案數量。
    • 還原作業執行期間,以及清理作業完成前,您都可以執行其他作業。
    • 您必須等待還原作業完成,才能啟動另一項還原作業。
  • 大多數服務層級都提供快照和相關的 revert 作業。基本固態硬碟和基本傳統硬碟服務級別不支援快照。

  • 只有具有單一共用的執行個體可以還原至快照狀態。

  • 企業服務層級支援快照,但無法與 Filestore 多重共用功能搭配使用。

後續步驟