Transferência de Dados¶
Visão geral¶
A transferência de dados entre o cluster HPC e seu computador local é uma operação essencial no fluxo de trabalho de computação de alto desempenho. Este guia apresenta os métodos mais comuns para transferir arquivos de forma segura e eficiente.
Pré-requisitos
Antes de transferir dados, certifique-se de que você:
- Tem uma conexão SSH configurada
- Conhece o endereço do cluster (ex:
ogun-login.senaicimatec.com.br) - Sabe qual diretório usar no cluster (veja Gerenciamento de arquivos)
Métodos de transferência¶
SCP (Secure Copy)¶
O scp é a ferramenta mais simples para transferir arquivos via SSH. Funciona de forma similar ao comando cp, mas permite copiar entre máquinas diferentes.
Baixar arquivo do cluster para seu computador¶
Exemplo:
Baixar diretório completo (recursivo)¶
Exemplo:
Enviar arquivo do seu computador para o cluster¶
Exemplo:
Enviar diretório para o cluster¶
Porta SSH customizada
Se o cluster usar uma porta SSH diferente da padrão (22), use a opção -P:
Rsync (Recomendado para transferências grandes)¶
O rsync é mais eficiente que o scp para transferências grandes ou quando você precisa sincronizar diretórios. Ele transfere apenas as diferenças entre os arquivos, economizando tempo e largura de banda.
Baixar dados do cluster¶
Opções explicadas:
-a: modo arquivo (preserva permissões, timestamps, etc.)-v: verbose (mostra detalhes)--progress: mostra progresso da transferência
Enviar dados para o cluster¶
Sincronização com exclusões¶
Se você deletou arquivos localmente e quer que sejam deletados no destino também:
Cuidado com --delete
A opção --delete remove arquivos no destino que não existem na origem. Use com cuidado!
Transferência com exclusão de padrões¶
rsync -av --progress --exclude='*.tmp' --exclude='__pycache__' ~/projeto/ <usuario>@<cluster>:/scratch/projetos/<seu_projeto>/
SFTP (Transferência Interativa)¶
O sftp fornece uma interface interativa similar ao FTP, mas segura via SSH.
Conectar ao cluster via SFTP¶
Comandos básicos do SFTP¶
Após conectar, você pode usar os seguintes comandos:
# Listar arquivos no cluster
ls
# Listar arquivos no seu computador local
lls
# Mudar diretório no cluster
cd /scratch/projetos/<seu_projeto>/
# Mudar diretório local
lcd ~/Downloads/
# Baixar arquivo
get arquivo.txt
# Baixar diretório (recursivo)
get -r pasta/
# Enviar arquivo
put meu_arquivo.txt
# Enviar diretório
put -r minha_pasta/
# Sair
exit
Exemplo de sessão:
$ sftp joao@ogun-login.senaicimatec.com.br
sftp> cd /scratch/projetos/analise_clima/
sftp> ls
resultados_2024/ dados/ scripts/
sftp> get -r resultados_2024/
Fetching /scratch/projetos/analise_clima/resultados_2024/ to resultados_2024
sftp> exit
Clientes gráficos¶
Para usuários que preferem interfaces gráficas, existem várias opções:
Windows¶
- MobaXterm: Interface integrada com navegador de arquivos (recomendado)
- WinSCP: Cliente SFTP/SCP dedicado
- FileZilla: Suporta SFTP
macOS¶
Linux¶
- FileZilla: Disponível na maioria das distribuições
- Gerenciadores de arquivos nativos (Nautilus, Dolphin) com suporte a SFTP via
sftp://
Boas práticas¶
Organização de Dados¶
- Use diretórios apropriados:
/scratch/projetos/<projeto>/para dados de entrada/saída de jobs do projeto/home/$USER/apenas para scripts pequenos e configurações pessoais-
Veja Gerenciamento de arquivos para detalhes sobre organização
-
Organize por projeto:
Otimização de Transferências¶
-
Comprima arquivos grandes antes de transferir:
-
Use rsync para retomar transferências interrompidas:
A opçãorsync -avz --progress --partial <usuario>@<cluster>:/scratch/projetos/<seu_projeto>/dados_grandes/ ~/--partialmantém arquivos parcialmente transferidos para retomar depois. -
Transfira durante horários de baixo uso quando possível.
Verificação de Integridade¶
Após transferências importantes, verifique a integridade dos dados:
# Gerar checksum no cluster
md5sum arquivo.dat > arquivo.md5
# Transferir ambos
scp <usuario>@<cluster>:/scratch/projetos/<seu_projeto>/arquivo.* ~/
# Verificar localmente
md5sum -c arquivo.md5
Limitações e quotas¶
Respeite as quotas de armazenamento
Cada diretório tem limites de armazenamento. Entre em contato com hpc@fieb.org.br para informações sobre quotas.
- Largura de banda: Transferências muito grandes podem afetar outros usuários. Seja considerado.
- Tempo de conexão: Conexões SSH podem expirar. Use ferramentas como
screenoutmuxpara sessões longas.
Verificando espaço disponível¶
Antes de transferir dados, verifique o espaço disponível:
# Verificar uso de disco em um diretório de projeto
du -sh /scratch/projetos/<seu_projeto>/
# Verificar quota (se disponível)
quota -s
# Espaço disponível no filesystem
df -h /scratch
Problemas comuns¶
Permissão negada¶
Se você receber "Permission denied":
- Verifique se sua chave SSH está configurada corretamente
- Confirme que você tem permissão de escrita no diretório de destino
- Verifique se não excedeu sua quota de armazenamento
Transferência lenta¶
Se as transferências estiverem lentas:
- Tente comprimir os dados antes de transferir
- Use
rsynccom compressão (-z) - Verifique sua conexão de internet
- Evite horários de pico se possível
Conexão interrompida¶
Para transferências longas que podem ser interrompidas:
# Use rsync com --partial para retomar
rsync -avz --progress --partial <origem> <destino>
# Ou use screen/tmux no servidor
screen
rsync -avz --progress <origem> <destino>
# Pressione Ctrl+A, depois D para desconectar
# Reconecte depois com: screen -r
Suporte¶
Se você encontrar problemas ao transferir dados, consulte nossa página de suporte ou entre em contato com hpc@fieb.org.br.