diff --git a/hosts/nas/hardware-configuration.nix b/hosts/nas/hardware-configuration.nix index 077f5e9..6f82f8b 100644 --- a/hosts/nas/hardware-configuration.nix +++ b/hosts/nas/hardware-configuration.nix @@ -24,12 +24,16 @@ "i915.enable_fbc=1" # Frame buffer compression ]; - # RAID 1 array for data storage + # RAID 1 arrays for data storage boot.swraid = { enable = true; mdadmConf = '' + DEVICE /dev/disk/by-id/nvme-KIOXIA-EXCERIA_PLUS_G3_SSD_7FJKS1MAZ0E7-part1 + DEVICE /dev/disk/by-id/nvme-KIOXIA-EXCERIA_PLUS_G3_SSD_7FJKS1M9Z0E7-part1 DEVICE /dev/disk/by-id/ata-ST18000NM000J-2TV103_ZR52TBSB-part1 DEVICE /dev/disk/by-id/ata-ST18000NM000J-2TV103_ZR52V9QX-part1 + DEVICE /dev/disk/by-id/ata-TOSHIBA_MG10ACA20TE_8582A01SF4MJ-part1 + DEVICE /dev/disk/by-id/ata-TOSHIBA_MG10ACA20TE_75V2A0H3F4MJ-part1 ''; }; @@ -84,14 +88,13 @@ # LVM volumes on RAID array fileSystems."/var/lib/downloads" = { - device = "/dev/vg-data/lv-downloads"; - fsType = "xfs"; - options = [ "noatime" ]; + device = "/dev/vg-data-fast/downloads"; + fsType = "ext4"; }; fileSystems."/var/lib/multimedia" = { - device = "/dev/vg-data/lv-multimedia"; - fsType = "xfs"; + device = "/dev/vg-data-slow/multimedia"; + fsType = "ext4"; options = [ "noatime" ]; }; diff --git a/hosts/nas/modules/disk-monitoring.nix b/hosts/nas/modules/disk-monitoring.nix index 9316941..2862f44 100644 --- a/hosts/nas/modules/disk-monitoring.nix +++ b/hosts/nas/modules/disk-monitoring.nix @@ -9,6 +9,10 @@ let disks = [ "/dev/disk/by-id/ata-ST18000NM000J-2TV103_ZR52TBSB" "/dev/disk/by-id/ata-ST18000NM000J-2TV103_ZR52V9QX" + "/dev/disk/by-id/ata-TOSHIBA_MG10ACA20TE_8582A01SF4MJ" + "/dev/disk/by-id/ata-TOSHIBA_MG10ACA20TE_75V2A0H3F4MJ" + "/dev/disk/by-id/nvme-KIOXIA-EXCERIA_PLUS_G3_SSD_7FJKS1MAZ0E7" + "/dev/disk/by-id/nvme-KIOXIA-EXCERIA_PLUS_G3_SSD_7FJKS1M9Z0E7" ]; textfileDir = "/var/lib/prometheus-node-exporter"; @@ -44,8 +48,8 @@ let device=$(readlink -f "$disk") short_name=$(basename "$device") - # Extract serial from disk ID for labels - serial=$(basename "$disk" | sed 's/ata-ST18000NM000J-2TV103_//') + # Extract serial from disk ID for labels (part after last underscore) + serial=$(basename "$disk" | sed 's/.*_//') # Check power state without waking disk power_state=$(${pkgs.hdparm}/bin/hdparm -C "$device" 2>/dev/null | grep -oP '(standby|active/idle|active|idle)' | head -1 || echo "unknown") diff --git a/hosts/nas/modules/power-management.nix b/hosts/nas/modules/power-management.nix index 1d0b338..2138963 100644 --- a/hosts/nas/modules/power-management.nix +++ b/hosts/nas/modules/power-management.nix @@ -15,5 +15,10 @@ ACTION=="add", KERNEL=="sd[a-z]", SUBSYSTEM=="block", \ ATTRS{model}=="ST18000NM000J*", \ RUN+="${pkgs.hdparm}/bin/hdparm -B 127 -S 180 /dev/%k" + + # Toshiba 20TB NAS drives - same settings + ACTION=="add", KERNEL=="sd[a-z]", SUBSYSTEM=="block", \ + ATTRS{model}=="TOSHIBA MG10ACA20TE*", \ + RUN+="${pkgs.hdparm}/bin/hdparm -B 127 -S 180 /dev/%k" ''; }