¿Está buscando un software de almacenamiento de objetos para alojarlo en su servidor?

Supongo que sí

Hay un montón de almacenamiento de objetos basado en la nube como AWS S3 y otros que he mencionado aquí. Sin embargo, si necesita alojar sus datos en su servidor, MinIO puede ayudarle dentro de sus centros de datos.

MiniIO es un software de almacenamiento de objetos distribuido de código abierto, popular y compatible con S3. Está preparado para empresas y es conocido por su alto rendimiento.

Puede utilizar MinIO desde una simple aplicación web hasta grandes cargas de trabajo de distribución de datos para aplicaciones de análisis y aprendizaje automático. Puede ayudarle en muchos casos de uso.

  • Almacenamiento de archivos planos estándar
  • Distribución de datos en múltiples nubes
  • Recuperación ante desastres
  • Análisis de datos

¿Es un software voluminoso?

No, sólo ocupa unos ~50 MB y es compatible con Kubernetes. Escribe datos y metadatos como un objeto. Esto elimina la dependencia de disponer de una base de datos o software adicional para almacenar metadatos y mejorar el rendimiento.

La siguiente arquitectura de su sitio oficial.

Exploremos algunas de las características que merece la pena destacar.

  • Alto rendimiento – lo dice el título. Es capaz de leer/escribir a una velocidad de ~170GB/s. ¡Eso es mucho!
  • Escalable – opte por la agrupación en clústeres y escale según sus necesidades
  • Nube nativa
  • Protección de datos mediante el método de código de borrado
  • Compatible con múltiples cifrados, incluidos AES-CBC, AES-256-GCM, ChaCha20
  • Compatible con KMS comunes
  • Identidad de aplicaciones y usuarios
  • Notificación de eventos
  • Federación mediante etcd y CoreDNS

MinIO es una buena opción para el almacenamiento definido por software. Exploremos cómo configurarlo.

Instalación del servidor MinIO

Puede instalarlo en Linux, Windows, macOS y a través de Kubernetes. ¿Prefiere construir a través del código fuente? Claro, puede hacerlo si tiene Golang instalado.

Para esta demostración, voy a instalar en CentOS que está alojado en Kamatera.

  • Inicie sesión en el servidor
  • Cree una carpeta en el sistema de archivos deseado. Tal vez minio-server
  • Navegue hasta la carpeta recién creada y ejecute el siguiente comando wget
wget https://dl.min.io/server/minio/release/linux-amd64/minio

Descargará un archivo binario y debería tener el siguiente aspecto.

-rw-r--r-- 1 root raíz 48271360 18 de octubre 21:57 minio

Haga ejecutable el archivo con el comando chmod

chmod 755 minio

Iniciemos MinIO como servidor.

./minio servidor /datos &

/data mencionado anteriormente es el sistema de archivos donde MinIO almacenará los objetos.

El arranque es rápido y debería ver la información de arranque como se indica a continuación.

Punto final: http://xx.71.141.xx:9000 http://127.0.0.1:9000      
Clave de acceso: minioadmin 
SecretKey: minioadmin 

Acceso al navegador:
   http://xx.71.141.xx:9000 http://127.0.0.1:9000      

Acceso desde la línea de comandos: https://docs.min.io/docs/minio-client-quickstart-guide
   $ mc alias set myminio http://xx.71.141.xx:9000 minioadmin minioadmin

API de objetos (compatible con Amazon S3):
   Go: https://docs.min.io/docs/golang-client-quickstart-guide
   Java: https://docs.min.io/docs/java-client-quickstart-guide
   Python: https://docs.min.io/docs/python-client-quickstart-guide
   JavaScript: https://docs.min.io/docs/javascript-client-quickstart-guide
   .NET: https://docs.min.io/docs/dotnet-client-quickstart-guide
Detectadas credenciales por defecto 'minioadmin:minioadmin', por favor cambie las credenciales inmediatamente usando 'MINIO_ACCESS_KEY' y 'MINIO_SECRET_KEY

Accedamos a MinIO en el navegador con las credenciales por defecto – minioadmin:minioadmin

La interfaz es muy ordenada y limpia pero antes de nada, cambiemos la credencial por defecto ya que expone el riesgo. No hay ninguna opción para cambiar la credencial de administrador a través del navegador sino variables de entorno.

Para cambiar la credencial por defecto de MinIO, exportaremos la clave de acceso y secreta como se indica a continuación e iniciaremos MinIO.

export MINIO_ACCESS_KEY=geekflare
export MINIO_SECRET_KEY=geekcontraseña
./minio server /data &

Ahora, no debería quejarse de la advertencia de detección de credenciales por defecto.

Intentemos subir algunos archivos.

  • Haga clic en el icono de la parte inferior derecha y cree un cubo
  • Subí un archivo de prueba e inmediatamente visible en el navegador

y, en el servidor

[root@gf-lab geekflare]# ls -ltr
total 4
-rw-r--r-- 1 root root 11 Oct 19 11:09 MinIO-Test.txt
[root@gf-lab geekflare]#

Si hace clic en el botón para compartir archivos del navegador, obtendrá el enlace para compartir y una opción para establecer la caducidad.

Cliente MinIO

El cliente MinIO es más que aws-cli que le permite gestionar el almacenamiento. El cliente está disponible para Windows, macOS y Linux.

Para instalarlo en Linux, ejecute lo siguiente

wget https://dl.min.io/client/mc/release/linux-amd64/mc
chmod 755 mc

Ejecute el comando mc para ver la ayuda del comando.

[root@gf-lab ~]# ./mc
NOMBRE
  mc - Cliente MinIO para almacenamiento en la nube y sistemas de archivos.

USO:
  mc [BANDAS] COMANDO [BANDAS DE COMANDO | -h] [ARGUMENTOS...]

COMANDOS:
  alias establecer, eliminar y listar alias en el archivo de configuración
  ls listar cubos y objetos
  mb crear un cubo
  rb eliminar un cubo
  cp copiar objetos
  mirror sincronizar objeto(s) a un sitio remoto
  cat mostrar el contenido de un objeto
  head mostrar las 'n' primeras líneas de un objeto
  pipe flujo STDIN a un objeto
  share generar URL de acceso temporal a un objeto
  find buscar objetos
  sql ejecutar consultas sql sobre objetos
  stat mostrar metadatos de objetos
  mv mover objetos
  tree listar cubos y objetos en formato de árbol
  du resumir el uso del disco recursivamente
  retention establecer la retención de los objetos
  legalhold gestionar la retención legal de objeto(s)
  diff listar las diferencias en el nombre, tamaño y fecha de los objetos entre dos cubos
  rm eliminar objetos
  version gestionar el versionado de los cubos
  ilm gestión del ciclo de vida de los cubos
  encrypt gestionar la configuración de encriptación del cubo
  event gestión de notificaciones de objetos
  watch escuchar eventos de notificación de objetos
  undo deshacer operaciones PUT/DELETE
  policy gestionar el acceso anónimo a los cubos y objetos
  tag gestionar etiquetas para cubos y objetos
  replicar configurar la replicación de cubos del lado del servidor
  admin gestionar servidores MinIO
  actualizar actualizar mc a la última versión
  
BANDERAS GLOBALES:
  --autocompletion instalar autocompletado para su shell
  --config-dir valor, -C valor ruta a la carpeta de configuración (por defecto: "/root/.mc")
  --quiet, -q desactivar la visualización de la barra de progreso
  --no-color desactivar el tema de color
  --json habilitar salida con formato de líneas JSON
  --debug habilitar la salida de depuración
  --insecure deshabilitar la verificación del certificado SSL
  --help, -h mostrar ayuda
  --version, -v imprimir la versión
  
CONSEJO:
  Utilice 'mc --autocompletion' para activar el autocompletado del shell

VERSION:
  RELEASE.2020-10-03T02-54-56Z
[root@gf-lab ~]#

Intentemos listar el archivo que he cargado mediante el comando mc.

En primer lugar, tenemos que establecer el alias del almacenamiento que queremos administrar.

[root@gf-lab ~]# ./mc alias set minio http://xx.71.141.xx:9000/ geekflare geekpassword
Añadimos `minio` con éxito.
[root@gf-lab ~]#
  • minio es el nombre del alias. Puede cambiarlo por el que desee.
  • Cambie el endpoint HTTP por el suyo real
  • Cambie la clave de acceso y secreta por la suya

y, para listar, utilizará el comando ls como se indica a continuación.

[root@gf-lab ~]# ./mc ls --recursive minio 
[2020-10-19 11:09:06 UTC] 11B geekflare/MinIO-Test.txt
[root@gf-lab ~]#

Genial, ¡funciona!

Puedes hacer literalmente todo a través del cliente. No sólo puede gestionar el almacenamiento en la nube MinIO sino también GCS, AWS S3, Azure.

Echa un vistazo a esta guía de inicio rápido del cliente para más detalles.

SDK de MinIO

Dependiendo de su pila de aplicaciones, puede interactuar con el almacenamiento de objetos mediante programación utilizando SDK. Es compatible con Go, Python, Node.js, .NET, Haskell y Java.

Pasarela MinIO

Añada la pasarela MiniIO a S3, Azure, NAS, HDFS para aprovechar las ventajas del navegador MinIO y el almacenamiento en caché de disco.

Conclusión

Si está buscando almacenamiento de objetos privado, híbrido o multi-nube, entonces MinIO parece prometedor. Pruébelo y se enamorará de él. Para probarlo, puede obtener la VM de MinIO de Kamatera o instalarlo usted mismo en cualquier servidor en la nube.