Skip to main content

Manual de Boas Práticas com Rclone

Introdução

Rclone é uma ferramenta poderosa para sincronizar arquivos e diretórios com diversos serviços de armazenamento em nuvem, incluindo object storage. Este manual fornece boas práticas para utilizar o rclone com o MGC object storage, garantindo eficiência e segurança em suas operações.

Configuração

1. Instale o Rclone

Baixe e instale o rclone do site oficial: RClone

2. Configure o Rclone

Execute rclone config para configurar uma nova conexão remota com o MGC object storage. Siga os prompts para inserir suas credenciais e configurar a conexão.

Boas Práticas

1. Use o Endpoint Correto

Certifique-se de utilizar o endpoint correto para o seu object storage. Confira a documentação da MGC para obter os endpoints apropriados:

2. Autentique com Chaves de Acesso

Use chaves de acesso para autenticação com o MGC object storage. É mais seguro do que autenticação baseada em usuário e senha. Para rclone, utilize as chaves access_key_id e secret_access_key.

3. Use a Flag --checksum

Utilize o parâmetro --checksum para habilitar a verificação de soma de checagem durante as transferências. Isso ajuda a garantir a integridade dos dados e detecta erros.

4. Ajuste o Número de Transferências com --transfers

Ajuste o parâmetro --transfers para controlar o número de transferências simultâneas. Aumentar o número de transferências pode acelerar o processo, mas também pode sobrecarregar a rede.

5. Use --verbose para Detalhes

Habilite o parâmetro --verbose para obter logs detalhados das operações. Isso é útil para monitorar o progresso e solucionar problemas.

6. Teste com --dry-run

Utilize o parâmetro --dry-run para simular transferências sem realmente mover dados. Isso é útil para validar configurações antes de realizar transferências reais.

7. Mantenha o Rclone Atualizado

Atualize regularmente o rclone para garantir que você tenha as últimas funcionalidades e correções de bugs.

Comandos Comuns

1. Upload de um arquivo

rclone copy <arquivo_local> <remote>:<bucket>

2. Download de um arquivo

rclone copy <remote>:<bucket> <arquivo_local>

3. Sincronização de um diretório

rclone sync <diretório_local> <remote>:<bucket>

4. Listagem de objetos remotos

rclone ls <bucket>

Principais parâmetros que impactam performance

1. --transfers ( default 4 )

Aumente o número de transferências simultâneas usando a flag --transfers para acelerar a transferência de grandes arquivos. Veja um exemplo de como aumentar a performance com diferentes configurações de --transfers e --s3-chunk-size:

Exemplo:

Utilizando parâmetros default para upload de 10 arquivos de 1GB cada com a sintaxe abaixo tivemos um tempo total a uma velocidade média de 1Gbps de** 1 minuto e 15 segundos:**

rclone copy file/10_1GB mgc-object-storage:/files/a/10_1Gb

Os mesmos arquivos, utilizando 8 transfers, foram transferidos a uma velocidade média de aproximadamente 1.4 Gbps em** 57 segundos**!

rclone copy files/10_1Gb mgc-object-storage:/files/b/10_1Gb --transfers 8

Utilizando 16 transfers a uma velocidade média de aproximadamente 2.3 Gbps reduziu o tempo total para** 34 segundos**.

rclone copy files/10_1Gb mgc-object-storage:/files/b/10_1Gb --transfers 16

Utilizando 32 transfers a uma velocidade média de aproximadamente 2.5 Gbps reduziu o tempo total para** 32 segundos**.

rclone copy files/10_1Gb mgc-object-storage:/files/b/10_1Gb --transfers 32

Nosso melhor cenário seria configurando 16 transfers e um chunk de 32Mi(megabytes).Na prática isso quer dizer que o rclone fará 16 transferências simultâneas e cada uma delas transferirá dados em chuncks de até 32MiB.

Considerando os parâmetros acima podemos calcular quantos chunks cada arquivo terá:

1GB = 1024MB

1024MB /32MB = 32 Chunks por arquivo

Então enviando 10 arquivos:

10 arquivos * 32 chunks por arquivo = 320 chunks no total

Fazendo 16 transferências simultâneas:

320 chunks / 16 chunks por transferência = 20 transferências

Portanto, na melhor configuração para esse cenário teríamos 20 transferências para completar a transferência total dos arquivos ( 10 x 1GB ) e, nesse caso com o melhor tempo de transferência de 25 segundos.

rclone copy files/10_1Gb mgc-object-storage:/files/g/10_1Gb –transfers 16 –s3-chunk-size 32Mi

products-cloud

2. --buffer-size ( default: 16Mi )

Ajuste o tamanho do buffer de memória para cada transferência, especialmente para arquivos grandes.

rclone copy --buffer-size 16Mi <arquivo_local> <remote>:<bucket>

3. --checkers ( default: 8 )

Aumentar o número de checkers pode potencialmente acelerar o processo de transferência, especialmente ao lidar com um grande número de arquivos ou ao transferir dados por uma conexão de larga banda. No entanto, usar muitos checkers pode sobrecarregar o sistema ou a rede, levando a uma redução de desempenho ou até mesmo a falhas.

rclone copy <arquivo_local> <remote>:<bucket> -checkers 8 

Outros cenários

1. Limitar Largura de Banda com --bwlimit

Defina um limite de largura de banda para evitar sobrecarregar a rede.

rclone copy <arquivo_local> <bucket> --bwlimit 100M

2. Ajustar Tamanho de Chunk com --s3-chunk-size (default 5Mi)

Para arquivos muito grandes pode ser necessário o aumento do - -s3-chunk-size a fim de reduzir o número de partes a serem enviadas. Também é importante se atentar ao limite de multi partes suportadas pelo MGC Object Storage ( 10Mi ). Para upload de arquivos de 100GB dividos por 5Mi teríamos 20Mi partes ( Valor não suportado pelo MGC object storage ). Neste caso seria necessário o aumento do - - s3-chunk-size para valores maiores que 10Mi.

rclone copy --s3-chunk-size 100Mi <arquivo_local> <remote>:<bucket>

Solução de Problemas

1. Verifique os Logs do Rclone

Examine os logs do rclone para identificar erros e avisos durante as operações.

2. Verifique sua Configuração

Revise a configuração do rclone e suas credenciais de armazenamento para garantir que estão corretas.

3. Verifique sua Conexão de Rede

Confirme que sua conexão de rede está estável e funcionando corretamente para evitar problemas durante as transferências.

Seguindo estas boas práticas e utilizando os comandos descritos neste manual, você estará bem preparado para gerenciar e otimizar suas operações com o rclone e o MGC object storage.