-
-
Notifications
You must be signed in to change notification settings - Fork 63
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Feature Request: Direct mbuffer transfer #15
Comments
This is non-trivial to implement in a clean way. Perhaps it would help if you specify a faster cipher like arcfour in ~/.ssh/config. (https://github.com/psy0rz/zfs_autobackup#specifying-ssh-port-or-options) (If you're a company and want us to implement it, contact us for a quote) |
this has become more trivial with the latest changes. If any one wants this, vote it up and i might add it. |
+1 |
+1 upvote for this and possibly other transport options. An option for fast, secure transport on 10G+ networks could be
|
hey @psy0rz thoughts on opening this issue back up, or I'd be happy to open a new one for discussion |
yes, because of the process handling extensions made for zfs-autoverify, this should be doable. however, are socat and spiped with encryption faster than regular ssh pipes? |
I'll see if I can do some tests on my 10Gbit setup to see how they compare mbuffer and netcat can also do the same job, I'm not sure which of the two is higher performance. In this syncoid PR there is some back and forth between mbuffer and nc, and there may be some arguments in favor of nc jimsalterjrs/sanoid#513 however, even without using SSL, socat may in fact be faster than netcat. A benchmark here (albeit very old 2008) found socat faster than netcat https://wiki.atlas.aei.uni-hannover.de/ATLAS/ZFSBenchmarkTest |
either way, regardless of the tool, they would all have similar setups and usages
maybe there is a flexible way to define scripts that can plug in any of the options |
it might even already be doable via --send-pipe and --recv-pipe, but maybe hackish and problematic with buildup/teardown. mbuffer is universally supported in operating systems. but we can support multiple tools. |
Just wanted to add that, indeed, --send-pipe and --recv-pipe work for this concept. I used netcat but the following options worked for me - not an ssh connection in sight for send/recv and no issues with setup or any processes hanging around. Seemed very clean.
|
awesome, thanks for the info! |
One of the tricky parts of this is finding an unused port that is safe to listen on and tell the other machine to connect to. If that was implemented in zfs-autobackup in python, and made available as a variable to send/recv pipe (IE as $FREEPORT or something), that would make things like nc/mbuffer a lot easier and safer |
fwiw did some testing on localhost of transport options throughput (not yet piped through zfs_autobackup)
Impressed with the simplicity and speed of netcat + age Didn't test mbuffer because it's not in the arch linux repos Edit: Added ssh. Not that bad. |
actually I think ssh wins after all (unless you want unencrypted, then plain netcat) Checking my supported ciphers with Default Always good to measure!! I just assumed based on what I read that ssh was gonna be slow... |
ssh is pretty ok nowadays. :) |
Hi, I'm new to this project and was trying to get the netcat example above working but running into some confusion.
|
--send-pipe "nc server_name 8023" The server_name is the name of the target machine, the port is an arbitrary free port you choose. Make sure there isnt any firewall in the way. |
No, thats too hackish and too much feature creep for this project i think. Because then you still would have issue with firewalls or portforwards for example. Too much magic isnt good. :) Its best to let the admin choose a fixed port and make sure that this port is reachable from the source. |
updated docs, so this one can be closed https://github.com/psy0rz/zfs_autobackup/wiki/Performance#direct-tcp-network-transfer |
Currently a dataset can be send troth ssh wit mbuffer but mbuffer can listen on a tcp port for data stream. If we send the data directly to this tcp post without the compression and encryption of ssh it is much more faster than then troth ssh. For this solution we need to start the mbuffer on the destination before we can start sending data.
The text was updated successfully, but these errors were encountered: