Übertragen Sie große Dateien, ohne die Bandbreite zu belasten (gibt es ein BITS-Äquivalent für Linux?)

7

Ist eine Implementierung des Microsoft Background Intelligent Transfer Service (BITS) für Linux-Systeme verfügbar?

Ich prüfe meine Optionen zum Übertragen großer Dateien auf einen Remote-Linux-Server über das Internet und möchte nicht, dass meine gesamte (begrenzte!) Upstream-Bandbreite verbraucht wird.

Ich habe BITS in der Vergangenheit erfolgreich auf Windows-Systemen verwendet, aber dieses Mal muss ich auf und von Linux-Servern übertragen.

Wenn es einen Unterschied macht, werden auf beiden Systemen wahrscheinlich Ubuntu-basierte Systeme ausgeführt, obwohl ich im Idealfall eine Lösung möchte, die unabhängig von der Distribution ist.

tomp83
quelle

Antworten:

8

Erstens der einfache Weg: rsynchat einen --bwlimitParameter. Das ist eine konstante Rate, aber Sie können sie verwenden, um sie leicht zu drosseln.

Wenn Sie nun die adaptive Rate wünschen, gibt es das Linux-Verkehrssteuerungs-Framework , das eigentlich ziemlich kompliziert ist. Mir sind mehrere Referenzen bekannt:

Persönlich, wenn ich dies einrichten muss, benutze ich tcng , um die Aufgabe zu vereinfachen. Hier ist ein Beispiel:

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; };
            }
        }
    }
}

In diesem Beispiel wird der über die Büroschnittstelle gesendete Datenverkehr in mehrere Klassen eingeteilt: ssh, kyon, fast und default. Die Verbindung (eine T1, als diese verwendet wurde) ist auf 1440 KBit / s begrenzt (diese muss geringfügig unter der tatsächlichen Verbindungsrate liegen, damit die Pufferung auf der Linux-Box und nicht auf einem Router erfolgt). Sie können sehen, dass ssh 720 kbps, kyon 360 usw. zugewiesen ist. Alle können bis zur vollen Rate (der Obergrenze) platzen. Wenn es Streit gibt, fungiert die 'Rate' als Verhältnis, so dass ssh 1/2, kyon 1/4 usw. gegeben wird. Das 'sfq' sagt, wie mehrere ssh-Sitzungen behandelt werden sollen; sfq ist eine Form von Round-Robin.

derobert
quelle
Vielen Dank! Genau das suche ich. Leider kann ich Ihre Antwort nicht bewerten, da ich gerade erst dieser Website beigetreten bin und noch nicht genügend Wiederholungspunkte habe.
Tomp83