'Device busy' error on Replication Task

AlcSi

Dabbler
Joined
Sep 20, 2019
Messages
41
Hi,
I'm trying to create a replication of datasets between two servers on latest stable FreeNAS 11.3U3.2 both.

They've been holding data for a long time and work well, and I've been using rsync for backup but replication seemed to be a valuable upgrade for the job.

What I'm trying to do is replicate the full 'root' dataset recursively (the 'root' dataset being the one containing each individual dataset I use as CIFS shares). As I have a dozen datasets in this root dataset, I wanted to avoid creating a replication task for each; also because the idea is "The NAS-B is a mirror of the NAS-A", so there is no point in having granularity and control over how each dataset replicates.

So the replication task is set to point the 'root' dataset as source in NAS-A (the main NAS), and to the same 'root' dataset (which is empty, no data or datasets) in the NAS-B (the 'mirror').
Note that I manually I deleted all the datasets it contained before because the replication task threw errors when it had data, saying it won't replicate where there is data already.

Now I get the following error (last line of the log) :
Code:
line 189, in wait
    raise SshNetcatExecException(None, self.listen_exec_error)
zettarepl.transport.ssh_netcat.SshNetcatExecException: None
Device busy


EDIT: I think the 'root' dataset I'm trying to replicate may be officially called 'pool'.
Any hints ? Is it even possible to replicate the whole root dataset the way I'm trying to ?

EDIT2: I confirm it works from dataset to dataset, but not from pool to pool. Maybe it's normal behaviour and I can only copy datasets, not entire pools ?

Thanks
 
Last edited:

AlcSi

Dabbler
Joined
Sep 20, 2019
Messages
41
Bump !
Is there a specific way to replicate an entire pool ?
I'm definitely able to replicate each individual (second-level) dataset, but not the whole pool, and docs don't mention anything specific for this case.
 

gusgus

Dabbler
Joined
Sep 15, 2014
Messages
13
Confirmed. I'm seeing the same behavior on 11.3-U3.2. ZFS replication task in netcat+ssh mode will work only with datasets and not pools. If a pool is selected then I am met with a "Device Busy, no error" message. Changing the exact same replication settings to select a dataset (which is within that pool) yields a successful replication of that dataset.

FreeNAS Jira bug reporter doesn't appear to have a bug for this yet.

I have a syslog dataset on this pool. I'm wondering if this is the cause.
 
Last edited:

gusgus

Dabbler
Joined
Sep 15, 2014
Messages
13
In my case, I appear to be able to replicate multiple datasets by selecting multiple datasets in the source's pool (excluding the syslog dataset), then selecting only the pool on the destination and it appears to be working. In my case, the dataset structure on the destination matches the source exactly. It's running right now so I don't know the true results yet, but it's running.
 

gusgus

Dabbler
Joined
Sep 15, 2014
Messages
13
Ok I think I have the solution. The method described in post 4 works as I had expected. Just select multiple datasets in the source, and then the pool to replicate them too in the destination, and it will work as long as you don't select the syslog dataset. I have the same dataset layout on the destination as I do on the source, not sure if that is required.
 
Top