Observação:

Migre Dados para o OCI Cloud Storage Services usando o OCI Object Storage Sync e a Ferramenta s5cmd

Introdução

Este é o tutorial 3 de uma série de quatro tutoriais que mostra várias maneiras de migrar dados para os serviços de armazenamento em nuvem do OCI (Oracle Cloud Infrastructure). A série está configurada para que você possa revisar o Tutorial 1: Usar Ferramentas de Migração para Mover Dados para Serviços do OCI Cloud Storage para obter uma ampla compreensão das várias ferramentas e, em seguida, prosseguir para os tutoriais ou documentos relacionados relevantes para suas necessidades de migração. Este tutorial se concentrará no uso do OCI Object Storage Sync (os sync) e do s5cmd para migrar dados do sistema de arquivos (incluindo o OCI File Storage) de e para o OCI Object Storage.

A OCI oferece aos clientes computação de alto desempenho e opções de armazenamento em nuvem de baixo custo. Por meio do armazenamento sob demanda local, de objetos, arquivos, blocos e arquivos compactados, a Oracle atende aos principais requisitos de carga de trabalho de armazenamento e casos de uso.

Os serviços de armazenamento em nuvem da OCI oferecem opções de armazenamento em nuvem rápidas, seguras e duráveis para todas as necessidades da sua empresa. Começando com as opções de alto desempenho, como o OCI File Storage com o Lustre e o serviço OCI Block Volumes; sistemas de arquivos de escala de exabytes totalmente gerenciados do serviço OCI File Storage com pontos de acesso NFS de alto desempenho; para o OCI Object Storage altamente durável e escalável. Nossas soluções podem atender às suas demandas, desde aplicações com alto desempenho, como cargas de trabalho de IA/ML, até data lakes em escala de exabytes.

Determine a quantidade de dados que precisam ser migrados e o tempo de inatividade disponível para transferência para a nova plataforma de armazenamento da OCI. As migrações em lote são uma boa opção para dividir a migração em incrementos gerenciáveis. As migrações em batch permitirão que você programe o tempo de inatividade para aplicativos específicos em diferentes janelas. Alguns clientes têm a flexibilidade de fazer uma migração única em uma janela de manutenção programada de 2 a 4 dias. O OCI FastConnect pode ser usado para criar uma conexão privada dedicada entre o OCI e seu ambiente, com velocidades de porta de 1G a 400G para acelerar o processo de transferência de dados. O OCI FastConnect pode ser integrado a soluções de parceiros, como Megaport e ConsoleConnect, para criar uma conexão privada com seu data center ou interconexão nuvem a nuvem para mover dados mais diretamente de outro fornecedor de nuvem para o serviço de armazenamento em nuvem da OCI. Para obter mais informações, consulte a integração FastConnect com o Megaport Cloud Router.

Público-alvo

DevOps engenheiros, desenvolvedores, administradores e usuários de armazenamento em nuvem da OCI, gerentes de TI, usuários avançados da OCI e administradores de aplicativos.

Objetivo

Saiba como copiar e/ou sincronizar dados do sistema de arquivos de/para o OCI Object Storage usando a CLI do OCI com o os sync e a ferramenta s5cmd.

Pré-requisitos

Sincronizar o Sistema de Arquivos de Rede e os Dados do Sistema de Arquivos Local de/para o OCI Object Storage

O OCI Object Storage Sync faz parte da Interface de Linha de Comando (CLI) do OCI, que sincroniza um diretório do sistema de arquivos com objetos em um bucket. O comando percorre subdiretórios copiando arquivos ou objetos novos e modificados da origem para o destino e, opcionalmente, excluindo aqueles que não estão presentes na origem. É uma ferramenta conveniente para manter os dados do sistema de arquivos e os buckets do OCI Object Storage sincronizados. Nosso ambiente de teste descobriu que o OCI Object Storage Sync teve um bom desempenho para conjuntos de dados mistos e foi melhor do que outras ferramentas para arquivos grandes (1 TB ou mais).

O OCI Object Storage suporta uma API de Compatibilidade com Amazon S3. Os clientes que já estão familiarizados com a variedade de ferramentas do Amazon S3 podem continuar a usá-las. A ferramenta s5cmd é um projeto de código aberto gratuito. Ele permite navegar e transferir dados de/para um armazenamento de objetos compatível com S3. Ele é escrito na linguagem Go e otimizado para throughput paralelo. Durante nossos testes, descobrimos que a ferramenta s5cmd funciona melhor para arquivos pequenos (arquivos menores que 1 MB até 30 MB) e realizamos todas as outras ferramentas para mover arquivos pequenos. A ferramenta s5cmd também funciona bem para conjuntos de dados mistos ao mover dados de sistemas de arquivos para o OCI Object Storage.

Se seus dados puderem ser organizados em subconjuntos por diretórios ou prefixos, você também poderá expandir sua sincronização os e o s5cmd será executado em várias VMs para melhorar os tempos de transferência.

Usar Sincronização do SO para Sincronização

  1. Sincronize dados do sistema de arquivos local no OCI Object Storage.

    Execute o comando os sync básico a seguir para sincronizar os arquivos de um diretório de origem em um bucket de destino.

    oci os object sync --src-dir <path to migration-files> --bucket-name <bucket name>
    

    Observação: Esse mesmo comando pode ser usado para sistemas de arquivos locais locais, sistemas de arquivos NFS locais e em uma instância do OCI Compute com montagens NFS do OCI File Storage para mover dados do OCI File Storage para um bucket do OCI Object Storage.

  2. Migre dados do OCI Object Storage para um sistema de arquivos local.

    Execute o comando os sync básico a seguir para sincronizar arquivos/objetos de um bucket de origem em um sistema de arquivos de destino.

    oci os object sync --dest-dir <path to migration-target directory> --bucket-name <bucket name>
    

    Observação: Esse mesmo comando pode ser usado para sistemas de arquivos locais locais, sistemas de arquivos NFS locais e em uma instância do OCI Compute com uma montagem NFS do OCI File Storage para mover os dados do serviço OCI File Storage para um bucket do OCI Object Storage.

  3. Aumente as operações paralelas.

    Por padrão, apenas 10 operações são executadas em paralelo, aumentando as operações paralelas melhora as velocidades de transferência de dados e também consome mais recursos do sistema e largura de banda. Em nosso ambiente de teste, usamos o VM.Standard.E4.Flex com 24 OCPUs, largura de banda de rede 24Gbps, 384 GB de memória e encontramos 100 operações paralelas para funcionar melhor para velocidades de transferência. As VMs maiores podem aumentar esse número em 10 operações de cada vez até que uma velocidade de transferência ideal seja atingida ou até que o máximo de 1.000 transferências paralelas seja atingido. Formas de VM menores devem começar em 10 operações e aumentar em incrementos de 5 a 10 até que um bom throughput seja alcançado. Aumente ou diminua as operações paralelas com o flag a seguir.

    --parallel-operations-count <integer range>
    

    Observação: Se os erros começarem a ocorrer após o aumento da operação paralela, especialmente os erros com 429 "TooManyRequests", reduza as operações paralelas em 2 até que os erros sejam interrompidos.

  4. Filtre os arquivos correspondentes usando o comando pattern.

    Os padrões podem ser usados para incluir ou excluir arquivos correspondentes. Os comandos de padrão podem ser usados várias vezes na linha de comando para corresponder a vários padrões.

    • Para incluir arquivos que correspondam a um padrão, use o comando a seguir.

      --include
      
    • Para excluir arquivos que correspondem a um padrão, use o comando a seguir.

      --exclude
      

    Observação:

    • *: Corresponde a tudo
    • ?: Corresponde a qualquer caractere único
    • [sequence]: Corresponde a qualquer caractere na sequência
    • [!sequence]: Corresponde a qualquer caractere que não esteja na sequência
  5. Use o flag --prefix.

    O flag --prefix usado ao fazer upload de arquivos para o armazenamento de objetos com o comando --src-dir faz upload de objetos e adiciona o caminho do diretório ao nome do objeto como prefixo. Quando usado para fazer download de objetos do OCI Object Storage, somente objetos com o prefixo especificado são baixados e não aparecem como parte do nome do objeto/arquivo.

  6. Verifique uma transferência antes de uma execução.

    Antes de iniciar uma transferência, você pode determinar quais arquivos serão submetidos a upload/download para/do OCI Object Storage fazendo com que a sincronização os faça apenas uma impressão. Execute a linha de comando com o flag a seguir.

    --dry-run
    

Use s5cmd para Sincronizar

  1. Comando de sincronização e cópia.

    • A opção sync para s5cmd faz uma sincronização unidirecional da origem para o destino sem modificar nenhum dos arquivos de origem e também não excluirá arquivos no destino que não existem na origem. Adicione o flag --delete para remover arquivos no destino que não existem na origem.

    • O comando copy simplesmente copiará objetos da origem para o destino.

  2. Correspondência de padrão.

    A ferramenta s5cmd suporta curingas de vários níveis para as operações de sincronização e cópia. Isso é feito listando todos os objetos com o prefixo até o primeiro curinga e, em seguida, filtrando os resultados na memória.

    Quando a origem é um sistema de arquivos, os curingas também se aplicam. Ao usar o caractere *, às vezes ele é interpretado como um curinga globbing, coloque-o entre aspas simples para evitar resultados inesperados.

    Por exemplo, para copiar todos os arquivos compactados em um diretório em um bucket, execute o comando a seguir.

    s5cmd cp '*.gz' s3:/<bucket name>
    
  3. Comando básico de sincronização.

    • Sincronize dados do sistema de arquivos local no OCI Object Storage. Execute o comando s5cmd básico a seguir para sincronizar os arquivos de um diretório de origem em um bucket de destino.

      s5cmd sync /<path to migration-files> s3://<bucket name>
      
    • Sincronize dados do OCI Object Storage com um sistema de arquivos local. Execute o comando s5cmd básico a seguir para sincronizar arquivos/objetos de um bucket de origem em um sistema de arquivos de destino.

      s5cmd sync s3:/<bucket name>/* /<path to migration-target directory>
      

    Observação: Os mesmos comandos podem ser usados para sistemas de arquivos locais locais, sistemas de arquivos NFS locais e em uma instância do OCI Compute com montagens NFS do OCI File Storage para mover dados do OCI File Storage para um bucket do OCI Object Storage.

  4. Comando de cópia básica.

    Execute o comando s5cmd básico a seguir para copiar os arquivos de um diretório de origem do sistema de arquivos local para um bucket de destino do OCI Object Storage.

    s5cmd cp /<path to migration-files> s3://<bucket name>
    

    Copiar dados do OCI Object Storage para um sistema de arquivos local.

    s5cmd cp "s3:/<bucket name>/*" /<path to migration-target directory>
    

    Observação: Esses comandos podem ser usados para sistemas de arquivos locais locais, sistemas de arquivos NFS locais e em uma instância de computação do OCI com montagens NFS do OCI File Storage para mover dados do OCI File Storage para um Bucket do OCI Object Storage. Nosso teste usou principalmente o comando copy com s5cmd.

  5. Aumentar o paralelismo.

    Por padrão, a ferramenta s5cmd executa 256 workers em paralelo. Dependendo do tamanho da sua VM, talvez você queira aumentar ou diminuir o paralelismo. Em nosso ambiente de teste, usamos o VM.Standard.E4.Flex com 24 OCPUs, largura de banda de rede 24Gbps, 384 GB de memória e encontramos 1.000 operações paralelas para funcionar melhor para velocidades de transferência. As VMs maiores podem aumentar esse número em 10 operações de cada vez até que uma velocidade de transferência ideal seja atingida ou até que o máximo de 1.000 transferências paralelas seja atingido. Formas de VM menores devem começar em 10 operações e aumentar em incrementos de 5 a 10 até que um bom throughput seja alcançado. Aumente ou diminua as operações paralelas com o flag a seguir.

    --numworkers <interger>
    

    Observação: Se os erros começarem a ocorrer depois de aumentar o número de colaboradores, especialmente erros com 429 "TooManyRequests", reduza o número de colaboradores em 2 até que os erros parem de ocorrer.

    Por exemplo, copie todos os objetos de um bucket para um diretório local do sistema de arquivos.

    s5cmd --numworkers 1000 cp "s3://MyBucket/*" /my/directory
    

    Observação: Testamos com até 1.500 colaboradores e não vimos melhorias significativas. Como nossos testes descobriram que a ferramenta s5cmd funcionava melhor para arquivos pequenos, não encontramos benefícios em usar o flag concurrency para arquivos que precisam de uploads em várias partes e usar um alto número de colaboradores mostrou o melhor desempenho geral.

(Opcional) Ambientes de Teste

As recomendações são feitas com base em testes e interações com o cliente.

Observação: Os resultados do clone são incluídos para fornecer mais informações. Para obter detalhes sobre o uso do Rclone, consulte Tutorial 2: Mover Dados para o OCI Cloud Storage Services usando o Rclone.

Ambiente de Teste 1:

1 instância de VM VM.Standard.E4.Flex, 1 OCPU, largura de banda de rede 1Gbps, 16 GB de memória. Para simular a migração on-premises para o OCI, copie os dados do NFS PHX para o IAD.

Conjuntos de Dados

Ambiente de Teste 2:

Instâncias de VM: 1 a 2 instâncias de VM foram usadas por cada teste; usamos um VM.Standard.E4.Flex com 24 OCPUs, largura de banda de rede 24Gbps e 384 GB de memória. O Oracle Linux 8 foi usado para testes do Linux.

Conjuntos de Dados

Próximas Etapas

Prossiga para os tutoriais relacionados relevantes para suas necessidades de migração. Para mover dados para os serviços de armazenamento em nuvem do OCI:

Confirmações

Mais Recursos de Aprendizagem

Explore outros laboratórios em docs.oracle.com/learn ou acesse mais conteúdo de aprendizado gratuito no canal Oracle Learning YouTube. Além disso, visite education.oracle.com/learning-explorer para se tornar um Oracle Learning Explorer.

Para obter a documentação do produto, visite o Oracle Help Center.