paralleles Kopieren von Dateien mit Tee unerwartet langsam

paralleles Kopieren von Dateien mit Tee unerwartet langsam

wir kopieren einen großen ZFS-Snapshot (ZFS-Send) von Site-1 nach Site-2. Site-1 und Site-2 sind Remote und über IPsec verbunden (sprich: langsam).

An Standort 2 benötigen wir die Daten auf zwei verschiedenen ZFS-Servern. Derzeit verwenden wir zwei gleichzeitige SSH-Befehle „ZFS Send“ | ZFS Receive. Dies ist natürlich eine Verschwendung von Bandbreite.

wir haben mit Folgendem experimentiert (1 Remote-SSH, T-Shirt, 1 lokales SSH):

[root@site-2-1 ~]# \
    time \
    ssh root@site-1-0 \
        "cat /tmp/100000000.rnd | pigz -1" \
    | pv -B 10m -s 100000000 \
    | tee \
        >(ssh root@site-2-2 "pigz -d > /tmp/test.rnd.1") \
    | pigz -d \
    > /tmp/test.rnd.1

95.4MiB 0:00:52 [1.83MiB/s] [===<snipped>===>] 100%

real    0m52.062s
user    0m0.979s
sys 0m1.100s

was sich als langsamer herausstellte als eine Simulation der ursprünglichen Lösung (2 Remote-SSHs gleichzeitig):

[root@site-2-1 ~]# \
    time \
    ssh root@site-1-0 \
        "cat /tmp/100000000.rnd | pigz -1" \
    | pv -B 10m -s 100000000 \
    | pigz -d \
    > /tmp/test.rnd.2
95.4MiB 0:00:30 [3.09MiB/s] [===<snipped>===>] 100%

real    0m30.837s
user    0m0.827s
sys 0m1.003s


[root@site-2-2 ~]# \
    time \
    ssh root@site-1-0 \
        "cat /tmp/100000000.rnd | pigz -1" \
    | pv -B 10m -s 100000000 \
    | pigz -d \
    > /tmp/test.rnd.2
95.4MiB 0:00:38 [ 2.5MiB/s] [===<snipped>===>] 100%

real    0m38.187s
user    0m0.840s
sys 0m0.846s

wir haben uns den Code von Tee, unserem Hauptverdächtigen, angesehen und es scheint, dass er aus einem einzigen Thread heraus operiert.

kann jemand eine schnellere Alternative zu Tee oder vielleicht eine völlig andere Lösung empfehlen?

danke im voraus, guven

Antwort1

Anregung:

zfs send > file
scp file server-at-site2:
ssh server-at-site2 zfs receive < file
ssh server-at-site2 cat file | ssh second-server-at-site2 zfs receive

Das erfordert zwei Übertragungen, aber vermutlich wird die zweite schneller sein (wegen lokalem Netzwerk usw.)

verwandte Informationen