-
-
Notifications
You must be signed in to change notification settings - Fork 97
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
Add piping into zfs send|recv #761
Conversation
Use case is I'd like `zfs send` will actually do ``` zfs send | mbuffer -q -s 128k -m16M ``` and the same about `zfs receive`. Configuration looks like: ``` - name: "remote-to-zdisk" type: "pull" connect: type: "tls" address: "remote:8888" recv: execpipe: # unzstd | mbuffer | zfs receive - [ "unzstd" ] - [ "mbuffer", "-q", "-s", "128k", "-m", "16M" ] ``` or ``` - name: "zroot-to-remote" type: "push" connect: type: "tls" address: "remote:8888" send: execpipe: # zfs send | zstd -3 | mbuffer - [ "zstd", "-3" ] - [ "mbuffer", "-q", "-s", "128k", "-m", "16M" ] ``` Usually it executes standalone `zfs send` or `zfs recv`, but using `execpipe` we can configure it to send stdout of `zfs send` to another programm(s) or send stdout of another programm(s) to `zfs recv`. This change adds new field `execpipe` into `send` and `recv`, which is seq of seq.
Not a comment on the the code per-se, but shouldn't the recieve pipe be "mbuffer | unzstd | zfs receive" ? |
You are absolutely right. My fault. I guided by source code of syncoid and in comments it has
but in the code I see it actually uses |
What are the performance improvements you're seeing with this?
|
It doesn't matter. This change isn't about |
Is there any justification for why this was closed unmerged? This discussion #775 Notes that while it did not have a performance improvement, it did solve certain issues with the "burstyness" of the send/receive process. |
JFYI, this and many other improvements implemented in my fork https://github.com/dsh2dsh/zrepl Feel free to use it. |
Unfortunately I don't think so. All my PRs were closed, so I decided to develop an independent fork. I don't believe I'll upstream my changes into this repo. |
It would be nice if @problame would explain why none of these improvements were merged, all of these PRs seem quite good for the project. |
Use case is I'd like
zfs send
will actually doand the same about
zfs receive
. Configuration looks like:or
Usually it executes standalone
zfs send
orzfs recv
, but usingexecpipe
we can configure it to send stdout ofzfs send
to another programm(s) or send stdout of another programm(s) tozfs recv
.This change adds new field
execpipe
intosend
andrecv
, which is seq of seq.