Como montar o Armazenamento de Blobs do Azure como um sistema de arquivos com o BlobFuse v1

Importante

BlobFuse2 é a versão mais recente do BlobFuse e tem muitas melhorias significativas em relação à versão discutida neste artigo, BlobFuse v1. Para saber mais sobre as melhorias feitas no BlobFuse2, consulte a lista de aprimoramentos do BlobFuse2.

BlobFuse é um driver de sistema de arquivos virtual para o Armazenamento de Blobs do Azure. O BlobFuse permite que você acesse seus dados de blob de bloco existentes em sua conta de armazenamento através do sistema de arquivos Linux. BlobFuse usa o esquema de diretório virtual com a barra '/' como um delimitador.

Este guia mostra como usar o BlobFuse v1 e montar um contêiner de Armazenamento de Blob no Linux e acessar dados. Para saber mais sobre o BlobFuse v1, consulte o readme e o wiki.

Aviso

O BlobFuse não garante 100% de conformidade com POSIX, pois simplesmente traduz solicitações em APIs REST de Blob. Por exemplo, as operações de renomeação são atômicas no POSIX, mas não no BlobFuse. Para obter uma lista completa das diferenças entre um sistema de arquivos nativo e o BlobFuse, visite o repositório de código-fonte BlobFuse.

Instale o BlobFuse v1 no Linux

Os binários BlobFuse estão disponíveis nos repositórios de software da Microsoft para Linux para distribuições Ubuntu, Debian, SUSE, Oracle Linux e RHEL. Para instalar o BlobFuse nessas distribuições, configure um dos repositórios da lista. Você também pode criar os binários a partir do código-fonte seguindo as etapas de instalação do Armazenamento do Azure se não houver binários disponíveis para sua distribuição.

BlobFuse é publicado no repositório Linux para as versões do Ubuntu: 16.04, 18.04 e 20.04, versões RHEL: 7.5, 7.8, 7.9, 8.0, 8.1, 8.2, versões Debian: 9.0, 10.0, versão SUSE: 15, Oracle Linux 8.1. Execute este comando para certificar-se de que você tem uma dessas versões implantadas:

cat /etc/*-release

Configurar o repositório de pacotes da Microsoft

Configure o repositório de pacotes Linux para produtos Microsoft.

Como exemplo, em uma distribuição Redhat Enterprise Linux 8:

sudo rpm -Uvh https://packages.microsoft.com/config/rhel/8/packages-microsoft-prod.rpm

Da mesma forma, altere o URL para .../rhel/7/... apontar para uma distribuição Redhat Enterprise Linux 7.

Instalar o BlobFuse v1

sudo yum install blobfuse

Prepare-se para a montagem

O BlobFuse fornece um desempenho semelhante ao nativo ao exigir um caminho temporário no sistema de arquivos para armazenar em buffer e armazenar em cache todos os arquivos abertos. Para esse caminho temporário, escolha o disco com melhor desempenho ou use um ramdisk para obter o melhor desempenho.

Nota

BlobFuse armazena todo o conteúdo do arquivo aberto no caminho temporário. Certifique-se de ter espaço suficiente para acomodar todos os arquivos abertos.

(Opcional) Usar um ramdisk para o caminho temporário

O exemplo a seguir cria um ramdisk de 16 GB e um diretório para BlobFuse. Escolha o tamanho com base nas suas necessidades. Este ramdisk permite que o BlobFuse abra ficheiros até 16 GB de tamanho.

sudo mkdir /mnt/ramdisk
sudo mount -t tmpfs -o size=16g tmpfs /mnt/ramdisk
sudo mkdir /mnt/ramdisk/blobfusetmp
sudo chown <youruser> /mnt/ramdisk/blobfusetmp

Usar um SSD como caminho temporário

No Azure, você pode usar os discos efêmeros (SSD) disponíveis em suas VMs para fornecer um buffer de baixa latência para BlobFuse. Dependendo do agente de provisionamento usado, o disco efêmero seria montado em '/mnt' para cloud-init ou '/mnt/resource' para VMs waagent.

Verifique se o usuário tem acesso ao caminho temporário:

sudo mkdir /mnt/resource/blobfusetmp -p
sudo chown <youruser> /mnt/resource/blobfusetmp

Autorizar o acesso à sua conta de armazenamento

Você pode autorizar o acesso à sua conta de armazenamento usando a chave de acesso da conta, uma assinatura de acesso compartilhado, uma identidade gerenciada ou uma entidade de serviço. As informações de autorização podem ser fornecidas na linha de comando, em um arquivo de configuração ou em variáveis de ambiente. Para obter detalhes, consulte Configurações de autenticação válidas no Leiame BlobFuse.

Por exemplo, suponha que você esteja autorizando com as chaves de acesso da conta e armazenando-as em um arquivo de configuração. O arquivo de configuração deve ter o seguinte formato:

accountName myaccount
accountKey storageaccesskey
containerName mycontainer
authType Key

O accountName é o nome da sua conta de armazenamento e não o URL completo. Você precisa atualizar myaccount, storageaccesskeye mycontainer com suas informações de armazenamento.

Crie este arquivo usando:

sudo touch /path/to/fuse_connection.cfg

Depois de criar e editar esse arquivo, certifique-se de restringir o acesso para que nenhum outro usuário possa lê-lo.

sudo chmod 600 /path/to/fuse_connection.cfg

Nota

Se você criou o arquivo de configuração no Windows, certifique-se de executar dos2unix para limpar e converter o arquivo para o formato Unix.

Criar um diretório vazio para montagem

sudo mkdir ~/mycontainer

Montagem

Nota

Para obter uma lista completa de opções de montagem, verifique o repositório BlobFuse.

Para montar o BlobFuse, execute o seguinte comando com seu usuário. Este comando monta o contêiner especificado em '/path/to/fuse_connection.cfg' no local '/mycontainer'.

sudo blobfuse ~/mycontainer --tmp-path=/mnt/resource/blobfusetmp  --config-file=/path/to/fuse_connection.cfg -o attr_timeout=240 -o entry_timeout=240 -o negative_timeout=120

Nota

Se você usa uma conta ADLS, você deve incluir --use-adls=true.

Agora você deve ter acesso aos seus blobs de bloco por meio das APIs regulares do sistema de arquivos. O usuário que monta o diretório é a única pessoa que pode acessá-lo, por padrão, o que protege o acesso. Para permitir o acesso a todos os usuários, você pode montar através da opção -o allow_other.

sudo cd ~/mycontainer
sudo mkdir test
sudo echo "hello world" > test/blob.txt

Persistir a montagem

Para saber como persistir a montagem, consulte Persistindo no wiki BlobFuse.

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.

Próximos passos