I'm trying to get a backup system functioning as efficiently as I can - most of the systems I need backed up are some flavor of Linux and we currently dump them to an Ubuntu 16.04.3 server and store them on the / disk. The Ubuntu VM is running within Hyper-V, and has a .vhdx for the root disk. The Ubuntu OS runs rsync to connect to each production server.
Anyway, instead of storing them on the root disk, I'd like to store the backup files on a new disk and new filesystem that can operate with daily snapshots. I've created a 900GB volume in Hyper-V (thin-provisioned, currently) and attached to the VM. So currently the disk shows up to Ubuntu as /dev/sdd, unformatted, with 900GB of capacity.
Looking for suggestions on how to support the following requirements:
- Allow backups copied to the filesystem via rsync from a number of production servers totaling about 60GB
- Allow basic volume or filesystem snapshots to run daily, such that we can retain about 7-10 days worth of backup file information. The deltas of the production files from the previous day usually total about 30-35GB
- Allow simple reference (such as a simple mount point in Ubuntu) to any one of the backup snapshots, in case we need to retrieve a random file from X days ago
- Auto remove snapshots older than 10 days.
What I don't need:
- Physical or RAID volume management - the new disk (the 900GB .vhdx) is already stored on a Windows Storage Spaces volume that handles physical disk anomalies
- Scripts - that run to mount/unmount or merge snapshots - that are not vanilla to the filesystem's package.
I've used ZFS in the past, in the form of NexentaStor, and that was pretty slick. Besides the RAID management, the snapshots taken were automatically available to me as: "/primary_volume/.zfs/snapshot_name" and it was pretty slick to go & grab a file from X days ago.
Am I looking at a BTRFS implementation, or perhaps an LVM implementation here? Or are there other packaged, ready-to-fly solutions that will fill this void for me?