СнимкиCompatible with Milvus 3.0.x
Снапшот - это образ коллекции Milvus в момент времени, идеально подходящий для быстрого отката, создания версий и тестирования. Он фиксирует состояние коллекции в определенный момент времени и сохраняет только метаданные и файлы манифеста, такие как схема, индексы и файлы векторных данных (binlogs), для эффективного хранения и восстановления.
Снимки - это быстрые, точечные образы данных, подходящие для быстрого отката или тестирования(от нескольких дней до нескольких недель). В то же время резервные копии - это независимые полные копии, хранящиеся отдельно для долгосрочного аварийного восстановления(от нескольких недель до нескольких лет) и для лучшей защиты от полного отказа хранилища.
Для создания резервных копий см. раздел Milvus Backup.
Анатомия моментальных снимков
В Milvus реализована архитектура моментальных снимков на основе манифеста для эффективного захвата, хранения и восстановления данных в режиме реального времени без дублирования фактических векторных данных. Архитектура отделяет управление метаданными от хранения физических данных, позволяя создавать легкие снимки, которые ссылаются на существующие файлы сегментов в объектном хранилище.
При создании моментального снимка для коллекции Milvus собирает следующие данные:
Метаданные моментального снимка
Предоставляет основную информацию для создания моментального снимка, включая имя и описание моментального снимка, идентификатор целевой коллекции и временную точку, в которой создается моментальный снимок.
Описание коллекции
Содержит описание целевой коллекции, включая определение ее схемы, информацию о разделах и свойствах.
Информация об индексе
Здесь хранятся метаданные индекса и пути к файлам индекса.
Данные сегмента
Здесь хранятся файлы векторных данных (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 ссылается на сегмент или индексный файл в моментальном снимке, он не собирает эти файлы в мусор, пока вы не сбросите снимок. Снимки занимают место в хранилище, пропорциональное размеру целевых коллекций, а затраты на хранение объектов применяются к хранению снимков. В крайних случаях один снимок может даже удвоить расходы на хранение объектов. Рекомендуется
- Регулярно удаляйте старые снимки, чтобы сэкономить место в хранилище.
- Использовать описательные имена и описания для будущих ссылок.
- Всегда проверяйте результаты создания и восстановления моментальных снимков.
- Отслеживайте временные метки создания снимков, использование хранилища и идентификаторы заданий восстановления для мониторинга и устранения неполадок.
Ограничения и пределы
- После создания моментальные снимки становятся неизменяемыми.
- Снимок можно восстановить только в новую коллекцию в том же кластере, что и оригинал.
- Восстановленные коллекции сохраняют ту же схему, количество шардов и число разделов.
- Восстановленные исторические данные могут конфликтовать с политиками TTL. Рекомендуется отключить TTL или настроить параметры TTL перед созданием моментальных снимков.
Дополнительная информация
- Управление моментальными снимками - создание, список, восстановление и удаление моментальных снимков.
- Примеры использования моментальных снимков - общие шаблоны и рабочие процессы.
- Milvus Backup - долгосрочное резервное копирование и восстановление в кластерах.