Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Um instantâneo é uma versão somente leitura de um blob capturada num momento específico.
Nota
O controle de versão de blob oferece uma maneira superior de manter versões anteriores de um blob. Para obter mais informações, consulte Versionamento de Blob.
Sobre instantâneos de blob
Um instantâneo de um blob é idêntico ao seu blob base, exceto que o URI do blob tem um valor DateTime anexado ao URI do blob para indicar a hora em que o snapshot foi tirado. Por exemplo, se o URI de um blob de página for http://storagesample.core.blob.windows.net/mydrives/myvhd
, o URI de um instantâneo será semelhante a http://storagesample.core.blob.windows.net/mydrives/myvhd?snapshot=2011-03-09T01:42:34.9360000Z
.
Nota
Todos os snapshots compartilham o URI do blob base. A única distinção entre o blob base e o snapshot é o valor DateTime anexado.
Um blob pode ter qualquer número de instantâneos. Os instantâneos persistem até serem explicitamente excluídos, ou de forma independente ou como parte de uma operação de eliminação do Blob para o blob base. Você pode enumerar os instantâneos associados ao blob base para rastrear os seus instantâneos atuais.
Quando você cria um instantâneo de um blob, as propriedades do sistema do blob são copiadas para o instantâneo com os mesmos valores. Os metadados do blob de base também são copiados para o snapshot, a menos que você especifique metadados separados para o snapshot ao criá-lo. Depois de criar um instantâneo, você pode lê-lo, copiá-lo ou excluí-lo, mas não pode modificá-lo.
Quaisquer concessões associadas ao blob base não afetam o snapshot. Não é possível adquirir uma concessão em um instantâneo.
Você pode criar um instantâneo de um blob na camada quente ou fria. Não há suporte para instantâneos em blobs na camada de arquivamento.
Um arquivo VHD é usado para armazenar as informações atuais e o status de um disco VM. Você pode desanexar um disco de dentro da VM ou desligar a VM e, em seguida, tirar um instantâneo de seu arquivo VHD. Você pode usar esse arquivo de instantâneo posteriormente para recuperar o arquivo VHD nesse momento e recriar a VM.
Preços e faturação
Criar um snapshot, que é uma cópia somente leitura de um blob, pode resultar em cobranças extras de armazenamento de dados para a sua conta. Ao projetar seu aplicativo, é importante estar ciente de como esses encargos podem se acumular para que você possa minimizar os custos.
Os instantâneos de blob, tal como as versões de blob, são cobrados a uma taxa idêntica à dos dados ativos. A forma como os snapshots são cobrados depende de teres definido explicitamente o nível para o blob base ou para qualquer um dos seus snapshots (ou versões). Para mais informações sobre camadas de blob, consulte Camadas de acesso para dados de blob.
Se não alterou o nível de um blob ou de um snapshot, será cobrado por blocos únicos de dados nesse blob, nos seus snapshots e em quaisquer versões que ele possa ter. Para mais informações, veja Faturamento quando a camada de blob não foi explicitamente definida.
Se você tiver alterado a camada de um blob ou snapshot, será cobrado pelo objeto inteiro, independentemente de o blob e o snapshot estarem eventualmente na mesma camada novamente. Para obter mais informações, consulte Faturamento quando há definição explícita da camada de blob.
Para mais informações sobre os detalhes de faturação das versões de blob, consulte Versionamento de Blob.
Minimize os custos com o gerenciamento de snapshots
A Microsoft recomenda gerenciar seus instantâneos cuidadosamente para evitar cobranças extras. Você pode seguir estas práticas recomendadas para ajudar a minimizar os custos incorridos pelo armazenamento de seus snapshots:
- Exclua e recrie instantâneos associados a um blob sempre que atualizar o blob, mesmo que esteja a atualizá-lo com dados idênticos, a menos que o design da aplicação exija que mantenha instantâneos. Ao excluir e recriar os instantâneos do blob, você pode garantir que o blob e os instantâneos não divirjam.
- Se você estiver mantendo instantâneos para um blob, evite chamar métodos que substituam o blob inteiro quando você atualizar o blob. Em vez disso, atualize o menor número possível de blocos para manter os custos baixos.
Cobrança quando a camada de blob não foi definida explicitamente
Se você não tiver definido explicitamente a camada de blob para um blob base ou qualquer um de seus snapshots, será cobrado por blocos ou páginas exclusivos no blob, seus snapshots e quaisquer versões que ele possa ter. Os dados que são compartilhados em um blob e seus instantâneos são cobrados apenas uma vez. Quando um blob é atualizado, os dados em um blob base divergem dos dados armazenados em seus instantâneos e os dados exclusivos são cobrados por bloco ou página.
Quando se substitui um bloco dentro de um blob de blocos, esse bloco é posteriormente cobrado como um bloco único. Isso é verdade mesmo que o bloco possua o mesmo ID de bloco e os mesmos dados que possui no instantâneo. Depois que o bloco é confirmado novamente, ele diverge de sua contraparte no instantâneo e você será cobrado por seus dados. O mesmo se aplica a uma página num page blob que está a ser atualizada com dados idênticos.
O armazenamento de Blob não tem um meio de determinar se dois blocos contêm dados idênticos. Cada bloco carregado e confirmado é tratado como exclusivo, mesmo que tenha os mesmos dados e o mesmo ID de bloco. Como as cobranças se acumulam para blocos únicos, é importante ter em mente que atualizar um blob quando esse blob tem instantâneos ou versões resulta em blocos únicos adicionais e cobranças adicionais.
Quando um blob tem instantâneos, deve-se chamar operações de atualização em blobs de bloco para que atualizem o menor número possível de blocos. As operações de gravação que permitem um controle refinado sobre blocos são Put Block e Put Block List. A operação Put Blob, por outro lado, substitui todo o conteúdo de um blob e, portanto, pode levar a custos adicionais.
Os seguintes cenários demonstram como as cobranças se acumulam para um blob de bloco e seus instantâneos quando o nível de blob não foi definido explicitamente.
Cenário 1
No cenário 1, o blob base não foi atualizado depois que o instantâneo foi tirado, portanto, as cobranças são incorridas apenas para os blocos exclusivos 1, 2 e 3.
Cenário 2
No cenário 2, o blob base foi atualizado, mas o instantâneo não. O bloco 3 foi atualizado e, embora contenha os mesmos dados e a mesma ID, não é o mesmo que o bloco 3 no instantâneo. Como resultado, a conta é faturada por quatro blocos.
Cenário 3
No cenário 3, o blob base foi atualizado, mas o instantâneo não. O bloco 3 foi substituído pelo bloco 4 no blob base, mas o instantâneo ainda reflete o bloco 3. Como resultado, a conta é faturada por quatro blocos.
Cenário 4
No cenário 4, o blob base foi completamente atualizado e não contém nenhum de seus blocos originais. Como resultado, a conta é cobrada por todos os oito blocos exclusivos.
Gorjeta
Evite chamar métodos que substituam todo o blob e, em vez disso, atualize blocos individuais para manter os custos baixos.
Faturamento quando a camada de blob é definida explicitamente
Se você tiver definido explicitamente a camada de blob para um blob ou snapshot (ou versão), será cobrado pelo comprimento total do conteúdo do objeto na nova camada, independentemente de ele compartilhar blocos com um objeto na camada original. Você também será cobrado pelo comprimento total do conteúdo da versão mais antiga no nível original. Todas as versões ou instantâneos que permanecem na camada original são cobrados por blocos exclusivos que podem ser compartilhados, conforme descrito em Faturamento quando a camada de blob não tiver sido definida explicitamente.
Movendo um blob para uma nova camada
A tabela a seguir descreve o comportamento de cobrança de um blob ou instantâneo quando ele é movido para uma nova camada.
Quando a camada de blob é definida explicitamente em... | Então você é cobrado por... |
---|---|
Um blob de base com um instantâneo | O blob de base na nova camada e o instantâneo mais antigo na camada original, além de quaisquer blocos exclusivos em outros instantâneos.1 |
Um blob de base com uma versão anterior e um instantâneo | O blob base na nova camada, a versão mais antiga na camada original e o instantâneo mais antigo na camada original, além de quaisquer blocos exclusivos em outras versões ou instantâneos1. |
Um instantâneo | O snapshot na nova camada e o blob base na camada original, além de quaisquer blocos exclusivos em outros snapshots.1 |
1 Se houver outras versões anteriores ou snapshots que não tenham sido movidos da camada original, essas versões ou snapshots serão cobrados com base no número de blocos exclusivos que contêm, conforme descrito em Faturamento quando a camada de blob não tiver sido definida explicitamente.
O diagrama a seguir ilustra como os objetos são cobrados quando um blob com instantâneos é movido para uma camada diferente.
A definição explícita da camada para um blob, versão ou instantâneo não pode ser desfeita. Se você mover um blob para uma nova camada e, em seguida, movê-lo de volta para sua camada original, será cobrado pelo comprimento total do conteúdo do objeto, mesmo que ele compartilhe blocos com outros objetos na camada original.
As operações que definem explicitamente a camada de um blob, versão ou instantâneo incluem:
- Set Blob Tier (Definir Camada de Blob)
- Colocar Blob com camada especificada
- Colocar Lista de Bloqueios com camada especificada
- Copiar Blob com nível especificado
Excluindo um blob quando a exclusão suave está habilitada
Quando a eliminação reversível de blobs está ativada, se se eliminar ou substituir um blob base cujo nível foi definido explicitamente, então todas as versões anteriores ou "snapshots" do blob eliminado reversivelmente serão cobrados pelo comprimento total do conteúdo. Para obter mais informações sobre como o controle de versão de blob e a exclusão suave funcionam juntos, consulte Controle de versão de blob e exclusão suave.
A tabela a seguir descreve o comportamento de cobrança de um blob excluído suavemente, dependendo se o controle de versão está habilitado ou desabilitado. Quando o controle de versão está habilitado, uma nova versão é criada quando um blob é excluído suavemente. Quando o controlo de versão está desativado, a eliminação temporária de um blob cria um instantâneo de eliminação temporária.
Quando você substitui um blob base com sua camada explicitamente definida... | Então você é cobrado por... |
---|---|
Se a exclusão suave de blobs e o controlo de versões estiverem ambos ativados | Todas as versões existentes com conteúdo completo, independentemente do nível. |
Se o blob soft delete estiver habilitado, mas o controle de versão estiver desabilitado | Todos os snapshots de exclusão suave existentes em todo o comprimento do conteúdo, independentemente da camada. |
Suporte de funcionalidades
O suporte para esse recurso pode ser afetado pela habilitação do Data Lake Storage Gen2, do protocolo NFS (Network File System) 3.0 ou do SSH File Transfer Protocol (SFTP). Se você habilitou qualquer um desses recursos, consulte Suporte ao recurso de Armazenamento de Blob nas contas de Armazenamento do Azure para avaliar o suporte para esse recurso.
Importante
A Pré-visualização de Snapshots para contas com o recurso de namespace hierárquico ativado já não aceita novos clientes. Encorajamo-lo a considerar mecanismos alternativos. (Exemplos: exclusão suave para blobs, AzCopy, backup em cofre [Preview])