Esta página descreve o que é um snapshot, como ele funciona e discute limitações e práticas recomendadas.
Para saber como usar snapshots, consulte os seguintes guias:
- Preservar o estado dos dados com snapshots
- Restaurar um arquivo usando um snapshot
- Reverter um compartilhamento de arquivos para um snapshot anterior
- Programar snapshots empresariais do Filestore
O que é um snapshot?
Um snapshot do Filestore é o estado preservado dos dados de compartilhamento de arquivos no momento em que o snapshot é criado. A instância mantém o estado dos arquivos que são modificados após a criação do snapshot. Se você quiser restaurar um arquivo para o estado preservado no snapshot, poderá substituir o arquivo atual pelo arquivo do diretório de snapshot relevante.
Os snapshots são armazenados na instância do Filestore e são recursos filhos da instância. Eles não replicam dados nem consomem capacidade até que os dados na instância sejam modificados. Todos os snapshots de uma instância compartilham dados em comum, o que significa que a instância preserva apenas as diferenças entre os snapshots.
Criação de snapshot
Cada diretório de um compartilhamento de arquivos contém um diretório .snapshot
oculto. Cada
diretório .snapshot
contém os snapshots do diretório pai
criados, por exemplo:
volume1/
│ genomics-file.txt
│
└───.snapshot
│
├───snap1/
│ genomics-file.txt
│
├───snap2/
│ genomics-file.txt
│
└───snap3/
genomics-file.txt
Os snapshots contêm uma visualização somente leitura de todos os arquivos e subdiretórios que
existem no diretório pai no momento da criação do snapshot. Todos os arquivos
como atime
, ownership
e permissões de leitura e gravação,
preservados.
Geralmente, a criação de snapshots não leva mais de dois minutos para ser concluída porque não envolve a cópia dos dados e não afeta o desempenho da instância.
É possível ter até 240 snapshots por instância por vez. O nome do compartilhamento de arquivos e o nome do instantâneo pode ter um comprimento combinado de até 78 caracteres.
Consistência de snapshots
Os snapshots do Filestore têm semântica de consistência NFSv3. Antes de um snapshot
ser iniciado, qualquer gravação que a instância do Filestore reconhece como
gravada no armazenamento estável ou que é seguida por um COMMIT
confirmado
é incluída no snapshot. Para mais detalhes, consulte a seção 3.3.7 do NFSv3 RFC-1813.
Preparar seu compartilhamento de arquivos para a melhor consistência de snapshot
A qualidade de um snapshot depende da capacidade do aplicativo de se recuperar dos snapshots criados durante cargas de trabalho de gravação pesadas. Na maioria das situações, é possível criar snapshots com boa consistência, mesmo que os aplicativos gravem dados no compartilhamento de arquivos. No entanto, se os aplicativos exigirem consistência rigorosa, recomendamos executar uma ou mais das seguintes opções:
- usar a opção de montagem sync ou abrir arquivos;
com o
O_DIRECT|O_SYNC
Qualquer um desses métodos melhora a consistência, mas não garante isso. - Pause os aplicativos ou processos do sistema operacional que gravam dados no compartilhamento de arquivos e faça com que eles limpem as alterações no compartilhamento de arquivos antes de iniciar o o snapshot. Para ver mais informações, consulte fsync(2).
- Se os aplicativos exigirem consistência entre vários compartilhamentos, pause todos os aplicativos em todas as instâncias que estiverem gravando nos compartilhamentos de arquivos e crie snapshots de todos os compartilhamentos de arquivos antes de retomar os aplicativos.
- Se você precisar de consistência no nível do aplicativo, interrompa seus aplicativos e desative o compartilhamento de arquivos antes de criar um snapshot.
Semântica NFS do diretório .snapshot
Os diretórios .snapshot
são diretórios ocultos especiais que contêm os snapshots
capturados do respectivo diretório pai. Todos os comandos NFS e bash funcionam para
esses diretórios com as seguintes exceções:
- Não é possível criar um arquivo ou diretório chamado
.snapshot
porque ele está reservado para snapshots. - O diretório
.snapshot
não está listado nas saídas dos comandosREADDIR
ouREADDIRPLUS
e não está listado no comando bashls -a
. - Para mudar para um diretório
.snapshot
, você precisa digitar explicitamente a string.snapshot
. Exemplo:cd somedir/.snapshot/
- O preenchimento automático para comandos do shell não lista
.snapshot
como uma opção.
Excluir arquivos capturados em um snapshot
Quando um arquivo é capturado em um snapshot, a exclusão dele não aumenta o disco livre espaço na instância.
Reverter para um estado de snapshot
A reversão de uma instância para um estado de snapshot está com disponibilidade geral para SSD de alta escala, regional, e instâncias empresariais.
Quando uma instância é revertida para o estado capturado em um snapshot, todos os novos dados gravado, já que a criação do snapshot de destino é excluída e não pode ser se recuperou Os snapshots criados após o snapshot de destino também são excluídos pelo processo de reversão.
Limitações do recurso
O recurso de reversão de snapshot é uma operação irreversível que exclui dados do sistema de arquivos ativo e excluindo cada snapshot mais recente e subsequente na corrente Portanto, ele tem um risco maior de perda acidental de dados. Isso é um comportamento muito diferente da restauração usando um backup, em que o backup permanece no estado atual após o uso, permitindo que tenta restaurar vários backups para encontrar o melhor. Usar a reversão recurso com cuidado.
Todos os dados gravados após a criação do snapshot de destino são excluídos no início do processo de reversão e não poderá ser recuperado. Todos os snapshots mais recentes do que o snapshot de destino também são excluídos. Por exemplo:
snapshot1
,snapshot2
esnapshot3
são criados em sequência. Revertendo o estado capturado emsnapshot2
significa que todos os dados gravados apóssnapshot2
, bem como todos os snapshots gerados após a criação dosnapshot2
, são excluídos no processo de reversão.A limpeza desses dados excluídos pode levar de seis horas a dez dias. Instância. a capacidade e o desempenho podem ser afetados durante esse período.
A reversão de uma instância para um estado de snapshot atualiza o ID do sistema de arquivos NFS (fsid). Tentativas para acessar clientes que usam montagens existentes retornará erros do gerenciador de arquivos desatualizados. Como prática recomendada, desmonte todos os clientes da instância antes de reverter operacional e remonte-as após a conclusão.
Uma operação de reversão pode levar até dois minutos para ser concluída.
- Qualquer limpeza relacionada associada à operação de reversão, como a exclusão snapshots subsequentes na cadeia, pode levar de seis horas a dez dias para concluídas, dependendo do número de arquivos envolvidos.
- É possível executar outras operações enquanto a operação de reversão está em execução e durante está sendo concluída.
- Aguarde a conclusão da operação de reversão antes de iniciar outra operação de reversão.
Os snapshots e as operações
revert
relacionadas estão disponíveis para a maioria dos serviços níveis. Snapshots não estão disponíveis no SSD básico e com os níveis básicos de serviço do HDD.Somente instâncias com um único compartilhamento podem ser revertidas para o estado de snapshot.
Os snapshots têm suporte no nível de serviço empresarial, eles não podem ser combinados com os compartilhamentos múltiplos do Filestore; .
A seguir
- Saiba como criar e gerenciar snapshots.
- Saiba mais sobre backups.