Recommended settings on Synology NAS with Btrfs

On my Synology NAS I have too much free hard disk space and I am using the free TB’s for a Storj storage node. On Synology the default/preferred file system is Btrfs, this filesystem is not the most efficient for us node operators. The best would be to use ext4 (together with the tweaks someone has posted on this forum). However I don’t have a spare ext4 volume in my NAS and do not plan to change my volumes to another filesystem.

Sharing disk space for a node on a default Synology volume can hog your NAS (high iowait, sluggish performance). I made the following tweaks to improve disk performance.

First disable ‘data checksum for advanced data integrity’. Be warned, if you have an existing node with data you need to create a new volume with those settings. The setting cannot be changed on existing volumes. You also need to copy/rsync the data using this guide: How do I migrate my node to a new device? | Storj Docs. Copying the node data can take a long time (couple of days or more).

From what I’ve read about this Btrfs feature is that it introduces overhead when reading/writing data to the volume. For more background see this discussion on /r/synology: https://www.reddit.com/r/synology/comments/m2s042/why_might_i_not_want_to_enable_data_checksum_and/

Second, disable timestamps which are added to files on read (known as atime / last accessed datetime). Each time a file is read a timestamp is updated, this causes overhead. In regular linux this is set in fstab however in Synology DSM the option can be set here:

This option can be set wether you have Btrfs or ext4 enabled on your NAS.

I’ve bought 2 nvme Ssd to use as a cache to mitigate this problem. Electricity price is skyrocketing in EU. Can’t afford to have it running much longer.