本頁面說明快照的定義、運作方式、限制和最佳做法。
如要瞭解如何使用快照,請參閱下列指南:
什麼是快照?
Filestore 快照是檔案共用區資料在建立快照時的保留狀態。例項會維護在快照建立後修改的檔案狀態。如果您想將檔案還原至快照中的保存狀態,可以使用相關快照目錄中的檔案覆寫目前的檔案。
快照會儲存在 Filestore 執行個體中,且為執行個體的子資源。除非執行個體的資料有所異動,否則不會複製任何資料或耗用容量。執行個體的所有快照都會共用相同的資料,也就是說,執行個體只會保留快照之間的差異。
雖然與其他 Filestore 資料復原作業相比,快照確實可提供成本效益,但隨著檔案修改次數增加,可用的執行個體容量會持續減少。
建立快照
檔案共用項目的每個目錄都包含一個隱藏的 .snapshot
目錄。每個 .snapshot
目錄都包含您建立的父項目錄快照,例如:
volume1/
│ genomics-file.txt
│
└───.snapshot
│
├───snap1/
│ genomics-file.txt
│
├───snap2/
│ genomics-file.txt
│
└───snap3/
genomics-file.txt
快照包含上層目錄中所有檔案和子目錄的唯讀檢視畫面,這些檔案和子目錄是在建立快照時存在。所有檔案屬性都會保留,例如 atime
、ownership
以及讀取和寫入權限。
建立快照通常不超過兩分鐘,因為這項作業不涉及資料複製,也不會影響執行個體效能。
每個執行個體一次最多可擁有 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
的檔案或目錄,因為該名稱已保留給快照使用。 READDIR
或READDIRPLUS
指令的輸出內容中,並未列出.snapshot
目錄,ls -a
bash 指令中也沒有列出這個目錄。- 如要變更為
.snapshot
目錄,您必須明確輸入.snapshot
字串。範例:cd somedir/.snapshot/
- 殼層指令的自動完成功能不會將
.snapshot
列為選項。
刪除快照中擷取的檔案
當快照擷取檔案時,刪除該檔案並不會增加執行個體的可用磁碟空間。
還原至快照狀態
只有區域、高可擴充性固態硬碟、區域和企業執行個體已全面推出快照還原功能。
當執行個體還原為快照中擷取的狀態時,建立目標快照後寫入的所有新資料都會刪除,且無法復原。在目標快照之後建立的快照,也會在還原程序中刪除。
功能限制
還原快照功能是無法復原的作業,會從即時檔案系統刪除資料,並刪除鏈結中後續的較新快照。因此,發生意外資料遺失的風險也較高。與從備份還原的行為相比,這項行為的行為差異很大,因為備份會在使用後保留現有狀態,讓您嘗試從多個備份還原,找出最合適的備份。請謹慎使用還原功能。
建立目標快照後所寫入的所有資料會在還原程序開始時刪除,無法復原。所有比目標快照更新的快照也會一併刪除。例如,
snapshot1
、snapshot2
和snapshot3
會依序建立。將執行個體還原至snapshot2
中擷取的狀態,表示系統會在還原程序中刪除snapshot2
之後寫入的所有資料,以及建立snapshot2
後拍攝的所有快照。清理這類刪除的資料可能需要六小時到十天。在此期間,執行個體的容量和效能可能會受到影響。
將執行個體還原為快照狀態會更新 NFS 檔案系統 ID (fsid)。如果嘗試使用現有掛載點存取用戶端,系統會傳回過時的檔案句柄錯誤。最佳做法是,在還原作業前先從執行個體中卸載所有用戶端,然後在作業完成後重新掛載。
還原作業最多可能需要兩分鐘才能完成。
- 與還原作業相關的任何清理作業 (例如刪除鏈結中的後續快照),可能需要六到十天才能完成,具體取決於涉及的檔案數量。
- 您可以在還原作業執行中和清理作業完成時執行其他作業。
- 您必須等待還原作業完成,才能開始另一項還原作業。
快照及其相關的
revert
作業可供大多數服務層級使用。基本固態硬碟和基本傳統硬碟服務級別不支援快照。只有單一共用項目的執行個體可以還原為快照狀態。
雖然企業服務層級支援快照,但無法與 Filestore 多份存儲空間功能搭配使用。