I just found this interesting article which compares btrfs and zfs. RedHat does not seem to like either and is rooting for Stratis, a user-space daemon that coordinates various other disk management technologies (seems similar to what LXD is doing for containers).
The choice of filesystem impacts your procedures about backups, snapshots, etc. I am very happy with ZFS, and I use it more and more. Important ZFS features are mirroring (RAID), snapshots, incremental send/receive, compression, and encryption.
Make sure that your choice of database works well with the filesystem. I’ve adopted some performance tuning recommendations for the recordsize of zfs filesystems used by mariadb. Admittedly this increases the complexity of setting up the database as I need to attach two additional filesystems to the mariadb container (data, log), and configure mariadb to use them. If you do not do such special tuning, the performance may still be acceptable. Run a benchmark to compare running the database in a container or outside of LXD, with different filesystems. The “benchmark” that I use is timing the loading of a large .sql file, previously created with mysqldump.
I generally use a single debian-based mariadb container and have the website containers use that. I made an exception for a larger database, which I run on the same container as the website. My standard two-container configuration was causing this particular website/database to hang on certain database operations, for reasons that I have not fully understood. Because of this, I may remove the special mariadb tuning that I mentioned. Beware of too much optimization.