Replication task to none FreeNAS system (but has ZFS)

leenux_tux

Patron
Joined
Sep 3, 2011
Messages
238
Hello,

I have two servers (SOHO) where one system runs FreeNAS (FreeNAS-11.3-U4) and another system runs Proxmox for VM's. The Proxmox server has 3X3TB drives using ZFS, the pool version is 5000, ZFS file system version 5, this is also being used as an archive/backup server for all of the data on the FreeNAS system. Currently I manually create snapshots around once per month on the FreeNAS system and run an incremental "zfs send" to the ZFS file system on the Proxmox server.

This all works fine, I have ssh setup so I do not have to give a password when sending the snapshots.

I would like to make this a bit more automated so I have configured periodic snapshot tasks on the FreeNAS box and am now attempting to create a replication task to the ZFS file system on the Proxmox server. The SSH connection is setup in FreeNAS. When I try to create the replication task, selecting the ssh connection I have configured previously I get

CallError
[EFAULT] AuthenticationException('Authentication failed.')
Error: Traceback (most recent call last):
File "/usr/local/lib/python3.7/site-packages/middlewared/plugins/zettarepl.py", line 403, in list_datasets
datasets = await self.middleware.run_in_thread(list_datasets, shell)
File "/usr/local/lib/python3.7/site-packages/middlewared/utils/run_in_thread.py", line 10, in run_in_thread
return await self.loop.run_in_executor(self.run_in_thread_executor, functools.partial(method, *args, **kwargs))
File "/usr/local/lib/python3.7/site-packages/middlewared/utils/io_thread_pool_executor.py", line 25, in run
result = self.fn(*self.args, **self.kwargs)
File "/usr/local/lib/python3.7/site-packages/zettarepl/dataset/list.py", line 12, in list_datasets
return [dataset["name"] for dataset in list_datasets_with_properties(shell, dataset, recursive)]
File "/usr/local/lib/python3.7/site-packages/zettarepl/dataset/list.py", line 28, in list_datasets_with_properties
return [dict(zip(properties, line.split("\t"))) for line in filter(None, shell.exec(args).split("\n"))]
File "/usr/local/lib/python3.7/site-packages/zettarepl/transport/interface.py", line 83, in exec
return self.exec_async(args, encoding, stdout).wait()
File "/usr/local/lib/python3.7/site-packages/zettarepl/transport/interface.py", line 87, in exec_async
async_exec.run()
File "/usr/local/lib/python3.7/site-packages/zettarepl/transport/base_ssh.py", line 25, in run
client = self.shell.get_client()
File "/usr/local/lib/python3.7/site-packages/zettarepl/transport/base_ssh.py", line 103, in get_client
auth_timeout=self.transport.connect_timeout,
File "/usr/local/lib/python3.7/site-packages/paramiko/client.py", line 446, in connect
passphrase,
File "/usr/local/lib/python3.7/site-packages/paramiko/client.py", line 764, in _auth
raise saved_exception
File "/usr/local/lib/python3.7/site-packages/paramiko/client.py", line 664, in _auth
self._transport.auth_publickey(username, pkey)
File "/usr/local/lib/python3.7/site-packages/paramiko/transport.py", line 1580, in auth_publickey
return self.auth_handler.wait_for_response(my_event)
File "/usr/local/lib/python3.7/site-packages/paramiko/auth_handler.py", line 250, in wait_for_response
raise e
paramiko.ssh_exception.AuthenticationException: Authentication failed.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/usr/local/lib/python3.7/site-packages/middlewared/main.py", line 130, in call_method
io_thread=False)
File "/usr/local/lib/python3.7/site-packages/middlewared/main.py", line 1084, in _call
return await methodobj(*args)
File "/usr/local/lib/python3.7/site-packages/middlewared/schema.py", line 961, in nf
return await f(*args, **kwargs)
File "/usr/local/lib/python3.7/site-packages/middlewared/plugins/replication.py", line 702, in list_datasets
return await self.middleware.call("zettarepl.list_datasets", transport, ssh_credentials)
File "/usr/local/lib/python3.7/site-packages/middlewared/main.py", line 1141, in call
app=app, pipes=pipes, job_on_progress_cb=job_on_progress_cb, io_thread=True,
File "/usr/local/lib/python3.7/site-packages/middlewared/main.py", line 1084, in _call
return await methodobj(*args)
File "/usr/local/lib/python3.7/site-packages/middlewared/plugins/zettarepl.py", line 405, in list_datasets
raise CallError(repr(e))
middlewared.service_exception.CallError: [EFAULT] AuthenticationException('Authentication failed.')


Looking at the error message it looks like the authentication has failed but the connection seems to be configured OK as the "Discover Remote Key" on the ssh connection creation pulls back a ssh key from the Proxmox server.

My guess is either sending snapshots to a none-FreeNAS server is not supported, or, (and this is most likely) I have done something really dumb and missed a step somewhere ?

An pointers greatly appreciated.
 

Undexter

Cadet
Joined
Jun 2, 2019
Messages
3
I was having the exact same issue, and I suddenly remembered I was having a similar issue with the Proxmox Backup Server.
The username you enter into the TrueNAS SSH connection has to include the proxmox "pam" realm. i.e. root@pam

1618372811905.png
 

AndreKW

Cadet
Joined
Sep 24, 2021
Messages
3
Hi,
is there any solution for this? I have the same problem with the connection from TrueNas to Proxmox Backup.
I was also wondering, why in the manual setup is no password for the root@pam required.

andre
 

sretalla

Powered by Neutrality
Moderator
Joined
Jan 1, 2016
Messages
9,703
I was also wondering, why in the manual setup is no password for the root@pam required.
Right under that is the answer... you'll be using a private key, not a password.
 

AndreKW

Cadet
Joined
Sep 24, 2021
Messages
3
Yes, you are right. I forgot to import the key.
But the issue was in addition the "@pam". Proxmox Backup just expects root as user.
 

Inxsible

Guru
Joined
Aug 14, 2017
Messages
1,123
Any updates on this?

I am trying to setup ZFS replication between TrueNAS and Proxmox servers, and I get the same authentication failed error.

I also tried first creating the key in the proxmox server, then manually importing the key into TrueNAS. When I use that key, I don't get an authentication failed, but rather an IndexError: list index out of range

How do I configure the ZFS replication from TrueNAS to the Proxmox zfs ?
 
Top