Skip to content
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

large_blocks error #199

Open
fow0ryl opened this issue Apr 6, 2023 · 6 comments
Open

large_blocks error #199

fow0ryl opened this issue Apr 6, 2023 · 6 comments

Comments

@fow0ryl
Copy link

fow0ryl commented Apr 6, 2023

I have synced some datasets to a new machine with ssd's instead of hdd's. Works fine fo far.
Now I wish to make this machine the primary one and the old machine a backup machine. So I decided to change the zrep direction. Works for most datasets, but I faild with one :(
I get this error on the new master:cannot receive incremental stream: incremental send stream requires -L (--large-block), to match previous receive.
After looking around I found that on the old master "feature@large_blocks" is set to "active". But on the new master it is set to "enabled".
After creating a file with 1M blocksize, the status changed to "active" on the new master too.

But I still get the error "requires -L" ...

@ppbrown
Copy link
Member

ppbrown commented Apr 11, 2023

Hello,
I'm afraid this sounds like some issue specific to your ZFS implementation.
This is best solved by a support forum for your OS.
If there are then any tweaks that may be needed on the zrep end, please let me know

@linuxturtle
Copy link

linuxturtle commented Jul 31, 2024

I'm running into this same error trying to set up zrep with existing datasets I've been syncing manually.
But I have no problem doing a send/receive of the zrep "unsent" snapshot using only zfs send -vwI (i.e. without -L). I don't understand what zrep is doing under the covers, so I'm having a hard time figuring out what's going on. DEBUG=1 doesn't give any additional information. Here's the whole sequence if that's helpful:

># zrep sync pond/Media
DEBUG: lock is no longer held by 45689
overiding stale lock on pond/Media from pid 45689
DEBUG: zrep_lock_fs: set lock on pond/Media
sending pond/Media@zrep_000002 to nandi.bejfam.net:pond/Media
cannot receive incremental stream: incremental send stream requires -L (--large-block), to match previous receive.
Error: Problem doing sync for pond/Media@zrep_000002. Renamed to pond/Media@zrep_000002_unsent

Then syncing manually:

># zfs send -vw -I zrep_000001 pond/Media@zrep_000002_unsent | ssh nandi zfs recv -Fs pond/Media
send from @zrep_000001 to pond/Media@zrep_000002_unsent estimated size is 125K
total estimated size is 125K
TIME        SENT   SNAPSHOT pond/Media@zrep_000002_unsent

Any help/guidance in figuring out what's happening would be appreciated :)

BTW, these datasets are configured with recordsize=1M, if that might be relevant.

@ppbrown
Copy link
Member

ppbrown commented Jul 31, 2024 via email

@linuxturtle
Copy link

Any chance that ZREP is pulling in a different version of the zfs command, than you use on the command line?

I can't think of any way it could. Both machines are vanilla Proxmox 8/debian 12 installs, and only have one zfs executable I know of (from the zfsutils-linux package installed by default)

> zfs --version
zfs-2.2.4-pve1
zfs-kmod-2.2.4-pve1

Is there any way to get zrep to spit out the actual command line it's using? Maybe that would offer a clue?

@ppbrown
Copy link
Member

ppbrown commented Jul 31, 2024 via email

@linuxturtle
Copy link

Just to update, I attempted to debug the script, then started getting errors about the destination dataset having changed since the last sync, and some other errors which made no sense to me, so I decided to start with a clean "zrep create", and now the syncs are working as expected, and I can no longer recreate the problem.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants