Wuwejův zápisník

Domácí server HP Proliant Gen8 - uspávání disků

24.02.2017 23:03, Wu | počítače | komentáře -

Jistě je diskutabilní snažit se disky uspávat, když jsou to WD Red, které by měly být na nepřetržitý provoz stavěné, rozdíl spotřeby je malý a roztáčení disků je práve ta chvíle, kdy může dojít k poruchám. Mně je ale proti mysli nechávat je každý den nějakých 12 hodin točit zbytečně, protože z nich nikdo nic nepřečte, a tak jsem k uspávání přistoupil. Ostatně MyBook World to dělal také.

Z poměrně triviálního úkolu se ale vyklubalo netriviální pátrání.

Uspávání pomocí hdparm

K uspávání se používá program hdparm. Tedy nejen k tomu, je to mocný nástroj, například výpis všemožných informací o disku získáte voláním (zdroj informací)

hdparm -i /dev/sda

Nás ale zajímá to uspávání. K tomu slouží parametr -S, následovaný číslem. Hodnoty znamenají pokaždé něco jiného, přečtěte si jejich výpis.

Rozhodl jsem se to nejprve vyzkoušet a nastavit jim 5 sec:

hdparm -S 1 /dev/sdc
hdparm -S 1 /dev/sde

Zapnul jsem si sledování stavu:

watch hdparm -C /dev/sdc
watch hdparm -C /dev/sde

A čekal, až usnou. 5 sec, 10 sec, 30 sec, minuta… já už usínám, disky ale ani náhodou. Začal jsem tedy hledat, co to znamená, jedna stopa mluvila o chybějícím APM v RED discích (tady a tady).

Také jsem narazil na povídání o timeoutu pro přechod do IDLE režimu a teprve potom o timeoutu pro standby, zkrátka zmatek. A pak najednou koukám, ty dva, co jsem jim dal 5 sec, usnuly. Asi po 10 minutách. Vyvozuji z toho, že přešly do IDLE a pak za 5 sec i do standby, takže to možná funguje?
(Podle téhle diskuze se zdá být idle přednastavené na 300 sec.)

Pátrání po skutečném chování disků

Spokojeně jsem všem čtyřem diskům nastavil 3 hodiny:

hdparm -S 246 /dev/sda
hdparm -S 246 /dev/sdb
hdparm -S 246 /dev/sdc
hdparm -S 246 /dev/sde

Do cronu si dal po 15 minutách výpis:

hdparm -C /dev/sda /dev/sdb /dev/sdc /dev/sde

A ráno se uvidí, kdy vlastně usnuly… Bylo 23.20, kdy jsem pomocí touch na obou polích udělal poslední přístup.

Po 10 minutách, ve 23.30:

/dev/sda:
drive state is: active/idle
/dev/sdb:
drive state is: active/idle
/dev/sdc:
drive state is: active/idle
/dev/sde:
drive state is: active/idle

Po 3 hodinách a 10 minutách, ve 2.30:

/dev/sda:
drive state is: standby
/dev/sdb:
drive state is: standby
/dev/sdc:
drive state is: standby
/dev/sde:
drive state is: active/idle

Všechny tři nové červené disky spí, zatímco starý green na nastavení kašle… Ach jo. Zkouším tedy dvě hodiny, sledování – a zase ne. To už bylo podezřelé. A pak jsem našel fascinující článek, že některé zelené nefungují (!).

Neuvěřitelné. Takže do cronu výpis po dvou minutách a zkoušet jednotlivé hodnoty.

časčervený zazelený za
15 sec (kód 3)10 mincca 20 min
5 min (kód 60)10 min20 min
10 min (kód 120)10 min20 min
20 min (kód 240)20 min20 min
30 min (kód 241)30 minani za 50 min
3 hod (kód 246)3 hodani za 6 hod

Červený (Model Number: WDC WD10EFRX-68FYTN0) tedy ne méně než 10 minut, ale pak funguje podle přání, zatímco zelený (Model Number: WDC WD10EADS-11M2B2) na cokoliv pod 20 minut usne za 20 minut a na cokoliv nad 20 minut neusne nikdy.

Dobrá tedy, jedno pole bude usínat po 3 hodinách, to druhé s green diskem po 20 minutách. Nastavil jsem, pak ještě laboroval se serverem, jednou ho restartoval… A druhý den koukám na logovací mail, že disky zase nespí. Ani jeden.
Nastavení totiž není perzistentní (jak potvrzuje tento a tento odkaz)!

Hurá, naučím se i dělat služby system.d.

Uspávání jako služba pro system.d

Nejprve tedy uděláme skript pro nastavení disků:

#!/bin/bash

# nastaveni uspavani prvniho pole - 3 hodiny
/sbin/hdparm -S 246 /dev/sda
/sbin/hdparm -S 246 /dev/sdb

# nastaveni uspavani druheho pole - 20 min
# (green disk /dev/sdc cokoliv vyssiho ignoruje a nespi vubec)
/sbin/hdparm -S 240 /dev/sdc
/sbin/hdparm -S 240 /dev/sde

Pak soubor s definicí služby: vi /etc/systemd/system/disk_suspend_settings.service

[Unit]
After=network.target

[Service]
ExecStart=/root/system/setup_disks.sh

[Install]
WantedBy=default.target

Souboru změníme práva

chmod 664 /etc/systemd/system/disk_suspend_settings.service

Znovu evokujeme démona služeb:

systemctl daemon-reload

A naši novou službu zapneme:

systemctl enable disk_suspend_settings

Výpis to potvrdí:

Created symlink from /etc/systemd/system/default.target.wants/disk_suspend_settings.service to /etc/systemd/system/disk_suspend_settings.service.

A teď už konečně opravdu disky uspáváme. I po restartu.

Zdroj informací: How to automatically execute shell script at startup boot on systemd Linux.

12345
1487973780000

Kategorie

Informace

Kontakt

Sledujte také

Archiv

STRÁNKY ARCHIVOVÁNY NÁRODNÍ KNIHOVNOU ČR

CBDB.cz – Databáze knih a spisovatelů, knihy online