hdparmを使用してX分後にHDDをスタンバイ状態にできない


11

私はホームサーバーでUbuntu 12.04を使用しています。5つのハードドライブがあります。1つはOSを搭載したSSD、4つはmdadmを使用してRAID5として構成されたHDD(Samsung HD204UI)です。

RAIDはあまり必要ありません(たとえば、平均で1日1回程度)。マルチメディアデータといくつかのバックアップが含まれているため、ほとんどの場合、ドライブをスタンバイ状態にすることにしました。

ここ/dev/sdaでは例として、hdparmを使用して20分後に自動的にスピンダウンするようにドライブを構成しました。

hdparm -S 240 /dev/sda

コマンドの出力はこれを確認しました:

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

しかし問題は、最後のアクセスから約5秒後(代わりに20分後)にドライブがスピンダウンすることです。

hdparm -C /dev/sdb

表示:

/dev/sdb:
 drive state is:  standby

ドライブが構成どおりに20分間待機しないのはなぜですか?RAIDセットアップと関係がありますか?(私はそうは思わない...)

この非常に短いタイムアウトはRAID5であり、ファイルにアクセスすると4つのドライブにブロック単位で分散されるため、問題があります。ドライブ1はドライブ2が読み取られるときに必要ないため、次回使用されるときに(ドライブ3が読み取られた後)スリープ状態になりました。そのため、ドライブは常に回転し続け、スループットはほぼゼロになります。

ドライブの寿命を気にしている人のために:私はドライブの正常性よりもエネルギーと熱の節約を好むので、ドライブが平均して1日に1回上下に回転することは問題ありません(私はRAID5を使用し、コンテンツはそれほど重要ではありません)。


2
ここで答えが出てうれしいです。恥ずかしいServerFaultの人たちはとてもうるさいです。エネルギーを節約する手法は、将来を見据えたエンタープライズシナリオでは非常に重要だと思っていました。代わりに彼らは見逃すでしょう。
tomfanning 2012年

1
@tomfanningまあ、私はServerFaultがデータセンターだけのような大規模サーバー用だと思います。しかし、私は知りませんでした。ホームサーバーもサーバーとしてカウントされることを期待していました。まあ、そうでなければ、私は私のサーバーを私の庭に置くべきなので、それはもう私の家にはありません。私が本当に理解していないのは、なぜ彼らは私が欲しいものを私と一緒に生きておらず、彼らが私の質問に対して建設的な答えを持っている場合にのみ質問に答えるが、代わりに私がそれを私がやりたいこととさせたい理由です。[私たちが話していることを知らない他の人のために:
serverfault.com/q/389222/116951

回答:


11

BIOSでAHCIが有効になっていますか?そうでない場合は、電源を入れて再試行してください。

それでもうまくいかない場合はhdparm、SATAドライブでうまく機能しないことがあるので、もう少し複雑な方法を試さなければならない可能性があります。

このページで、crontabを使用する次の比較的簡単な解決策を確認してください

sudo apt-get install sg3-utils
crontab -e

次に、これをcrontabの下部に追加します(sdxをスタンバイにするドライブに置き換えます)。

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

もちろん、これを試す前に、ハードドライブの内容の完全バックアップを実行すること強くお勧めします。


魅力のように働いた。BIOSでAHCIを有効にしました。SATAモードがRAIDに設定されました(私のマザーボードには、使用していないRAIDコントローラーが搭載されています)。SATAドライブの適切なSMART制御や、ここでhdparmが実行していることにはAHCIが必要であることを知りませんでした。ありがとう!
leemes

@SirCharlo様、hddをスタンバイモードにするための基本的なコマンドは何sg3-utilsですか?ですよ/usr/bin/sg_start --stop /dev/sdxね?
沖エリーリナルディ2017年

1

おそらくより良い方法は次のとおりです:

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

最初のhdparmはデバイスをすぐにスタンバイにします。2つ目はAPMをオフにするため、次のディスクアクセスまでディスクはスタンバイモードのままです。


良い提案ですが、これらのコマンドはアクションのタイミングをとるスクリプトで使用する必要があることを明記する必要があります。
Rucent88
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.