Como montar um contêiner de Armazenamento de Blob do Azure no Linux com BlobFuse2

Atenção

Este artigo faz referência ao CentOS, uma distribuição Linux que está se aproximando do status de Fim da Vida Útil (EOL). Por favor, considere o seu uso e planeje de acordo. Para obter mais informações, consulte as diretrizes de Fim da Vida Útil do CentOS.

Este artigo mostra como instalar e configurar o BlobFuse2, montar um contêiner de blob do Azure e acessar dados no contêiner. Os passos básicos são:

Instalar o BlobFuse2

Configurar BlobFuse2

Monte um contêiner de blob

Dados de acesso

Como instalar o BlobFuse2

Você tem duas opções para instalar o BlobFuse2:

Opção 1: Instalar o BlobFuse2 a partir dos repositórios de software da Microsoft para Linux

Para ver as distribuições suportadas, consulte Versões BlobFuse2.

Para obter informações sobre o suporte a libfuse, consulte o Leiame BlobFuse2.

Para verificar a sua versão do Linux, execute o seguinte comando:

cat /etc/*-release

Se nenhum binário estiver disponível para sua distribuição, você pode Opção 2: Construir os binários a partir do código-fonte.

Para instalar o BlobFuse2 a partir dos repositórios:

Configurar o repositório de pacotes da Microsoft

Instalar o BlobFuse2

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 BlobFuse2

sudo yum install blobfuse2

Opção 2: Construir os binários a partir do código-fonte

Para criar os binários BlobFuse2 a partir do código-fonte:

  1. Instale as dependências:

    1. Instale o Git:

      sudo apt-get install git
      
    2. Instale as dependências do BlobFuse2.

      No Ubuntu:

      sudo apt-get install libfuse3-dev fuse3 -y
      
  2. Clone o repositório:

    sudo git clone https://github.com/Azure/azure-storage-fuse/
    sudo cd ./azure-storage-fuse
    sudo git checkout main
    
  3. Construir BlobFuse2:

    go get
    go build -tags=fuse3
    

Gorjeta

Se precisar de instalar o Go, consulte Transferir e instalar o Go.

Como configurar o BlobFuse2

Você pode configurar BlobFuse2 usando várias configurações. Algumas das configurações típicas incluem:

  • Local e opções de registro
  • Caminho de arquivo temporário para cache
  • Informações sobre a conta de armazenamento do Azure e o contêiner de blob a ser montado

As configurações podem ser definidas em um arquivo de configuração YAML, usando variáveis de ambiente, ou como parâmetros passados para os comandos BlobFuse2. O método preferido é usar o arquivo de configuração.

Para obter detalhes sobre cada um dos parâmetros de configuração para BlobFuse2 e como especificá-los, consulte estes artigos:

Para configurar o BlobFuse2 para montagem:

  1. Configure o cache.
  2. Crie um diretório vazio para montar o contêiner de blob.
  3. Autorize o acesso à sua conta de armazenamento.

Configurar a colocação em cache

BlobFuse2 fornece desempenho nativo usando técnicas de cache de arquivos locais. A configuração e o comportamento do cache variam, dependendo se você está transmitindo arquivos grandes ou acessando arquivos menores.

Configurar o cache para streaming de arquivos grandes

BlobFuse2 suporta streaming para operações de leitura e gravação como uma alternativa ao cache de disco para arquivos. No modo de streaming, o BlobFuse2 armazena em cache blocos de arquivos grandes na memória, tanto para leitura quanto para gravação. As definições de configuração relacionadas ao cache para streaming estão sob as stream: configurações em seu arquivo de configuração:

stream:
    block-size-mb:
        For read only mode, the size of each block to be cached in memory while streaming (in MB)
        For read/write mode, the size of newly created blocks
    max-buffers: The total number of buffers to store blocks in
    buffer-size-mb: The size for each buffer

Para começar rapidamente com algumas configurações para um cenário básico de streaming, consulte o arquivo de configuração de streaming de exemplo.

Configurar o cache para arquivos menores

Arquivos menores são armazenados em cache em um caminho temporário especificado no file_cache: arquivo de configuração:

file_cache:
    path: <path to local disk cache>

Nota

BlobFuse2 armazena todo o conteúdo do arquivo aberto no caminho temporário. Certifique-se de que tem espaço suficiente para conter todos os ficheiros abertos.

Você tem três opções comuns para configurar o caminho temporário para cache de arquivos:

Usar um disco local de alto desempenho

Se você usar um disco local existente para cache de arquivos, escolha um disco que ofereça o melhor desempenho possível, como um disco de estado sólido (SSD).

Usar um disco RAM

O exemplo a seguir cria um disco RAM de 16 GB e um diretório para BlobFuse2. Escolha um tamanho que atenda às suas necessidades. BlobFuse2 usa o disco RAM para abrir arquivos de até 16 GB de tamanho.

sudo mkdir /mnt/ramdisk
sudo mount -t tmpfs -o size=16g tmpfs /mnt/ramdisk
sudo mkdir /mnt/ramdisk/blobfuse2tmp
sudo chown <youruser> /mnt/ramdisk/blobfuse2tmp
Utilizar uma SSD

No Azure, você pode usar os discos efêmeros SSD que estão disponíveis em suas VMs para fornecer um buffer de baixa latência para BlobFuse2. Dependendo do agente de provisionamento usado, monte o disco efêmero em /mnt para cloud-init ou /mnt/resource para VMs do Microsoft Azure Linux Agent (waagent).

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

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

Criar um diretório vazio para montar o contêiner de blob

Para criar um diretório vazio para montar o contêiner de blob:

mkdir ~/mycontainer

Autorizar o acesso à sua conta de armazenamento

Você deve conceder acesso à conta de armazenamento para o usuário que monta o contêiner. As maneiras mais comuns de conceder acesso são usando uma das seguintes opções:

  • Chave de acesso da conta de armazenamento
  • Assinatura de acesso partilhado
  • Identidade gerida
  • Service principal (Principal de serviço)

Você pode fornecer informações de autorização em um arquivo de configuração ou em variáveis de ambiente. Para obter mais informações, consulte Definir configurações para BlobFuse2.

Como montar um contêiner de blob

Importante

BlobFuse2 não suporta caminhos de montagem sobrepostos. Se você executar várias instâncias de BlobFuse2, certifique-se de que cada instância tenha um ponto de montagem exclusivo e não sobreposto.

BlobFuse2 não suporta coexistência com NFS no mesmo caminho de montagem. Os resultados da execução de BlobFuse2 no mesmo caminho de montagem que o NFS são indefinidos e podem resultar em corrupção de dados.

Para montar um contêiner de blob de bloco do Azure usando BlobFuse2, execute o seguinte comando. O comando monta o contêiner especificado no ./config.yaml local ~/mycontainer:

sudo blobfuse2 mount ~/mycontainer --config-file=./config.yaml

Nota

Para obter uma lista completa das opções de montagem, consulte Comandos de montagem BlobFuse2.

Agora você deve ter acesso aos seus blobs de bloco através do sistema de arquivos Linux e APIs relacionadas. Para testar sua implantação, tente criar um novo diretório e arquivo:

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

Como aceder aos dados

Geralmente, você pode trabalhar com o armazenamento montado no BlobFuse2 como faria com o sistema de arquivos Linux nativo. Ele usa o esquema de diretório virtual com uma barra (/) como um delimitador no caminho do arquivo e suporta operações básicas do sistema de arquivos, como mkdir, opendir, readdir, rmdir, open, readunlinkcreateclosetruncatewritestate .rename

No entanto, você deve estar ciente de algumas diferenças importantes na funcionalidade:

Suporte de funcionalidades

Esta tabela mostra como esse recurso é suportado em sua conta e o efeito no suporte quando você habilita determinados recursos:

Storage account type Armazenamento de Blob (suporte padrão) Armazenamento Data Lake Gen2 1 NFS 3,0 1 SFTP 1
Padrão de uso geral v2 Sim Sim Sim Sim
Blobs de bloco premium Sim Sim Sim Sim

1 O suporte do Azure Data Lake Storage Gen2, do Network File System (NFS) 3.0 e do SSH File Transfer Protocol (SFTP) requer uma conta de armazenamento com um namespace hierárquico habilitado.

Consulte também

Próximos passos