Skip to main content

Montar S3 MinIO en un servidor

Cuando el minio está activo y funcionando, procederemos a crear un bucket como en el ejemplo que se llama s3bucket.

Ahora vamos a ver como montarlo en una ruta /mnt de nuestro servidor para usarlo como sistema de almacenamiento.

Instalar el cliente S3

Vamos a usar el cliente S3 de Amazon en nuestro servidor. Para ello nos lo descargamos

curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"

Ahora si no lo tenemos, instalamos las utilidades de archivos zip

apt install zip

Y descomprimimos

unzip awscliv2.zip

Ejecutamos la instalación

./aws/install

Y configuramos el cliente de S3

aws configure

Nos pedirá el access key y la clave de nuestro bucket

AWS Access Key ID:
AWS Secret Access Key:
Default region name [None]:
Default output format [None]:

Una vez configurado, ajustaremos la configuración de compatibilidad

aws configure set default.s3.signature_version s3v4

Para comprobar, ejecutaremos un ls en nuestro bucket, al que previamente le habremos subido desde la interfaz web de MinIO un archivo de prueba

root:#aws --endpoint-url http://s3.tecnocratica.net:9000 s3 ls
2023-10-11 18:50:49 prueba.txt
root:#

Instalación de fuse para S3

Instalaremos S3 con fuse para poder usar el sistema de archivos de nuestro bucket

apt install s3fs

Ahora para conectar a nuestro bucket, crearemos un fichero de texto con el Access Key y el Secret Key en el formato siguiente:  accesskey:secretkey

echo k4COvmy9tY4AKjsi0FBk:nuW4UQoPHQdt7LmSCp1hpC4jLTOcIUjgeSkierZq > pass.txt

Cambiaremos permisos por seguridad

chmod 600 pass.txt

Montar el bucket de S3

Creamos una carpeta por ejemplo /mnt/s3bucket

mkdir /mnt/s3bucket

Montamos el bucket

El comando para montar es s3fs

Usaremos los siguientes modificadores

/mnt/s3bucket  la carpeta donde montaremos el bucket

-o 

Bajo estas directivas añadiremos las opciones.

-o bucket=s3bucket

-o passwd_file=pass.txt

-o use_path_request_style 

Esta opción es muy importante para usar el estilo de ficheros que usamos normalmente en Linux

-o host=http://s3.tecnocratica.net:9000

El nombre del host al que nos conectaremos

El comando quedaría así

s3fs /mnt/s3bucket -o bucket=s3bucket -o passwd_file=pass.txt -o use_path_request_style -o host=http://s3.tecnocratica.net:9000

Ahora podemos comprobar con un df-h

root@eduardo:# df -h
Filesystem                Size  Used Avail Use% Mounted on
udev                      3.9G     0  3.9G   0% /dev
tmpfs                     794M  736K  793M   1% /run
/dev/mapper/pbs-root       17G  2.4G   14G  16% /
tmpfs                     3.9G     0  3.9G   0% /dev/shm
tmpfs                     5.0M     0  5.0M   0% /run/lock
copias                     39G   33M   39G   1% /mnt/datastore/copias
tmpfs                     794M     0  794M   0% /run/user/0
s3fs                       16E     0   16E   0% /mnt/s3bucket

Comprobaciones

Si no aparece el punto de montaje, podemos hacer debug añadiendo opciones al comando

s3fs /mnt/s3bucket -o bucket=s3bucket -o passwd_file=pass.txt -o use_path_request_style -o host=http://s3.tecnocratica.net:9000 -o dbglevel=info -f -o curldbg

Esto nos mostrará todos los mensajes de la conexión a fin de depurar

El vídeo explicativo del proceso, lo puedes ver en nuestro canal de Youtube.