Observação:
- Este tutorial requer acesso ao Oracle Cloud. Para se inscrever em uma conta gratuita, consulte Conceitos Básicos do Oracle Cloud Infrastructure Free Tier.
- Ele usa valores de exemplo para credenciais, tenancy e compartimentos do Oracle Cloud Infrastructure. Ao concluir seu laboratório, substitua esses valores por valores específicos do seu ambiente de nuvem.
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.
-
A ferramenta fpsync é um script wrapper paralelo que, por padrão, usa rsync. Ele também pode usar o Rclone (conforme abordado em Tutorial 2: Mover Dados para o OCI Cloud Storage Services usando o Rclone), tar, tarify e cpio.
-
O Rsync é um utilitário versátil para transferir e sincronizar arquivos para sistemas de arquivos remotos e locais.
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
-
O Rsync é um utilitário tradicional do Sistema Operacional (SO) Linux usado para fazer uma cópia única ou sincronização periódica de dados de uma máquina para outra em localizações geográficas iguais ou diferentes. Um único processo de rsync pode não ser suficiente com grandes conjuntos de dados para executar a transferência no tempo desejado. O Rsync tem opções para ativar vários processos de rsync, cada um em execução em um subconjunto específico do conjunto de dados, concluindo a transferência do conjunto de dados mais rapidamente do que um único processo. No entanto, determinar o equilíbrio entre quantos processos e quais subconjuntos pode ser desafiador com base na complexidade da hierarquia do conjunto de dados. O Fpsync simplifica esse processo. O Fpsync é um orquestrador que divide todo o conjunto de dados em partes menores e gera vários processos rsync com base no paralelismo do conjunto de usuários. Internamente, o Fpsync usa o rsync para fazer a transferência real. As opções Cpio e tar estão disponíveis como opções de ferramenta subjacentes para fpsync, mas rsync é o padrão.
-
O Fpsync tem a opção de nós de trabalho na qual você pode distribuir a transferência entre vários nós em vez de um único nó. Além de aumentar os processos de rsync paralelos no mesmo nó (dimensionamento), você também pode aumentar o número de nós (dimensionamento) para executar o número aumentado de processos de rsync.
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:
-
Saiba como usar rsync e fpsync juntos.
-
Entenda os benefícios de desempenho do uso do fpsync.
Pré-requisitos
-
Uma conta do OCI.
-
A CLI do OCI (Interface de Linha de Comando) do Oracle Cloud Infrastructure foi instalada com um arquivo de configuração de trabalho no diretório home em um subdiretório chamado
.oci
. Para obter mais informações, consulte Configurando o Arquivo de Configuração. -
Permissão do usuário para criar, exportar e montar o OCI File Storage ou acesso a um ponto de acesso NFS do OCI File Storage que já esteja montado em uma VM. Para obter mais informações, consulte Gerenciar Política de Armazenamento de Arquivos.
-
Você sabe como criar, gerenciar e montar o NAS (Network Attached Storage) e o OCI File Storage. Para obter mais informações, consulte OCI Configuring File System Storage e Overview of File Storage.
-
Acesso para criar e iniciar instâncias do OCI Compute ou acesso a 3 sistemas para executar o fpsync. Para obter mais informações, consulte Criando uma Instância.
-
Familiarizado com:
-
Trabalhando com SSH, gerando chaves SSH e trabalhando com arquivos de configuração SSH. Para obter mais informações, consulte Criando um Par de Chaves SSH na Linha de Comando do Linux para Acesso ao OCI.
-
Ferramentas e comandos básicos de rede para verificar a conectividade entre dois sites ou sistemas.
-
Usando uma interface de terminal ou shell no Mac OS, Linux, Berkeley Software Distribution (BSD) e no Windows PowerShell, prompt de comando ou bash.
-
Instalação de software em um sistema Linux.
-
-
Para saber as ferramentas de migração que podemos usar, consulte o Tutorial 1: Usar Ferramentas de Migração para Mover Dados para o OCI Cloud Storage Services.
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
-
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/
-
Executar vários processos de rsync em paralelo.
-
Você pode usar os comandos
find
exargs
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.
-
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
-
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.
Siga as etapas:
-
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.
-
Monte o compartilhamento NAS de origem nos três nós.
Use as opções de montagem
nordirplus
enconnect=16
, não especifique outras opções de montagemnfs
.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.
-
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 comandofpsync
é 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 comoworker-src-1
,worker-src-2
eworker-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
-
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.
-
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. -
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 é denominadaid_rsa.pub
. Propague essa chave para todos os nós de trabalho usando o comandocat
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 comandossh-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
-
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 decpu_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.
- Selecione o valor
-
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 porcpu_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/
-
Determine o valor para
-n
.Select the -n value to be equal to number of cpu_cores of all worker nodes in the source and keep as many as destination worker nodes of same CPU and memory. In this example, it is 3 worker nodes times 16 cpu_cores = 48.
-
Determine o valor para
-f
.In this example, two folders are large directories. Of the total 1.1 million files, the two folders contain ~700K files with an average file size of 160KB. Memory in each worker node = 64GB = 64000000KB. Processes in each worker node = 8 OCPU = 16 cpu_cores. Memory per Process = 64000000/16 = 4000000KB/process. Now, an appropriate value for -f can be calculated as 4000000KB / 160 = 25000.
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:
-
Usando o Rclone, consulte Tutorial 2: Mover Dados para o OCI Cloud Storage Services usando o Rclone.
-
Usando o OCI Object Storage Sync e o S5cmd, consulte o Tutorial 3: Mover Dados para o OCI Cloud Storage Services usando o OCI Object Storage Sync e o S5cmd.
Links Relacionados
-
Características de Desempenho do Armazenamento de Arquivos do OCI
-
Fundamentos de Migração para Mover Dados para o OCI Cloud Storage
-
Tutorial 2: Mover Dados para o OCI Cloud Storage Services usando o Rclone
Confirmações
- Autor - Vinoth Krishnamurthy (Membro Principal da Equipe Técnica, OCI File Storage)
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.
Move Data into OCI Cloud Storage Services using Fpsync and Rsync
G25651-01
January 2025
Copyright ©2025, Oracle and/or its affiliates.