{ config, lib, pkgs, ... }: { boot = { initrd.kernelModules = [ "zfs" ]; kernelModules = [ "zfs" ]; supportedFilesystems = [ "zfs" ]; zfs.devNodes = "/dev/"; loader.grub.zfsSupport = true; }; services.zfs = { trim.enable = true; autoScrub.enable = true; autoScrub.pools = [ "rpool" ]; }; services.prometheus.exporters = { zfs.enable = true; smartctl.enable = true; }; # For allowing smartctl prometheus exporter access to nvme disks services.udev.extraRules = '' SUBSYSTEM=="nvme", KERNEL=="nvme[0-9]*", GROUP="disk" ''; fileSystems = { "/" = { device = "rpool/root"; fsType = "zfs"; options = [ "zfsutil" ]; }; "/nix" = { device = "rpool/root/nix"; fsType = "zfs"; options = [ "zfsutil" ]; }; "/etc" = { device = "rpool/root/etc"; fsType = "zfs"; options = [ "zfsutil" ]; }; "/home" = { device = "rpool/root/home"; fsType = "zfs"; options = [ "zfsutil" ]; }; "/srv" = { device = "rpool/root/srv"; fsType = "zfs"; options = [ "zfsutil" ]; }; "/var" = { device = "rpool/root/var"; fsType = "zfs"; options = [ "zfsutil" ]; }; "/var/lib" = { device = "rpool/root/var/lib"; fsType = "zfs"; options = [ "zfsutil" ]; }; "/var/lib/rancher" = { device = "rpool/root/var/lib/rancher"; fsType = "zfs"; options = [ "zfsutil" ]; }; "/var/lib/containers" = { device = "rpool/root/var/lib/containers"; fsType = "zfs"; options = [ "zfsutil" ]; }; "/var/lib/etcd" = { device = "rpool/root/var/lib/etcd"; fsType = "zfs"; options = [ "zfsutil" ]; }; "/var/log" = { device = "rpool/root/var/log"; fsType = "zfs"; options = [ "zfsutil" ]; }; "/var/spool" = { device = "rpool/root/var/spool"; fsType = "zfs"; options = [ "zfsutil" ]; }; }; }