Cómo instalar el servidor de almacenamiento de objetos MinIO en Debian 11

Minio es un popular servidor de almacenamiento de objetos de código abierto, autoalojado y compatible con Amazon S3, escrito en Go. Es una alternativa muy útil a AWS S3 si necesitas más control sobre tu servidor de almacenamiento de objetos. Nos permite almacenar fotos, vídeos, archivos de registro, copias de seguridad e imágenes de contenedores/VM. Proporciona un cliente de línea de comandos, una interfaz de navegador y también soporta AMQP. Puedes utilizar Minio en un despliegue a gran escala para la replicación continua de datos.

En este artículo, te mostraré cómo instalar el servidor Minio en Debian 11.

Requisitos previos

  • Un servidor que ejecute Debian 11.
  • Una contraseña de root configurada en el servidor.

Instalar el servidor Minio

En primer lugar, descarga la última versión del binario de Minio utilizando el siguiente comando:

wget https://dl.min.io/server/minio/release/linux-amd64/minio

A continuación, da el permiso de ejecución y mueve el binario de Minio a la ruta del sistema:

chmod +x minio
mv minio /usr/local/bin/

A continuación, crea un usuario dedicado para Minio con el siguiente comando:

useradd -r minio -s /sbin/nologin

A continuación, cambia la propiedad del binario de Minio al usuario minio:

chown minio:minio /usr/local/bin/minio

A continuación, verifica la versión instalada de Minio con el siguiente comando:

minio --version

Obtendrás la siguiente salida:

minio version RELEASE.2022-02-26T02-54-46Z

Crear una partición para el almacenamiento de Minio

A continuación, tendrás que crear una partición GPT en un disco separado. En primer lugar, haz una lista de todos los discos duros conectados con el siguiente comando:

fdisk -l

Deberías ver todos los discos duros conectados en la siguiente salida:

Disk /dev/sda: 50 GiB, 53687091200 bytes, 104857600 sectors
Disk model: QEMU HARDDISK   
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x7d36ef95

Device     Boot Start       End   Sectors Size Id Type
/dev/sda1        2048 104855552 104853505  50G 83 Linux


Disk /dev/sdb: 50 GiB, 53687091200 bytes, 104857600 sectors
Disk model: Volume          
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

A continuación, crea una partición GPT en el disco /dev/sdb con el siguiente comando:

parted -s -a optimal -- /dev/sdb mklabel gpt
parted -s -a optimal -- /dev/sdb mkpart primary 0% 100%
parted -s -- /dev/sdb align-check optimal 1

A continuación, formatea la partición con el siguiente comando:

mkfs.ext4 /dev/sdb1

Obtendrás la siguiente salida:

mke2fs 1.46.2 (28-Feb-2021)
Discarding device blocks: done                            
Creating filesystem with 13106688 4k blocks and 3276800 inodes
Filesystem UUID: bd18a11d-a9d9-44a2-a381-f30ba0798661
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
	4096000, 7962624, 11239424

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (65536 blocks): done
Writing superblocks and filesystem accounting information: done   

A continuación, crea un punto de montaje para el disco Minio.

mkdir /mnt/minio

A continuación, añade la entrada en el archivo /etc/fstab para montar la partición en el punto de montaje:

nano /etc/fstab

Añade la siguiente línea:

/dev/sdb1 /mnt/minio ext4 rw 0 0

Guarda y cierra el archivo y luego monta la partición con el siguiente comando:

mount -a

A continuación, verifica el disco montado utilizando el siguiente comando:

df -h

Deberías ver la siguiente salida:

Filesystem      Size  Used Avail Use% Mounted on
udev            976M     0  976M   0% /dev
tmpfs           199M  388K  198M   1% /run
/dev/sda1        50G  1.6G   46G   4% /
tmpfs           992M     0  992M   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           199M     0  199M   0% /run/user/0
/dev/sdb1        49G   24K   47G   1% /mnt/minio

A continuación, cambia la propiedad del montaje de Minio a minio:

chown minio:minio /mnt/minio

Configurar Minio

A continuación, crea un directorio de configuración de Minio utilizando el siguiente comando:

mkdir /etc/minio

A continuación, cambia la propiedad del directorio de configuración de Minio:

chown minio:minio /etc/minio

A continuación, crea un archivo de configuración de Minio:

nano /etc/default/minio

Añade las siguientes líneas:

MINIO_ACCESS_KEY="minioaccesskey"
MINIO_VOLUMES="/mnt/minio"
MINIO_OPTS="-C /etc/minio --address 0.0.0.0:9000"
MINIO_SECRET_KEY="miniosecretkey"

Guarda y cierra el fiel y luego descarga el archivo de servicio de Minio con el siguiente comando:

wget https://raw.githubusercontent.com/minio/minio-service/master/linux-systemd/minio.service

A continuación, edita el archivo de servicio de Minio con el siguiente comando:

nano minio.service

Cambia el archivo como se muestra a continuación:

[Unit]
Description=MinIO
Documentation=https://docs.min.io
Wants=network-online.target
After=network-online.target
AssertFileIsExecutable=/usr/local/bin/minio

[Service]
WorkingDirectory=/usr/local/

User=minio
Group=minio
ProtectProc=invisible

EnvironmentFile=/etc/default/minio
ExecStartPre=/bin/bash -c "if [ -z \"${MINIO_VOLUMES}\" ]; then echo \"Variable MINIO_VOLUMES not set in /etc/default/minio\"; exit 1; fi"
ExecStart=/usr/local/bin/minio server $MINIO_OPTS $MINIO_VOLUMES

# Let systemd restart this service always
Restart=always

# Specifies the maximum file descriptor number that can be opened by this process
LimitNOFILE=1048576

# Specifies the maximum number of threads this process can create
TasksMax=infinity

# Disable timeout logic and wait until process is stopped
TimeoutStopSec=infinity
SendSIGKILL=no

[Install]
WantedBy=multi-user.target

Guarda y cierra el archivo y luego copia el archivo del servicio Minio en /etc/systemd/system/.

mv minio.service /etc/systemd/system/

A continuación, recarga el demonio systemd para aplicar los cambios:

systemctl daemon-reload

A continuación, inicia y habilita el servicio Minio con el siguiente comando:

systemctl start minio
systemctl enable minio

A continuación, comprueba el servicio Minio con el siguiente comando:

systemctl status minio

Deberías ver la siguiente salida:

? minio.service - MinIO
     Loaded: loaded (/etc/systemd/system/minio.service; disabled; vendor preset: enabled)
     Active: active (running) since Mon 2022-02-28 02:18:31 UTC; 4s ago
       Docs: https://docs.min.io
    Process: 861 ExecStartPre=/bin/bash -c if [ -z "${MINIO_VOLUMES}" ]; then echo "Variable MINIO_VOLUMES not set in /etc/default/minio"; ex>
   Main PID: 862 (minio)
      Tasks: 7
     Memory: 55.2M
        CPU: 759ms
     CGroup: /system.slice/minio.service
             ??862 /usr/local/bin/minio server -C /etc/minio --address 0.0.0.0:9000 /mnt/minio

Feb 28 02:18:31 debian11 systemd[1]: Starting MinIO...
Feb 28 02:18:31 debian11 systemd[1]: Started MinIO.
Feb 28 02:18:32 debian11 minio[862]: WARNING: MINIO_ACCESS_KEY and MINIO_SECRET_KEY are deprecated.
Feb 28 02:18:32 debian11 minio[862]:          Please use MINIO_ROOT_USER and MINIO_ROOT_PASSWORD
Feb 28 02:18:32 debian11 minio[862]: API: http://0.0.0.0:9000
Feb 28 02:18:32 debian11 minio[862]: Console: http://209.208.97.78:42459 http://127.0.0.1:42459
Feb 28 02:18:32 debian11 minio[862]: Documentation: https://docs.min.io
Feb 28 02:18:32 debian11 minio[862]: WARNING: Console endpoint is listening on a dynamic port (42459), please use --console-address ":PORT" t>

Accede al panel de control de Minio

Ahora, abre tu navegador web y accede a la interfaz web de Minio utilizando la URL http://your-server-ip:9000. Serás redirigido a la página de acceso de Minio:

Inicio de sesión en MinIO

A continuación, utiliza la clave de acceso y la clave privada del archivo de configuración como nombre de usuario y contraseña, y haz clic en el botón Iniciar sesión. Deberías ver el panel de control de Minio en la siguiente página:

Tablero MinIO

Haz clic en el botón Crear cubo. Deberías ver la siguiente página:

Características

Proporciona el nombre de tu cubo y haz clic en el botón Crear cubo. Deberías ver la siguiente página:

Copia de seguridad de MinIO

Desde aquí, puedes subir y descargar tus archivos desde el navegador web.

Haz clic en el botón Monitorización => Métricas. Deberías ver las métricas de tu cubo en la siguiente página:

Métricas de MinIO

Haz clic en el botón Registros. Deberías ver los registros del servidor de Minio en la siguiente página:

Registros de MinIO

Conclusión

Enhorabuena! has instalado con éxito el servidor de almacenamiento Minio en Debian 11. Ahora, no necesitas depender del almacenamiento S3 de AWS. Puedes crear tu propio servidor de almacenamiento compatible con S3 para tu organización. No dudes en preguntarme si tienes alguna duda.

También te podría gustar...