Hey all, i would like to get some feedback on my backup strategy.

I have a debian webserver with a ZFS pool running nextcloud aio, immich and jellyfin. Thinking about adding other services as well but nextcloud and immich are the most important ones. The docker volumes of these services point of course to the zfs pool. My backup strategy would now be to use the internal backup solutions for nextcloud and immich to backup their databases, then stop the docker containers and do a borg backup of the zfs pool. The backups would be stored an extern hard drive (I want to expand on this but for now this is all I can afford). is this a viable approach or do i miss something? Could there be problems in case of a backup with the databases etc? The docker compose files are also stored on another machines together with my server documentation.

  • francisco_1844@discuss.online
    link
    fedilink
    English
    arrow-up
    1
    ·
    7 hours ago

    yes the ZFS snapshots are in the same disk, but the most common scenario when you need backups is to get a handful of files in which case the ZFS snapshots are super convenient and they use very little space. I use restic + (B2 | sftp) and zfs snapshots. I may literally go years without needing to restore from restic because most of the time I can get what I need from the zfs snapshots.

    You did not mention if you are using a single disk or more. If you can afford it and the machine allows it, doing mirroring or RAID-Z1 (equivalent of RAID 5) is a good option

    • Peluri96@feddit.orgOP
      link
      fedilink
      English
      arrow-up
      2
      ·
      7 hours ago

      I have 4 HDDS drives running in RAID-Z1. But yeah, the zfs snapshots on the pool itself are a no brainer :) but good to hear that they work so well

      • FauxLiving@lemmy.world
        link
        fedilink
        English
        arrow-up
        1
        ·
        4 hours ago

        If you wanted to get really in the weeds of ZFS, you can use ZFS send to send copies of your snapshots into a dataset that you store on your external.

        You can enable encryption and compression on the external dataset as well.

        This would use snapshots, give you the ability to make block-level incremental backups and allow encryption and compression using only ZFS tooling.

        You’d have to script it though (it’s possible someone has already done this in some other backup application).