快照Compatible with Milvus 3.0.x
快照是 Milvus 收集的時間點影像,是快速回滾、版本控制和測試的理想選擇。它擷取集合在特定時間戳的狀態,並只儲存元資料和艙單檔案,例如模式、索引和向量資料檔案 (binlog),以便有效儲存和還原。
快照是資料的快速、時間點映像,適用於快速回溯或測試(數天至數週)。與此同時,備份是獨立、完整的複本,可分開儲存,用於長期災難復原(數週至數年),並能更好地保護儲存免受完全故障的影響。
要建立備份,請參考Milvus 備份。
快照解剖
Milvus 實作了一個以艙單為基礎的快照架構,可在不複製實際向量資料的情況下,有效率地進行時間點擷取、儲存和資料還原。此架構將元資料管理與實體資料儲存分離,使輕量級快照能夠參考物件儲存中的現有段檔案。
當您為一個集合建立快照時,Milvus 會收集下列內容:
快照元資料
提供建立快照的基本資訊,包括快照名稱和描述、目標集合 ID,以及建立快照的時間點。
集合描述
它包含目標集合的描述,包括其模式定義、分割資訊和屬性。
索引資訊
它儲存索引元資料和索引檔案的路徑。
區段資料
它擷取向量資料檔案 (binlogs)、刪除記錄 (deltalogs) 和索引檔案。
在上述資訊中,Milvus 會為每個區段產生 Apache Avro 艙單檔,並將快照元資料、集合描述、索引資訊以及艙單檔的路徑儲存於 JSON 檔案中。下圖說明快照資料夾結構。
snapshots/{collection_id}/
├── metadata/
│ └── {snapshot_id}.json # Snapshot metadata (JSON format)
│
└── manifests/
└── {snapshot_id}/ # Directory for each snapshot
├── {segment_id_1}.avro # Individual segment manifest (Avro format)
├── {segment_id_2}.avro
└── ...
建立快照通常需要幾毫秒,還原快照則需要幾秒到幾分鐘,視資料量而定。
儲存的影響與注意事項
一旦 Milvus 在快照中引用了段或索引文件,除非您丟棄快照,否則它不會收集這些文件。快照消耗的儲存空間與目標集合的大小成正比,而物件儲存成本適用於快照保留。在極端情況下,單一快照甚至會使您的物件儲存成本加倍。建議您
- 定期移除舊的快照,以節省儲存空間。
- 使用描述性的名稱和說明,以供日後參考。
- 經常驗證建立及還原快照的結果。
- 追蹤建立快照的時間戳記、儲存使用量和還原工作 ID,以便監控和疑難排解。
限制和約束
- 快照在建立後即不可變更。
- 您只能將快照還原到與原始快照位於同一群集中的新集合。
- 還原的集合會保留相同的模式、分片數量和分割計數。
- 還原的歷史資料可能與 TTL 政策衝突。建議您在建立快照前停用 TTL 或調整 TTL 設定。