InstantâneosCompatible with Milvus 3.0.x
Um snapshot é uma imagem pontual de uma coleção Milvus, ideal para rollbacks rápidos, versionamento e testes. Captura o estado da coleção num determinado momento e armazena apenas metadados e ficheiros de manifesto, tais como o esquema, índices e ficheiros de dados vectoriais (binlogs), para um armazenamento e restauro eficientes.
Os instantâneos são imagens rápidas e pontuais dos dados, adequadas para reversões ou testes rápidos(dias a semanas). Ao mesmo tempo, as cópias de segurança são cópias independentes e completas, armazenadas separadamente para recuperação de desastres a longo prazo(semanas a anos) e para uma melhor proteção contra falhas totais de armazenamento.
Para criar cópias de segurança, consulte Milvus Backup.
Anatomia dos instantâneos
O Milvus implementa uma arquitetura de instantâneos baseada em manifestos para uma captura, armazenamento e restauro eficientes de dados num determinado momento, sem duplicar os dados vectoriais reais. A arquitetura separa a gestão de metadados do armazenamento de dados físicos, permitindo instantâneos leves que fazem referência a ficheiros de segmentos existentes no armazenamento de objectos.
Quando cria um instantâneo para uma coleção, o Milvus recolhe o seguinte:
Metadados do snapshot
Fornece informações básicas para a criação do instantâneo, incluindo o nome e a descrição do instantâneo, o ID da coleção de destino e o ponto de tempo no qual o instantâneo é criado.
Descrição da coleção
Contém a descrição da coleção de destino, incluindo a definição do esquema, informações de partição e propriedades.
Informações do índice
Armazena os metadados do índice e os caminhos para os ficheiros de índice.
Dados do segmento
Captura os ficheiros de dados vectoriais (binlogs), os registos de eliminação (deltalogs) e os ficheiros de índice.
Entre as informações acima, Milvus gera um arquivo de manifesto Apache Avro para cada segmento e armazena os metadados do snapshot, a descrição da coleção, as informações de índice e os caminhos para os arquivos de manifesto em um arquivo JSON. O diagrama a seguir ilustra a estrutura de pastas do snapshot.
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
└── ...
A criação de um instantâneo geralmente leva milissegundos, e a restauração leva de segundos a minutos, dependendo do volume de dados.
Impactos e considerações sobre o armazenamento
Uma vez que o Milvus faz referência a um segmento ou arquivo de índice em um snapshot, ele não coleta esses arquivos no lixo, a menos que você solte o snapshot. Os instantâneos consomem armazenamento proporcional ao tamanho das coleções de destino, e os custos de armazenamento de objetos se aplicam à retenção de instantâneos. Em casos extremos, um único instantâneo pode até duplicar os custos de armazenamento de objectos. É aconselhável
- Remover regularmente instantâneos antigos para poupar armazenamento.
- Utilizar nomes e descrições descritivos para referência futura.
- Verificar sempre os resultados da criação e do restauro de instantâneos.
- Acompanhar os carimbos de data/hora da criação de instantâneos, a utilização do armazenamento e os IDs das tarefas de restauro para monitorização e resolução de problemas.
Limites e restrições
- Os instantâneos tornam-se imutáveis após a criação.
- Só é possível restaurar um instantâneo para uma nova coleção dentro do mesmo cluster que o original.
- As colecções restauradas mantêm o mesmo esquema, número de shards e contagem de partições.
- Os dados históricos restaurados podem entrar em conflito com as políticas TTL. Aconselha-se a desativar o TTL ou a ajustar as definições de TTL antes de criar instantâneos.
Leituras adicionais
- Gerir instantâneos - criar, listar, restaurar e eliminar instantâneos.
- Casos de utilização de instantâneos - padrões e fluxos de trabalho comuns.
- Milvus Backup - backup e restauração de longo prazo em clusters.