Procedimientos para montar un contenedor de Azure Blob Storage en Linux con BlobFuse2

Precaución

En este artículo se hace referencia a CentOS, una distribución de Linux que está cerca de su estado Final de ciclo vida (EOL). Tenga en cuenta su uso y planifique en consecuencia. Para más información, consulte la Guía de fin de ciclo de vida de CentOS.

En este artículo se muestra cómo instalar y configurar BlobFuse2, montar un contenedor de blobs de Azure y acceder a los datos del contenedor. Los pasos básicos son:

Instalación de BlobFuse2

Configuración de BlobFuse2

Montaje de un contenedor de blobs

Acceso a los datos

Procedimientos para instalar BlobFuse2

Tiene dos opciones para instalar BlobFuse2:

Opción 1: Instalación de BlobFuse2 desde los repositorios de software de Microsoft para Linux

Para ver las distribuciones admitidas, consulte Versiones de BlobFuse2.

Para información sobre la compatibilidad con libfuse, consulte Archivo Léame de BlobFuse2.

Para comprobar la versión de Linux, ejecute el siguiente comando:

cat /etc/*-release

Si no hay archivos binarios disponibles para la distribución, puede utilizar Opción 2: Compilar los archivos binarios a partir del código fuente.

Para instalar BlobFuse2 desde los repositorios, haga lo siguiente:

Configurar el repositorio de paquetes de Microsoft

Instalación de BlobFuse2

Configurar el repositorio de paquetes de Microsoft

Configure el repositorio de paquetes de Linux para productos de Microsoft.

Por ejemplo, en una distribución Redhat Enterprise Linux 8:

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

Del mismo modo, cambie la dirección URL a .../rhel/7/... para que señale a una distribución Redhat Enterprise Linux 7.

Instalación de BlobFuse2

sudo yum install blobfuse2

Opción 2: Compilación de los archivos binarios a partir del código fuente

Para crear los archivos binarios de BlobFuse2 a partir del código fuente:

  1. Instale las dependencias:

    1. Instale Git:

      sudo apt-get install git
      
    2. Instale las dependencias de BlobFuse2.

      En Ubuntu:

      sudo apt-get install libfuse3-dev fuse3 -y
      
  2. Clone el repositorio:

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

    go get
    go build -tags=fuse3
    

Sugerencia

Si necesita instalar Go, consulte Descarga e instalación de Go.

Procedimientos para configurar BlobFuse2

Puede configurar BlobFuse2 mediante varias opciones. Algunos de los valores de configuración típicos incluyen:

  • Ubicación y opciones de registro
  • Ruta de acceso temporal a archivos para el almacenamiento en caché
  • Información sobre la cuenta de almacenamiento de Azure y el contenedor de blobs que se van a montar

Los valores se pueden configurar en un archivo de configuración YAML, mediante variables de entorno o como parámetros pasados a los comandos BlobFuse2. El método preferido es usar el archivo de configuración.

Para más información sobre cada uno de los parámetros de configuración de BlobFuse2 y cómo especificarlos, consulte estos artículos:

Para configurar BlobFuse2 para el montaje:

  1. Configure el almacenamiento en caché.
  2. Cree un directorio vacío para montar el contenedor de blobs.
  3. Autorice el acceso a la cuenta de almacenamiento.

Configuración del almacenamiento en caché

BlobFuse2 proporciona un rendimiento similar al nativo mediante técnicas de almacenamiento en caché de archivos locales. La configuración y el comportamiento del almacenamiento en caché varían, en función de si se transmiten archivos grandes o se accede a archivos más pequeños.

Configuración del almacenamiento en caché para la transmisión de archivos grandes

BlobFuse2 admite la transmisión en operaciones de lectura y escritura como alternativa al almacenamiento en caché en disco de los archivos. En el modo de transmisión, BlobFuse2 almacena en caché bloques de archivos grandes en memoria tanto para lectura como para escritura. Las opciones de configuración relacionadas con el almacenamiento en caché para la transmisión se encuentran en los valores stream: del archivo de configuración:

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 empezar a trabajar rápidamente con algunas opciones de configuración en un escenario de transmisión básica, consulte el archivo de configuración de transmisión de ejemplo.

Configuración del almacenamiento en caché para archivos más pequeños

Los archivos más pequeños se almacenan en caché en una ruta de acceso temporal que se especifica en file_cache: en el archivo de configuración:

file_cache:
    path: <path to local disk cache>

Nota:

BlobFuse2 almacena todo el contenido de los archivos abiertos en la ruta de acceso temporal. Asegúrese de que tiene espacio suficiente para dar cabida a todos los archivos abiertos.

Tiene tres opciones comunes para configurar la ruta de acceso temporal para el almacenamiento en caché de archivos:

Uso de un disco local de alto rendimiento

Si usa un disco local existente para el almacenamiento en caché de archivos, elija un disco que proporcione el mejor rendimiento posible, como un disco de estado sólido (SSD).

Uso de un disco RAM

En el ejemplo siguiente, se crea un disco RAM de 16 GB y un directorio para BlobFuse2. Seleccione un tamaño de nodo que cumpla sus requisitos. BlobFuse2 usa el disco RAM para abrir archivos de hasta 16 GB.

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
Uso de un SSD

En Azure, puede usar los discos efímeros SSD disponibles en las máquinas virtuales para proporcionar un búfer de baja latencia para BlobFuse2. En función del agente de aprovisionamiento que use, monte el disco efímero en /mnt para cloud-init o en /mnt/resource para máquinas virtuales del agente Linux de Microsoft Azure (waagent).

Asegúrese de que el usuario tenga acceso a la ruta de acceso temporal:

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

Creación de un directorio vacío para montar el contenedor de blobs

Para crear un directorio vacío para montar el contenedor de blobs:

mkdir ~/mycontainer

Autorización del acceso a la cuenta de almacenamiento

Debe conceder acceso a la cuenta de almacenamiento para el usuario que monta el contenedor. Las formas más comunes de conceder acceso son mediante una de las siguientes opciones:

  • Clave de acceso de cuenta de almacenamiento
  • Firma de acceso compartido
  • Identidad administrada
  • Entidad de servicio

La información de autorización se proporciona en un archivo de configuración o en variables de entorno. Para más información, consulte Configuración de los valores de BlobFuse2.

Procedimientos para montar un contenedor de blobs

Importante

BlobFuse2 no admite rutas de montaje superpuestas. Al ejecutar varias instancias de BlobFuse2, asegúrese de que cada una tenga un punto de montaje único y no superpuesto.

BlobFuse2 no admite la coexistencia con NFS en la misma ruta de montaje. Los resultados de ejecutar BlobFuse2 en la misma ruta de montaje que NFS no están definidos y podrían provocar daños en los datos.

Para montar un contenedor de blobs en bloques de Azure mediante BlobFuse2, ejecute el siguiente comando. Este comando monta el contenedor especificado en ./config.yaml en la ubicación ~/mycontainer:

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

Nota:

Para ver una lista completa de opciones de montaje, consulte Comandos de montaje de BlobFuse2.

Ahora debería tener acceso a los blobs en bloques mediante las API del sistema de archivos de Linux y las asociadas. Para probar la implementación, pruebe a crear un nuevo directorio y archivo:

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

Procedimientos para acceder a los datos

Por lo general, puede trabajar con el almacenamiento montado en BlobFuse2 como lo haría con el sistema de archivos nativo de Linux. Se usa el esquema de directorio virtual con una barra diagonal (/) como delimitador en la ruta de acceso del archivo y se admiten operaciones básicas del sistema de archivos, como mkdir, opendir, readdir, rmdir, open, read, create, write, close, unlink, truncate, stat y rename.

Sin embargo, debe tener en cuenta algunas diferencias en la funcionalidad que son importantes:

Compatibilidad de características

En esta tabla se muestra cómo se admite esta característica en la cuenta y el efecto en la compatibilidad al habilitar determinadas funcionalidades:

Tipo de cuenta de almacenamiento Blob Storage (compatibilidad predeterminada) Data Lake Storage Gen2 1 NFS 3.0 1 SFTP 1
De uso general estándar, v2 Sí Sí Sí Sí
Blobs en bloques Premium Sí Sí Sí Sí

1 Azure Data Lake Storage Gen2, el protocolo Network File System (NFS) 3.0 y la compatibilidad con el protocolo de transferencia de archivos SSH (SFTP) requieren una cuenta de almacenamiento con un espacio de nombres jerárquico habilitado.

Consulte también

Pasos siguientes