From 5828af9fc19e18dc85e49fcc1a251a7eb25d909c Mon Sep 17 00:00:00 2001 From: Max Audron Date: Fri, 11 Aug 2023 16:51:35 +0200 Subject: init --- modules/zfs/default.nix | 111 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 111 insertions(+) create mode 100644 modules/zfs/default.nix (limited to 'modules/zfs') diff --git a/modules/zfs/default.nix b/modules/zfs/default.nix new file mode 100644 index 0000000..4e863fc --- /dev/null +++ b/modules/zfs/default.nix @@ -0,0 +1,111 @@ +{ 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" ]; + }; + + virtualisation.containers.storage.settings.storage = { + driver = "zfs"; + graphroot = "/var/lib/containers/storage"; + runroot = "/run/containers/storage"; + options.zfs.fsname = "rpool/data/containers"; + options.zfs.mountopt = "nodev"; + }; + + virtualisation.cri-o = { + storageDriver = "zfs"; + extraPackages = [ pkgs.zfs ]; + }; + + 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/docker" = { + device = "rpool/root/var/lib/docker"; + 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" ]; + }; + }; +} -- cgit v1.2.3