paint-brush
As ferramentas de migração de dados para ajudá-lo a entrar no MinIOpor@minio
7,028 leituras
7,028 leituras

As ferramentas de migração de dados para ajudá-lo a entrar no MinIO

por MinIO8m2023/11/01
Read on Terminal Reader
Read this story w/o Javascript

Muito longo; Para ler

vamos revisar algumas das ferramentas disponíveis para obter dados do S3, FileSystem local, NFS, Azure, GCP, Hitachi Content Platform, Ceph e outros, e em clusters MinIO.
featured image - As ferramentas de migração de dados para ajudá-lo a entrar no MinIO
MinIO HackerNoon profile picture
0-item
1-item


MinIO roda em qualquer coisa – bare metal, Kubernetes, Docker, Linux e muito mais. As organizações optam por executar o MinIO para hospedar seus dados em qualquer uma dessas plataformas e dependem cada vez mais de múltiplas plataformas para satisfazer diversos requisitos. A escolha do hardware e sistema operacional subjacentes é baseada em vários fatores, principalmente a quantidade de dados a serem armazenados no MinIO, além dos requisitos de integração com outros softwares nativos da nuvem, desempenho e segurança.


Muitos de nossos clientes executam MinIO em bare metal, enquanto a maioria executa em Kubernetes. A execução de várias instâncias do MinIO em uma arquitetura em contêiner orquestrada pelo Kubernetes é extremamente eficiente. Os clientes MinIO implementam novas regiões e atualizam serviços sem interrupções, com clusters Kubernetes separados em execução em cada região e o objetivo operacional de não compartilhar nada para maior resiliência e escalabilidade.


Os clientes mudam para o MinIO por vários motivos, incluindo:


  • API compatível com S3
  • Implantações agnósticas de nuvem multinuvem
  • Gerenciamento de ACL estilo IAM estilo S3
  • Armazenamento distribuído e tolerante a falhas usando Erasure Coding
  • Camadas e versionamento de objetos em vários clusters
  • Bucket e replicação site a site
  • Replicação em lote via Batch Framework
  • Objeto do lado do servidor e criptografia de dados do cliente
  • Criptografia de dados de rede da camada de transporte


Devido a esses diversos motivos e ambientes onde o MinIO pode ser utilizado e instalado, é realista presumir que há uma série de fontes de dados onde os dados já estão armazenados e que você gostaria de inserir no MinIO.


Nesta postagem, vamos revisar algumas das ferramentas disponíveis para obter dados do S3, FileSystem local, NFS, Azure, GCP, Hitachi Content Platform, Ceph e outros, e em clusters MinIO onde podem ser expostos à IA nativa da nuvem /ML e pacotes analíticos.

Cliente MinIO

Para começar, usaremos o MinIO Client (mc) durante esta postagem para algumas dessas opções. Certifique-se de instalá-lo e definir o alias para o MinIO Server em execução.


 mc alias set destminio https://myminio.example.net minioadminuser minioadminpassword


Adicionaremos mais alguns aliases de “fonte” à medida que percorremos os diferentes métodos.

Sistemas de arquivos

A maioria dos casos de uso para migração de dados para o MinIO começa com um sistema de arquivos montado ou volume NFS. Nesta configuração simples, você pode usar o mc mirror para sincronizar os dados da origem ao destino. Pense no mc mirror como um canivete suíço para sincronização de dados. Isso tira o fardo do usuário de determinar a melhor maneira de interagir com a fonte da qual você está buscando os objetos. Ele oferece suporte a várias fontes e, com base na fonte de onde você está extraindo, as funções corretas são usadas para habilitá-las.


Por exemplo, vamos começar com um sistema de arquivos simples montado a partir de um disco rígido físico, disco virtual ou até mesmo algo como uma montagem GlusterFS. Contanto que seja um sistema de arquivos legível pelo sistema operacional, o MinIO também pode lê-lo:


 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


Vamos supor que seus objetos estejam em /home/mydata , você executaria o seguinte comando para espelhar os objetos (se o bucket mydata ainda não existir, você teria que criá-lo primeiro):


 mc mirror /home/mydata destminio/mydata


Este comando garantirá que os objetos que não estão mais no local de origem sejam removidos do destino ou quando novos objetos forem adicionados à origem, eles serão copiados para o destino. Mas se você quiser sobrescrever objetos existentes modificados na fonte, passe o sinalizador --overwrite .

NFS

O Network File Share (NFS) geralmente é usado para armazenar objetos ou dados que não são acessados com frequência porque, embora onipresente, muitas vezes o protocolo é muito lento na rede. No entanto, muitos ETL e alguns sistemas legados usam NFS como repositório de dados a serem usados para operações, análises, IA/ML e casos de uso adicionais. Faria mais sentido que esses dados residissem no MinIO devido à escalabilidade, segurança e alto desempenho de um cluster MinIO, juntamente com a capacidade do MinIO de fornecer serviços para aplicativos nativos da nuvem usando a API S3.


Instale os pacotes necessários para montar o volume NFS

 apt install nfs-common


Certifique-se de adicionar o diretório /home a /etc/exports


 /home client_ip(rw,sync,no_root_squash,no_subtree_check)


Nota: Certifique-se de reiniciar seu servidor NFS, por exemplo em servidores Ubuntu

 systemctl restart nfs-kernel-server


Crie um diretório para montar a montagem NFS

 mkdir -p /nfs/home


Monte o volume NFS

 mount <nfs_host>:/home /nfs/home


Copie os dados do NFS para o MinIO

 mc mirror /nfs/home destminio/nfsdata


Pronto, agora você pode mover seus objetos grandes do NFS para o MinIO.

S3

Como mencionamos anteriormente, mc mirror é um canivete suíço de sincronização de dados. Além dos sistemas de arquivos, ele também copia objetos de armazenamentos compatíveis com API S3 ou S3 e os espelha no MinIO. Um dos casos de uso mais populares é o espelhamento de um bucket do Amazon S3.


Siga estas etapas para criar um bucket AWS S3 em sua conta. Se você já possui uma conta com dados, também podemos usá-la.


Depois que um bucket for criado ou os dados forem adicionados a um bucket existente, crie uma nova política IAM com chave de acesso e chave secreta permitindo acesso apenas ao nosso bucket. Salve as credenciais geradas para a próxima etapa.


Podemos trabalhar com qualquer armazenamento compatível com S3 usando o MinIO Client. A seguir, vamos adicionar um alias usando o nome do bucket S3 que criamos junto com as credenciais que baixamos


 mc alias set s3 https://s3.amazonaws.com BKIKJAA5BMMU2RHO6IBB V7f1CwQqAcwo80UEIJEjc5gVQUSSx5ohQ9GSrr12 --api S3v4


Use mc mirror para copiar os dados do S3 para MinIO

 mc mirror s3/mybucket destminio/mydata


Dependendo da quantidade de dados, da velocidade da rede e da distância física da região onde os dados do bucket estão armazenados, pode levar alguns minutos ou mais para você espelhar todos os dados. Você verá uma mensagem quando mc terminar de copiar todos os objetos.

HDFS

Para o próximo conjunto de ferramentas, escrevemos scripts dedicados para satisfazer alguns dos requisitos não padrão de migração de dados de casos extremos que precisamos cumprir. Uma delas é a migração do HDFS e do Hadoop. Muitas empresas têm tantos dados armazenados no Hadoop que é impossível ignorá-los e começar do zero com uma plataforma nativa da nuvem. É mais viável transferir esses dados para algo mais moderno (e nativo da nuvem) como MinIO e executar seu ETL e outros processos dessa forma. É bastante simples de configurar.


Crie um arquivo chamado core-site.xml com o seguinte conteúdo


 <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>


Defina as seguintes variáveis de ambiente


 export HDFS_SOURCE_PATH=hdfs://namenode:8080/user/minio/testdir export S3_DEST_PATH=s3a://mybucket/testdir


Baixe o seguinte arquivo, chmod +x e execute-o


 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


Se você armazena dados no Hadoop há vários anos, esse processo pode levar várias horas. Se estiver em um cluster de produção, recomendamos migrar os dados fora do horário de expediente durante as janelas de manutenção para minimizar o impacto de qualquer degradação de desempenho em seu cluster Hadoop enquanto os dados estão sendo espelhados.


Mais detalhes sobre a migração do HDFS para o MinIO estão disponíveis neste GitHub Repo e também temos uma postagem no blog Migrating from HDFS to Object Storage .

Profissional de saúde

Anteriormente, escrevemos uma postagem incrível no blog sobre Hitachi Content Platform e como migrar seus dados para um cluster MinIO. Eu recomendaria a leitura da postagem do blog para obter detalhes completos, mas o ponto crucial é o seguinte.


Depois de configurar o cluster HCP e o arquivo de entrada necessários, baixe a ferramenta de migração e execute o seguinte comando para iniciar o processo de migração


 $ 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

Ceph

Por último, mas não menos importante, mantivemos o elefante na sala até o fim. Embora antigo, o Ceph é um armazenamento de dados popular e possui uma API compatível com S3. Ele é usado por outros projetos Kubernetes como backend para armazenamento de objetos, como Rook. Ceph, no entanto, é um gigante difícil de configurar e executar. Portanto, é natural que as pessoas queiram migrar seus dados para algo mais simples, mais fácil de manter e com maior desempenho.


Existem duas maneiras de copiar dados do Ceph:


Semelhante ao S3, como o Ceph possui API compatível com S3, você pode adicionar um alias ao MinIO Client


 mc alias set ceph http://ceph_host:port cephuser cephpass


Você pode então usar mc mirror para copiar os dados para o seu cluster MinIO


 mc mirror ceph/mydata destminio/mydata


Sugerimos que você execute o comando mc mirror com o sinalizador --watch para monitorar continuamente os objetos e sincronizá-los com o MinIO.

Migre seus dados para o MinIO hoje mesmo!

Existem apenas alguns exemplos que mostram como é fácil migrar seus dados para o MinIO. Não importa se você está usando protocolos legados mais antigos, como NFS, ou os melhores e mais recentes, como S3, o MinIO está aqui para apoiá-lo.


Neste post detalhamos como migrar de sistemas de arquivos e outros armazenamentos de dados, como NFS, sistema de arquivos, GlusterFS, HDFS, HCP e, por último, mas não menos importante, Ceph. Independentemente da pilha de tecnologia executada nele, o backend MinIO fornece uma solução de armazenamento de objetos definidos por software de alto desempenho, durável, segura e escalonável, mas simples.


Se você tiver alguma dúvida, sinta-se à vontade para entrar em contato conosco no Slack !


Também publicado aqui .