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


25

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

どちらが健全/マウント/機能しなくなっているかをどのように確認できますか?

システムは、ほとんどの場合シンプルなソフトウェアRAIDを使用するLinux(ほとんどの場合はUbuntuサーバー)です。ハードドライブはSATAで、マザーボードに直接接続されます。(RAIDコントローラーなし)

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

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


4
マシンをシャットダウンし、どのハードドライブが何であるかを把握する必要がある場合、マシンがダウンしている間、各ハードドライブを識別し、何らかの方法でラベルを付けるために時間をかける必要があります。問題。
ロイリコ

2
「RAID(または何でも)」?ユーザーが機械室の中でゆるんでいるように聞こえます。
ロマンダ

1
適切なサーバーは、不良ドライブのドライブエラーインジケータをオンにすることにより、どのドライブを通知します。
ジョンガーデニアーズ

8
誰もが素早いようにこれに飛びつくのはとても速い...率直に言って、私はそれが良い質問だと思う、私は自分自身に対処しなければならなかったものだ!
マークヘンダーソン

2
趣味の目的で、ランダムOS内から物理的にそれらを識別するために何らかの方法で(手にはんだごてなどを使って)駆動LEDを構築することができるかどうかは興味があります(まともなサーバーグレードのディスク/ RAIDコントローラーがない場合)その魔法を行うことが本)...
オスカーDuveborn

回答:


26

あなたが説明したのと同じように(タワー)サーバーでこの正確な問題がありましたが、それは簡単でした:

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

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

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

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


私が考えているのは、hdparmではなく、smartctlです。それを反映するために答えを編集する必要があります。
バートシルバーストリム

正しいコマンドを思い出させてくれました:-)
バートシルバー

1
hdparmの-iショー私私のドライブのシリアル番号-それはものの、ベンダー固有の応答かもしれ
イアンClelland

1
優れた!私は今それを試すことはできませんが、これは答えのようです!マウント中に露出する場所で、シリアル番号の最後のN桁でハードドライブにラベルを付けます(サーバーごとに一意であると想定)。また、コマンドのルックスは「今回smartctl -i」であることをグーグルから
privatehuff

15

トレイのデザインによっては、ドライブにステッカーを貼ることができない場合があります。ドライブが停止するまでに、ステッカーは乾燥して落ちてしまいます。

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

6

通常、接続が何らかの方法でラベル付けされ、障害が発生したデバイスの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を好むもう1つの理由があることを知っていました...点滅するライト。まばたきライトが本当に好きです。

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


点滅ライトの+1
オスカーデューブボーン

3

一部のドライブはロケート "ファイル"を公開します。/sysロケートインジケータライトをオンにする場合は1をエコーし​​、オフにする場合は0をエコーし​​ます。

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

私はこれについて全く知りませんでした!これは素晴らしい!
-diq

2

6個の内蔵HDD?外付けのホットスワップドライブである場合、ホットスワップキャリアにはエラーライトがあり、不良ドライブの特定に役立ちます。また、多くのRAID管理プログラムには、特定のドライブのライトを点滅させて、どれがどれであるかを判別するオプションがあります。それらがすべてライトなしで内部にある場合、どのIDが適切であるかを通知し、SCSI IDなどを調べてそれを把握するために、RAIDソフトウェアを使用します。autoに設定されている場合、RAIDコントローラーのドキュメントで、SCSIチェーン内でIDが割り当てられている順序が示されます。がんばろう。物事がまだ実行されている間に今すぐバックアップを取ります!


2

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


2

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


2

ロケートライトがなく、ドライブの外側にシリアル番号が簡単に見つからない場合、この安っぽいテクニックが役立つ場合があります。特定のドライブで大量のアクティビティを作成し、アクティビティ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使用率を回避するのに役立ちます。 。ドライブが切断されます。)


1

他のすべてが失敗した場合、失敗していないドライブを特定し、逆方向に作業することができます。

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

アクティビティライトが点灯しないドライブはいずれも不良である可能性があります(そして、おそらく1つだけです)。ホットスペアを構成している場合、ライトスペアも点灯しないことに注意してください。


0

シャーシにラベルを付け、RAIDソフトウェアに対応させる必要があります。

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


0

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

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.