Observação:

Mover Dados para Serviços de Armazenamento na Nuvem da OCI usando Fpsync e Rsync

Introdução

Este é o tutorial 4 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 fpsync e do rsync para migrar dados do sistema de arquivos para o OCI File 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.

Diferença entre Rsync e Fpsync

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 usar o rsync e o fpsync para copiar e sincronizar dados nos serviços de armazenamento na nuvem do OCI:

Pré-requisitos

Migre Dados para o Armazenamento de Arquivos do OCI

O Fpsync e o rsync podem ser usados para migrar dados do sistema de arquivos (serviço OCI File Storage, serviço OCI Block Volumes, OCI File Storage with Lustre, sistema de arquivos on-premises e sistema de arquivos de rede on-premises (NFS) para outros tipos de armazenamento de sistema de arquivos (incluindo OCI File Storage).

Usar Rsync para Migrar Dados

  1. Use rsync com streaming de instância para instância.

    Para pequenos conjuntos de dados de até algumas dezenas de GB e alguns milhares de arquivos, o rsync instância a instância de streaming pode ser usado. O streaming de instância para instância usando NFS local ativado por SSH em uma rede e SSH entre a rede de origem e de destino e, portanto, ajuda a reduzir a latência do NFS entre duas redes. Use o seguinte comando.

    rsync --archive --perms --owner --group --xattrs --acls --recursive --delete --compress --ignore-errors --progress --log-file=$HOME/rsync/logs/test.log1 --quiet -e ssh /src/path/ root@<destination_instance>:/destination/path/
    
  2. Executar vários processos de rsync em paralelo.

    • Você pode usar os comandos find e xargs para executar vários processos rsync.

      find /src/path/ -maxdepth 1 | xargs -P 24 -I {} rsync --archive --perms --owner --group --xattrs --acls --recursive --delete --compress --log-file=<logfile_path> -quiet -e ssh {} root@<destination_instance>:/destination/path/
      
    • Você também pode usar o paralelo GNU.

      find /src/path/ -maxdepth 1 | parallel -P24 rsync --archive --perms --owner --group --xattrs --acls --recursive --delete --compress --exclude=.snapshot --ignore-errors --progress --log-file=$HOME/rsync/logs/test.log1 --quiet -e ssh {} root@<destination_instance>:/destination/path/
      

    Observação: Em ambos os exemplos, 24 processos são executados de cada vez, o parâmetro foi escolhido com base na capacidade da CPU da instância usada.

Usar o Fpsync para Migrar Dados

A ferramenta fpsync é um encapsulador paralelo do rsync. Ele também pode usar tar, tarify e cpio, mas o padrão é rsync.

  1. Instale o fpsync em sua máquina Linux.

    • Execute o comando a seguir para o Linux 8.
    sudo yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
    sudo yum install fpart -y
    
    • Execute o comando a seguir para o Linux 9.
    sudo yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm
    sudo yum install fpart -y
    
  2. Execute o fpsync usando o comando a seguir.

    Por exemplo:

    fpsync -v -n `nproc` -o "-lptgoD -v --numeric-ids --logfile /tmp/fpsync.log1” /src/path/ root@<destination_instance>:/destination/path/
    

Observação: Para obter mais opções de fpsync e detalhes do parâmetro, consulte man fpsync.

Execute o Fpsync usando Três Nós de Trabalho para Migrar Dados de Compartilhamentos de Arquivos Locais para o Serviço OCI File Storage

Siga as etapas de alto nível para executar o fpsync usando três nós de trabalho para migrar dados de compartilhamentos de arquivos locais (disco local, SAN ou NAS) para o serviço OCI File Storage.

A imagem a seguir mostra um diagrama da arquitetura do componente.

Diagrama de Arquitetura de Componentes

Siga as etapas:

  1. Identifique três nós de trabalho e um nó de destino.

    Identifique três sistemas locais aos quais você tem acesso para montar seu sistema de arquivos de origem. Como alternativa, você pode criar e iniciar três instâncias de VM do OCI Compute para fins de teste.

    Identifique uma instância de VM do OCI existente ou crie e inicie uma nova para servir como nó de destino.

  2. Monte o compartilhamento NAS de origem nos três nós.

    Use as opções de montagem nordirplus e nconnect=16, não especifique outras opções de montagem nfs.

    Por exemplo, execute o comando de montagem a seguir em um sistema Linux.

    sudo mount -t nfs -o nordirplus,nconnect=16 10.x.x.x:/<EXPORT_PATH_NAME> /mnt/nfs-data
    

    Por exemplo, execute o comando a seguir para verificar a montagem.

    mount | grep /mnt/nfs-data
    

    Observação: Para fins de teste, você pode usar o OCI File Storage para criar, exportar e montar um sistema de arquivos. Os dados de teste podem ser criados na montagem para tentar o fpsync.

  3. Selecione um nó para executar o fpsync e atualize o arquivo /etc/hosts.

    Você pode escolher um dos três nós ou outro nó para executar o comando fpsync. O nó em que o comando fpsync é executado é chamado de nó executor.

    No nó em que o fpsync será executado, use seu editor de texto preferencial para atualizar o arquivo /etc/hosts com os três nós de trabalho como worker-src-1, worker-src-2 e worker-src-3.

    Por exemplo:

    vim /etc/hosts
    127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
    ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
    10.0.0.4 worker-src-1.subnet.vcn.oraclevcn.com worker-src-1
    10.0.0.5 worker-src-2
    10.0.0.6 worker-src-3
    
  4. Monte o sistema de arquivos de destino no nó de destino.

    Identifique o sistema de arquivos de destino e monte-o no nó de destino. Como alternativa, crie e monte um Armazenamento de Arquivos do OCI no nó de destino.

  5. Certifique-se de que a conectividade local com o OCI tenha sido estabelecida.

    Use ferramentas comuns de rede, como ping, traceroute, ssh etc., para verificar a conectividade entre sistemas, on-premises e OCI.

  6. Ative o SSH sem senha mutuamente entre todos os nós de origem e destino e verifique a conexão SSH entre os pares de nós de origem e destino.

    Identifique a chave SSH pública do usuário que executará o comando fpsync no nó do executor. Essa chave geralmente está localizada no diretório home do usuário no diretório .ssh e geralmente é denominada id_rsa.pub. Propague essa chave para todos os nós de trabalho usando o comando cat para exibir seu conteúdo, copiando a chave e colando-a no arquivo $HOME/.ssh/authorized_keys nos nós de trabalho. Como alternativa, se o SSH baseado em senha estiver ativado, você poderá usar o comando ssh-copy-id para distribuir a chave para cada nó de trabalho e o nó de destino. Por exemplo:

    [worker-src-1 ~]$ ssh-copy-id username@worker-src-2
    
  7. Execute o comando fpsync no nó do executor.

    Observação: O fpsync deve ser instalado somente no nó do executor que executará os comandos rsync para os nós de destino por meio do SSH por meio dos nós de trabalho.

    Por exemplo:

    fpsync -v -n X -f Y -o "-lptgoD -v --numeric-ids -e ssh -C" \
    -w username@worker-src-1 -w username@worker-src-2 -w username@worker-src-3 \
    -d /nfs-data/fpsync_wrkr /nfs-data/fpsync_src/ opc@worker-dest:/fpsync-fs/
    

    Observação: Substitua X e Y pelos valores das opções fpsync -n e -f.

    • Determine o valor dos jobs de sincronização simultâneos que é -n.

      • Selecione o valor -n para ser igual ao número de cpu_cores de todos os nós de trabalho na origem e mantenha quantos nós de trabalho de destino da mesma CPU e memória.
      • Se você tiver 3 nós de trabalho com 16 núcleos de CPU em cada um, serão 3 nós de trabalho vezes 16 cpu_cores = 48.
    • Determine o valor da quantidade de arquivos a serem transferidos por job de sincronização que é -f.

      • Por exemplo, se você tiver duas pastas com diretórios grandes e um total de 1,1 milhão de arquivos, as duas pastas conterão arquivos ~700K com um tamanho médio de arquivo de 160 KB.
      • Cada nó de trabalho é configurado com: 64 GB = 64000000KB de memória, 8 OCPU = 16 cpu_cores, com memória por cpu_core sendo: 64000000/16 = 4000000KB/cpu_core. Memória em cada nó de trabalho = 64 GB = 64000000 KB.
      • Calcule o valor de -f, 4000000KB/160 = 25000.

(Opcional) Ambiente de Teste

Para simular a migração local para a OCI, o sistema de arquivos do OCI File Storage (Ashburn) com o conjunto de dados a seguir é usado como compartilhamento NAS local e o sistema de arquivos do OCI File Storage (Phoenix) é usado como destino.

Ambas as regiões são pareadas remotamente usando o Gateway de Roteamento Dinâmico.

Diretório do Conjunto de Dados Tamanho Contagem de arquivos Tamanho de cada arquivo
Diretório 1 107.658 GiB 110,242 1 MiB
Diretório 2 1.687 GiB 110,569 15 MiB
Diretório 3 222 GiB 111 2 GiB
Diretório 4 1.265 TiB 1,295 1 GiB
Diretório 5 26.359 GiB 1,687 16 MiB
Diretório 6 105.281 MiB 26,952 4 KiB
Diretório 7 29.697 MiB 30,410 1 KiB
Diretório 8 83.124 GiB 340,488 256 KiB
Diretório 9 21.662 GiB 354,909 64 KiB
Diretório 10 142.629 GiB 36,514 4 MiB
Diretório 11 452.328 MiB 57,898 8 MiB
Diretório 12 144 GiB 72 2GiB
Diretório 13 208.500 GiB 834 256 MiB
Diretório 14 54.688 GiB 875 64 MiB

Instâncias de VM: Nas regiões Ashburn e Phoenix, são usadas três VMs de 16 cpu_core, 64 GB de memória, 8Gbps de largura de banda Linux9 como nós de trabalho e uma VM 8 cpu_core como nó executor.

Veja a seguir as definições TCP que toda a instância tem:

net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_wmem = 4096 87380 16777216
net.ipv4.tcp_window_scaling = 1

Ambas as instâncias regionais têm o respectivo sistema de arquivos do OCI File Storage montado, conforme mencionado na seção Executar Fpsync usando Três Nós de Trabalho para Migrar Dados de Compartilhamentos de Arquivos Locais para o OCI File Storage Service.

Execute o comando fpsync a seguir. X e Y são opções do fpsync.

fpsync -v -n X -f Y -o "-lptgoD -v --numeric-ids -e ssh -C" \
 -w opc@worker-src-1 -w opc@worker-src-2 -w opc@worker-src-3 \
 -d /fpsync-fs/fpsync_wrkr /fpsync-fs/x_region_fpsync_src/ opc@worker-dest:/fpsync-fs/

A tabela a seguir mostra o tempo gasto pelo fpsync para concluir os 2,25 TB e 1 milhão de arquivos de transferência de dados para diferentes X e Y e rsync SSH e combinações de compactação.

opção fpsync opção de montagem nfs nos nós de trabalho de origem e destino Tipo de desempenho do ponto de acesso NFS do File Storage Tempo gasto
-n 30 -f 2000 -e ssh nconnect=16, nordirplus 3 pontos de acesso NFS padrão, 1:1 mapeados para nós de trabalho 237m28s
-n 48 -f 5000 -e ssh -C nconnect=16, nordirplus fonte e destino com 1 HPMT 40 cada 163m38.887s
-n 60 -f 20000 nconnect=16, nordirplus 3 pontos de acesso NFS padrão, 1:1 mapeados para nós de trabalho 124m25.435s
-n 48 -f 400000 -e ssh -C nconnect=16, nordirplus 3 pontos de acesso NFS padrão, 1:1 mapeados para nós de trabalho 122m55.458s
-n 100 -f 200000 -e ssh nconnect=16, nordirplus 3 pontos de acesso NFS padrão, 1:1 mapeados para nós de trabalho 120m44s
-n 60 -f 200000 -e ssh nordirplus apenas, sem conexão 3 pontos de acesso NFS padrão, 1:1 mapeados para nós de trabalho 118m41.393s
-n 60 -f 200000 -e ssh nconnect=16, nordirplus 3 pontos de acesso NFS padrão, 1:1 mapeados para nós de trabalho 118m3.845s
-n 48 -f 20000 -e ssh nconnect=16, nordirplus fonte e destino com 1 HPMT 40 cada 113m34.011s
-n 48 -f 200000 nconnect=16, nordirplus fonte e destino com 1 HPMT 40 cada 110m15.555s
-n 48 -f 200000 nconnect=16, nordirplus fonte e destino com 1 HPMT 40 cada 109m3.472s

Podemos ver que qualquer combinação de -n acima de 48 e -f acima de 20000 deu desempenho semelhante em torno de 2 horas de tempo de transferência em toda a região. Mesmo, com o ponto de acesso NFS de alto desempenho 40 GBps, não há muita redução significativa no tempo gasto.

O resultado significa que, dependendo do tamanho do conjunto de dados real a ser transferido, você pode selecionar vários pontos de acesso NFS padrão ou de alto desempenho para o sistema de arquivos. Se o conjunto de dados de origem for feito de arquivos de tamanho grande (tamanho do arquivo >= 1M) principalmente e o tamanho total do conjunto de dados for de 20 TB e superior, o ponto de acesso NFS de alto desempenho será uma boa opção. Além disso, os pontos de acesso NFS padrão com uma configuração de expansão podem fornecer um desempenho desejado, bem como economia.

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.