Przełącz dyski twarde w tryb gotowości po X minutach za pomocą hdparm nie działa


12

Używam Ubuntu 12.04 na serwerze domowym. Istnieje 5 dysków twardych: jeden dysk SSD z systemem operacyjnym i 4 dyski twarde (Samsung HD204UI) skonfigurowane jako RAID5 za pomocą mdadm.

Nie potrzebuję RAID bardzo często (powiedzmy, że średnio raz dziennie); zawiera dane multimedialne i kopie zapasowe, więc postanowiłem przełączyć dyski w tryb gotowości przez większość czasu.

Skonfigurowałem dyski, aby automatycznie wyłączały się po 20 minutach za pomocą hdparm, tutaj /dev/sdajako przykład:

hdparm -S 240 /dev/sda

Dane wyjściowe polecenia potwierdziły to:

/dev/sdb:
 setting standby to 240 (20 minutes)

Problem polega jednak na tym, że dysk obraca się po około 5 sekundach (zamiast 20 minutach) po ostatnim dostępie i

hdparm -C /dev/sdb

wyświetla:

/dev/sdb:
 drive state is:  standby

Dlaczego dysk nie czeka tak skonfigurowanych 20 minut? Czy ma to coś wspólnego z konfiguracją RAID? (Nie wydaje mi się ...)

Ten bardzo krótki limit czasu jest problematyczny, ponieważ jest to RAID5, a kiedy uzyskuję dostęp do pliku, rozkłada się on blokowo wokół czterech dysków. Ponieważ dysk 1 nie jest potrzebny podczas odczytu dysku 2, zasnął, kiedy będzie używany następnym razem (po odczytaniu dysku 3). Tak więc dyski cały czas obracają się w górę i w dół, co powoduje przepustowość prawie zerową.

Dla osób, które martwią się życiem moich dysków: Nie będzie problemu, że dyski są obracane średnio raz dziennie w górę i w dół, ponieważ wolę oszczędzać energię i ciepło niż zdrowie dysków (używam RAID5, a zawartość nie jest to bardzo ważne).


3
Cieszę się, że dostałeś swoją odpowiedź tutaj. Szkoda, że ​​ludzie z ServerFault byli tak wybredni. Myślałem, że techniki oszczędzania energii będą bardzo ważne w każdym przyszłościowym scenariuszu korporacyjnym. Zamiast tego przegapią.
tomfanning

1
@tomfanning Cóż, zakładam, że ServerFault dotyczy serwerów na dużą skalę, jak tylko w centrum danych. Ale nie wiedziałem i spodziewałem się, że serwer domowy również liczy się jako serwer. Cóż, jeśli nie, powinienem umieścić serwer w moim ogrodzie, więc nie będzie go już w moim domu. To, czego tak naprawdę nie rozumiem, to to, dlaczego po prostu nie żyją mną tym, czego chcę, i odpowiadają tylko na to pytanie, jeśli mają konstruktywne odpowiedzi na moje pytanie, ale zamiast tego chcą, żebym pozwolił sobie na to, co chcę. [dla innych ludzi, którzy nie wiedzą o czym mówimy: serverfault.com/q/389222/116951]
leem

Odpowiedzi:


11

Czy AHCI jest włączone w twoim BIOS-ie? Jeśli nie, spróbuj go włączyć i spróbuj ponownie.

Jeśli to nadal nie działa, być może będziesz musiał spróbować czegoś bardziej skomplikowanego, ponieważ hdparmnie zawsze gra się dobrze z dyskami SATA, co, jak przypuszczam, masz.

Sprawdź tę stronę, aby zapoznać się z następującym stosunkowo prostym rozwiązaniem wykorzystującym crontab:

sudo apt-get install sg3-utils
crontab -e

Teraz dodaj to do dolnej części swojego crontab (zamień sdx na dysk, który chcesz przełączyć w tryb gotowości):

0-59/15 * * * * ( if [ ! -f /dev/shm/1 ] ; then touch /dev/shm/1 /dev/shm/2; fi ; mv /dev/shm/1 /dev/shm/2; cat /proc/diskstats > /dev/shm/1 ) >/dev/null 2>&1
0-59/15 * * * * ( export HD="sdx "; if [ "$(diff /dev/shm/1 /dev/shm/2 | grep $HD )" =  "" ] ; then /usr/bin/sg_start --stop /dev/$HD; fi ) >/dev/null 2>&1

Oczywiście przed przystąpieniem do tych czynności zaleca się wykonanie pełnej kopii zapasowej zawartości dysków twardych.


Działa jak urok. Włączyłem AHCI w BIOS-ie. Tryb SATA został ustawiony na RAID (moja płyta główna ma kontroler RAID na pokładzie, którego nie używam). Nie wiedziałem, że AHCI jest potrzebne do właściwego sterowania SMART napędami SATA lub czymkolwiek, co robi tutaj hdparm. Dzięki!
leemes

Sir @ SirCharlo, jakie jest podstawowe polecenie, aby ustawić dysk twardy w trybie gotowości (używając tego sg3-utils)? Czy to /usr/bin/sg_start --stop /dev/sdxjest
Oki Erie Rinaldi

1

Może lepszym sposobem może być:

hdparm -B 1 -Y / dev / device
hdparm -B 255 / dev / device

Pierwszy hdparm natychmiast przełączył urządzenie w tryb gotowości. Drugi wyłącza APM, więc dysk pozostaje w trybie gotowości do następnego dostępu do dysku.


Dobra sugestia, choć należy stwierdzić, że tych poleceń należy używać ze skryptem, który mierzy czas akcji.
Rucent88,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.