added scratch pool

This commit is contained in:
2025-03-29 16:08:09 -04:00
parent ca2081bf93
commit 4694d75a62
6 changed files with 31 additions and 15 deletions

View File

@@ -16,11 +16,6 @@
./syncthing.nix ./syncthing.nix
]; ];
boot.zfs.extraPools = [
"media"
"storage"
];
powerManagement = { powerManagement = {
# cpuFreqGovernor = "ondemand"; # cpuFreqGovernor = "ondemand";
# scsiLinkPolicy = "min_power"; # scsiLinkPolicy = "min_power";

View File

@@ -23,6 +23,7 @@ in
volumes = [ volumes = [
"${vars.media_docker_configs}/qbitvpn:/config" "${vars.media_docker_configs}/qbitvpn:/config"
"${vars.storage_qbitvpn}:/data" "${vars.storage_qbitvpn}:/data"
"${vars.scratch_qbitvpn}:/data/incomplete"
"/etc/localtime:/etc/localtime:ro" "/etc/localtime:/etc/localtime:ro"
]; ];
environment = { environment = {

View File

@@ -90,6 +90,17 @@
keyFile = "/dev/disk/by-id/usb-XIAO_USB_Drive_24587CE29074-0:0"; keyFile = "/dev/disk/by-id/usb-XIAO_USB_Drive_24587CE29074-0:0";
fallbackToPassword = true; fallbackToPassword = true;
}; };
# Scratch pool
"luks-scratch-pool-ata-CT480BX500SSD1_2314E6C3C01C-part1" = {
device = "/dev/disk/by-id/ata-CT480BX500SSD1_2314E6C3C01E-part1";
bypassWorkqueues = true;
allowDiscards = true;
};
"luks-scratch-pool-ata-CT480BX500SSD1_2314E6C3C01E-part1" = {
device = "/dev/disk/by-id/ata-CT480BX500SSD1_2314E6C3C01E-part1";
bypassWorkqueues = true;
allowDiscards = true;
};
# Storage pool # Storage pool
"luks-storage_pool-nvme-Samsung_SSD_970_EVO_Plus_2TB_S6S2NS0T834822N-part1" = { "luks-storage_pool-nvme-Samsung_SSD_970_EVO_Plus_2TB_S6S2NS0T834822N-part1" = {
device = "/dev/disk/by-id/nvme-Samsung_SSD_970_EVO_Plus_2TB_S6S2NS0T834822N-part1"; device = "/dev/disk/by-id/nvme-Samsung_SSD_970_EVO_Plus_2TB_S6S2NS0T834822N-part1";
@@ -171,14 +182,15 @@
keyFile = "/dev/disk/by-id/usb-XIAO_USB_Drive_24587CE29074-0:0"; keyFile = "/dev/disk/by-id/usb-XIAO_USB_Drive_24587CE29074-0:0";
fallbackToPassword = true; fallbackToPassword = true;
}; };
# Torrenting pool
# "luks-torrenting_pool-wwn-0x500a0751e6c3c01e-part1" = {
# device = "/dev/disk/by-id/wwn-0x500a0751e6c3c01e-part1";
# bypassWorkqueues = true;
# allowDiscards = true;
# };
}; };
}; };
zfs.extraPools = [
"media"
"scratch"
"storage"
];
kernelModules = [ "kvm-amd" ]; kernelModules = [ "kvm-amd" ];
extraModulePackages = [ ]; extraModulePackages = [ ];
}; };

View File

@@ -11,6 +11,8 @@ sudo zpool create -o ashift=12 -O acltype=posixacl -O atime=off -O dnodesize=aut
sudo zpool add storage -o ashift=12 special mirror sudo zpool add storage -o ashift=12 special mirror
sudo zpool add storage -o ashift=12 logs mirror sudo zpool add storage -o ashift=12 logs mirror
# scratch
sudo zpool create -o ashift=12 -O acltype=posixacl -O atime=off -O dnodesize=auto -O xattr=sa -O compression=zstd -m /zfs/scratch scratch
# media datasets # media datasets
sudo zfs create -o compression=zstd-9 media/docker sudo zfs create -o compression=zstd-9 media/docker
@@ -23,6 +25,10 @@ sudo zfs create -o compression=zstd-19 media/home_assistant
sudo zfs create -o exec=off media/share sudo zfs create -o exec=off media/share
sudo zfs create -o recordsize=16k -o primarycache=metadata -o mountpoint=/zfs/media/database/postgres media/postgres sudo zfs create -o recordsize=16k -o primarycache=metadata -o mountpoint=/zfs/media/database/postgres media/postgres
# scratch datasets
sudo zfs create -o recordsize=16k -o sync=disabled scratch/qbitvpn
sudo zfs create -o recordsize=16k -o sync=disabled scratch/transmission
# storage datasets # storage datasets
sudo zfs create -o recordsize=1M -o compression=zstd-19 storage/archive sudo zfs create -o recordsize=1M -o compression=zstd-19 storage/archive
sudo zfs create -o compression=zstd-19 storage/main sudo zfs create -o compression=zstd-19 storage/main
@@ -32,4 +38,3 @@ sudo zfs create -o compression=zstd-19 -o copies=3 storage/secrets
sudo zfs create -o compression=zstd-19 storage/syncthing sudo zfs create -o compression=zstd-19 storage/syncthing
sudo zfs create -o recordsize=1M -o compression=zstd-9 -o exec=off -o sync=disabled storage/qbitvpn sudo zfs create -o recordsize=1M -o compression=zstd-9 -o exec=off -o sync=disabled storage/qbitvpn
sudo zfs create -o recordsize=1M -o compression=zstd-9 -o exec=off -o sync=disabled storage/transmission sudo zfs create -o recordsize=1M -o compression=zstd-9 -o exec=off -o sync=disabled storage/transmission

View File

@@ -16,7 +16,7 @@ in
cache-size-mb = 0; cache-size-mb = 0;
download-dir = "${vars.storage_transmission}/complete"; download-dir = "${vars.storage_transmission}/complete";
download-queue-enabled = false; download-queue-enabled = false;
incomplete-dir = "${vars.storage_transmission}/incomplete"; incomplete-dir = "${vars.scratch_transmission}/incomplete";
incomplete-dir-enabled = true; incomplete-dir-enabled = true;
message-level = 3; message-level = 3;
peer-port = 51413; peer-port = 51413;

View File

@@ -1,9 +1,10 @@
let let
zfs_media = "/zfs/media"; zfs_media = "/zfs/media";
zfs_storage = "/zfs/storage"; zfs_storage = "/zfs/storage";
zfs_scratch = "/zfs/scratch";
in in
{ {
inherit zfs_media zfs_storage; inherit zfs_media zfs_storage zfs_scratch;
# media # media
media_database = "${zfs_media}/database"; media_database = "${zfs_media}/database";
media_docker = "${zfs_media}/docker"; media_docker = "${zfs_media}/docker";
@@ -23,5 +24,7 @@ in
storage_library = "${zfs_storage}/library"; storage_library = "${zfs_storage}/library";
storage_qbitvpn = "${zfs_storage}/qbitvpn"; storage_qbitvpn = "${zfs_storage}/qbitvpn";
storage_transmission = "${zfs_storage}/transmission"; storage_transmission = "${zfs_storage}/transmission";
# scratch
scratch_qbitvpn = "${zfs_scratch}/qbitvpn";
scratch_transmission = "${zfs_scratch}/transmission";
} }