快照Compatible with Milvus 3.0.x
快照是 Milvus 集合在特定時間點的影像,非常適合用於快速回滾、版本控制和測試。它會擷取集合在特定時間戳記下的狀態,並僅儲存元資料和清單檔案(例如模式、索引和向量資料檔案(二進位日誌)),以實現高效的儲存與還原。
快照是資料的快速、特定時間點影像,適用於快速回滾或測試(數天至數週)。與此同時,備份則是獨立且完整的副本,會另行儲存以供長期災難復原(數週至數年),並能更好地防範儲存系統完全故障。
若要建立備份,請參閱《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 設定。
- 若要將快照用作「
milvus-table」的外部來源,該來源快照必須來自標準的 StorageV3 Milvus 集合。外部集合的快照不支援作為「milvus-table」的來源。