Minio para los más pequeños

MinIO es una gran solución cuando necesita organizar fácil y fácilmente el almacenamiento de objetos. La personalización básica, las múltiples plataformas y el buen rendimiento han hecho su trabajo en el campo del amor de las personas. Así que no teníamos otra forma que declarar la compatibilidad de Veeam Backup & Replication y MinIO hace un mes . Incluyendo una característica tan importante como la inmutabilidad. De hecho, MinIO tiene una sección completa en la documentación dedicada a nuestra integración.



Por eso, hoy hablaremos de cómo:



  • Configurar MinIO es muy rápido.
  • Configurar MinIO es un poco menos rápido, pero mucho mejor.
  • Úselo como el nivel de archivo para el repositorio escalable Veeam SOBR.






¿Que eres?



Una breve introducción para aquellos que no se han encontrado con MinIO. Es un almacenamiento de objetos de código abierto compatible con la API de Amazon S3. Se lanza bajo la licencia Apache v2 y se adhiere a la filosofía del minimalismo espartano.



Es decir, no tiene una interfaz gráfica de usuario extendida con paneles, gráficos y numerosos menús. MinIO simplemente inicia su servidor con un comando, donde simplemente puede almacenar datos utilizando toda la potencia de la API S3. Pero cabe señalar que esta sencillez puede resultar engañosa en cuanto a los recursos utilizados. La RAM y la CPU se absorben perfectamente bien, pero las razones estarán a continuación. Y, por cierto, cosechadoras como FreeNAS y TrueNAS usan MinIO debajo del capó.



Esta introducción se puede completar.



Configurar MinIO es muy rápido



Configurarlo es tan rápido que lo cubriremos para Windows y Linux. Hay opciones para Docker, y para kubernetis, e incluso para makosi, pero el significado será el mismo en todas partes.



Entonces, en el caso de Windows, vaya al sitio web oficial https://min.io/download#/windows y descargue la última versión. En el mismo lugar, observamos las instrucciones de lanzamiento:



 minio.exe server F:\Data


Y también hay un enlace a una guía de inicio rápido un poco más detallada . No tiene sentido no creer en las instrucciones, así que corremos y obtenemos algo como esto.





¡Eso es todo! El almacenamiento está funcionando y puedes empezar a trabajar con él. No estaba bromeando cuando dije que MinIO es minimalismo y simplemente funciona. Si sigue el enlace sugerido al iniciar, el máximo de las funciones disponibles es crear un depósito. Y puede comenzar a escribir datos.



Para los amantes de Linux, todo sigue siendo igual de sencillo. La instrucción más simple:




wget https://dl.min.io/server/minio/release/linux-amd64/minio
chmod +x minio
./minio server /data


El resultado será indistinguible de lo visto anteriormente. 



Configurar MinIO es un poco más significativo



Como lo entendemos, el párrafo anterior es una travesura para propósitos de prueba. Y, francamente, es para probar MinIO que usamos ampliamente, lo que no nos avergüenza admitir. Por supuesto, funciona, pero es una pena soportar algo así más allá de los bancos de pruebas. Por lo tanto, tomamos un archivo en nuestras manos y comenzamos a recordarlo.



HTTPS



El primer paso obligatorio en el camino hacia la producción es el cifrado. Ya hay un millón y mil manuales en la red para agregar certificados a MiniIO, pero su plan general es el siguiente:



  • Crea un certificado
  • En el caso de Windows, colóquelo en C: \ Users \% User% \. Minio \ certs
  • En el caso de Linux en $ {HOME} /. Minio / certs 
  • Reiniciamos el servidor


Banal Let's Encrypt es aburrido y se describe en todas partes, por lo que nuestro camino es el camino de un samurái, por lo que en el caso de Windows descargamos Cygwin , y en el caso de Linux solo comprobamos que tenemos openssl instalado. Y haz algo de magia con la consola:



  • Crear claves: openssl ecparam -genkey -name prime256v1 | openssl ec -out private.key
  • Cree un certificado por clave: openssl req -new -x509 -days 3650 -key private.key -out public.crt
  • Copie private.key y public.crt en la carpeta anterior
  • Reiniciar MinIO


Si todo salió como debería, aparecerán las siguientes líneas en el estado.





Encienda la codificación de borrado MinIO



Primero, unas palabras sobre el tema. En pocas palabras: es una protección de datos basada en software contra daños y pérdidas. Como una redada, solo que mucho más confiable. Mientras que el RAID6 clásico puede permitirse perder dos unidades, MinIO se siente cómodo perdiendo la mitad. La tecnología se describe con más detalle en la guía oficial . Pero si toma la esencia misma, entonces esta es la implementación de los códigos Reed-Solomon: toda la información se almacena en forma de bloques de datos, a los que hay bloques de paridad. Y parece que todo esto ya se ha hecho muchas veces, solo que hay un "pero" importante: podemos indicar explícitamente la relación de bloques de paridad a bloques de datos para objetos almacenados.

¿Quieres 1: 1? ¡De nada!

¿Quieres 5: 2? ¡No hay problema!



Una función muy importante si utiliza varios nodos a la vez y desea encontrar su propio equilibrio entre la máxima seguridad de los datos y los recursos gastados. Fuera de la caja, MinIO usa la fórmula N / 2 (donde N es el número total de discos), es decir divide sus datos entre N / 2 discos de datos y N / 2 discos de paridad. Traduciendo a un humano: puede perder la mitad de los discos y recuperar datos. Esta relación se establece a través de la clase de almacenamiento , lo que le permite elegir de forma independiente cuál es más importante: confiabilidad o capacidad.



La guía da un ejemplo: suponga que tiene una instalación en 16 discos y necesita guardar un archivo de 100 MB. Si se utiliza la configuración predeterminada (8 discos para datos, 8 para bloques de paridad), el archivo eventualmente ocupará casi el doble de tamaño, es decir, 200 MB. Si la relación de disco es 10/6, entonces se necesitan 160 MB. 14/2 - 114 Mb.



Otra diferencia importante con las incursiones: en caso de que se caigan los discos, MinIO funcionará a nivel de objeto, restaurando uno por uno sin detener todo el sistema. Mientras que una incursión normal se verá obligada a restaurar todo el volumen, lo que llevará una cantidad de tiempo impredecible. En la memoria del autor, el estante del disco, que, tras la pérdida de dos discos, se contó durante una semana y media. Fue muy desagradable.



Y una nota importante: MinIO divide todos los discos para la codificación de borrado en conjuntos de 4 a 16 discos, utilizando el tamaño de conjunto más grande posible. Y en el futuro, una sola pieza de información se almacenará solo dentro de un conjunto.



Todo esto suena genial, pero ¿qué tan difícil será la configuración? Echemos un vistazo. Tomamos el comando para comenzar y simplemente enumeramos los discos en los que necesita crear almacenamiento. Si todo se hace correctamente, en el informe veremos la cantidad de discos usados. Y un consejo de que es inútil agregar la mitad de los discos a un host a la vez, porque esto es una pérdida de datos.



c:\minio>minio.exe server F:\ G:\ H:\ I:\ J:\ K:\




Además, para controlar y personalizar el servidor MINIO necesitamos un agente, que se puede descargar todo el mismo con el sitio web oficial.



Para no borrarse los dedos, cada vez que ingrese la dirección y las teclas de acceso (y esto no es seguro), es conveniente en el primer inicio crear inmediatamente un alias usando la fórmula mc alias set <YOUR-MINIO-ENDPOINT> [YOUR-ACCESS-KEY] [YOUR-SECRET- LLAVE]



mc alias set veeamS3 https://172.17.32.52:9000 YOURS3ACCESSKEY YOURSECERTKE


O puede agregar su host de inmediato:



mc config host add minio-veeam https://minio.jorgedelacruz.es YOURS3ACCESSKEY YOURSECERTKEY


Y luego crearemos un cubo inmutable con un hermoso equipo.



mc mb --debug -l veeamS3/immutable 

mc: <DEBUG> PUT /immutable/ HTTP/1.1
Host: 172.17.32.52:9000
User-Agent: MinIO (windows; amd64) minio-go/v7.0.5 mc/2020-08-08T02:33:58Z
Content-Length: 0
Authorization: AWS4-HMAC-SHA256 Credential=minioadmin/20200819/us-east-1/s3/aws4_request, SignedHeaders=host;x-amz-bucket-object-lock-enabled;x-amz-content-sha256;x-amz-date, Signature=**REDACTED**
X-Amz-Bucket-Object-Lock-Enabled: true
X-Amz-Content-Sha256: UNSIGNED-PAYLOAD
X-Amz-Date: 20200819T092241Z
Accept-Encoding: gzip
mc: <DEBUG> HTTP/1.1 200 OK
Content-Length: 0
Accept-Ranges: bytes
Content-Security-Policy: block-all-mixed-content
Date: Wed, 19 Aug 2020 09:22:42 GMT
Location: /immutable
Server: MinIO/RELEASE.2020-08-16T18-39-38Z
Vary: Origin
X-Amz-Request-Id: 162CA0F9A3A3AEA0
X-Xss-Protection: 1; mode=block
mc: <DEBUG> Response Time:  253.0017ms


--debug le permite ver no solo el mensaje final, sino información más detallada. 



-l significa --with-lock, que significa inmutable.



Si ahora regresamos a la interfaz web, nuestro nuevo depósito aparecerá allí.





Eso es todo por ahora. Hemos creado un almacenamiento seguro y estamos listos para pasar a la integración con Veeam.



También puedes asegurarte de que todo funcione a la perfección:



c:\minio>mc admin info veeamS3

●  172.17.32.52:9000
   Uptime: 32 minutes
   Version: 2020-08-16T18:39:38Z
   Network: 1/1 OK
   Drives: 6/6 OK
0 B Used, 1 Bucket, 0 Objects
6 drives online, 0 drives offline


MinIO y Veeam



¡Atención! Si por alguna razón increíble desea trabajar a través de HTTP, en HKEY_LOCAL_MACHINE \ SOFTWARE \ Veeam \ Veeam Backup and Replication \ cree una clave DWORD SOBRArchiveS3DisableTLS. Establezca su valor en 1 y recuerde que desaprobamos fuertemente tal comportamiento y no lo recomendamos a nadie.



¡Atención de nuevo! Si, debido a algún malentendido, continúa usando Windows 2008 R2, cuando intente conectar MinIO a Veeam, probablemente recibirá un error similar al siguiente: No se pudo establecer la conexión con el punto final de Amazon S3. Esto se trata con un parche oficial de Microsoft .



Bueno, los preparativos terminaron, abramos la interfaz VBR y vayamos a la pestaña Infraestructura de respaldo, donde llamaremos al asistente para agregar un nuevo repositorio.





Por supuesto, estamos interesados ​​en el almacenamiento de objetos, es decir, compatible con S3. En el asistente abierto, establezca el nombre, siga los pasos con la dirección y la cuenta. Si es necesario, no olvide especificar la puerta a través de la cual se enviarán las solicitudes al almacenamiento.





Luego, seleccione el depósito, la carpeta y marque la casilla de verificación Hacer inmutables las copias de seguridad recientes. O no lo hacemos. Pero dado que hemos creado un repositorio con soporte para esta función, será un pecado no usarlo.





Siguiente> Termina y disfruta del resultado.



Ahora debe agregarlo al repositorio SOBR como Nivel de capacidad. Para hacer esto, cree uno nuevo o edite el existente. Estamos interesados ​​en el paso de Nivel de capacidad.





Aquí tenemos que elegir con qué escenario trabajaremos. Todas las opciones se describen bastante bien en otro artículo , por lo que no me repetiré.



Y una vez que se complete el asistente, las tareas para copiar o transferir copias de seguridad se iniciarán automáticamente. Pero si no está en sus planes distribuir inmediatamente la carga en todos los sistemas, asegúrese de establecer los intervalos permitidos para trabajar con el botón Ventana.





Y, por supuesto, puede realizar trabajos de copia de seguridad independientes. Algunas personas piensan que esto es aún más conveniente, ya que son algo más transparentes y predecibles para un usuario que no quiere ahondar en los detalles del funcionamiento de una galería de tiro capital. Y hay bastantes detalles, así que una vez más recomiendo el artículo correspondiente del enlace de arriba.



Y finalmente, la respuesta a la pregunta insidiosa: ¿qué pasará si aún toma e intenta eliminar la copia de seguridad de la tienda Immutable?



Esta es la respuesta:





Eso es todo por hoy. Por verdadera tradición, obtenga una lista de temas útiles sobre el tema:






All Articles