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:
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:
Haz clic en el botón Crear cubo. Deberías ver la siguiente página:
Proporciona el nombre de tu cubo y haz clic en el botón Crear cubo. Deberías ver la siguiente página:
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:
Haz clic en el botón Registros. Deberías ver los registros del servidor de Minio en la siguiente página:
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.