FreeNAS SSH und Netcat

Smiley

Dabbler
Joined
Nov 26, 2014
Messages
28
Hallo,


ich habe bei der Datenübertragung von ZFS Send und Receive meiner beiden FreeNAS Kisten ein massives Geschwindigkeitsproblem.

beide Server verwenden FreeNAS 9.2.1.9
Intel(R) Atom(TM) CPU D2550 @ 1.86GHz
AMD Turion(tm) II Neo N54L Dual-Core Processor

Ich schaffe leider nur eine Datenübertragung von ca 150MBit/sec an dem 1Gbit Netzwerk.
Damit es hierbei nicht zu Missverständnissen kommt, bei 1Gbit LAN sollte ich gerundet etwa 100MBs schaffen, leider sind es nur ca 15MBs

Beide FreeNAS Server hängen an einem 1GBit Switch über jeweils ca 1m Kabelverbindung.
Der Managed Switch und die Cat6 Netzwerkkabel sind neu.


Über CIFS Protokoll und 1Gbit LAN schaffe ich je nach dem 50 - 70 MBs und LZ4 Kompression von meinem Notebook auf den FreeNAS Server mit dem Intel Atom.


Wie ist es möglich die SSH Verschlüsselung bei der Datenübertragung zu ändern, ein schwacher Schlüssel ist in meinem Heimnetz kein Problem, das sollte Performance bringen.

zfs send RAID/Daten@s1 | ssh 192.168.30.132 zfs receive RAID/Backup


Als nächstes möchte ich gerne NetCat ausprobieren, leider funktioniert es nicht, ich habe mich an folgenden Beitrag gelehnt.
Um Fehler bei der Befehlseingabe auszuschließen möchte ich ohne mbuffer übertragen.
https://blog.yucas.mx/2017/01/04/fast-zfs-send-with-netcat/

Backupsystem:
nc -w 120 -l -p 8023 | zfs receive RAID/Backup [root@chenbro] ~# nc -w 120 -l -p 8023 | zfs receive RAID/TMP1 usage: nc [-46DdEhklnrStUuvz] [-e policy] [-I length] [-i interval] [-O length] [-P proxy_username] [-p source_port] [-s source] [-T ToS] [-V rtable] [-w timeout] [-X proxy_protocol] [-x proxy_address[:port]] [destination] [port] cannot receive: failed to read from stream [root@chenbro] ~#



zu sicherndes System:
zfs send RAID/rsync@manual-20191109 | nc -w 192.168.1.30.132 8023


LG
 
Last edited:

Fredda

Guru
Joined
Jul 9, 2019
Messages
608
Wie ist es möglich die SSH Verschlüsselung bei der Datenübertragung zu ändern, ein schwacher Schlüssel ist in meinem Heimnetz kein Problem, das sollte Performance bringen.
Mit der option -c kannst Du den cipher Algorithmus auswählen. Du könntest einen schwächeren und schnelleren auswählen,
z.B. -c arcfour oder eventuell auch die Verschlüsselung ganz abschalten -c none.
 

Smiley

Dabbler
Joined
Nov 26, 2014
Messages
28
Hallo Fredda,


hat leider nicht funktioniert.
Mit arcfour wird mir der selbe ECDSA Key zum bestätigen in der Konsole angezeigt als wie ohne arcfour, was habe ich falsch gemacht?
zfs send RAID/Daten@s1 | ssh -c arcfour 192.168.30.132 zfs receive RAID/Backup

mit ssh -c none wird mir ein Fehler zurückgegeben.
~# zfs send RAID/Daten@s1 | ssh -c none 192.168.30.132 zfs receive RAID/Backup2 Pre-authentication none cipher requests are not allowed. [root@freenas] ~#
 
Last edited:

Fredda

Guru
Joined
Jul 9, 2019
Messages
608
hat leider nicht funktioniert.
Mit arcfour wird mir der selbe ECDSA Key zum bestätigen in der Konsole angezeigt als wie ohne arcfour, was habe ich falsch gemacht?
zfs send RAID/Daten@s1 | ssh -c arcfour 192.168.30.132 zfs receive RAID/Backup
Doch es hat funktioniert. Der Cipher Algorithmus hat nichts mit dem Key Algorithmus zu tun.
mit ssh -c none wird mir ein Fehler zurückgegeben.
~# zfs send RAID/Daten@s1 | ssh -c none 192.168.30.132 zfs receive RAID/Backup2 Pre-authentication none cipher requests are not allowed.
Dann ist der cipher "none" deaktiviert in der sshd_config. Du kannst Dir die Liste der erlaubten Codes mit ssh -Q cipher anzeigen lassen. Eventuell dann die sshd_config entsprechend anpassen. man sshd_config Abschnitt "Ciphers". In aktuellen FreeNAS Versionen funktioniert "none", aber ich glaube, der ist nur ein dummy Wert, der auf einen anderen Cipher gemappt ist.
 

Smiley

Dabbler
Joined
Nov 26, 2014
Messages
28
Danke Fredda,
das werde ich am Wochenende probieren und hoffen dass nun endlich mehr Dampf über die Leitung geht.


Vielleicht kennt sich doch noch jemand mit netcat aus, das würde ich auch gerne probieren.
Zu guter Letzt soll alles auf LinkAggregation hinauslaufen, aber da stehen bereits die nächsten Probleme an und werde betreffend einen eigenen Thread eröffnen.
 

Smiley

Dabbler
Joined
Nov 26, 2014
Messages
28
Aktuell schaffe ich mit ssh -c arcfour nun 30MBit/sec Datenübertragung, somit doppelt so viel wie zuvor, jedoch bin ich noch sehr weit entfernt von 2x 1GBit LAN.

In der ssdh_config ist leider kein Eintrag mit dem cipher vorhanden, auch der Konsolenbefehl ssh -Q cipher funktioniert leider nicht.

Code:
[root@freenas] ~# sudo ssh -Q cipher
Sorry, user root is not allowed to execute '/usr/bin/ssh -Q cipher' as root on freenas.local.
[root@freenas] ~# ssh -Q cipher
ssh: illegal option -- Q
usage: ssh [-1246AaCfgKkMNnqsTtVvXxYy] [-b bind_address] [-c cipher_spec]
           [-D [bind_address:]port] [-e escape_char] [-F configfile]
           [-I pkcs11] [-i identity_file]
           [-L [bind_address:]port:host:hostport]
           [-l login_name] [-m mac_spec] [-O ctl_cmd] [-o option] [-p port]
           [-R [bind_address:]port:host:hostport] [-S ctl_path]
           [-W host:port] [-w local_tun[:remote_tun]]
           [user@]hostname [command]
[root@freenas] ~#
 
Last edited:

Fredda

Guru
Joined
Jul 9, 2019
Messages
608
In der ssdh_config ist leider kein Eintrag mit dem cipher vorhanden,
Nein, den gibt es nur, wenn man von den Defaults abweichen will, wie ich schon schrieb:
Eventuell dann die sshd_config entsprechend anpassen. man sshd_config Abschnitt "Ciphers".
auch der Konsolenbefehl ssh -Q cipher funktioniert leider nicht.
Das könnte daran liegen, dass Du eine antike FreeNAS Version verwendest und ssh zu alt ist, die option -Q ist relativ neu.
Mit nmap kann man das auch gut machen: nmap --script ssh2-enum-algos -sV -p 22 <server>
Oder auch mit sshd: sshd -T| grep cipher
 
Last edited:

Pitfrr

Wizard
Joined
Feb 10, 2014
Messages
1,531
Vielleicht kennt sich doch noch jemand mit netcat aus, das würde ich auch gerne probieren.

Also ich kenne mich mit nc nicht aus... :-O Bin noch beim experimentieren und habe es aber gerade versucht. Scheint zu funktionieren.
Ich habe einen Snapshot von einem Server zu einem anderen auf demselben Netzerk geschickt.

[Sender:]
zfs send [pool]/[dataset]@[snapshot] | nc -l [port number]
z.B.: zfs send tank1/data@20191125-manual | nc -l 3333

[Empfänger:]
nc [IP Adresse vom Sender] [port number] | zfs recv [pool]/[dataset]
z.B.: nc 192.168.1.20 3333 | zfs recv tank2/Backup

Im Terminal habe ich keine Rückmeldung (nichtmal den prompt zurück) bekommen, aber da ich noch nie mit zfs send/recv im Terminal gearbeitet habe, ist es vielleicht normal?
Das nächste mal versuche ich mit pv noch dazu.

Mit einem 1Gb/s Netzwerk hatte ich Geschwindigkeiten von 930Mb/s (ja, 115MBytes/s)!
 

micneu

Patron
Joined
Mar 23, 2019
Messages
474
hey, ich denke deine cpu ist zulangsam (ca. 8 jahre alt). wenn du datenüberträgst schau dir mal die auslastung der cpu an (am besten von beiden rechnern mit htop).
ssh nutz immer nur ein cpu-kern. ich habe hier bei mir freenas 11.2 intel core i3-8300 (gegenstelle ist ein MacBook Pro 15" 2018 Intel Core i9 da schaffe ich die volle geschwindigkeit über ssh.
 

Fredda

Guru
Joined
Jul 9, 2019
Messages
608
ich denke deine cpu ist zulangsam (ca. 8 jahre alt)
Denke ich auch, und dazu ist das auch noch ein Atom, der auch nicht grade für tolle Performance bekannt ist.

Allerdings hängt die Performance bei ssh auch sehr davon ab, ob die CPU Cryptohardware eingebaut hat. Ist das der Fall, dann
bekommt man auch mit einem Atom guten Durchsatz bei ssh hin.
Code:
Server mit solcher Hardware:
[root@server1] ~# dmesg | grep aesni
aesni0: <AES-CBC,AES-XTS,AES-GCM,AES-ICM> on motherboard

Server ohne:
[root@server2] ~# dmesg | grep -i aesni
aesni0: No AESNI support.
 

Smiley

Dabbler
Joined
Nov 26, 2014
Messages
28
Hallo!

es freut mich sehr dass Ihr mir helft!
Leider ist es zur Zeit bei mir furchtbar stressig, nur zu blöd das sich dann auch noch alles mit den kleinen Servern wehrt, nicht gerade vorteilhaft.
Jetzt wird es ganz schön brenzlich etwa 20TB noch zu übertragen bei der furchtbaren Performance, da hebe ich wohl nur noch wenige Tage Zeit was sich niemals ausgehen kann. Mist.

@Pitfrr ich habe in der Zwischenzeit ebenfalls erste Erfolge erzielen können, folgender Beitrag hatte mir geholfen:
Wenn ich weiterkomme melde ich dies natürlich!

Die CPU Last ist mit SSH sehr niedrig was mich sowieso schon stutzig gemacht hat, die Lösung hat wohl @micneu gebracht, ich hatte bereits in Verdacht dass nicht alle CPU Kerne verwendet werden.
Nur merkwürdig dass mit cipher nicht nur die Übertragung verdoppelt wird, auch die CPU Last steigt etwas an.
ich werde bei Gelegenheit noch genauere Werte der CPU Last berichten.

@Fredda Beide Server melden mir "No AESNI support", tja jetzt bin ich enttäuscht.

Ein paar Infos zur Intel Atom CPU:



Weiß jemand wie ich in Echtzeit die Netzwerkauslastung in der Konsole begutachten kann?


LG
 

Fredda

Guru
Joined
Jul 9, 2019
Messages
608
Weiß jemand wie ich in Echtzeit die Netzwerkauslastung in der Konsole begutachten kann?
Das würde z.B. mit iftop gehen, bin mir jetzt aber nicht sicher, ob das in der Standardinstallation dabei ist.
Sonst musst Du es über eine Jail nachinstallieren, kannst es aber aus dem FreeNAS System aufrufen.
 
Last edited:

Smiley

Dabbler
Joined
Nov 26, 2014
Messages
28
damit werde ich mich noch beschäftigen, danke.


Mit nc konnte ich nun eine Datenübertragungsgeschwindigkeit bei l4z komprimierten Datasets mit 500MBit/s erreichen.
Ist auch noch furchtbar lahm aber besser als nichts.
werde mich die nächsten Tage wieder melden.
 

Smiley

Dabbler
Joined
Nov 26, 2014
Messages
28
Also ich kenne mich mit nc nicht aus... :-O Bin noch beim experimentieren und habe es aber gerade versucht. Scheint zu funktionieren.
Ich habe einen Snapshot von einem Server zu einem anderen auf demselben Netzerk geschickt.

[Sender:]
zfs send [pool]/[dataset]@[snapshot] | nc -l [port number]
z.B.: zfs send tank1/data@20191125-manual | nc -l 3333

[Empfänger:]
nc [IP Adresse vom Sender] [port number] | zfs recv [pool]/[dataset]
z.B.: nc 192.168.1.20 3333 | zfs recv tank2/Backup

Im Terminal habe ich keine Rückmeldung (nichtmal den prompt zurück) bekommen, aber da ich noch nie mit zfs send/recv im Terminal gearbeitet habe, ist es vielleicht normal?
Das nächste mal versuche ich mit pv noch dazu.

Mit einem 1Gb/s Netzwerk hatte ich Geschwindigkeiten von 930Mb/s (ja, 115MBytes/s)!


schon Erfolge mit Incrementalen Datenstrom?
 

Pitfrr

Wizard
Joined
Feb 10, 2014
Messages
1,531
Nein noch nicht, bis jetzt habe ich es nur mit einem manuellen Snapshot probiert (habe es für backup Zwecke verwendet von daher werde ich bestimmt auch nicht inkremental benutzen... mal sehen...).
 
Top