Como StorageGRID exclui objetos
StorageGRID pode excluir objetos tanto em resposta direta a uma solicitação do cliente quanto automaticamente, como resultado da expiração do ciclo de vida de um bucket S3 ou dos requisitos da política ILM. Compreender as diferentes maneiras pelas quais os objetos podem ser excluídos e como o StorageGRID lida com as solicitações de exclusão pode ajudar você a gerenciar objetos com mais eficiência.
StorageGRID pode usar um dos dois métodos para excluir objetos:
-
Exclusão síncrona: Quando StorageGRID recebe uma solicitação de exclusão do cliente, todas as cópias do objeto são removidas imediatamente. O cliente é informado de que a exclusão foi bem-sucedida após a remoção das cópias.
-
Os objetos são enfileirados para exclusão: quando StorageGRID recebe uma solicitação de exclusão, o objeto é enfileirado para exclusão e o cliente é informado imediatamente de que a exclusão foi bem-sucedida. As cópias dos objetos são removidas posteriormente pelo processamento ILM em segundo plano.
Ao excluir objetos, StorageGRID utiliza o método que otimiza o desempenho da exclusão, minimiza possíveis atrasos na exclusão e libera espaço mais rapidamente.
A tabela resume quando StorageGRID utiliza cada método.
| Método de realização da exclusão | Quando usado |
|---|---|
Os objetos são enfileirados para exclusão |
Quando qualquer uma das seguintes condições for verdadeira:
|
Os objetos são removidos imediatamente (exclusão síncrona) |
Quando um cliente S3 faz uma solicitação de exclusão e todas as seguintes condições são atendidas:
|
Quando os clientes do S3 fazem solicitações de exclusão, StorageGRID começa adicionando objetos à fila de exclusão. Em seguida, passa a realizar a exclusão síncrona. Garantir que a fila de exclusão em segundo plano tenha objetos para processar permite que o StorageGRID processe exclusões com mais eficiência, especialmente para clientes com baixa concorrência, além de ajudar a evitar o acúmulo de exclusões por parte dos clientes.
Tempo necessário para excluir objetos
A forma como o StorageGRID exclui objetos pode afetar como o sistema aparenta funcionar:
-
Quando StorageGRID realiza a exclusão síncrona, pode levar até 30 segundos para que StorageGRID retorne um resultado ao cliente. Isso significa que a exclusão pode parecer estar acontecendo mais lentamente, mesmo que as cópias estejam sendo removidas mais rapidamente do que quando StorageGRID coloca objetos em fila para exclusão.
-
Se você estiver monitorando atentamente o desempenho de exclusão durante uma exclusão em massa, pode notar que a taxa de exclusão parece diminuir após um certo número de objetos terem sido excluídos. Essa mudança ocorre quando StorageGRID passa de enfileirar objetos para exclusão para realizar a exclusão síncrona. A aparente redução na taxa de exclusão não significa que as cópias dos objetos estejam sendo removidas mais lentamente. Pelo contrário, indica que, em média, o espaço está sendo liberado mais rapidamente.
Se você estiver excluindo um grande número de objetos e sua prioridade for liberar espaço rapidamente, considere usar uma solicitação do cliente para excluir os objetos em vez de excluí-los usando o ILM ou outros métodos. Em geral, o espaço é liberado mais rapidamente quando a exclusão é realizada pelos clientes, pois o StorageGRID pode usar a exclusão síncrona.
O tempo necessário para liberar espaço após a exclusão de um objeto depende de vários fatores:
-
Se as cópias de objetos são removidas de forma síncrona ou se são enfileiradas para remoção posterior (para solicitações de exclusão do cliente).
-
Outros fatores, como o número de objetos na grade ou a disponibilidade de recursos da grade quando as cópias dos objetos são enfileiradas para remoção (tanto para exclusões feitas pelo cliente quanto por outros métodos).
Como os objetos versionados do S3 são excluídos
Quando o versionamento está habilitado para um bucket do S3, StorageGRID segue o comportamento do Amazon S3 ao responder a solicitações de exclusão, independentemente de essas solicitações virem de um cliente S3, do vencimento do ciclo de vida de um bucket S3 ou dos requisitos da política de ILM.
Quando os objetos são versionados, as solicitações de exclusão de objetos não excluem a versão atual do objeto e não liberam espaço livre. Em vez disso, uma solicitação de exclusão de objeto cria um marcador de exclusão de zero bytes como a versão atual do objeto, o que torna a versão anterior do objeto "não atual". Um marcador de exclusão de objeto se torna um marcador de exclusão de objeto expirado quando é a versão atual e não há versões não atuais.
Embora o objeto não tenha sido removido, StorageGRID se comporta como se a versão atual do objeto não estivesse mais disponível. Solicitações para esse objeto retornam 404 NotFound. No entanto, como os dados não atuais do objeto não foram removidos, solicitações que especificam uma versão não atual do objeto podem ser bem-sucedidas.
Se um cliente excluir uma versão de objeto com um ID de versão de um "bucket de branch"bucket de branch, StorageGRID oculta a existência da versão do objeto, mas não cria um marcador de exclusão no bucket de branch. Se um cliente excluir um objeto sem um ID de versão de um bucket de branch, StorageGRID cria um marcador de exclusão no bucket de branch de acordo com o comportamento padrão do S3.
Para liberar espaço ao excluir objetos versionados ou para remover marcadores de exclusão, use um dos seguintes métodos:
-
Solicitação do cliente S3: Especifique o ID da versão do objeto na solicitação DELETE Object do S3 (
DELETE /object?versionId=ID). Lembre-se de que esta solicitação remove apenas as cópias do objeto para a versão especificada (as outras versões ainda ocupam espaço). -
Bucket lifecycle: Use a ação
NoncurrentVersionExpirationna configuração do ciclo de vida do bucket. Quando o número de NoncurrentDays especificado for atingido, StorageGRID remove permanentemente todas as cópias de versões de objeto não atuais. Essas versões de objeto não podem ser recuperadas.A `NewerNoncurrentVersions`ação na configuração do ciclo de vida do bucket especifica o número de versões não atuais retidas em um bucket S3 versionado. Se houver mais versões não atuais do que `NewerNoncurrentVersions`especificado, StorageGRID remove as versões mais antigas quando o valor de NoncurrentDays expirar. O `NewerNoncurrentVersions`limite substitui as regras de ciclo de vida fornecidas pelo ILM, o que significa que um objeto não atual com uma versão dentro do `NewerNoncurrentVersions`limite é retido se o ILM solicitar sua exclusão.
Para remover marcadores de exclusão de objetos expirados, use a
Expirationação com uma das seguintes tags:ExpiredObjectDeleteMarker,DaysouDate. -
ILM: "Clonar uma política ativa" e adicione duas regras ILM à nova política:
-
Primeira regra: Use "Tempo não atual" como Tempo de referência para corresponder às versões não atuais do objeto. Em "Etapa 1 (Inserir detalhes) do assistente Criar uma regra ILM", selecione Sim para a pergunta "Aplicar esta regra somente a versões mais antigas do objeto (em buckets do S3 com versionamento ativado)?"
-
Segunda regra: Use o Tempo de ingestão para corresponder à versão atual. A regra "Tempo não atual" deve aparecer na política acima da regra Tempo de ingestão.
Para remover marcadores de exclusão de objetos expirados, use uma regra de Tempo de ingestão que corresponda aos marcadores de exclusão atuais. Os marcadores de exclusão são removidos somente quando um Período de tempo de Dias tiver decorrido e o marcador de exclusão atual tiver expirado (não existem versões não atuais).
-
-
Excluir objetos no bucket: Use o gerenciador de locatários para "Excluir todas as versões do objeto" excluir objetos, incluindo marcadores de exclusão, de um bucket.
Quando um objeto versionado é excluído, StorageGRID cria um marcador de exclusão de zero bytes como a versão atual do objeto. Todos os objetos e marcadores de exclusão devem ser removidos antes que um bucket versionado possa ser excluído.
-
Marcadores de exclusão criados no StorageGRID 11.7 ou anterior só podem ser removidos por solicitações do cliente S3; eles não são removidos pelo ILM, pelas regras de ciclo de vida do bucket ou pelas operações de exclusão de objetos no bucket.
-
Marcadores de exclusão de um bucket criado no StorageGRID 11.8 ou posterior podem ser removidos pelo gerenciamento do ciclo de vida das informações (ILM), regras de ciclo de vida do bucket, operações de exclusão de objetos no bucket ou por uma exclusão explícita pelo cliente S3.