Pular para conteúdo

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ê:

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

scp <usuario>@<cluster>:/caminho/no/cluster/arquivo.txt ~/Downloads/

Exemplo:

scp joao@ogun-login.senaicimatec.com.br:/scratch/projetos/analise_clima/resultados.csv ~/Downloads/

Baixar diretório completo (recursivo)

scp -r <usuario>@<cluster>:/caminho/no/cluster/pasta/ ~/Projetos/

Exemplo:

scp -r joao@ogun-login.senaicimatec.com.br:/scratch/projetos/simulacao_fluidos/ ~/Projetos/

Enviar arquivo do seu computador para o cluster

scp ~/Documentos/script.py <usuario>@<cluster>:/scratch/projetos/<seu_projeto>/

Exemplo:

scp ~/Documentos/analise.py joao@ogun-login.senaicimatec.com.br:/scratch/projetos/analise_clima/

Enviar diretório para o cluster

scp -r ~/Projetos/dados/ <usuario>@<cluster>:/scratch/projetos/<seu_projeto>/

Porta SSH customizada

Se o cluster usar uma porta SSH diferente da padrão (22), use a opção -P:

scp -P 2222 arquivo.txt <usuario>@<cluster>:/scratch/projetos/<seu_projeto>/

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

rsync -av --progress <usuario>@<cluster>:/scratch/projetos/<seu_projeto>/dados/ ~/Projetos/dados/

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

rsync -av --progress ~/Dados/entrada/ <usuario>@<cluster>:/scratch/projetos/<seu_projeto>/entrada/

Sincronização com exclusões

Se você deletou arquivos localmente e quer que sejam deletados no destino também:

rsync -av --progress --delete ~/Projetos/ <usuario>@<cluster>:/scratch/projetos/<seu_projeto>/

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

sftp <usuario>@<cluster>

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

  1. Use diretórios apropriados:
  2. /scratch/projetos/<projeto>/ para dados de entrada/saída de jobs do projeto
  3. /home/$USER/ apenas para scripts pequenos e configurações pessoais
  4. Veja Gerenciamento de arquivos para detalhes sobre organização

  5. Organize por projeto:

    /scratch/projetos/
    ├── analise_clima/
       ├── dados/
       ├── scripts/
       ├── resultados/
       └── logs/
    └── simulacao_fluidos/
        ├── entrada/
        ├── saida/
        └── logs/
    

Otimização de Transferências

  1. Comprima arquivos grandes antes de transferir:

    # No cluster
    tar -czf resultados.tar.gz /scratch/projetos/<seu_projeto>/resultados/
    
    # Transfira o arquivo compactado
    scp <usuario>@<cluster>:/scratch/projetos/<seu_projeto>/resultados.tar.gz ~/
    
    # No seu computador
    tar -xzf resultados.tar.gz
    

  2. Use rsync para retomar transferências interrompidas:

    rsync -avz --progress --partial <usuario>@<cluster>:/scratch/projetos/<seu_projeto>/dados_grandes/ ~/
    
    A opção --partial mantém arquivos parcialmente transferidos para retomar depois.

  3. 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 screen ou tmux para 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":

  1. Verifique se sua chave SSH está configurada corretamente
  2. Confirme que você tem permissão de escrita no diretório de destino
  3. Verifique se não excedeu sua quota de armazenamento

Transferência lenta

Se as transferências estiverem lentas:

  1. Tente comprimir os dados antes de transferir
  2. Use rsync com compressão (-z)
  3. Verifique sua conexão de internet
  4. 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.