Home - xenophon61/Znapzend-recipes-for-mixed-MacOS-Linux-environment GitHub Wiki
Welcome to the Znapzend-recipes-for-mixed-MacOS-Linux-environment wiki!
My setup is as follows:
- a MacOS workstation [A] currently running Sonoma, with OpenZFSonOSX and a Github install of
znapzend
- a remote MacOS computer [B], again with OpenZFSonOSX, with a directly-attached
zpool
for backups, but also serving as a full-fledged Sonoma workstation - a Proxmox server [C], with a 6-disk raidz2, serving as backup (also presenting Samba and AFP shares via an Ubuntu VM)
All machines are current in terms of OS, ZFS versions and such.
Usage notes:
-
the MacOS target can also be used as a standalone workstation, as its zpool is case-insensitive (and serves as direct-attached storage); this is a major factor when it comes to setting things up (i.e. it's not a simple backup destination, but a full r/w host)
-
caveat: for znapzend to update the MacOS target residing on a daily-driver machine (i.e. actually accessing the zpools), the zfs datasets must have the
readonly
flag set, otherwise znapzend'szfs recv -F
will throw errors and abort (see note below) -
the Proxmox zpool, on the other hand, was created back in 2019 using the (default) case-sensitivity feature enabled
-
if one was to
zfs send
from the Proxmox machine, the target zpool would have its case-sensitivity flag reset to case-sensitive (and thus essentially become unreadable to MacOS clients, at least as direct-attached storage) -
the flowchart is as follows: [A] backups to [B] and [C]; [B] can actually use the zpool directly, e.g. edit photos and essentially use the ephemeral copy (actually, a
zfs clone
) of data from [A]; [C] is just for archival purposes, but can also serve Samba shares in the local network, as well asrsync
some datasets not present in [A] to [B]
Note
Regarding the readonly
attribute for the znapzend target: this is quite logical, as zfs send/recv
cannot update a live system that is in use, with any sort of reliability. Luckily, creating a zfs clone
is easy, and allows for full editing capabilities (an Applescript is provided) in the repo section.
Acknowledgements: