13個のSATAドライブが接続された新しくインストールされたDebian 6.0.6システム。 12個のリファブWD-10EARSドライブはまだパーティション化されていません。 OSおよびスワップ用に構成された1台のWD1500BLFSドライブ。 /etc/fstab に従って /dev/sda5 にスワップパーティションを設定します。
root@debian:~# cat /etc/fstab | grep swap
# swap was on /dev/sda5 during installation
UUID=641cc8ad-838d-4e92-8c2c-0b73359a5aa3 none swap sw 0 0
12台のドライブにディスクアクティビティがないため、しばらくするとドライブの状態がアクティブ/アイドルからスタンバイに変わります。
root@debian:~# hdparm -C /dev/sdm
/dev/sda:
drive state is: active/idle
root@debian:~# hdparm -C /dev/sdm
/dev/sda:
drive state is: standby
コマンドが実行されると、reboot
コンソールに " Deactivating swap...
"と表示され、12個のドライブがすべて視差を維持して回転を開始します。これは音と消費電力で確認されます。ドライブの状態をスタンバイからアクティブに変更するのに最大30秒かかることがあります。つまり、再起動には3〜7分かかります。 70台のドライブを接続すると、再起動にどのくらいかかりますか?
アップデート#1 この問題は「sd」(ストレージデバイス)に関連しています。 」SCSIキャッシュ同期「すべてのドライブで。
再起動時に、すべてのドライブの状態が「スタンバイ」から「アクティブ」に変わるのをどのように停止しますか?
# uname -mrsn
Linux debian 2.6.32-5-amd64 x86_64
答え1
バックポートカーネル3.2.0-0.bpo.3-amd64に変更した後は、reboot
スワップを有効にしているかどうかに関係なく、メッセージの発行と発生の間にすべてのドライバが起動しなくなります。Will now restart.
ドライブがスタンバイ状態の場合、コンソール「end_request I / Oエラー、dev sdb、セクタ{0、8、16、128、4096}」というエラーメッセージが続きます。
アップデート#1
「再起動前のSCSIキャッシュ同期」の問題が3.2.0-0.bpoで再表示されます。4-amd64。どちらもmpt2sasモジュールの同じバージョンを共有しているようですが:
# modinfo /lib/modules/3.2.0-0.bpo.{3,4}-amd64/kernel/drivers/scsi/mpt2sas/mpt2sas.ko | grep ^version
version: 10.100.00.00
version: 10.100.00.00
アップデート#2
この問題はカーネルとストレージモジュールに関連しているようには見えません。カーネル2.6.32-5-amd64に戻り、すべてのドライブをスタンバイに設定して再起動コマンドを発行した後、「SCSIキャッシュ同期」がなく、ドライブの回転がないため、遅延は発生しません。
アップデート#3
書き込みキャッシュをhdparm -W0 /dev/sd?
オフにして書き込みキャッシュをフラッシュしてsync && sdparm --command=sync /dev/sd? && sleep 1
最後にドライブをスタンバイモードに設定すると、実行後に「Mounting root file system read-only... done」出力が表示された後、hdparm -y /dev/sd?
各ドライブに「Synchronize SCSIキャッシュ」はありません。reboot
そして「今再起動します」それを使用するとき:
- Linux debian 2.6.32-5-amd64 #1 SMP Sun Sep 23 2012 10:07:46 UTC 2012 x86_64
- Linux debian 3.2.0-0.bpo.3-amd64 #1 SMP Thu Aug 23 07:41:30 UTC 2012 x86_64
カーネル3.2.0-0.bpo.4-amd64にはバグがあり、すべてreboot
。