MinIO se ejecuta en cualquier cosa: bare metal, Kubernetes, Docker, Linux y más. Las organizaciones optan por ejecutar MinIO para alojar sus datos en cualquiera de estas plataformas y dependen cada vez más de múltiples plataformas para satisfacer múltiples requisitos. La elección del hardware y el sistema operativo subyacentes se basa en una serie de factores, principalmente la cantidad de datos que se almacenarán en MinIO más los requisitos de integración con otro software, rendimiento y seguridad nativos de la nube.
Muchos de nuestros clientes ejecutan MinIO sin sistema operativo, mientras que la mayoría ejecuta Kubernetes. Ejecutar múltiples instancias de MinIO en una arquitectura en contenedores orquestada por Kubernetes es extremadamente eficiente. Los clientes de MinIO implementan nuevas regiones y actualizan servicios sin interrupciones, con clústeres de Kubernetes separados ejecutándose en cada región y el objetivo operativo de no compartir nada para lograr mayor resiliencia y escalabilidad.
Los clientes cambian a MinIO por diversos motivos, entre ellos:
Debido a estas diversas razones y entornos donde se puede utilizar e instalar MinIO, es realista asumir que hay una serie de fuentes de datos donde ya están almacenados datos que le gustaría ingresar a MinIO.
En esta publicación, revisemos algunas de las herramientas disponibles para obtener datos de S3, FileSystem local, NFS, Azure, GCP, Hitachi Content Platform, Ceph y otros, y colocarlos en clústeres MinIO donde pueden exponerse a la IA nativa de la nube. /ML y paquetes de análisis.
Para comenzar, usaremos MinIO Client (mc) durante el transcurso de esta publicación para algunas de estas opciones. Asegúrese de instalarlo y configurar el alias de su servidor MinIO en ejecución.
mc alias set destminio https://myminio.example.net minioadminuser minioadminpassword
Agregaremos algunos alias de “fuente” más a medida que avancemos en los diferentes métodos.
La mayoría de los casos de uso para migrar datos a MinIO comienzan con un sistema de archivos montado o un volumen NFS. En esta configuración simple, puede usar mc mirror para sincronizar los datos desde el origen hasta el destino. Piense en mc mirror
como una navaja suiza para la sincronización de datos. Le quita al usuario la carga de determinar la mejor manera de interactuar con la fuente de la que está obteniendo los objetos. Admite varias fuentes y, según la fuente de la que extraiga, se utilizan las funciones adecuadas para habilitarlas.
Por ejemplo, comencemos con un sistema de archivos simple que se monta desde un disco duro físico, un disco virtual o incluso algo así como un montaje GlusterFS. Siempre que sea un sistema de archivos legible por el sistema operativo, MinIO también puede leerlo:
filesystem kbytes used avail capacity mounted on /dev/root 6474195 2649052 3825143 41% / /dev/stand 24097 5757 18340 24% /stand /proc 0 0 0 0% /proc /dev/fd 0 0 0 0% /dev/fd /dev/_tcp 0 0 0 0% /dev/_tcp /dev/dsk/c0b0t0d0s4 10241437 4888422 5353015 48% /home /dev/dsk/c0b0t1d0sc 17422492 12267268 5155224 71% /home2
Supongamos que sus objetos están en /home/mydata
, luego ejecutará el siguiente comando para reflejar los objetos (si el depósito mydata
aún no existe, primero deberá crearlo):
mc mirror /home/mydata destminio/mydata
Este comando garantizará que los objetos que ya no están en la ubicación de origen se eliminen del destino o que, cuando se agreguen nuevos objetos al origen, se copien en el destino. Pero si desea sobrescribir los objetos existentes modificados en la fuente, pase la opción --overwrite
.
Network File Share (NFS) se utiliza generalmente para almacenar objetos o datos a los que no se accede con frecuencia porque, si bien es omnipresente, el protocolo suele ser muy lento en toda la red. No obstante, muchos ETL y algunos sistemas heredados utilizan NFS como depósito de datos que se utilizarán para operaciones, análisis, IA/ML y casos de uso adicionales. Tendría más sentido que estos datos vivan en MinIO debido a la escalabilidad, la seguridad y el alto rendimiento de un clúster MinIO, junto con la capacidad de MinIO para proporcionar servicios a aplicaciones nativas de la nube utilizando la API S3.
Instale los paquetes necesarios para montar el volumen NFS
apt install nfs-common
Asegúrese de agregar el directorio /home
a /etc/exports
/home client_ip(rw,sync,no_root_squash,no_subtree_check)
Nota: asegúrese de reiniciar su servidor NFS, por ejemplo en servidores Ubuntu
systemctl restart nfs-kernel-server
Cree un directorio para montar el montaje NFS
mkdir -p /nfs/home
Montar el volumen NFS
mount <nfs_host>:/home /nfs/home
Copie los datos de NFS a MinIO
mc mirror /nfs/home destminio/nfsdata
Ahí lo tienes, ahora puedes mover tus objetos grandes de NFS a MinIO.
Como mencionamos anteriormente, mc mirror
es una navaja suiza de sincronización de datos. Además de los sistemas de archivos, también copia objetos de almacenes compatibles con S3 o API de S3 y los refleja en MinIO. Uno de los casos de uso más populares es la duplicación de un depósito de Amazon S3.
Siga estos pasos para crear un depósito de AWS S3 en su cuenta. Si ya tiene una cuenta existente con datos, también podríamos usarla.
Una vez que se haya creado un depósito o se hayan agregado datos a un depósito existente, cree una nueva política de IAM con clave de acceso y clave secreta que permita el acceso solo a nuestro depósito. Guarde las credenciales generadas para el siguiente paso.
Podemos trabajar con cualquier almacenamiento compatible con S3 utilizando MinIO Client. A continuación, agreguemos un alias usando el nombre del depósito S3 que creamos junto con las credenciales que descargamos.
mc alias set s3 https://s3.amazonaws.com BKIKJAA5BMMU2RHO6IBB V7f1CwQqAcwo80UEIJEjc5gVQUSSx5ohQ9GSrr12 --api S3v4
Utilice mc mirror para copiar los datos de S3 a MinIO
mc mirror s3/mybucket destminio/mydata
Dependiendo de la cantidad de datos, las velocidades de la red y la distancia física desde la región donde se almacenan los datos del depósito, es posible que le lleve unos minutos o más reflejar todos los datos. Verá un mensaje cuando mc termine de copiar todos los objetos.
Para el siguiente conjunto de herramientas, escribimos scripts dedicados para satisfacer algunos de los requisitos de migración de datos de casos extremos no estándar que debemos cumplir. Uno de ellos es la migración de HDFS y Hadoop. Muchas empresas tienen tantos datos almacenados en Hadoop que es imposible ignorarlos y empezar de nuevo con una plataforma nativa de la nube. Es más factible transferir esos datos a algo más moderno (y nativo de la nube) como MinIO y ejecutar su ETL y otros procesos de esa manera. Es bastante sencillo de configurar.
Cree un archivo llamado core-site.xml
con el siguiente contenido
<configuration> <property> <name>fs.s3a.path.style.access</name> <value>true</value> </property> <property> <name>fs.s3a.endpoint</name> <value>https://minio:9000</value> </property> <property> <name>fs.s3a.access.key</name> <value>minio-sample</value> </property> <property> <name>fs.s3a.secret.key</name> <value>minio-sample123</value> </property> </configuration>
Establezca las siguientes variables de entorno
export HDFS_SOURCE_PATH=hdfs://namenode:8080/user/minio/testdir export S3_DEST_PATH=s3a://mybucket/testdir
Descargue el siguiente archivo, chmod +x y ejecútelo
curl -LSs -o https://github.com/minio/hdfs-to-minio/blob/master/hdfs-to-minio.sh chmod +x hdfs-to-minio.sh ./hdfs-to-minio.sh
Si ha estado almacenando datos en Hadoop durante varios años, este proceso puede tardar varias horas. Si está en un clúster de producción, recomendamos migrar los datos fuera del horario laboral durante los períodos de mantenimiento para minimizar el impacto de cualquier degradación del rendimiento en su clúster de Hadoop mientras se reflejan los datos.
Más detalles sobre la migración de HDFS a MinIO están disponibles en este GitHub Repo y también tenemos una publicación de blog, Migración de HDFS a Object Storage .
Anteriormente escribimos una publicación de blog increíble sobre Hitachi Content Platform y cómo migrar sus datos a un clúster MinIO. Recomendaría leer la publicación del blog para obtener todos los detalles, pero el quid de la cuestión es el siguiente.
Una vez que haya configurado el clúster HCP y el archivo de entrada necesarios, descargue la herramienta de migración y ejecute el siguiente comando para iniciar el proceso de migración.
$ hcp-to-minio migrate --namespace-url https://finance.europe.hcp.example.com --auth-token "HCP bXl1c2Vy:3f3c6784e97531774380db177774ac8d" --host-header "s3testbucket.sandbox.hcp.example.com" --data-dir /mnt/data --bucket s3testbucket --input-file /tmp/data/to-migrate.txt
Por último, pero no menos importante, hemos dejado al elefante en la habitación hasta el final. Aunque antiguo, Ceph es un almacén de datos popular y tiene una API compatible con S3. Otros proyectos de Kubernetes lo utilizan como backend para el almacenamiento de objetos, como Rook. Ceph, sin embargo, es un gigante difícil de manejar y configurar. Por eso, es natural que la gente quiera trasladar sus datos a algo más simple, más fácil de mantener y con mayor rendimiento.
Hay dos formas de copiar datos de Ceph:
Replicación de depósito: crea el objeto, pero si el objeto se elimina del origen, no lo eliminará en el destino. https://min.io/docs/minio/linux/administration/bucket-replication.html
Mc mirror: Sincroniza objetos y versiones, incluso eliminará objetos que no existen https://min.io/docs/minio/linux/reference/minio-mc/mc-mirror.html
Similar a S3, dado que Ceph tiene una API compatible con S3, puede agregar un alias al Cliente MinIO
mc alias set ceph http://ceph_host:port cephuser cephpass
Luego puede usar mc mirror
para copiar los datos a su clúster MinIO
mc mirror ceph/mydata destminio/mydata
Le sugerimos que ejecute el comando mc mirror
con el indicador --watch
para monitorear continuamente los objetos y sincronizarlos con MinIO.
Hay sólo algunos ejemplos para mostrarle lo fácil que es migrar sus datos a MinIO. No importa si está utilizando protocolos antiguos como NFS o los más recientes y mejores como S3, MinIO está aquí para ayudarlo.
En esta publicación, entramos en detalles sobre cómo migrar desde sistemas de archivos y otros almacenes de datos como NFS, sistemas de archivos, GlusterFS, HDFS, HCP y, por último, pero no menos importante, Ceph. Independientemente de la pila tecnológica que se utilice, el backend MinIO proporciona una solución de almacenamiento de objetos definidos por software eficaz, duradera, segura y escalable, pero sencilla.
Si tiene alguna pregunta, no dude en comunicarse con nosotros en Slack .
También publicado aquí .