Skip to main content

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ãoEndpoint 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

products-cloud

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.