O ossfs monta um bucket do Alibaba Cloud Object Storage Service (OSS) como sistema de arquivos local, permitindo que você gerencie dados do OSS com operações padrão de sistema de arquivos.
Atualização de versão
Para cargas de trabalho de treinamento de IA, inferência e simulação de condução autônoma, use o ossfs 2.0. O ossfs 2.0 é a alternativa recomendada quando você precisa de desempenho superior ao que um SDK do OSS ou o Acelerar o treinamento de modelos usando o OSS Connector for AI/ML podem oferecer.
O ossfs 2.0 oferece:
Compatibilidade básica com POSIX, baseada nas capacidades de leitura e gravação do lado do servidor OSS.
Leituras e gravações sequenciais de alto desempenho para arquivos grandes por meio da otimização de ponta a ponta do caminho de E/S.
Carregamento simultâneo eficiente de arquivos pequenos com gerenciamento otimizado de metadados.
Use o ossfs 1.0 quando sua carga de trabalho envolver principalmente operações POSIX padrão de sistema de arquivos em um sistema Linux e não exigir o desempenho de alta taxa de transferência que o ossfs 2.0 oferece.
ossfs
O ossfs é construído sobre o FUSE (filesystem in userspace) e monta um bucket do OSS como sistema de arquivos local no Linux. Ele funciona bem para cargas de trabalho como arquivamento de logs, distribuição de conteúdo estático, acesso a data lakes e trabalhos em lote que leem ou gravam arquivos sequencialmente.
O ossfs oferece suporte a:
A maioria das operações POSIX de sistema de arquivos, incluindo upload e download de arquivos e diretórios, e configuração de permissões de usuário.
Upload multipart e upload resumível por padrão.
Verificação MD5 para garantir a integridade dos dados.
Pré-requisitos
O ossfs é executado em máquinas compatíveis com FUSE. Pacotes de instalação pré-compilados estão disponíveis para Ubuntu, CentOS e Alibaba Cloud Linux. Para outros ambientes, compile o ossfs a partir do código-fonte.
-
Linux
CentOS 7.0 ou posterior.
Ubuntu 20.04 ou posterior.
Alibaba Cloud Linux 2 ou posterior.
-
FUSE 2.8.4 ou posterior
Execute o comando
fusermount -Vpara verificar a versão do FUSE. Uma saída comofusermount version: 2.9.2confirma que o requisito foi atendido.
Limitações
Como o ossfs mapeia chamadas de API de armazenamento de objetos para a semântica de sistema de arquivos POSIX, algumas operações se comportam de maneira diferente em comparação com um disco local. Esteja ciente das seguintes limitações antes de montar um bucket:
-
Não é adequado para cargas de trabalho altamente simultâneas de leitura e gravação mistas.
nullLeituras aleatórias e todas as gravações enviam os dados para o disco primeiro. Em cargas de trabalho altamente simultâneas de leitura/gravação mistas, a E/S de disco se torna o gargalo tanto para leituras quanto para gravações.
Solicitações simultâneas de leitura e gravação competem pela mesma largura de banda, reduzindo a taxa de transferência geral.
Links físicos não são compatíveis. Os objetos do OSS não possuem o conceito de múltiplas entradas de diretório apontando para os mesmos dados.
Não monte buckets que usam as classes de armazenamento Archive, Cold Archive ou Deep Cold Archive. Essas classes exigem a restauração de dados antes do acesso, o que é incompatível com a semântica de sistema de arquivos.
Editar um arquivo faz com que o ossfs recarregue o arquivo inteiro, porque o OSS não oferece suporte a gravações parciais in-place.
Operações de metadados como
list directorysão lentas. Cada chamada requer uma ida e volta ao servidor OSS, diferentemente de um sistema de arquivos local, onde as listagens de diretório são armazenadas em cache na memória.Renomear um arquivo ou diretório pode falhar, o que pode causar inconsistência de dados. O OSS não oferece suporte a renomeação atômica; o ossfs emula a operação com uma sequência de copiar e excluir que pode deixar um estado parcial se for interrompida.
Se vários clientes montarem o mesmo bucket do OSS e gravarem no mesmo arquivo simultaneamente, a consistência dos dados não é garantida.
Conceda permissões totais à sua AccessKey no bucket ou prefixo de destino. Se as permissões totais não forem possíveis, conceda no mínimo:
oss:GetObject,oss:ListObjects,oss:DeleteObject,oss:PutObject,oss:AbortMultipartUploadeoss:ListMultipartUploads. Permissões insuficientes causam falhas de montagem ou comportamento inesperado.
Próximos passos
Antes de montar um bucket, Instalar o ossfs 1.0 e Configurar o ossfs 1.0. Após a conclusão da configuração, Montar um bucket em um sistema Linux local.