Transfira arquivos grandes sem sobrecarregar a largura de banda (existe um equivalente do BITS para o Linux?)

7

Existe uma implementação do Serviço de Transferência Inteligente em Segundo Plano da Microsoft (BITS) disponível para sistemas Linux?

Estou vendo minhas opções para transferir arquivos grandes para um servidor Linux remoto pela Internet e não quero que ele coma toda a minha largura de banda upstream (limitada!).

Eu usei com sucesso o BITS em sistemas Windows no passado, mas desta vez precisarei estar transferindo para e de servidores Linux.

Se faz alguma diferença, é provável que ambos os sistemas estejam executando sistemas baseados no Ubuntu, embora idealmente eu queira uma solução que seja independente da distribuição.

    
por tomp83 12.11.2011 / 03:00

1 resposta

8

Primeiro, o caminho mais fácil: rsync tem um parâmetro --bwlimit . Essa é uma taxa constante, mas você pode usá-la para reduzi-la facilmente.

Agora, se você quiser a taxa adaptativa, existe a estrutura de controle de tráfego linux , que é realmente justa complicado. Existem várias referências que eu conheço:

Pessoalmente, quando tenho que configurar isso, eu uso tcng para simplificar a tarefa. Aqui está um exemplo:

dev office {
    egress {
        class ( <$ssh> ) 
            if ip_tos_delay == 1 && tcp_sport == PORT_SSH ;
        class ( <$kyon> )
            if ip_dst == 172.16.1.62; // monitoring host
        class ( <$fast> )
            if ip_tos_delay == 1;
        class ( <$default> )
            if 1;

        htb() {
            class ( rate 1440kbps, ceil 1440kbps ) {
                $ssh = class ( rate 720kbps, ceil 1440kbps ) { sfq; };
                $kyon = class ( rate 360kbps, ceil 1440kbps ) { sfq; };
                $fast = class ( rate 180kbps, ceil 1440kbps ) { sfq; };
                $default = class ( rate 180kbps, ceil 1440kbps ) { sfq; };
            }
        }
    }
}

Nesse exemplo, o tráfego que está sendo enviado pela interface do escritório está sendo classificado em várias classes: ssh, kyon, fast e default. O link (um T1, quando este estava em uso) é limitado a 1440kbps (isso deve ser um pouco menor do que a taxa de link real, de modo que o armazenamento em buffer ocorra na caixa do Linux, não em um roteador). Você pode ver que o ssh é atribuído 720kbps, kyon 360, etc. Tudo pode estourar à taxa cheia (o ceil). Quando há contenção, a 'taxa' atua como uma razão, então ssh receberia 1/2, kyon 1/4, etc. O 'sfq' diz como lidar com várias sessões ssh; sfq é uma forma de round-robin.

    
por 12.11.2011 / 11:18