Skip to content
This repository has been archived by the owner on Jul 24, 2024. It is now read-only.

larc-usp/data-transfer-tester

Repository files navigation

data-transfer-tester

O programa Science DMZ da RNP visa estudar e disseminar melhores práticas de infraestrutura de redes de campus voltadas às aplicações científicas. Dada a crescente escala em que volumes cada vez maiores de dados precisam ser processados e analisados por aplicações científicas as redes de campus das universidades necessitam se adequar a esta nova demanda de transferência de dados entre laboratórios e instituições.

O Data Transfer Tester (DTT) foi desenvolvido para facilitar os testes de validação da máquina de transferência de dados (DTN). As ferramentas disponíveis são:

  • scp
  • gridFTP
  • iperf3
  • udr
  • axel
  • aria2c
  • wget

Todas as ferramentas realizam o Download dos dados. Ou seja, onde o DTT estiver rodando, os dados serão baixados para essa máquina.

Este software está em versão Alpha. NÃO utilize em ambientes de produção!!!


Licença

Veja arquivo LICENSE

Autores

  • Dino Magri
  • Fabio Chu
  • Felipe Waku
  • Rodrigo Tejos

Instalação e Configuração do CentOS 6.7 e das Ferramentas de Transferência

Para rodar é necessário que o host remoto e o DTT tenham essas ferramentas instaladas. Abaixo segue os tutoriais para instalação e configuração, tanto do sistema operacional CentOS 6.7 como também do DTN:

O DTT foi testado em ambiente CentOS 6.7 com as respectivas versões das ferramentas:

  • scp - OpenSSH_5.3p1, OpenSSL 1.0.1e-fips 11 Feb 2013
  • scp hpn - OpenSSH_6.6p1-hpn14v5, OpenSSL 1.0.1e-fips 11 Feb 2013
  • gridFTP - globus-url-copy: 8.6 - Já vem com o globus Toolkit 5.2
  • iperf3 - iperf 3.1.2
  • udr e rsync - UDR version v0.9.4-10-g7638b30 e rsync version 3.0.6 protocol version 30
  • axel - Axel version 2.4 (Linux)
  • aria2c - aria2 versão 1.16.4
  • wget - GNU Wget 1.12 construído em linux-gnu.

Com um pouco de esforço, acredito que seja possível rodar o DTT em outras distribuições Linux.

Para facilitar o desenvolvimento do DTT, foi criado uma máquina virtua do CentOS com todas as ferramentas instaladas e funcionando. Já vem com a versão 2.7.11 do Python.

* Usuários sdmz e root
* Senha para os dois usuários: sdmz123

Os arquivos 100G_file, 10G_file e 1G_file já estão criados com o mesmo tamanho de 1G para salvar espaço.

Para baixar a VM acesse: https://filesender.rnp.br/?vid=3863a3a0-1b0f-b4c9-727b-0000440c45b4 (Disponível até 10/3/16).

Caso decida por utilizar a VM, continue do tópico Copiando o código fonte do DTT

Instalação do DTT

Antes de rodar o DTT, é necessário instalar a versão 2.7 do Python, pois é necessário manter a versão 2.6 que é utilizada pelo CentOs 6.7. Portanto é importante que ambas as versões (2.6 e 2.7) existam, uma vez que o sistema operacional pode quebrar.

Na página: https://github.com/h2oai/h2o-2/wiki/Installing-python-2.7-on-centos-6.3.-Follow-this-sequence-exactly-for-centos-machine-only tem um passo a passo bem detalhado para instalar a versão 2.7 do Python no CentOS 6.3. Vale a leitura.

Para instalar a versão 2.7.11 no CentOS 6.7, devemos realizar os seguintes passos:

Download, compilação e instalação

  • Instalando as dependências:
sudo yum groupinstall "Development tools" -y
sudo yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel -y
  • Realizando o download, compilação e instalação do Python 2.7.11
cd /tmp
wget --no-check-certificate https://www.python.org/ftp/python/2.7.11/Python-2.7.11.tar.xz
tar xf Python-2.7.11.tar.xz
cd Python-2.7.11/
./configure --prefix=/usr/local
make && sudo make altinstall
  • Se nenhum erro aparecer, ditige no terminal:
    • Para verificar se a versão é a 2.6.6: python
    • Para verificar se a versão é a 2.7.11: python2.7

Copiando o código fonte do DTT

Primeiro vamos realizar o download do código fonte:

cd ~
wget https://github.com/larc-usp/data-transfer-tester/archive/master.zip
unzip master.zip
cd data-transfer-tester-master/

sudo yum install python-virtualenv -y

Para iniciar um ambiente virtual e ativá-lo:

virtualenv -p /usr/local/bin/python2.7 venv
source venv/bin/activate

Note que estamos dentro da pasta data-transfer-tester

Rode o comando python e verifique se a versão é a 2.7.

Obs: Todas as bibliotecas que forem instaladas nesse ambiente virtual através do comando pip, afetará apenas este ambiente virtual. Para desativar o virtualenv, utilize na pasta raiz o comando deactivate.

Instalando as bibliotecas do DTT

Para rodar o DTT, é necessário instalar as seguintes depêndencias:

Django==1.8.4
django-chartit==0.1
gevent==1.0.1
greenlet==0.4.6
pysqlite==2.6.3
simplejson==3.6.5
wsgiref==0.1.2

Para instalar essas bibliotecas, vamos utilizar o pip com o parâmetro -r para instalar todas as bibliotecas listadas no arquito requirements.txt

pip install -r requirements.txt

Rodando o DTT pela primeira vez

Se tudo estiver ok, acesse a pasta portalsdmz e rode o comando:

cd portalsdmz
rm db.sqlite3
python manage.py migrate
python manage.py runserver 172.20.5.170:8000

Utilize o IP que está configurado para a máquina DTT.

Agora vamos criar um usuário admin para a seção de Administração do portal (/admin), digite no terminal Ctrl+C para parar a execução do DTT e digite:

python manage.py createsuperuser

Escolha o login e senha e inicie o servidor novamente com o comando:

python manage.py runserver 172.20.5.170:8000

Acesse o navegador, digite: http://172.20.5.170:8000 e tente realizar o login.

Lembre-se: O IP acima deve ser trocado para o IP correspondente da máquina onde o DTT está instalado.

Testando

Caso os arquivos de teste estejam criados, utilize o Portal DTT para criar um novo cenário de teste e iniciar as transferências.

O DTT utiliza 3 tamanhos de arquivos diferentes para realizar os teste (1G, 10G e 100G) e os mesmos devem ser criados no diretório /dados/area-teste. O comando para criar esses arquivos são:

  • Para criar o arquivo de 1G_file - dd if=/dev/zero of=/dados/area-teste/1G_file bs=4k count=250000
  • Para criar o arquivo de 10G_file - dd if=/dev/zero of=/dados/area-teste/10G_file bs=4k count=2500000
  • Para criar o arquivo de 100G_file - dd if=/dev/zero of=/dados/area-teste/100G_file bs=4k count=25000000

Para testar manualmente as ferramentas para verificar se tudo está funcionando corretamente:

O IP abaixo, deve ser trocado pelo IP do host remoto.

  • scp

  • gridFTP

    • No host remoto: globus-gridftp-server -aa &
    • Na máquina DTT: globus-url-copy -vb -p 1 ftp://172.20.5.38:2811/dados/area-teste/1G_file file:///dados/area-teste/1G_file
  • iperf3

    • No host remoto: iperf3 -s &
    • Na máquina DTT: iperf3 -c 172.20.5.38 -P 1 -i1 -O 5 -n 1G
  • udr

    • udr rsync -av -stats --progress [email protected]:/dados/area-teste/1G_file /dados/area-teste/1G_file

Para as ferramentas wget, axel e aria2c é necessário ter um servidor FTP rodando no host remoto - https://wiki.rnp.br/pages/viewpage.action?pageId=89564070#InstalaçãoeconfiguraçãobásicadoDTN-ServidorFTP

  • wget

    • wget ftp://172.20.5.38/1G_file -O /dados/area-teste/1G_file
  • axel

    • axel ftp://172.20.5.38/1G_file -o /dados/area-teste/1G_file -n 1
  • aria2c

    • aria2c -x1 ftp://172.20.5.38/1G_file -d /dados/area-teste/1G_file

Para maiores informações sobre o uso das ferramentas de transferência acesse - https://wiki.rnp.br/pages/viewpage.action?pageId=89564131

Se nenhum das execuções das ferramentas de transferência apresentou erro, podemos adicionar um novo Cenário de Teste através do Portal do Data Transfer Tester (DTT).

Acesse: http://172.20.5.170:8000, realize o login, crie um Novo cenário e inicie a transferência.

Para acessar a área administrativa: http://172.20.5.170:8000

Lembre-se: O IP acima deve ser trocado para o IP correspondente da máquina onde o DTT está instalado.

Releases

No releases published

Packages

No packages published