feat(sterni/ingeborg): enable btrfs auto scrub
While we are at it, rename disk-checkup.nix to btrfs-auto-scrub.nix and move it into //ops/modules. I originally wanted to have additionally disk health related services in that module, but the btrfs scrub functionality is nicely self-contained and reusable, so I think it makes sense to have this in a more central location. Change-Id: Iabdd62838eef009540ca71abafd921afda2a9b47 Reviewed-on: https://cl.tvl.fyi/c/depot/+/10128 Reviewed-by: sterni <sternenseemann@systemli.org> Autosubmit: sterni <sternenseemann@systemli.org> Tested-by: BuildkiteCI
This commit is contained in:
parent
825b6ac65f
commit
03d5ffd2de
4 changed files with 28 additions and 26 deletions
25
ops/modules/btrfs-auto-scrub.nix
Normal file
25
ops/modules/btrfs-auto-scrub.nix
Normal file
|
@ -0,0 +1,25 @@
|
|||
# Automatically performs a scrub on all btrfs filesystems configured in
|
||||
# `config.fileSystems` on a daily schedule (by default). Activated by importing.
|
||||
{ config, lib, ... }:
|
||||
|
||||
{
|
||||
config = {
|
||||
services = {
|
||||
btrfs.autoScrub = {
|
||||
enable = true;
|
||||
interval = lib.mkDefault "daily";
|
||||
# gather all btrfs fileSystems, extra ones can be added via the NixOS
|
||||
# module merging mechanism, of course.
|
||||
fileSystems = lib.concatLists (
|
||||
lib.mapAttrsToList
|
||||
(
|
||||
_:
|
||||
{ fsType, mountPoint, ... }:
|
||||
if fsType == "btrfs" then [ mountPoint ] else [ ]
|
||||
)
|
||||
config.fileSystems
|
||||
);
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
|
@ -10,7 +10,7 @@
|
|||
./hardware.nix
|
||||
./network.nix
|
||||
# These modules configure services, websites etc.
|
||||
../../modules/disk-checkup.nix
|
||||
(depot.path.origSrc + "/ops/modules/btrfs-auto-scrub.nix")
|
||||
./minecraft.nix
|
||||
./gopher.nix
|
||||
./http/sterni.lv.nix
|
||||
|
|
|
@ -7,6 +7,8 @@
|
|||
# These modules touch things related to booting (filesystems, initrd network…)
|
||||
./hardware.nix
|
||||
./network.nix
|
||||
# (More or less) pluggable service configuration
|
||||
(depot.path.origSrc + "/ops/modules/btrfs-auto-scrub.nix")
|
||||
];
|
||||
|
||||
config = {
|
||||
|
|
|
@ -1,25 +0,0 @@
|
|||
# TODO(sterni): configure smartd and alerts
|
||||
{ config, lib, ... }:
|
||||
|
||||
{
|
||||
config = {
|
||||
services = {
|
||||
btrfs.autoScrub = {
|
||||
enable = true;
|
||||
interval = "daily";
|
||||
# gather all btrfs fileSystems and overwrite default
|
||||
fileSystems = lib.mkForce (
|
||||
lib.concatLists (
|
||||
lib.mapAttrsToList
|
||||
(
|
||||
_:
|
||||
{ fsType, mountPoint, ... }:
|
||||
if fsType == "btrfs" then [ mountPoint ] else [ ]
|
||||
)
|
||||
config.fileSystems
|
||||
)
|
||||
);
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
Loading…
Reference in a new issue