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