Unverified Commit 338a208e authored by Franz Pletz's avatar Franz Pletz Committed by GitHub
Browse files

Merge pull request #287505 from jpds/zfs-scrub-trim-randomizedDelaySec

parents 7c520d40 8e0e9bde
Loading
Loading
Loading
Loading
+29 −1
Original line number Diff line number Diff line
@@ -441,6 +441,18 @@ in
          {manpage}`systemd.time(7)`.
        '';
      };

      randomizedDelaySec = mkOption {
        default = "6h";
        type = types.str;
        example = "12h";
        description = ''
          Add a randomized delay before each ZFS trim.
          The delay will be chosen between zero and this value.
          This value must be a time span in the format specified by
          {manpage}`systemd.time(7)`
        '';
      };
    };

    services.zfs.autoScrub = {
@@ -456,6 +468,18 @@ in
        '';
      };

      randomizedDelaySec = mkOption {
        default = "6h";
        type = types.str;
        example = "12h";
        description = ''
          Add a randomized delay before each ZFS autoscrub.
          The delay will be chosen between zero and this value.
          This value must be a time span in the format specified by
          {manpage}`systemd.time(7)`
        '';
      };

      pools = mkOption {
        default = [];
        type = types.listOf types.str;
@@ -862,6 +886,7 @@ in
        timerConfig = {
          OnCalendar = cfgScrub.interval;
          Persistent = "yes";
          RandomizedDelaySec = cfgScrub.randomizedDelaySec;
        };
      };
    })
@@ -879,7 +904,10 @@ in
        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";
      systemd.timers.zpool-trim.timerConfig = {
        Persistent = "yes";
        RandomizedDelaySec = cfgTrim.randomizedDelaySec;
      };
    })
  ];
}