smartd: set drive timeout
This commit is contained in:
parent
1917e69b54
commit
41306ca505
@ -81,13 +81,32 @@ let
|
|||||||
description = "Options that determine how smartd monitors the device.";
|
description = "Options that determine how smartd monitors the device.";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
timeout = mkOption {
|
||||||
|
default = -1;
|
||||||
|
example = "70";
|
||||||
|
type = types.int;
|
||||||
|
description = ''
|
||||||
|
Set SCT Error Recovery Control timeout in deciseconds for use in raid configurations.
|
||||||
|
|
||||||
|
Values are as follows:
|
||||||
|
-1 = do not touch, leave at default
|
||||||
|
0 = disable SCT ERT
|
||||||
|
70 = default in consumer drives (7 seconds)
|
||||||
|
|
||||||
|
Maximum is disk dependant but probably 60 seconds.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
in
|
deviceTimeout = d:
|
||||||
|
lib.optionalString (d.timeout > -1) ''
|
||||||
|
${pkgs.smartmontools}/bin/smartctl -l scterc,${d.timeout},${d.timeout} --silent errorsonly ${d.device}
|
||||||
|
'';
|
||||||
|
|
||||||
{
|
in {
|
||||||
###### interface
|
###### interface
|
||||||
|
|
||||||
options = {
|
options = {
|
||||||
@ -222,7 +241,13 @@ in
|
|||||||
|
|
||||||
path = [ pkgs.nettools ]; # for hostname and dnsdomanname calls in smartd
|
path = [ pkgs.nettools ]; # for hostname and dnsdomanname calls in smartd
|
||||||
|
|
||||||
serviceConfig.ExecStart = "${pkgs.smartmontools}/sbin/smartd --no-fork --configfile=${smartdConf}";
|
serviceConfig = {
|
||||||
|
ExecStartPre = ''
|
||||||
|
${concatMapStringsSep "\n" deviceTimeout cfg.devices}
|
||||||
|
'';
|
||||||
|
ExecStart = "${pkgs.smartmontools}/sbin/smartd --no-fork --configfile=${smartdConf}";
|
||||||
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user