I’m attempting a new install. I want to use btrfs with swapfile.
Do I need to disable compression on my swap subvolume?
Is there anything else I should keep in mind for fstab if I want to, say, not keep track of my Downloads folder when snapshotting?
Here is my fstab:
LABEL=arch@btrfs / btrfs rw,relatime,discard=async,space_cache=v2,subvolid=256,subvol=>
LABEL=arch@btrfs /home btrfs rw,relatime,discard=async,space_cache=v2,subvolid=257,subvol=>
LABEL=arch@btrfs /var/cache/pacman/pkg btrfs rw,relatime,discard=async,space_cache=v2,subvolid=259>
LABEL=arch@btrfs /var/log btrfs rw,relatime,discard=async,space_cache=v2,subvolid=258,subvol=>
LABEL=arch@btrfs /.snapshots btrfs rw,relatime,discard=async,space_cache=v2,subvolid=260,subvol=>
LABEL=arch@btrfs /swap btrfs rw,relatime,discard=async,space_cache=v2,subvolid=263,subvol=>
LABEL=efi@fat32 /efi vfat rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=asci>
/swap/swapfile none swap defaults 0 0
I don’t see how swap has much chance to fragment. A swapfile has to be fully allocated up front and cannot be CoW. If it’s allocated well in the first place, it will stay that way.
The swap code doesn’t really do I/O through the filesystem. AIUI, it locks the file, gets the disk block #s from the FS, and after that it accesses those blocks directly.
From the BTRFS manual:
“Nodatacow implies nodatasum, and disables compression.”
“Datasum implies datacow”
Based on these notes I’d assume that since swapfile disables COW that it also disables checksumming which is where the risk of fragmentation occurs
I could be wrong tho