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

Importante

BlobFuse2 é a versão mais recente do BlobFuse e tem muitas melhorias significativas sobre a versão discutida neste artigo, BlobFuse v1. Para saber mais sobre as melhorias feitas no BlobFuse2, consulte a lista de melhorias blobFuse2. BlobFuse2 está atualmente em pré-visualização e pode não ser adequado para cargas de trabalho de produção.

BlobFuse é um controlador de sistema de ficheiros virtual para Armazenamento de Blobs do Azure. O BlobFuse permite-lhe aceder aos dados de blob de bloco existentes na sua conta de armazenamento através do sistema de ficheiros Linux. BlobFuse usa o esquema de diretório virtual com o "/" de corte avançado como umlimiter.

Este guia mostra-lhe como usar BlobFuse v1 e montar um recipiente blob storage em Linux e dados de acesso. Para saber mais sobre BlobFuse v1, consulte o readme e wiki.

Aviso

A BlobFuse não garante o cumprimento 100% posix, uma vez que simplesmente traduz pedidos em APIs Blob REST. Por exemplo, as operações de renome são atómicas em POSIX, mas não em BlobFuse. Para obter uma lista completa de diferenças entre um sistema de ficheiros nativo e BlobFuse, visite o repositório de código fonte BlobFuse.

Instale BlobFuse v1 no Linux

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

BlobFuse é publicado no repo Linux para versões Ubuntu: 16.04, 18.04, e 20.04, versões RHEL: 7.5, 7.8, 7.9, 8.0, 8.1, 8.2, CentOS versões: 7.0, 8.0, Versões Debian: 9.0, 10.0, versão SUSE: 15, Oracle Linux 8.1. Executar este comando para se certificar de que tem uma dessas versões implantadas:

lsb_release -a

Configure o repositório do pacote Microsoft

Configure o Repositório de Pacotes Linux para produtos Microsoft.

Como exemplo, numa 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.

Outro exemplo sobre uma distribuição Ubuntu 20.04:

wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
sudo apt-get update

Da mesma forma, altere o URL para .../ubuntu/16.04/... ou .../ubuntu/18.04/... para referência outra versão Ubuntu.

Instalar BlobFuse v1

Numa distribuição Ubuntu/Debian:

sudo apt-get install blobfuse

Numa distribuição redhat Enterprise Linux:

sudo yum install blobfuse

Numa distribuição SUSE:

sudo zypper install blobfuse

Preparar para montagem

BlobFuse fornece um desempenho nativo, exigindo um caminho temporário no sistema de ficheiros para tamponar e cache de quaisquer ficheiros abertos. Para este percurso temporário, escolha o disco mais performante ou use um ramdisk para melhor desempenho.

Nota

BlobFuse armazena todos os conteúdos de ficheiros abertos no caminho temporário. Certifique-se de ter espaço suficiente para acomodar todos os ficheiros abertos.

(Opcional) Use 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

Use um SSD como caminho temporário

Em Azure, pode utilizar os discos efémeros (SSD) disponíveis nos seus VMs para fornecer um tampão de baixa latência para blobFuse. Dependendo do agente de provisionamento utilizado, o disco efémero seria montado em '/mnt' para init de nuvem ou '/mnt/recurso' para os VM waagent.

Certifique-se de que o seu utilizador tem acesso ao caminho temporário:

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

Autorize o acesso à sua conta de armazenamento

Pode autorizar o acesso à sua conta de armazenamento utilizando a chave de acesso à conta, uma assinatura de acesso partilhado, uma identidade gerida ou um principal de serviço. As informações de autorização podem ser fornecidas na linha de comando, num ficheiro config ou em variáveis ambientais. Para mais informações, consulte configurações de autenticação válidas na leitura BlobFuse.

Por exemplo, suponha que está a autorizar com as chaves de acesso à conta e a guardá-las num ficheiro config. O ficheiro config deve ter o seguinte formato:

accountName myaccount
accountKey storageaccesskey
containerName mycontainer

O accountName nome da sua conta de armazenamento, e não a URL completa.

Crie este ficheiro utilizando:

touch /path/to/fuse_connection.cfg

Depois de ter criado e editado este ficheiro, certifique-se de restringir o acesso para que nenhum outro utilizadores possa lê-lo.

chmod 600 /path/to/fuse_connection.cfg

Nota

Se tiver criado o ficheiro de configuração no Windows, certifique-se de que corre dos2unix para higienizar e converter o ficheiro para o formato Unix.

Criar um diretório vazio para montagem

mkdir ~/mycontainer

Montar

Nota

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

Para montar blobFuse, executar o seguinte comando com o seu utilizador. Este comando monta o recipiente especificado em '/caminho/para/fuse_connection.cfg' no local '/mycontainer'.

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 utilizar uma conta ADLS, deve incluir --use-adls=true.

Deverá agora ter acesso às suas bolhas de bloco através das APIs do sistema de ficheiros regulares. O utilizador que monta o diretório é a única pessoa que pode aceder ao mesmo, por padrão, que assegura o acesso. Para permitir o acesso a todos os utilizadores, pode montar através da opção -o allow_other.

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

Persistir o monte

Para aprender a persistir o monte, consulte Persisting in the BlobFuse wiki.

Suporte de funcionalidades

O suporte a esta funcionalidade pode ser impactado através da ativação do protocolo Data Lake Storage Gen2, do Sistema de Ficheiros de Rede (NFS) 3.0 ou do Protocolo de Transferência de Ficheiros SSH (SFTP).

Se ativou alguma destas capacidades, consulte o suporte do recurso Blob Storage nas contas de Armazenamento Azure para avaliar o suporte a esta funcionalidade.

Passos seguintes