Hdparm kullanarak X dakika çalışmadığında HDD'leri beklemeye alın


12

Ev sunucusunda Ubuntu 12.04 kullanıyorum. 5 sabit sürücü vardır: işletim sistemi olan bir SSD ve mdadm kullanılarak RAID5 olarak yapılandırılmış 4 HDD (Samsung HD204UI).

RAID'e çok sık ihtiyacım yok (ortalama günde yaklaşık bir kez); multimedya verileri ve bazı yedeklemeler içeriyor, bu yüzden sürücüleri çoğu zaman beklemeye almaya karar verdim.

Sürücüleri, burada /dev/sdaörnek olarak hdparm kullanarak 20 dakika sonra otomatik olarak dönecek şekilde yapılandırdım :

hdparm -S 240 /dev/sda

Komutun çıktısı bunu doğruladı:

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

Ancak sorun, sürücünün son erişimden yaklaşık 5 saniye sonra (20 dakika yerine) dönmesi ve

hdparm -C /dev/sdb

görüntüler:

/dev/sdb:
 drive state is:  standby

Sürücü neden yapılandırıldığı gibi 20 dakikayı beklemiyor? RAID kurulumuyla bir ilgisi var mı? (Sanmıyorum ...)

Bu çok kısa zaman aşımı sorunludur, çünkü bir RAID5'dir ve bir dosyaya eriştiğimde, dört sürücünün etrafına blok şeklinde yayılır. Sürücü 2 okunduğunda sürücü 1 gerekli olmadığından, bir sonraki sefer ne zaman kullanılacağına (sürücü 3 okunduktan sonra) uykuya daldı. Böylece, sürücüler sürekli olarak yukarı ve aşağı dönmeye devam eder ve bu da sıfıra yakın bir verim sağlar.

Sürücülerimin ömrü hakkında endişe duyan insanlar için: Sürücülerin sağlığına göre enerji ve ısı tasarrufu yapmayı tercih ettiğim için sürücülerin günde ortalama bir kez yukarı ve aşağı döndürülmesi sorun olmayacak (RAID5 kullanıyorum ve içerik değil çok önemli değil).


3
Cevabını buraya getirmene sevindim. Utanç ServerFault çocuklar çok seçici idi. Enerji tasarrufu tekniklerinin ileri görüşlü herhangi bir kurumsal senaryoda oldukça önemli olacağını düşünürdüm. Bunun yerine kaçırırlar.
tomfanning

1
@tomfanning Eh, ServerFault sadece bir veri merkezinde olduğu gibi büyük ölçekli sunucular için olduğunu varsayalım. Ama bilmiyordum ve bir ev sunucusunun da sunucu olarak sayılmasını bekliyordum. Değilse, sunucumu bahçeme koymalıyım, bu yüzden artık evimde değil. Gerçekten anlamadığım şey, neden sadece istediğimle yaşamıyorlar ve sadece soruma yapıcı cevapları varsa soruyu cevaplıyorlar, bunun yerine yapmak istediğim şey olmasına izin vermemi istiyorlar. [ne hakkında konuştuğumuzu bilmeyen diğer insanlar için: serverfault.com/q/389222/116951]
leemes

Yanıtlar:


11

AHCI BIOS'unuzda etkin mi? Değilse açmayı ve tekrar denemeyi deneyin.

Bu hala işe yaramazsa, hdparmSATA diskleriyle her zaman güzel oynamadığı için biraz daha karmaşık bir şey denemeniz gerekebilir;

Crontab kullanan aşağıdaki nispeten basit çözüm için bu sayfaya göz atın :

sudo apt-get install sg3-utils
crontab -e

Şimdi bunu crontab'ınızın altına ekleyin (sdx'i bekleme moduna almak istediğiniz sürücüyle değiştirin):

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

Elbette, bunlardan herhangi birini denemeden önce , sabit sürücülerinizin içeriğinin tam bir yedeğini almanız şiddetle tavsiye edilir .


Bir cazibe gibi çalıştı. AHCI'yi BIOS'ta etkinleştirdim. SATA modu RAID olarak ayarlandı (anakartımda kullanmadığım bir RAID denetleyicisi var). AHCI'nin SATA sürücülerinin SMART kontrolünün veya hdparm'ın burada ne yaptığını kontrol etmesi için gerekli olduğunu bilmiyordum. Teşekkürler!
leemes

Sir @ SirCharlo, bekleme modunda hdd yapmak için temel komut nedir (bunu kullanarak sg3-utils)? Öyle mi /usr/bin/sg_start --stop /dev/sdx?
Oki Erie Rinaldi

1

Belki daha iyi bir yol olabilir:

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

İlk hdparm cihazı hemen beklemeye aldı. İkincisi APM'yi kapatır, böylece disk bir sonraki disk erişimine kadar bekleme modunda kalır.


İyi bir öneri, ancak bu komutların eylemleri zamanlayan bir komut dosyası ile kullanılması gerektiği belirtilmelidir.
Rucent88
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.