Fixed snapRAID configuration. Added missing double quotes on the Disko disks definitions.
This commit is contained in:
@@ -21,7 +21,7 @@
|
|||||||
};
|
};
|
||||||
disk = {
|
disk = {
|
||||||
# Boot disk
|
# Boot disk
|
||||||
system-1 = {
|
"system-1" = {
|
||||||
type = "disk";
|
type = "disk";
|
||||||
device = "${BOOT_DISK_1}";
|
device = "${BOOT_DISK_1}";
|
||||||
content = {
|
content = {
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
{
|
{
|
||||||
disko.devices = {
|
disko.devices = {
|
||||||
disk = {
|
disk = {
|
||||||
system-1 = {
|
"system-1" = {
|
||||||
type = "disk";
|
type = "disk";
|
||||||
device = "${BOOT_DISK_1}";
|
device = "${BOOT_DISK_1}";
|
||||||
content = {
|
content = {
|
||||||
@@ -31,7 +31,7 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
system-2 = {
|
"system-2" = {
|
||||||
type = "disk";
|
type = "disk";
|
||||||
device = "${BOOT_DISK_2}";
|
device = "${BOOT_DISK_2}";
|
||||||
content = {
|
content = {
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
data-${DISK_NUMBER} = {
|
"data-${DISK_NUMBER}" = {
|
||||||
type = "disk";
|
type = "disk";
|
||||||
device = "${DISK_PATH}";
|
device = "${DISK_PATH}";
|
||||||
content = {
|
content = {
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
parity-${DISK_NUMBER} = {
|
"parity-${DISK_NUMBER}" = {
|
||||||
type = "disk";
|
type = "disk";
|
||||||
device = "${DISK_PATH}";
|
device = "${DISK_PATH}";
|
||||||
content = {
|
content = {
|
||||||
|
|||||||
+14
-12
@@ -2,14 +2,20 @@
|
|||||||
|
|
||||||
let
|
let
|
||||||
# Create a list of data disk mount points, e.g. [ "/mnt/data-1" "/mnt/data-2" ]
|
# Create a list of data disk mount points, e.g. [ "/mnt/data-1" "/mnt/data-2" ]
|
||||||
dataDisks = lib.lists.catAttrs "mountpoint" (
|
dataDiskMounts = lib.attrsets.catAttrs "mountpoint" (
|
||||||
lib.attrsets.filterAttrs (n: v: lib.strings.hasPrefix "data-" n) config.disko.devices.disk
|
lib.attrsets.filterAttrs (n: v: lib.strings.hasPrefix "data-" n) config.disko.devices.disk
|
||||||
);
|
);
|
||||||
|
|
||||||
# Create a list of parity disk mount points
|
# Create a list of parity disk mount points
|
||||||
parityDisks = lib.lists.catAttrs "mountpoint" (
|
parityDiskMounts = lib.attrsets.catAttrs "mountpoint" (
|
||||||
lib.attrsets.filterAttrs (n: v: lib.strings.hasPrefix "parity-" n) config.disko.devices.disk
|
lib.attrsets.filterAttrs (n: v: lib.strings.hasPrefix "parity-" n) config.disko.devices.disk
|
||||||
);
|
);
|
||||||
|
|
||||||
|
# Create an attribute set for snapraid data disks, e.g. { d1 = "/mnt/data-1"; d2 = "/mnt/data-2"; }
|
||||||
|
snapraidDataDisks = lib.lists.foldl'
|
||||||
|
(acc: path: acc // { "d${toString (acc.i + 1)}" = path; i = acc.i + 1; })
|
||||||
|
{ i = 0; }
|
||||||
|
dataDiskMounts;
|
||||||
in
|
in
|
||||||
|
|
||||||
{
|
{
|
||||||
@@ -187,22 +193,18 @@ in
|
|||||||
"cache.files=off"
|
"cache.files=off"
|
||||||
"moveonenospc=true"
|
"moveonenospc=true"
|
||||||
"category.create=mfs"
|
"category.create=mfs"
|
||||||
"srcmounts=${lib.strings.concatStringsSep ":" dataDisks}"
|
"srcmounts=${lib.strings.concatStringsSep ":" dataDiskMounts}"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
# SnapRAID for data redundancy
|
# SnapRAID for data redundancy
|
||||||
services.snapraid = {
|
services.snapraid = {
|
||||||
enable = true;
|
enable = true;
|
||||||
content = map (disk: "${disk}/snapraid.content") dataDisks;
|
contentFiles = map (disk: "${disk}/snapraid.content") dataDiskMounts;
|
||||||
parity = map (disk: "${disk}/snapraid.parity") parityDisks;
|
parityFiles = map (disk: "${disk}/snapraid.parity") parityDiskMounts;
|
||||||
data = dataDisks;
|
dataDisks = builtins.removeAttrs snapraidDataDisks [ "i" ];
|
||||||
|
# Sync every day at 01:00 am
|
||||||
runner = {
|
# Scrub every monday at 02:00 am
|
||||||
enable = true;
|
|
||||||
diffAndSyncOn = "04:00"; # Daily at 4am
|
|
||||||
scrubOn = "Sun 05:00"; # Weekly on Sunday at 5am
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
system.stateVersion = "25.05";
|
system.stateVersion = "25.05";
|
||||||
|
|||||||
Reference in New Issue
Block a user