{ pkgs, lib, config, ... }: { # The 32-bit host id of the machine, formatted as 8 hexadecimal characters. # You should try to make this id unique among your machines. # Manually generated with : head -c4 /dev/urandom | od -A none -t x4 | cut -d ' ' -f 2 networking.hostId = "69c40b03"; # none is the recommended elevator with ZFS (which has its own I/O scheduler) # and/or for SSD, whereas HDD could use mq-deadline. services.udev.extraRules = '' # set none scheduler for non-rotating disks ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/rotational}=="0", ATTR{queue/scheduler}="none" ''; boot.supportedFilesystems = [ "zfs" ]; # Ensure extra safeguards are active that zfs uses to protect zfs pools. boot.zfs.forceImportAll = false; boot.zfs.forceImportRoot = false; boot.zfs.enableUnstable = true; boot.zfs.requestEncryptionCredentials = true; # Enables periodic scrubbing of ZFS pools. services.zfs.autoScrub.enable = true; environment = { systemPackages = [ pkgs.mbuffer pkgs.zfs ]; }; }