Esta página descreve o Rapid Bucket, um recurso que permite armazenar objetos na classe de armazenamento Rapid Storage definindo uma zona como local de um bucket. Essa abordagem permite que você coloque o armazenamento de dados com seus recursos de computação, o que oferece latência significativamente menor e maior capacidade de processamento em comparação com outras classes de armazenamento no Cloud Storage. As cargas de trabalho em outras zonas e regiões também podem acessar o bucket, com desempenho relativo à distância da rede.
Para criar um bucket zonal usando o Rapid Bucket, consulte Criar buckets zonais. É possível conferir a lista de locais compatíveis em Zonas. Para ler e anexar objetos em buckets zonais, consulte Usar objetos em buckets zonais.
Benefícios
O Rapid Bucket foi criado para remover gargalos de armazenamento e é ideal para uso em aplicativos com uso intensivo de dados, como IA/ML e análise de dados. O Rapid Bucket oferece latência abaixo de um milissegundo, até 15 TB/s de capacidade de processamento agregada e 20 milhões de consultas por segundo (QPS). A latência ultrabaixa permite a recuperação instantânea de dados e capacita aplicativos de inferência em tempo real a serem executados em escala. A capacidade de processamento enorme e o QPS alto ajudam a manter seus clusters de GPU caros totalmente saturados, reduzindo drasticamente os tempos de treinamento de modelo.
Terminologia do Rapid Bucket
A documentação do Cloud Storage usa os seguintes termos:
Rapid Bucket: o produto que permite a criação de buckets com um local zonal e a classe de armazenamento Rapid Storage.
Rapid Storage: a classe de armazenamento que oferece o maior desempenho de acesso aos dados e operação de E/S no Cloud Storage. Ao usar o Rapid Bucket, você cria um bucket que usa o Rapid Storage. Para mais informações sobre o Rapid Storage, consulte Classes de armazenamento.
Bucket zonal: um bucket localizado em uma zona. Os objetos em buckets zonais são sempre armazenados no Rapid Storage e podem ser anexados.
Recursos de buckets zonais
Além de fornecer baixa latência e alta capacidade de processamento, os buckets zonais permitem que você faça o seguinte:
Adicionar ao final de objetos no bucket zonal sem realizar uma reescrita completa do objeto
Abrir objetos e manter um fluxo ao realizar operações, permitindo acelerar leituras e gravações subsequentes
Casos de uso
O Rapid Bucket é mais adequado para cargas de trabalho de IA/ML ou outras cargas de trabalho com uso intensivo de dados. Alguns exemplos dessas cargas de trabalho são o checkpointing, a avaliação e a veiculação de modelos, bem como filas de registro e mensagens. Ele também pode ser usado para transmitir dados ou fornecer armazenamento para bancos de dados.
Para aproveitar ao máximo a baixa latência e a alta capacidade de processamento fornecidas pelo Rapid Bucket, certifique-se de ativar a conectividade direta do gRPC.
Acesso a objetos em buckets zonais
Para aproveitar os benefícios de desempenho de um bucket zonal, abra objetos para streaming e mantenha um fluxo ao realizar operações nos objetos. Ao estabelecer e manter um fluxo, é possível realizar operações de leitura ou gravação subsequentes no objeto com latência muito baixa. Por exemplo, ao ler um arquivo Parquet, é possível realizar a leitura inicial dos metadados do arquivo (o rodapé) e a leitura subsequente de linhas específicas em uma única solicitação. Essa abordagem é mais eficiente do que usar solicitações separadas para cada etapa.
Depois de estabelecidos, os fluxos de objetos são mantidos abertos por padrão quando você acessa objetos de bucket zonal usando Cloud Storage FUSE ou as bibliotecas de cliente do Cloud Storage.
É possível abrir vários fluxos de leitura para um objeto de qualquer número de hosts. Não há limitação no número de fluxos de leitura que podem ser estabelecidos para um objeto.
Anexação de objetos
É possível anexar dados a objetos em buckets zonais. Quando você faz anexos a objetos, a seguinte semântica é aplicada:
Os objetos anexáveis aparecem no namespace do bucket assim que você começa a gravar neles e podem ser lidos enquanto ainda estão sendo gravados.
Não há restrições quanto ao número de anexos que podem ser feitos a um objeto ou ao número de bytes que podem ser anexados por vez. É possível fazer anexos até que um objeto atinja o tamanho máximo de 5 TiB.
O tamanho de um objeto aumenta em tempo real à medida que novos anexos são gravados ou liberados permanentemente. Ao estabelecer um fluxo de leitura, é preciso prever um atraso mínimo na atualização do tamanho do objeto.
Os objetos anexáveis só podem ter um gravador por vez. Se um novo fluxo de gravação for estabelecido para um objeto que já tem um fluxo de gravação, um erro será retornado do Cloud Storage para o fluxo original, e o fluxo original não poderá mais gravar. O novo gravador pode retomar a anexação do último deslocamento persistido sem outros anexos intercalados ao objeto.
Finalização de objetos
Depois que um objeto é finalizado, não é mais possível anexá-lo, mas ainda é possível substituir o objeto por uma nova versão. Os metadados de um objeto finalizado ainda são mutáveis. Por exemplo, novas tags podem ser adicionadas e o objeto pode ser renomeado.
Como ativar buckets zonais
É possível ativar e acessar buckets zonais usando o Cloud Storage FUSE ou o driver CSI do Cloud Storage FUSE. Use a versão 3.7.2 ou mais recente do Cloud Storage FUSE. Para usar o driver CSI do Cloud Storage FUSE, verifique se a versão do Google Kubernetes Engine é 1.35.0-gke.3047001 ou mais recente.
Preços
O uso do Rapid Bucket gera cobranças de armazenamento de dados, operações e rede. Para mais informações, consulte Preços.
Limitações
Os buckets zonais precisam ter o namespace hierárquico e o acesso uniforme no nível do bucket ativados.
Limitações da Google Cloud CLI:
Versão mínima compatível da Google Cloud CLI: a versão mínima da CLI gcloud que oferece suporte a buckets zonais é a 553.0.0. Versões anteriores não são compatíveis com buckets zonais. Recomendamos usar a versão mais recente da CLI gcloud para receber os recursos e correções de bugs mais recentes.
Visibilidade de uploads incompletos: ao contrário dos buckets em outras classes de armazenamento, em que os objetos só aparecem no namespace após a conclusão de um upload, os objetos parcialmente enviados em buckets zonais ficam visíveis imediatamente. Se um comando de upload da Google Cloud CLI falhar ou for interrompido, objetos incompletos poderão aparecer no bucket. Ainda é possível retomar esses uploads executando o comando novamente.
Substituições de objetos: o comportamento padrão da Google Cloud CLI se aplica a buckets zonais: quando você substitui um objeto, se um arquivo ou objeto com o mesmo nome existir no destino, os comandos
cp,mv, ersyncda Google Cloud CLI vão substituí-lo por padrão. Para evitar substituições, use a flag--no-clobber. Ao usar a Google Cloud CLI, anexar dados a um objeto existente é indisponível. Toda a origem precisa ser reenviada.Finalização de objetos: os objetos enviados para um bucket zonal usando a Google Cloud CLI podem ocasionalmente sofrer um breve atraso antes que os metadados do objeto sejam totalmente sincronizados. Como o Cloud Storage usa um modelo de consistência eventual, tentar fazer o download de um objeto imediatamente após o upload pode resultar em um erro de incompatibilidade de hash se os metadados ainda não forem atualizados.
Se um download falhar com um erro de incompatibilidade de hash logo após um upload, tente o comando novamente. O sistema garante que os downloads sejam bem-sucedidos por completo ou falhem explicitamente. Downloads parciais ou corrompidos não ocorrem silenciosamente.
Incompatibilidades
Os buckets zonais são incompatíveis com as seguintes ferramentas, operações, produtos e metadados:
Ferramentas
Gravações usando a API XML ou a API JSON
Uploads de várias partes da API XML
Gravações para objetos não anexáveis usando o gRPC
Proteção de dados e recuperação de desastres
Controle de versões dos objetos
Fazer a exclusão reversível
Gerenciamento de dados
Rapid Cache
Classe automática
Bloqueio do bucket
Como criar objetos
Retenções de objetos
A ação
SetStorageClassdo gerenciamento do ciclo de vida de objetosBloqueio de retenção de objetos
Como realocar buckets
Uploads recuperáveis
Como reescrever objetos
Pagamentos do requerente
Controle de acesso
Listas de controle de acesso (ACLs) no nível do objeto
Configurações do CORS
Chave de criptografia fornecida pelo cliente (CSEK)
Chaves HMAC
Metadados
Os objetos em buckets zonais não têm um hash MD5.
As propriedades de metadados associadas a recursos e produtos não compatíveis não aparecem na representação de recursos de um bucket zonal ou um objeto anexável ou não podem ser gravadas. Exemplo:
As propriedades de metadados
softDeleteTimeehardDeleteTimenão aparecem na representação de recursos do recursoObjectsporque a exclusão reversível não é compatível com objetos em buckets zonais.Os metadados
storageClassde objetos em buckets zonais sempre têm um valor deRAPIDe não podem ser reescritos porque os buckets zonais precisam sempre usar a classe de armazenamento Rapid Storage.
Cotas
Cada zona por projeto tem uma cota de bytes de armazenamento. Cada zona por projeto também tem uma cota de saída do Cloud Storage para os Serviços do Google. Para saber quanta cota de armazenamento ou saída de dados está disponível, consulte a página Cotas e limites do sistema. Para saber como solicitar mais cota, consulte Gerenciar suas cotas.
Práticas recomendadas
Para otimizar o desempenho ao usar buckets zonais com o Cloud Storage FUSE, mantenha um identificador de arquivo aberto para os objetos ativados e use-o para várias operações. Isso resulta em um desempenho melhor porque permite que o Cloud Storage FUSE evite a execução de viagens de ida e volta desnecessárias na rede por leitura repetida.
A seguir
- Saiba como criar buckets zonais.
- Saiba como usar objetos em buckets zonais.