RAIDアレイ内の単一ドライブを物理的に識別するにはどうすればよいですか?


16

4つのeSATAディスクを搭載した外部ドライブベイがあります。私のシステムには、4ポートのeSATAカードと、内部ハードウェアRAID1ドライブのペアがあります。外付けドライブは、/dev/md0およびのソフトウェアRAID1ペア/dev/md1です。両方ともstoragevgLVMボリュームグループを作成するためにLVM物理ボリュームとして構成されています。最近、単一のドライブがオフラインになりました(ケーブルを疑います)が、特に初期化の順序がブート間で同じではないため、チェックする必要があるドライブを物理的に識別する良い方法はないようです。注意が必要なディスクを見つけるにはどうすればよいですか?

回答:


15

ディスクユーティリティ([システム]-> [管理]にある)は、すべてのディスクのシリアル番号を提供します。

これが私が見るものです(シリアルの右上を見てください)。このドライブはmdadm RAIDアレイ内にあることに気付くでしょう。ディスクユーティリティは、rawディスクアクセスのためにアレイに侵入できます。

ディスクユーティリティ

私はPCに同じモデルのディスクを6個持っているので、ケース内の位置とシリアル番号を示す小さな図を描いて、緊急時にシリアルですばやく見つけられるようにしました。

また、ディスクが死んだ場合、どのディスクが表示されているかを見つける必要があるだけで、どのシリアルが見つからないかがわかるまでそれらを削除することができるという点でも反対です。

編集: bash-fuを改善しようとしているので、このコマンドラインバージョンを作成して、お使いのマシンで現在使用されているディスクシリアル番号のリストを提供します。fdiskいくつかのエラーが発生する可能性がありますが、リストが汚染されることはありません。

for disk in `sudo fdisk -l | grep -Eo '(/dev/[sh]d[a-z]):' | sed -E 's/://'`;
do
    sudo hdparm -i $disk | grep -Eo 'SerialNo=.*' | sed -E 's/SerialNo=//';
done

(必要に応じてそれを1行に砕くことができます-読みやすくするために分割しました)

編集2: ls /dev/disk/by-id/やや簡単です;)


シリアル番号を使用すると、既に外部で記録されている場合にうまく機能します。電源を切ることはできないが、ホットスワップドライブを備えたシステムの場合、LEDを介して故障したドライブを特定できると便利です。
キーズクック

また、ディスクユーティリティには、ドライブが接続されているホストアダプターのポートを示す「場所」識別子があることに気づくでしょう。これは実際に機能しています。
オリ

あなたの場合、RAIDアレイを5分間停止し、各ドライブを取り外してシリアルを取得するのは無理はないはずで、マシンの電源を切る必要はありません...しかし、空想がない限りRAIDを停止する必要があります再構築します。
オリ

「場所」は必ずしも有用ではありません。たとえば、PATAの場合、多くの場合1つのポートに2つのディスクがあり、両方のディスクがマスター/スレーブネゴシエーション用に「AUTO」に設定されている場合、 ?ただし、SATAでも機能する可能性があります
-JanC

1
PATAドライブはまだ存在しますか?それ以来、私はSATAのみに専念しています。ここでは外付けドライブベイについて説明しているため、ポートを見つける問題はここでは重要ではありません。しかし、確かに。民生用マザーボードでは、マニュアルを参照して、どのポートが何であるかを把握する必要があります。
オリ

5

ドライブのシリアル番号またはポート表示とディスクの空間位置を一致させるのに問題がある場合は、実行して(障害が発生したドライブはcat /dev/sdz >/dev/nullどこですかsdz)、LEDで(または騒がしいサーバールームにいない場合は耳で)ドライブを見つけることができます)。ドライブの電源が入らない場合でも、ドライブがどれであるかを判断するには十分です。次回は、ディスクにラベルを貼ってください。


それは固体に光を残すの副作用を有するように他のすべてが点滅している間、これは、純粋な天才である
HDave

3

情報udisks(コマンドライン上かのいずれかで与えGNOMEディスクユーティリティは)ディスクのシリアル番号が含まれています。私が持っているディスクでは、シリアル番号は、数字とバーコードの両方で、上側と前面(コネクタを含む側の反対側)に印刷されています。残念ながら、ほとんどのPCケースでは、ディスクを引き出すことなくこれらのシリアルを読むことができません...

シリアル番号はにもあります/dev/disk/by-id/

あなたのディスクはオフラインなので、私はそれが現在カーネルによって「見られない」と思いますか?その場合は、排除する必要があるかもしれません。リストされていないシリアル番号のディスクが必要です...


2

ソフトウェアRAIDでは、これは一般的な問題です。ハードウェアRAIDには、ハードウェアがサポートしていると仮定して、ドライブに関連付けられたLEDを点滅させる機能があります。

ただし、ソフトウェアRAIDでは、各ドライブに固有のメタデータがいくつかあります。mdadm -E /dev/sda1アレイ内の各ドライブのコマンドを使用して各ドライブから読み取り、環境に合わせてデバイスを変更できます。そのため、ドライブが問題を引き起こし、現在オフラインになっている状況がある場合。オンラインの各ドライブでこれを実行し、各ドライブのマイナー番号を記録します。次に、MDをサポートするLive CDを使用すると、システムレスキューCDが適しています。一度に1つのドライブのみが接続され、このコマンドを実行して原因を見つけます。これはおそらくあなたが望むほど単純ではありませんが、うまくいくはずです。


Linuxから入手できるシリアル番号が物理ドライブにも印刷されている可能性がありますか?
エルジャン

1

lsscsi

$ lsscsi -l
[0:0:0:0]ディスクATA TOSHIBA THNS128G AGLA / dev / sda
  state = running queue_depth = 1 scsi_level = 6 type = 0 device_blocked = 0 timeout = 30
[1:0:0:0] cd / dvd HL-DT-ST DVDRAM GT30N LT09 / dev / sr0
  state = running queue_depth = 1 scsi_level = 6 type = 5 device_blocked = 0 timeout = 30

ディスクが実行状態にない場合、それはかなり良い兆候です。したがって、/ proc / mdstatは、失敗したメンバーを通知します。素敵なドライブケージがないと仮定すると、シリアル番号でドリルダウンする必要があります。sg_inqがそれを助けます。

適切なドライブケージがある場合は、ディスクビーコンを有効にして、障害のあるメンバーを特定できるようにする必要があります。

http://www.mail-archive.com/linux-scsi@vger.kernel.org/msg07307.html


1

すべてのハードディスクのシリアルコードを取得するには、次を実行します。

lsblk -i -o kname,mountpoint,fstype,size,maj:min,name,state,rm,rota,ro,type,label,model,serial


KNAME MOUNTPOINT   FSTYPE   SIZE MAJ:MIN NAME   STATE   RM ROTA RO TYPE LABEL         MODEL            SERIAL
sda                         3.7T   8:0   sda    running  0    1  0 disk               WDC WD4000F9YZ-0 WD-WCCXXX4
sda1                        3.7T   8:1   `-sda1          0    1  0 part
sdb   /mnt/backup3 ext4     3.7T   8:16  sdb    running  0    1  0 disk backup_netops WDC WD4000F9YZ-0 WD-WCCXXX1
sdc                         3.7T   8:32  sdc    running  0    1  0 disk               WDC WD4000F9YZ-0 WD-WCCXXX3
sdc1  /mnt/backup2 ext4     3.7T   8:33  `-sdc1          0    1  0 part
sdd                         3.7T   8:48  sdd    running  0    1  0 disk               WDC WD4000F9YZ-0 WD-WCCXXX2
sdd1  /mnt/backup1 ext4     3.7T   8:49  `-sdd1          0    1  0 part

0

簡単です。これはたとえば私のPCの出力です:

andrea@centurion:~$ cat /proc/mdstat 
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] 
md0 : active raid1 sdh1[1] sdg1[0]
      312568576 blocks [2/2] [UU]

unused devices: <none>

ご覧の通り/ dev / sdh1/ dev / sdg1/ dev / md0に参加しています


1
正しいですが、外部ドライブエンクロージャの物理的な場所については何もわかりません。
キーズクック

0

アレイにはSESスマートがなく、ディスクアクティビティLEDは直接駆動できないため、そのためのファームウェアサポートが必要です。他にできることは、できる限りI / Oを静止し、メンバーddまたはsg_readメンバー自身で何かを使用して、アクティビティLEDを使用して一意に識別可能な点滅パターンを作成するディスクへの読み取りパターンを歩き回ることです。あなたがするなら、男性のビーコン。アレイをダウンさせることがオプションでない限り、それは本当にあなたの唯一の選択肢です。

この種の保守性は、外部ストレージアレイを差別化するものです。シリアル番号とその位置を書き留めて事前に計画していなかったため、単純なセットの違いを実行して障害のあるドライブを特定することはできません。それは、実現したかどうかに関係なく、展開したソリューションに支払う価格です。

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