Procedimientos para montar un contenedor de Azure Blob Storage en Linux con BlobFuse2
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:
Procedimientos para instalar BlobFuse2
Tiene dos opciones para instalar BlobFuse2:
- Instalar BlobFuse2 desde los repositorios de software de Microsoft para Linux: este es el método de instalación preferido. BlobFuse2 está disponible en los repositorios para varias distribuciones comunes de Linux.
- Compilar los archivos binarios de BlobFuse2 a partir del código fuente: puede compilar los archivos binarios de BlobFuse2 a partir del código fuente si no está disponible en los repositorios para su distribución.
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
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
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:
Instale las dependencias:
Instale Git:
sudo apt-get install git
Instale las dependencias de BlobFuse2.
En Ubuntu:
sudo apt-get install libfuse3-dev fuse3 -y
Clone el repositorio:
sudo git clone https://github.com/Azure/azure-storage-fuse/ sudo cd ./azure-storage-fuse sudo git checkout main
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:
- Configuración de los valores de BlobFuse2
- Archivo de configuración de BlobFuse2
- Variables de entorno de BlobFuse2
- Comandos de montaje de BlobFuse2
Para configurar BlobFuse2 para el montaje:
- Configure el almacenamiento en caché.
- Cree un directorio vacío para montar el contenedor de blobs.
- 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 1 | NFS 3.0 1 | SFTP 1 |
---|---|---|---|---|
De uso general estándar, v2 | ||||
Blobs en bloques Premium |
1 Azure Data Lake Storage, el protocolo Network File System (NFS) 3.0 y el protocolo SSH File Transfer Protocol (SFTP) requieren una cuenta de almacenamiento con un espacio de nombres jerárquico habilitado.