Utilizando netcat no XenServer
Opa,
Essa dica me ajudou quando tive que copiar um grande volume de dados entre dois servidores pela rede, o software netcat eu já conhecia e é considerado um canivete suíço pela enorme quantidade de opções onde pode ser utilizado, recomendo! A instalação e utilização segue abaixo.
Primeiro é necessário instalar o software no XenServer e, caso necessário, no segundo servidor. Para instalar no XenServer basta realizar o download do pacote rpm no site do projeto via wget pelo console, lembre-se de baixar a versão 32 bits, após o download instale com o comando abaixo:
# rpm -ivh netcat-<versão>.i386.rpm
Agora precisamos liberar no XenServer a porta que será utilizada para cópia dos arquivos pelo netcat:
# vi /etc/sysconfig/iptables:
Adicione as linhas abaixo antes das duas últimas linhas do arquivo, conforme segue, lembrando de alterar a porta para a que desejar, nesse caso 12345:
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 12345 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 12345 -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
COMMIT
Reinicie o serviço:
# service iptables restart
Agora basta copiar os arquivos através dos comandos abaixo, primeiro no servidor que irá receber os dados, nesse caso o XenServer:
# nc -l 12345 | tar -xvf -
No segundo servidor, que irá enviar os dados, lembrando de alterar para a porta que configurou no iptables acima:
# tar -cf - dados | nc ip.do.servidor.destino 12345
Pronto! Os dados serão copiados para o XenServer! Em questão de performance, comparando com o scp o tempo foi 1/3 menor para copiar um arquivo de 1Gb!
Abraço!
Fonte: http://marton-tech.blogspot.com/2010/03/problem-1-network-speed.html


Gnome
Ubuntu
CentOS
Dá pra usar também compressão, e o algoritmo mais eficiente para esta situação é o lzop.
Os comandos ficariam assim:
# nc -l 12345 | lzop -d | tar -xvf -
# tar -cf – dados | lzop | nc ip.do.servidor.destino 12345
Dá pra usar o dd ainda, para fazer imagem de um disco por ex:
# nc -l 12345 | lzop -d | dd of=~/imagem.do.disco.sda
# dd if=/dev/sda | lzop | nc ip.do.servidor.destino 12345
Opa Enderson,
Valeu pela dica, essa do lzop eu não sabia, meus testes com o gzip a performance não foi boa, para quem for testar terá que instalar o pacote do lzop no XenServer também, pois não vem por padrão!
Abraço!