Letakkan HDD dalam keadaan siaga setelah X menit menggunakan hdparm tidak berfungsi

11

Saya menggunakan Ubuntu 12.04 di server rumah. Ada 5 hard drive: satu SSD dengan OS dan 4 HDD (Samsung HD204UI) yang dikonfigurasi sebagai RAID5 menggunakan mdadm.

Saya tidak terlalu membutuhkan RAID (katakanlah, rata-rata sekitar sekali sehari); itu berisi data multimedia dan beberapa cadangan, jadi saya memutuskan untuk meletakkan drive ke standby sebagian besar waktu.

Saya mengkonfigurasi drive untuk secara otomatis spin-down setelah 20 menit menggunakan hdparm, di sini /dev/sdasebagai contoh:

hdparm -S 240 /dev/sda

Output dari perintah mengkonfirmasi ini:

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

Tetapi masalahnya adalah bahwa drive berputar setelah sekitar 5 detik (bukan 20 menit) setelah akses terakhir, dan

hdparm -C /dev/sdb

menampilkan:

/dev/sdb:
 drive state is:  standby

Mengapa drive tidak menunggu 20 menit saat dikonfigurasi? Apakah ada hubungannya dengan pengaturan RAID? (Kurasa tidak ...)

Waktu tunggu yang sangat singkat ini bermasalah karena ini adalah RAID5 dan ketika saya mengakses file, itu tersebar secara bijaksana di keempat drive. Karena drive 1 tidak diperlukan saat drive 2 dibaca, drive akan tertidur ketika akan digunakan lain kali (setelah drive 3 dibaca dari). Jadi drive terus berputar naik dan turun sepanjang waktu sehingga menghasilkan throughput mendekati nol.

Untuk orang-orang yang khawatir tentang kehidupan drive saya: Tidak akan ada masalah bahwa drive diputar ke atas dan ke bawah rata-rata sekali sehari karena saya lebih suka menghemat energi dan panas daripada kesehatan drive (saya menggunakan RAID5 dan isinya tidak sangat penting).

tema
sumber
2
Senang Anda mendapat jawaban Anda di sini. Malu ServerFault guys sangat pemilih. Saya akan berpikir bahwa teknik penghematan energi akan sangat penting dalam skenario perusahaan yang berpikiran maju. Sebaliknya mereka akan ketinggalan.
Tomfanning
1
@ Tomfanning Yah, saya berasumsi bahwa ServerFault adalah untuk server skala besar seperti di pusat data saja. Tapi saya tidak tahu, dan saya berharap bahwa server rumah juga dianggap sebagai server. Nah, jika tidak, saya harus meletakkan server saya di kebun saya, jadi tidak ada lagi di rumah saya. Apa yang saya benar-benar tidak mengerti, adalah mengapa mereka tidak menghidupi saya dengan apa yang saya inginkan dan hanya menjawab pertanyaan jika mereka memiliki jawaban yang konstruktif untuk pertanyaan saya tetapi sebaliknya ingin saya membiarkannya menjadi apa yang ingin saya lakukan. [untuk orang lain yang tidak tahu apa yang sedang kita bicarakan: serverfault.com/q/389222/116951]
leemes

Jawaban:

11

Apakah AHCI diaktifkan di BIOS Anda? Jika tidak coba nyalakan dan coba lagi.

Jika itu masih tidak berhasil, maka Anda mungkin harus mencoba sesuatu yang sedikit lebih rumit, karena hdparmtidak selalu bermain dengan baik dengan drive SATA, yang saya kira Anda miliki.

Lihatlah halaman ini untuk solusi relatif sederhana berikut yang menggunakan crontab:

sudo apt-get install sg3-utils
crontab -e

Sekarang, tambahkan ini ke bagian bawah crontab Anda (ganti sdx dengan drive yang ingin Anda simpan di standby):

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

Tentu saja, sebelum mencoba semua ini, sangat disarankan untuk melakukan pencadangan penuh atas isi hard drive Anda.

TuanCharlo
sumber
Bekerja seperti pesona. Saya mengaktifkan AHCI di BIOS. Mode SATA diatur ke RAID (motherboard saya memiliki kontroler RAID on board yang tidak saya gunakan). Saya tidak tahu bahwa AHCI diperlukan untuk kontrol SMART yang tepat dari drive SATA atau apa pun yang dilakukan hdparm di sini. Terima kasih!
Tema
Sir @ SirCharlo, apa perintah dasar untuk membuat hdd dalam mode siaga (menggunakan itu sg3-utils)? Apakah itu /usr/bin/sg_start --stop /dev/sdx?
Oki Erie Rinaldi
1

Mungkin cara yang lebih baik adalah:

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

HDParm pertama menempatkan perangkat segera siaga. Yang kedua mematikan APM, sehingga disk tetap dalam mode siaga hingga akses disk berikutnya.

tikar
sumber
Saran yang bagus, meskipun harus dinyatakan bahwa perintah ini harus digunakan dengan skrip yang menentukan waktu tindakan.
Rucent88