Actualizado el miércoles, 26 julio, 2023
Hasta hace unos años, cuando almacenábamos un fichero, la única manera de hacerlo era usando un sistema de bloques. Los datos de las aplicaciones, fotos, vídeos, etc. se guardaban en registros físicos, asociados a un sistema operativo. Para acceder a estos datos en remoto había que usar protocolos específicos, como pueden ser NFS, CIFS o ISCSI. El almacenamiento de Objetos cambia completamente esta manera de trabajar.
Tus fotos, vídeos, backups… los almacena como objetos. Cada uno de ellos contiene datos, metadatos y un identificador único, que permite su recuperación de manera sencilla. Estos objetos pueden estar replicados en varias ubicaciones distintas, incluso en varios Centros de Datos repartidos mundialmente (para evitar perdidas de datos en caso de fallo de algún componente). El acceso a los objetos se puede hacer de manera sencilla vía Web o mediante API REST HTTP.
Algunos de lo proveedores de Objetos más conocidos en la actualidad son Amazon S3, MS Azure Blog Storage y Google Cloud Storage. Para familiarizarnos con la metodología, podemos usar el Software Minio. Es un servidor de almacenamiento de Objetos Open Source, compatible con la API de Amazon S3. La ventaja de este Software es su facilidad de instalación, configuración y gestión. ¡A eso vamos!
Índice de contenidos
Instalación del Servidor
Vamos a montar el servidor Minio en configuración stand-alone, lo que significa que si se cae el servidor donde está alojado no podremos acceder a los datos. Se puede configurar en alta disponibilidad, pero para empezar a hacer pruebas, nos decantamos por una configuración lo más sencilla posible.
Lo primero que necesitamos es un Servidor No Administrado de dinahosting 😉 , en este caso un VPS. Usaremos Debian 9, pero valdría cualquier distribución que soporte Systemd. Ahora, paso a paso:
Descargamos con wget el binario de Minio:
[bash] root@vls666:/opt# cd /usr/local/bin/ root@vls666:/usr/local/bin# wget https://dl.minio.io/server/minio/release/linux-amd64/minio [/bash]
Le damos permisos de ejecución:
[bash]root@vls02:/usr/local/bin# chmod +x minio[/bash]
Creamos un usuario para no ejecutar como root el script:
[bash] root@vls666:/usr/local/bin# useradd -r minio-user -s /sbin/nologin root@vls666:/usr/local/bin# chown minio-user:minio-user /usr/local/bin/minio [/bash]
Creamos un directorio para almacenar los objetos y le damos permisos para que el usuario que creamos pueda acceder correctamente:
[bash]root@vls666:/usr/local/bin# mkdir /home/minio-server root@vls666:/usr/local/bin# chown minio-user:minio-user /home/minio-server/[/bash]
Creamos una carpeta para almacenar la configuración del servicio:
[bash]root@vls666:/usr/local/bin# mkdir /etc/minio root@vls666:/usr/local/bin# chown minio-user:minio-user /etc/minio[/bash]
Editamos el archivo de configuración y añadimos las siguientes variables:
[bash]root@vls666:/usr/local/bin# nano /etc/default/minio MINIO_VOLUMES="/home/minio-server" MINIO_OPTS="-C /etc/minio" [/bash]
Descargamos e instalamos el script de inicio de Systemd:
[bash]root@vls666:/home/minio-server # cd /etc/systemd/system root@vls666:/home/minio-server # wget https://raw.githubusercontent.com/minio/minio-service/master/linux-systemd/minio.service root@vls666:/home/minio-server # systemctl daemon-reload[/bash]
Activamos el servicio al inicio del sistema y lo arrancamos:
[bash]root@vls666:/home/minio-server # systemctl enable minio root@vls666:/home/minio-server # systemctl start minio[/bash]
Comprobamos que el servicio está activo y comprobamos los datos de acceso:
[bash]root@vls666:/etc # systemctl status minio[/bash]
Acceso a la interfaz
El servicio dispone de una interfaz web, que permite subir, descargar y compartir objetos de manera muy intuitiva. El acceso se realiza a través de la siguiente URL: http://ip_del_servidor:9000
Para poder acceder, necesitamos la accessKey y secretKey que podemos leer en el archivo que se genera automáticamente al iniciar el servicio, /etc/minio/config.json.
[bash]root@vls666:/etc # cat /etc/minio/config.json |grep Key "accessKey": "9BN0JLURY2LHGD5KSARJ", "secretKey": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"[/bash]
Desde esta interfaz puedes subir, descargar, compartir y buscar objetos de manera sencilla.
Si queremos subir objetos hay que crear un Bucket, que se puede extrapolar a un directorio en el que subir objetos.
Para usuarios más avanzados hay clientes compatibles con la Api S3, que permiten trabajar con objetos desde la línea de comandos de Linux. Minio tiene el suyo propio, pero también existen otros, como S3cmd.
¿Lo has entendido todo bien? Déjanos tus comentarios, dudas o aportaciones y te echamos una mano con lo que necesites 🙂
Deja una respuesta