From e2fa74dc68d5f6fcedcf63aa9d64e488eff2b985 Mon Sep 17 00:00:00 2001 From: Ivan Petkov Date: Fri, 15 Jan 2021 20:20:23 -0800 Subject: [PATCH] nixos/zfs: make zpool-trim timer persistent If the machine is powered off when the zpool-trim timer is supposed to trigger (usually around midnight) then the timer will be skipped outright in favor of the next instance. For desktop systems which are usually powered off at this time, zpool trimming will never be run which can degrade SSD performance. By marking the timer as `Persistent = yes` we ensure that it will run at the first possible opportunity after the trigger date is reached. --- nixos/modules/tasks/filesystems/zfs.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/nixos/modules/tasks/filesystems/zfs.nix b/nixos/modules/tasks/filesystems/zfs.nix index 6becc696273..9638a7cb3e5 100644 --- a/nixos/modules/tasks/filesystems/zfs.nix +++ b/nixos/modules/tasks/filesystems/zfs.nix @@ -664,6 +664,8 @@ in # - There are only HDDs and we would set the system in a degraded state serviceConfig.ExecStart = ''${pkgs.runtimeShell} -c 'for pool in $(zpool list -H -o name); do zpool trim $pool; done || true' ''; }; + + systemd.timers.zpool-trim.timerConfig.Persistent = "yes"; }) ]; }