Proxmox pve-zsync to MacOS
This is a very basic guide on using pve-zsync to send backups to a macos host with ZFS running on it via ssh.
Contents
configure repository
Lets first make the zfs dataset that all this will live under. We want to prevent the host os from seeing the virtual devices under it 'volmode=none' does this.
zfs create -o volmode=none ZfsMediaPool/proxback
Configure user on mac
We want to use and unprivileged account on osx and setup it to allow ssh.
sysadminctl -addUser proxback -home /Volumes/ZfsMediaPool/proxback/ chown -R proxback:wheel /Volumes/ZfsMediaPool/proxback/
Now we need to make the .ssh files to allow the sending proxmox hosts to ssh in as proxback.
You will need to grant this user ssh access in System Preferences > Sharing > Remote Login for ssh to work.
ZFS perms
Allow this user to do anything under the proxback dataset
zfs allow -u proxback create,mount,receive,send ZfsMediaPool/proxback
symlink the zfs binary
mac installs the zfs binary in the path, but the pve-zsync uses absolute paths. It's fixable, but easier to just symlink it on osx
ln -s /usr/local/zfs/bin/zfs /usr/sbin/zfs
configure ssh on proxmox
I use a nonstandard port number so in the .ssh/config file I need to setup my server:
Host proxback hostname IPADDRESS port 2022 user proxback
ssh to the server
ssh to the server as root and test that you can login
ssh proxback
Do the first backup
time pve-zsync sync --compressed --source 116 --dest-user proxback --dest proxback:ZfsMediaPool/proxback --dest-config-path /Volumes/ZfsMediaPool/proxback/pve-sync --verbose --maxsnap 7 --name test flowman
verify it made it on the server
# zfs list -r -t all ZfsMediaPool/proxback NAME USED AVAIL REFER MOUNTPOINT ZfsMediaPool/proxback 51.7G 78.2T 2.59M /Volumes/ZfsMediaPool/proxback ZfsMediaPool/proxback/vm-116-disk-0 51.7G 78.2T 51.7G - ZfsMediaPool/proxback/vm-116-disk-0@rep_test_2023-09-12_16:59:59 0B - 51.7G -