Pomoc Poradnik: Dlaczego usypianie dysków nie działa

hehenblad

Nowy użytkownik
Noobie
1 Marzec 2025
1
0
3
29
QNAP
TS_x33
Ethernet
1 GbE
O tym, że system QNAPa uważam za nieporozumienie pisałem już w innych wątkach. Tutaj skupię się na konkretach.

Usypianie w produktach QNAP nie działa: dyski albo nigdy nie przechodzą w tryb uśpienia, albo co chwila są wybudzane. Ma to fatalne efekty zarówno pod kątem poboru energii przez nieużywany serwer jak i pod kątem żywotności zamontowanych dysków (częste rozkręcanie serwerowych HDD spowoduje szybką awarię).
Dzieje się tak z prostego powodu: QNAP zaoszczędził na osobnym MMC pod system i wykorzystuje w tym celu dyski użytkownika.
Przy instalacji, na wszystkich włożonych dyskach, tworzone są partycje: md9 (ext3, punkt montowania /mnt/HDA_ROOT) oraz md13 (ext4, punkt montowania /mnt/ext).
Bez względu na dalsze ustawienia użytkownika, partycje te są spięte w RAID1 i trafiają na wszystkie włożone dyski (sprawdź u siebie cat /proc/mdstat).
Używając blkdevMonitor.sh dowiesz się o częstej aktywności jbd2 oraz md9_raid1, co nadal niewiele mówi.
Na md9, dokładnie w /mnt/HDA_ROOT/.logs, trafiają logi systemu, a trafiają tam co chwila...

Co robić?
Po pierwsze to naciski na firmę QNAP, żeby problem rozwiązali.
Problem wadliwego usypiania jest znany od lat, a QNAP (i nie tylko) ignoruje w tym zakresie użytkowników.

Co robić doraźnie?
Po pierwsze
zobacz co i gdzie jest zapisywane na twoim urządzeniu:
Kod:
inotifywait -mr /mnt/HDA_ROOT | grep MODIFY
Musisz mieć jednak świadomość, że również odczyt lub sam dostęp może wybudzić dyski.

Po drugie, spróbuj ubić procesy, które powodują szczególne problemy (np. rsyslogd):
Kod:
killall rsyslogd

Trzecie; Aktywne są różne procesy, które często zapisują logi. Nie da się ich wszystkich wyłączyć.
Częściowym remedium jest przeniesienie całego folderu .logs do RAM. Można albo samodzielnie zamontować folder jako tmpfs lub zlinkować do do /tmp.
W wyniku tego logi przestaną być dostępne po przeładowaniu systemu, ale ich zapis nie będzie wybudzał dysków.

Utwórz plik startup.sh zgodnie z Running Your Own Application at Startup. Tworzenie pliku musisz robić z konta root. Pamiętaj, by zaznaczyć w QTS by uruchamiał skrypt startup.sh.
Przykładowy skrypt:
Kod:
#!/bin/sh
sleep 60
killall rsyslogd

if [ ! -L /mnt/HDA_ROOT/.logs ]; then
  mv /mnt/HDA_ROOT/.logs /mnt/HDA_ROOT/.logs.bak
  mkdir -p /tmp/quietlogs
  ln -s /tmp/quietlogs /mnt/HDA_ROOT/.logs
fi

echo "$(date)" > /mnt/HDA_ROOT/.logs/info
Skrypt po uruchomieniu odczeka 60 sekund by wszystko się załadowało, następnie ubije proces rsyslogd. Dalej: sprawdzi czy /mnt/HDA_ROOT/.logs jest fizycznym folderem czy linkiem. Jeśli nie jest linkiem, zlinkuje go do /tmp/quietlogs. Na koniec utworzy plik info z aktualnym czasem by mieć potwierdzenie, że skrypt działa.

Powyższe to jak narazie najlepsze znane mi remedium.
Nie spowoduje jednak, że dyski bedą uspane cały czas. Działający z dysków system i procesy na nim zwyczajnie nie pozwalają by dyski faktycznie były uspane przez długi czas.

Na koniec- To nie tylko QNAP
Takie działanie nie jest domeną tylko QNAPa. S, Asustor, TerraMaster nie są pod tym kątem lepsze. Większość modeli również wykorzystuje dysk użytkownika na swój system i dokładnie tak samo usypianie działać nie będzie. Niektóre modele dają możliwość wyboru miejsca instalacji lub rozłączenia z RAID1 i tylko wówczas rozwiązać problem. Osobiście mam nadzieję, że uGreen rozszerzy dystrybucję swoich NASów i dzięki temu pozostali będą mieli presję by nadgonić.

Dodatkowo
Uspanie dysku na żądanie:
Kod:
hdparm -y /dev/sda
 
A ja uważam że nie powinien to być problem a funkcja ta powinna być całkiem wycofana.

Dlaczego? A dlatego że duża część ludzi potrafi mapować udziały sieciowe w swoich Macach, Telewizorach i etc etc. Te wystarczy że się tylko przebudzą na chwilę i cyk… i cały mechanizm usypiania poszedł


Kolejny przykład:
Wystarczy że uruchomi się raid scrubbing

Kolejny przykład:
Indeksowanie mediow

Kolejny przykład:
Torrenty, kontenery, wirtualizacja np Home Assistant

I tych przykładów będzie tryliard…

moim zdaniem:
serwer + usypianie = nie idzie w parze

Ja jestem za wycofanie tej funkcjonalności i uważam że jak ktoś chce sobie usypiać serwer to niech zaplanuje wyłączenie i włączenie o danej godzinie. Cyk koniec
 
A ja uważam że nie powinien to być problem a funkcja ta powinna być całkiem wycofana.

Dlaczego? A dlatego że duża część ludzi potrafi mapować udziały sieciowe w swoich Macach, Telewizorach i etc etc. Te wystarczy że się tylko przebudzą na chwilę i cyk… i cały mechanizm usypiania poszedł


Kolejny przykład:
Wystarczy że uruchomi się raid scrubbing

Kolejny przykład:
Indeksowanie mediow

Kolejny przykład:
Torrenty, kontenery, wirtualizacja np Home Assistant

I tych przykładów będzie tryliard…

moim zdaniem:
serwer + usypianie = nie idzie w parze

Ja jestem za wycofanie tej funkcjonalności i uważam że jak ktoś chce sobie usypiać serwer to niech zaplanuje wyłączenie i włączenie o danej godzinie. Cyk koniec
I co 3 miechy nowy dysk.
Takie włacanie/wyłączanie to nic dobrego.
 
  • Lubię to
Reakcje: Silas Mariusz