Hallo Leute!

Ich habe mir einen kleinen Homeserver eingerichtet, auf dem ich zahlreiche Serverapplikationen laufen hab (nginx, php, mysql,teamspeak, ftp, samba, ....). Aus Performancegründen läuft das System auf einer SSD (/dev/sda). Nebenbei benutze ich den Rechner als Datengrab / Archiv, indem ich zwei klassische Festplatten à 5TB angeschlossen habe (/dev/sdb und /dev/sdc). Diese sind im RAID-1 miteinander verbunden, um die Ausfallsicherheit zu erhöhen. Auf das Archiv greife ich lediglich selten (etwa alle 5-10 Tage ein mal) zu. Ich würde die Platten gerne bedarfsgerecht mounten, und in der Zwischenzeit sollen sie aus Stromspargründen und Gründen der Abnutzung gerne schlafen.

Konfiguration:

Code:
admin@homeserver:/$ df
Filesystem      1K-blocks       Used  Available Use% Mounted on
[...]
/dev/vg1000/lv 4683780588 2427901136 2255879452  52% /Archive

admin@homeserver:/$ cat /proc/mdstat
Personalities : [linear] [raid0] [raid1] [raid10] [raid6] [raid5] [raid4]
md1 : active raid1 sdb1[2] sdc1[1]
      4878939456 blocks super 1.2 [2/2] [UU]
[...]
unused devices: <none>

admin@homeserver:/$ sudo mdadm --misc --detail /dev/md0
/dev/md0:
        Version : 1.2
  Creation Time : Sun Mar 22 13:52:22 2020
     Raid Level : raid1
     Array Size : 4878939456 (4652.92 GiB 4996.03 GB)
  Used Dev Size : 4878939456 (4652.92 GiB 4996.03 GB)
   Raid Devices : 2
  Total Devices : 2
    Persistence : Superblock is persistent

    Update Time : Sat Jun  6 12:34:20 2020
          State : clean
 Active Devices : 2
Working Devices : 2
 Failed Devices : 0
  Spare Devices : 0

    Number   Major   Minor   RaidDevice State
       2       8       21        0      active sync   /dev/sdb1
       1       8       37        1      active sync   /dev/sdc1
Leider ist es so, dass über die klassische Stromsparroutine (hdparm -S) die Platten niemals einschlafen, und bei forciertem Standby (hdparm -Y) sofort wieder erwachen. Ich habe viel Debugging betrieben um zu schauen, welche Applikation die Platten immer wieder aufwachen lässt, doch ist es bei der Fülle der Progamme (und deren zahlreiche IO-Operations) ein Kampf gegen Windmühlen. Zudem: bei Neuinstallation von Software würde man wieder am Anfang stehen.

Ich bin ziemlich schnell zur Erkenntnis gekommen, dass man die Platten nur sicher bei laufendem System über einen längeren Zeitraum in den Standby schicken kann, indem man sie un-mounted und für den Kernel unsichtbar macht.

Code:
admin@homeserver:/$ sudo umount /Archive   # Unmount filesystem on the disk.
admin@homeserver:/$ sudo vgchange -an      # Deactivate any LVM groups.
  0 logical volume(s) in volume group "vg1000" now active
admin@homeserver:/$ sudo hdparm -Y /dev/sdb
admin@homeserver:/$ sudo hdparm -Y /dev/sdc
Sogar nach diesen Schritten ist es so, dass die beiden HDDs sofort nach dem Schlafenlegen wieder aufwachen. Deshalb habe ich sie mit den folgenden Befehlen unregistered...

Code:
admin@homeserver:/$ sudo echo 1 > /sys/block/sdb/device/delete
admin@homeserver:/$ sudo echo 1 > /sys/block/sdc/device/delete
Die Platten fahren runter, die /dev/ Einträge sind nicht mehr verfügbar und kein Programm kann die Platten wieder erwecken, bis man sie mit echo 0 - 0 > /sys/class/scsi_host/hostX/scan wieder einbindet. Problem: nachdem man das RAID-1 wieder aktiviert erscheint das Array nun als degraded und muss neu syncronisiert werden. Insgesamt also keine gute Lösung.

Fragen:
- Gibt es eine elegantere Lösung, die Platten längerfristig schlafen zu legen, ohne das RAID-1 Array zu desyncronisieren?
- Gibt es alternative Möglichkeiten, den Zugriff auf die Platten zu blockieren, sodass sie schlafen?

Falls weitere Informationen benötigt werden, kann ich diese gerne nachreichen!