O ossfs 2.0 é um cliente que oferece acesso de alto desempenho ao Object Storage Service (OSS) montando-o como um sistema de arquivos. Ele proporciona excelente desempenho de leitura e gravação sequencial e aproveita ao máximo a alta largura de banda do OSS.
Melhorias de desempenho
O ossfs 2.0 traz melhorias significativas de desempenho em relação ao ossfs 1.0 nas operações de leitura e gravação sequencial, além de leituras de objetos pequenos com alta concorrência. Para obter mais informações sobre o desempenho do ossfs 2.0, consulte Performance testing.
Desempenho de gravação sequencial: Em cenários de gravação sequencial de objetos grandes com thread única, o ossfs 2.0 oferece quase 18 vezes a largura de banda do ossfs 1.0.
Desempenho de leitura sequencial: Em cenários de leitura sequencial de objetos grandes com thread única ou múltiplas threads (4 threads), o ossfs 2.0 proporciona mais de 3 vezes a largura de banda do ossfs 1.0.
Desempenho de leitura concorrente de objetos pequenos: Em cenários de leitura de objetos pequenos com alta concorrência (128 threads), o ossfs 2.0 entrega mais de 20 vezes a largura de banda do ossfs 1.0.
Casos de uso
O ossfs 2.0 é ideal para cenários que exigem acesso a armazenamento de alto desempenho, como treinamento de IA, inferência, processamento de big data, direção autônoma e outras cargas de trabalho com uso intensivo de computação. Essas cargas envolvem principalmente leituras sequenciais e aleatórias, gravações sequenciais (apenas anexação) e não requerem semântica POSIX completa.
Ambiente de execução
O ossfs 2.0 é construído com base no Filesystem in Userspace (FUSE).
|
Arquitetura |
Sistema operacional |
Versão |
URL para baixe |
|
x86_64 |
CentOS |
CentOS 7 e CentOS 8 |
|
|
Rocky Linux |
Rocky Linux 9.0 e posteriores |
||
|
Alibaba Cloud Linux |
Alibaba Cloud Linux 2 e posteriores |
||
|
Ubuntu |
Ubuntu 20.04 LTS e versões LTS posteriores |
||
|
Debian |
Debian 11 e posteriores |
||
|
aarch64 |
Alibaba Cloud Linux |
Alibaba Cloud Linux 3 |
Limitações
Requisitos de permissão: O AccessKey usado deve ter permissões totais para o bucket ou prefixo de destino. Permissões insuficientes podem causar falha na operação de montagem ou comportamento inesperado em outras operações.
Limitações de classe de armazenamento: Não recomendamos a montagem de buckets nas classes Archive Storage, Cold Archive Storage ou Deep Cold Archive Storage.
Limitações de nome de objeto e diretório: Os nomes de objetos e diretórios são limitados a 255 caracteres devido a uma restrição do Linux. Objetos ou diretórios no OSS com nomes que excedam esse limite não ficam visíveis no ponto de montagem.
Limitações de leitura de objeto: O ossfs envia objetos recém-gravados para o OSS somente após o fechamento dos descritores de arquivo correspondentes. Ler um objeto antes do fechamento do seu descritor pode causar erro.
Limitações de gravação de objeto: No modo padrão, não há suporte para gravações aleatórias e concorrentes no mesmo objeto. O tamanho padrão da parte é de 8.388.608 bytes (8 MiB), o que limita o tamanho máximo de um objeto gravável a 83.886.080.000 bytes (78,125 GiB). configure o tamanho da parte usando a opção de montagem upload_buffer_size. A partir da v2.0.9, use a opção de montagem temp_dir para ativar o modo de gravação aleatória com base em um diretório temporário local. Esse modo suporta gravações em deslocamentos arbitrários, truncamento para qualquer tamanho e descritores de gravação concorrentes no mesmo objeto.
-
Operações de renomeação de objeto (não atômicas)
Objetos: A operação primeiro copia o objeto source para o destino e depois exclui o objeto source.
Diretórios: A operação copia todos os objetos dentro do diretório source para o destino e, em seguida, exclui os objetos source em massa. Por padrão, a operação de renomeação é limitada a 2 milhões de objetos descendentes. Altere esse limite usando a opção de montagem rename_dir_limit.
Consistência de gravação concorrente: O ossfs 2.0 não garante a consistência dos dados quando vários clientes montam o mesmo bucket e gravam no mesmo objeto simultaneamente.
Compatibilidade com a API POSIX: Parcialmente compatível. Para mais detalhes, consulte POSIX API support.
Recursos
Destaques dos recursos
Oferece compatibilidade básica com POSIX e foca em maximizar o desempenho de leitura e gravação no lado do servidor do oss.
Proporciona desempenho eficiente de leitura e gravação sequencial para objetos grandes por meio da otimização de ponta a ponta do caminho de leitura e gravação.
Permite o carregamento concorrente eficiente de objetos pequenos por meio do gerenciamento otimizado de metadados.
Permite montar automaticamente um bucket do OSS na inicialização do sistema configure o fstab.
Suporte à API POSIX
A tabela a seguir compara o suporte à API POSIX no ossfs 1.0 e no ossfs 2.0.
|
Categoria de recurso |
Operação |
ossfs 1.0 |
ossfs 2.0 |
|
Operações básicas de objeto |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Leitura e gravação de objetos |
|
|
|
|
|
Suporta gravações aleatórias (é necessário configurar um cache de disco) |
Suporta apenas gravações sequenciais por padrão (não requer cache de disco). A partir da v2.0.9, também há suporte para gravações aleatórias (requer cache de disco). |
|
|
|
(permite truncamento para qualquer tamanho) |
Suporta apenas o truncamento de um objeto para comprimento zero por padrão. A partir da v2.0.9, há suporte para truncamento para qualquer tamanho (requer cache de disco). |
|
|
Operações de metadados de objeto |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Operações de diretório |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Permissões e atributos |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Recursos estendidos |
|
|
|
|
|
|
Não suportado por padrão. A partir da v2.0.6, ative esse recurso por meio das opções de montagem. Suporta links simbólicos que apontam para caminhos dentro do ponto de montagem. |
|
|
|
|
|