Manual de Boas Práticas para Usuários de Object Storage com Rclone
Introdução
Rclone é uma ferramenta de linha de comando popular para sincronizar arquivos e diretórios com serviços de armazenamento em nuvem, incluindo object storage. Este manual fornece boas práticas para usar rclone com o MGC object storage.
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 de armazenamento e configurar a conexão.
Boas Práticas
1. Use o Endpoint Correto
Certifique-se de usar o endpoint correto para o seu object storage. Isso pode ser encontrado na documentação da MGC aqui.
Atualmente contamos com 2 regiões:
Região | Endpoint Region ( <Region> ) |
Brasil Sudeste 1 ( br-se1) | https://br-se1.magaluobjects.com |
Brasil Nordeste 1 (br-ne1) | https://br-ne1.magaluobjects.com |
2. Autentique com Chaves de Acesso
Use chaves de acesso para autenticar com o MGC object storage. É sempre mais seguro do que usar autenticação de usuário e senha. Para o rclone utilize as tags de <ID> e <Secret> ( access_key_id e secret_access_key ).
3. --checksum
Avalie o uso do parâmetro --checksum
para habilitar a verificação de soma de checagem durante as transferências. Isso garante a integridade dos dados e detecta quaisquer erros.
4. --transfers
Avalie o uso do parâmetro --transfers
para aumentar ou diminuir o número de transferências concorrentes conforme a necessidade. Isso pode ajudar a prevenir o sobrecarregamento da rede ou aumentar o número de transferências concorrentes .
5. --verbose
Avalie o uso do parâmetro --verbose
para habilitar o registro detalhado. Isso pode ajudar com a solução de problemas e monitoramento das transferências.
6. --dry-run
Avalie o uso do parâmetro --dry-run
para simular transferências sem realmente transferir dados. Isso pode ajudar com testes e verificações de configuração.
7. Atualize Regularmente o Rclone
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 concorrentes usando a flag --transfers
. Isso pode ajudar a acelerar o upload de grandes arquivos, pois permite que múltiplas partes do arquivo sejam enviadas ao mesmo tempo.
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 )
Para otimizar o envio de arquivos com partes maiores talvez seja necessário configurar melhor o valor desta flag. Esta flag configura o tamanho do buffer de memória utilizada para cada transfer.
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. Avalie o uso da Flag --bwlimit
Ao definir um limite de largura de banda, você pode controlar o impacto das operações do rclone na sua conexão de rede, evitando que elas consumam toda a largura de banda disponível. Isso pode ser útil para evitar sobrecarregar a rede ou para garantir que outras atividades que dependem da largura de banda também tenham uma quantidade adequada de recursos.
rclone copy <arquivo_local> <bucket> --bwlimit 100M
2. Avalie o uso da Flag --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
Verifique os logs do rclone para erros e avisos.
2. Verifique sua Configuração
Verifique sua configuração do rclone e credenciais de armazenamento.
3. Verifique sua Conexão de Rede
Verifique se sua conexão de rede está estável e funcionando corretamente.
Seguindo estas boas práticas e usando os comandos comuns descritos neste manual, você deve ser capaz de usar o rclone com o MGC object storage de forma eficaz.