? Explorando MinIO: almacenamiento de objetos independiente de alto rendimiento compatible con S3

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

Hay muchos almacenes de objetos en la nube como AWS S3, etc.

Sin embargo, si necesita alojar los datos en su servidor, MinIO puede ayudarle con esta tarea.

MiniIO es un popular software de almacenamiento de objetos distribuidos de código abierto compatible con S3.

Es conocido por su alto rendimiento.

Puede utilizar MinIO desde aplicaciones web simples hasta grandes cargas de trabajo de distribución de datos para aplicaciones de análisis y aprendizaje automático.

Ventajas de usar:

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

¿Es un software voluminoso?

No, pesa 50 MB y es apto para Kubernetes.

Minio escribe datos y metadatos como un objeto.

Esto elimina la dependencia de tener una base de datos o software adicional para almacenar metadatos y mejorar el rendimiento.

Arquitectura de su sitio web oficial:

Echemos un vistazo a algunas de las características a las que vale la pena prestar atención.

  • ¡Alto rendimiento! Minio es capaz de leer/escribir a ~170GB/s. ¡Es mucho!
  • Escalabilidad: utilice la agrupación en clústeres y escale según sea necesario
  • Nativo de la nube
  • Protección de datos mediante el método del código de borrado
  • Admite cifrado múltiple, incluidos AES-CBC, AES-256-GCM, ChaCha20
  • Compatible con KMS regulares
  • Notificación de eventos
  • Compatible con etcd y CoreDNS

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

Instalación del servidor MinIO

Puede instalarlo en Linux, Windows, macOS y mediante Kubernetes.

¿Prefieres construir desde la fuente?

Por supuesto que puedes, si tienes Golang instalado.

Para este artículo, ¡lo instalaré en CentOS!

  • Iniciar sesión en el servidor
  • Cree una carpeta en el sistema de archivos deseado. Por ejemplo minio-servidor
  • Vaya a la carpeta recién creada y ejecute el siguiente comando wget.
wget https://dl.min.io/server/minio/release/linux-amd64/minio

El sistema cargará el binario y este archivo debería verse así:

-rw-r--r--  1 root root 48271360 Oct 18 21:57 minio

Haga que el archivo sea ejecutable con el comando chmod

chmod 755 minio

Ejecutemos MinIO como servidor.

./minio server /data &

/ data mencionado anteriormente es el sistema de archivos en el que MinIO almacenará objetos.

El inicio es rápido y deberías ver información como esta:

Endpoint:  https://xx.71.141.xx:9000 https://127.0.0.1:9000
AccessKey: minioadmin
SecretKey: minioadmin

Browser Access:
   https://xx.71.141.xx:9000 https://127.0.0.1:9000

Command-line Access: https://docs.min.io/docs/minio-client-quickstart-guide
   $ mc alias set myminio https://xx.71.141.xx:9000 minioadmin minioadmin

Object API (Amazon S3 compatible):
   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
Detected default credentials 'minioadmin:minioadmin', please change the credentials immediately using 'MINIO_ACCESS_KEY' and 'MINIO_SECRET_KEY'

Iniciemos sesión en MinIO a través del navegador con las credenciales predeterminadas.minioadmin: minioadmin

La interfaz es muy clara y sencilla, pero antes que nada, cambiemos las credenciales predeterminadas, ya que esto conlleva riesgo de manipulación. Para cambiar las credenciales predeterminadas de MinIO, exportaremos la clave de acceso y la clave privada como se muestra a continuación y ejecutaremos MinIO.

export MINIO_ACCESS_KEY=itsecforu
export MINIO_SECRET_KEY=itsecpassword
./minio server /data &

Ahora no debería quejarse ni emitir una advertencia sobre la detección de credenciales predeterminadas.

Intentemos cargar archivos.

  • Haga clic en el ícono + en la esquina inferior derecha y cree un depósito.
  • He subido un archivo de prueba y se ve inmediatamente en el navegador.

y en el servidor:

ls -ltr
total 4
-rw-r--r-- 1 root root 11 Oct 19 11:09 MinIO-Test.txt

Si hace clic en el botón compartir en un archivo en su navegador, recibirá un enlace para compartir y una opción para establecer una fecha de vencimiento.

Cliente MinIO

El cliente MinIO es más que simplemente aws-cli que le permite administrar el almacenamiento.

El cliente está disponible para Windows, macOS y Linux.

Para instalar 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.

/mc
NAME:
  mc - MinIO Client for cloud storage and filesystems.

USAGE:
  mc [FLAGS] COMMAND [COMMAND FLAGS | -h] [ARGUMENTS...]

COMMANDS:
  alias      set, remove and list aliases in configuration file
  ls         list buckets and objects
  mb         make a bucket
  rb         remove a bucket
  cp         copy objects
  mirror     synchronize object(s) to a remote site
  cat        display object contents
  head       display first 'n' lines of an object
  pipe       stream STDIN to an object
  share      generate URL for temporary access to an object
  find       search for objects
  sql        run sql queries on objects
  stat       show object metadata
  mv         move objects
  tree       list buckets and objects in a tree format
  du         summarize disk usage recursively
  retention  set retention for object(s)
  legalhold  manage legal hold for object(s)
  diff       list differences in object name, size, and date between two buckets
  rm         remove objects
  version    manage bucket versioning
  ilm        manage bucket lifecycle
  encrypt    manage bucket encryption config
  event      manage object notifications
  watch      listen for object notification events
  undo       undo PUT/DELETE operations
  policy     manage anonymous access to buckets and objects
  tag        manage tags for bucket and object(s)
  replicate  configure server side bucket replication
  admin      manage MinIO servers
  update     update mc to latest release

GLOBAL FLAGS:
  --autocompletion              install auto-completion for your shell
  --config-dir value, -C value  path to configuration folder (default: "/root/.mc")
  --quiet, -q                   disable progress bar display
  --no-color                    disable color theme
  --json                        enable JSON lines formatted output
  --debug                       enable debug output
  --insecure                    disable SSL certificate verification
  --help, -h                    show help
  --version, -v                 print the version

TIP:
  Use 'mc --autocompletion' to enable shell autocompletion

VERSION:
  RELEASE.2020-10-03T02-54-56Z

Intentemos encontrar el archivo que descargué usando el comando mc.

Primero, debemos configurar el alias del repositorio que queremos administrar.

/mc alias set minio https://xx.71.141.xx:9000/ itsecforu itsecpassword
Added `minio` successfully.
  • minio es un alias. Puedes cambiarlo a cualquier valor.
  • Cambie la URL HTTP por la suya.
  • Cambie la clave de acceso y la clave privada por las suyas.

¡Genial, todo funciona!

Literalmente todo se puede hacer a través del cliente.

Puede administrar no solo el almacenamiento en la nube MinIO, sino también GCS, AWS S3, Azure.

SDK MiniIO

Dependiendo de la pila de su aplicación, puede interactuar mediante programación con el almacén de objetos utilizando el SDK.

Es compatible con Go, Python, Node.js, .NET, Haskell y Java.

Puerta de enlace MiniIO

Agregue la puerta de enlace MiniIO a S3, Azure, NAS, HDFS para aprovechar el navegador MinIO y el almacenamiento en caché de disco.

Conclusión

Ya sea que esté buscando almacenamiento de objetos privado, híbrido o en múltiples nubes, MinIO parece prometedor.

Actualizaciones del boletín

Ingrese su dirección de correo electrónico a continuación para suscribirse a nuestro boletín