
Ubuntu日本語フォーラム

ログインしていません。
皆さんこんにちは。
ハード構成等は・・・
バージョン : Ubuntu 16.04 LTS
PC : ASRock N3150-ITX
RAID に使用している HDD :
sdb が WDC WD30EZRX-00D8PB0
sdc が ST3000DM008-2DM166
となります。
現在 HDD 2台(sdb、sdc)を mdadm にて RAID1 で構成し、
5分でスピンダウンする設定にしています。
(OS をインストールした sda は RAID ではありません。)
通常時は問題無いのですが、動画再生時にプチフリ(再生が一時中断される)する現象に悩んでいます。
私の方で、確認したことですが、
sudo watch hdparm -C /dev/sd[bc]
で HDD を監視していたところ・・・
・再生前は、sdb、adc ともに standby
・再生開始(ファイル選択)で、少し待たされて sdb、adc ともに standby -> idel
・5分で sdc は standby、sdb は idle のまま
・プチフリ発生時、sdc が standby -> idle に変化
ここまでで私が推測したことは・・・
・読み込み時は adb しか使用されていないようだ。raid1 構成なので当然なのか?
・sdc が standby -> idle になるとき、書き込みが発生している?
もしくは mdadm の仕様?
ということですが、
”動画をまともに再生できない RAID とか普通に使えてないな・・・
RAID 構成した HDD をスピンダウンするのは御法度なのか?”
という疑問がわきました。
それとも、何か設定を変更すれば回避できるのでしょうか?
以上ですが、対策、アドバイス等ご教授願えればと思います。
よろしくお願いいたします。
オフライン
進展と言いますか、自己解決かも?な状態となりましたので、ご報告させていただきます。
結果から申し上げますと・・・
・プチフリは直ったようだ。
・質問で説明していない部分に問題があるのかも?
(関係ないと思い詳細を省かせて頂きましたが、それが問題なのかもしれません)
です。一応、長文ですが今まで自分をしたことを整理してみましたので、詳細を書き込ませて頂きます。
** 投稿前に遡る・・・ **
(1) RAID が組めたので、アクセスがないときはスピンダウンしようと考え、hdparm を使うこととした。
一応、-y オプションで強制停止した場合、sdb はスピンダウンしたので、問題ないと考えた。
(2) /etc/hdparm.conf へスピンダウンの設定を書き込んだ。
(抜粋ですがこんな感じです)
/dev/sdb {
spindown_time = 300
}
/dev/sdc {
spindown_time = 300
}
(3) リブート後、sdb はスピンダウンしたが、sdb がスピンダウンしなかった。
(4) ?と思い。コマンド hdparm -S 60 /dev/sdb でスピンダウンを設定したが、
sdb はスピンダウンしなかった。(sdc はコマンドでもスピンダウンを確認)
(5) sdb が WD 製なので intellipark が問題と考え、idle3ctl で無効化してみたが、
スピンダウンしなかったので intellipark は無関係な様であった。
(ちなみに、intellipark の設定は無効のままとした)
(6) いろいろ調べていると、hd-idle を使うと良いとあったので、試したところ sdb のスピンダウンに成功した。
(7) hd-idle をシェルスクリプトで起動時に実行する様にした。
(抜粋ですがこんな感じです)
echo "$PASS" | sudo -S /usr/local/bin/hd-idle -i 0 -a sdb -i 300
(8) リブートしてみると、2台の HDD が 5分でスピンダウンするのを確認した。
(9) 使っているうちに、動画のプチフリに気がついた。
(ちなみに、使用しているプレーヤは VLC です)
** この段階でこの質問を投稿させて頂きました **
** ここからが、投稿後です・・・ **
(10) いろいろやって、再起動を繰り返していたところ、いままでスピンダウンしていた sdc がスピンダウンしなくなった。
(11) コマンドで sudo hdparm -S 1 /dev/sdc を設定したところ、5s 後にスピンダウンしたので、hdparm は動作する様であった。
(12) /etc/hdparm.conf の設定がそのままであることに気がついた。
sdb は hd-idle でスピンダウンしているが、/etc/hdparm.conf の設定も残っていた。
(13) /etc/hdparm.conf から sdb の設定をコメントアウトしてリブートしたが、依然として sdc はスピンダウンしなかった。
(14) コマンドで hdparm -S する分には動く様なので、
hd-idle を自動起動しているシェルスクリプトへ hdparm -S のコマンドも一緒に書き込んだ。
また、/etc/hdparm.conf の設定も削除した。
(抜粋ですがこんな感じです)
echo "$PASS" | sudo -S /usr/local/bin/hd-idle -i 0 -a sdb -i 300
echo "$PASS" | sudo -S hdparm -S 60 /dev/sdc
(15) 再起動すると、sdb、sdc ともにスピンダウンすることを確認した。
(16) 動画を見てみるがプチフリは発生しない様であった。
** 現在ここです **
結果として・・・
・ 以前同様 再生中 sdb は idel、sdc は standby となるが、
raid へ書き込みを発生させ sdc を standby -> idele へ移行させても
動画のプチフリは起こらなくなりました。
で、結局何がいけなかったのか?
・hdparm で sdb がスピンダウンできないのには別な理由があるのに、hd-idle を使用したのがそもそもの間違い?
・/etc/hdparm.conf での設定と hd-idle の相性が悪い?
・ならば、hd-idle だけ使うべきなのだろうか?
・でも、hdparm コマンドは正常な様なので、hdparm と hd-idle の起動順が問題なのかも?
・というか、シェルスクリプトで起動時の処理を書いてもいいものなのだろうか?
・VLC のキャッシュが効いてるだけなのかも?
などなど、疑問だらけであり釈然としませんが、再起動しても問題ないようですので様子を見てみますが、
なにか気がつくところがございましたら、よろしくお願いできればと思います。
オフライン
自分しか返信してませんが、せっかくですので近況報告です。
自己解決? そんなことありませんでした。
だめでした・・・動画見ていたらプチフリしました・・・もうわけわかんないです。
そもそも、raid1 が書き込み動作のために両方のHDDが必要なので、
standby -> idle へ移行する動作は納得いきます。
しかし、キャッシュなりして読み込み動作は継続してほしいと思うのですが、
mdadm にそれを求めるのは酷というモノなのでしょうか?
考えようによっては、”キャッシュしたら万が一の時に整合性がとれないだろう?”
といわれればそういう感じもしますし・・・
というわけで、hd-idle のみ使用する設定にしましたが、どうなることか?
もしそれがダメなら・・・
・スピンダウンの時間を映画より長い時間、例えば 120 分以上にするとか?
・スピンダウンを諦めるか、プチフリを我慢ですね。
後者は負けな気がしますのでしたくありません。
何かアドバイス等ございませんでしょうか?
よろしくお願いいたします。
オフライン