web-dev-qa-db-ja.com

故障したハードドライブを物理的に特定します

つまり、サーバーに6台の正常なハードドライブがあったとします。ドライブに障害が発生する(マウント/検出されない、エラーでRAIDから外れる)か、障害が発生する(SMARTが悪化するなど)。不良ドライブを交換する必要があります。ケースを開くと、6つの同一のハードドライブが表示されます。

正常/マウント/機能していないものをどのようにして見分けることができますか?

システムはlinuxであり、ubuntuサーバーである可能性が最も高く、最も単純なソフトウェアRAIDを使用しています。ハードドライブはSATAで、マザーボードに直接接続されます。 (レイドコントローラーなし)

正しいドライブを選択するまで、ドライブをランダムに切断したくありません。ドライブはすべて私と同じように見えます。私が知らないドライブがどれであるかを識別するためのいくつかの一般的な方法があると思います。誰かがヒント/ヒント/ベストプラクティスを持っていますか?ありがとう!

編集:私はこれを手で波打つような方法で「一般化」したかったのですが、それは「不完全」で「恐ろしい」ものになりました。悪い!

27
privatehuff

説明したように(タワー)サーバーでこの問題が発生したのは簡単でした。

smartctlはドライブのシリアル番号を出力します

ベンダーは、同じことを行うhdparmなどの独自の特定のツールを出荷することがあります。

したがって、不良ドライブのシリアルを出力し、歯科医のミラーと懐中電灯を使用してドライブを見つけます。

ラックマウントでは通常、他の人が言ったようにインジケーターライトがありますが、同じことが当てはまると思います。

27
Tom Ritter

ドライブにステッカーを貼る(トレイのデザインによっては)ことができない場合があります。ドライブが死ぬまでに、ステッカーは乾燥して脱落する可能性があります。

ledctl(パッケージledmonから)は、実際にこれを行う方法です。

ledctl locate=/dev/disk/by-id/[drive-id]

または

ledctl locate=/dev/sda

指定したドライブのシャーシのドライブ障害ライトが点灯します。ドライブをどのように識別するかは重要ではないことを示すために、2つの例を示しました。シリアル、名前などを使用できます。入手可能な情報はすべて使用できます。ドライブは、/ dev /および/ dev/disk /パスの下で複数の方法で参照されます。

ライトをオフに戻すには、もう一度実行して、locateをLocate_offに変更します。

ledctl locate_off=/dev/sda
17
UCS75

通常、接続が何らかの方法でラベル付けされ、故障したデバイスのIDから機能することを期待する必要があります。たとえば...そして誰かが私を修正するためにコメントする必要があります... 2つのIDEチャネルがある場合、それぞれに最大2つのドライブがあり、sda、sdb、sdcを持つことができます、およびsdd。sddが失敗した場合、2番目のケーブルIDE=のケーブル上の2番目のドライブになります。

SATAで、バックルームにあるシステムと同様に、ポートは各SATAドライブ用にラベル付けされています。繰り返しになりますが、ドライブレタリングは、SATAコネクタのポート0から始まり、上に向かって、ドライブが上に向かっていくものをすべて通過します。

製造上の違いがある場合、dmesg | grep sdまたはdmesg | grep hdはいくつかの手掛かりを生成するはずです。

シリアル番号が手元にある場合は、hdparmコマンドを使用してソフトウェアでシリアル番号を取得できるため、そのように追跡できます。その場合は、ドライブにどこかにラベルを付けると、問題が発生したときにそのことを心配する必要がなくなります。

...ソフトウェアRAIDよりもハードウェアRAIDを選択する別の理由があることを知っていました...点滅するライト。まばたきライトが本当に好きです。

編集:hdparmではなくsmartctlがシリアル番号を提供します。私の悪い。

6

短い答えの場合-"lsscsi"詳細な答えの場合-"lshw -c disk"は、接続されているHDDおよびSATAポートを表示します。

3
Sarath kumar S

ドライブによっては、ロケートインジケータライトをオンにするには1、オフにするには0をエコーできる/sysのロケート「ファイル」を公開します。

$ for light in $( find /sys -name "locate" ) ; do echo 1 > $light ; sleep 10 ; echo 0 > $light; done
3
crh

少なくとも、故障したドライブについて通知したRAIDソフトウェア/コントローラーは、故障したドライブ(ID番号)を通知するはずです。通常、0は左上にあり、下に移動してから右に移動します(2列以上の場合)。ポートにはおそらくラベルが付けられています。

2
mrdenny

ロケートライトがなく、ドライブの外側にあるシリアル番号を簡単に見つけることができない場合、この安っぽいテクニックが役立つことがあります。その特定のドライブで大量のアクティビティを作成し、アクティビティLEDが点灯しているドライブを探します。 。シリアル番号のより詳細なチェックをフォローアップすることをお勧めしますが、これは検索を絞り込むのに役立ちます。

例えば。:

# while true; do dd if=/dev/disk/by-id/scsi-drive-that-is-dying of=/dev/null; sleep 1; done

(whileループは技術的には必要ありませんが、データセンターに向かう間、動き続けます。 "sleep 1"は、 "dd"が原因で失敗した場合などに、高速ループによって生じる高いCPU使用率を回避するのに役立ちます。 。ドライブが切断されます。)

2
Steve Bonds

6つの内蔵HDDですか?外付けのホットスワップドライブの場合、ホットスワップキャリアにエラーライトがあり、不良ドライブを識別できる可能性があります。また、多くのRAID管理プログラムには、特定のドライブのライトを点滅させてどちらがどれかを判別するオプションがあります。それらがすべてライトなしで内部にある場合は、RAIDソフトウェアがどのIDが適切であるかを伝え、SCSI IDなどを調べてそれを把握します。 autoに設定されている場合、RAIDコントローラーのドキュメントで、SCSIチェーン内でIDが割り当てられている順序がわかるはずです。幸運を。実行中のバックアップを今すぐ取りましょう!

2
BillN

他のすべてに障害が発生した場合、障害のないドライブを特定して、逆方向に作業できます。

find / -type f -exec cat {} \; >> /dev/null

アクティビティライトが点灯しないドライブはどれも悪い可能性があります(うまくいけば、それが1つだけであることを確認してください)。

1
toppledwagon

シャーシにラベルが付けられ、RAIDソフトウェアに対応している必要があります。

私たちのデルでは、これはあなたが考える方法ではありません。私たちの0:0は左下、0:1は左上、0:2は中央下などです。私が使用したすべてのサーバー(自家製のジョブを除く)では、RAIDソフトウェアがポートを示し、ポートはラベル付き。

0
dubRun

scsirastools には、SCSIディスクに対してさまざまな診断テストを実行できる一連のツールがあります。 sgmonを使用して、ソフトウェアの制御下でディスクの電源を切ることもできます。これにより、少なくとも診断で見つけることができる物理ディスクを特定できます。

ハードウェアRAIDコントローラーがある場合、コントローラーのBIOSまたは管理ソフトウェアには、不良ディスクを特定できる機能が必要です。