Bagaimana saya bisa mengidentifikasi secara fisik satu drive dalam array RAID?

16

Saya memiliki ruang drive eksternal dengan 4 disk eSATA di dalamnya. Sistem saya memiliki kartu eSATA 4-port, serta sepasang drive RAID1 perangkat keras internal. Drive eksternal dalam pasangan perangkat lunak RAID1 sebagai /dev/md0dan /dev/md1. Keduanya telah dikonfigurasi sebagai volume fisik LVM untuk membuat storagevggrup volume LVM saya . Baru-baru ini, satu drive menjadi offline (saya curiga kabel), tetapi tampaknya tidak ada cara yang baik untuk mengidentifikasi secara fisik drive mana yang perlu saya periksa, terutama karena urutan inisialisasi tidak sama antara boot. Bagaimana saya dapat menemukan disk yang membutuhkan perhatian?

Kees Cook
sumber

Jawaban:

15

Disk Utility (duduk di System -> Administration) akan memberi Anda nomor seri untuk semua disk Anda.

Inilah yang saya lihat (lihat bagian kanan atas untuk serial). Anda akan melihat bahwa drive ini berada dalam array RAID mdadm. Disk Utility dapat menembus array untuk akses disk mentah.

Utilitas Disk

Saya memiliki 6 model disk yang sama di PC saya, jadi saya menggambar diagram kecil yang menunjukkan posisi mereka dalam case dan nomor seri sehingga saya dapat menemukannya dengan cepat pada serial dalam keadaan darurat.

Sebaliknya juga benar bahwa jika disk mati, saya hanya perlu menemukan disk mana yang muncul dan saya bisa menghilangkannya sampai saya tahu serial mana yang hilang.

Sunting: Saya mencoba meningkatkan bash-fu saya jadi saya menulis versi baris perintah ini hanya untuk memberi Anda daftar nomor seri disk yang saat ini ada di mesin Anda. fdiskmungkin membuang beberapa kesalahan tetapi itu tidak mencemari daftar:

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

(Dan Anda dapat memecahnya menjadi satu baris jika Anda perlu - Saya telah memecahnya untuk dibaca)

Sunting 2: ls /dev/disk/by-id/ agak mudah;)

Oli
sumber
Menggunakan nomor seri dapat bekerja dengan baik jika seseorang sudah merekamnya secara eksternal. Dalam hal sistem yang tidak dapat dimatikan tetapi memiliki hot-swap drive, alangkah baiknya untuk dapat menemukan drive yang gagal melalui LED.
Kees Cook
Anda juga akan melihat bahwa ada pengidentifikasi "Lokasi" di Disk Utility, yang menunjukkan port adaptor host yang dicolokkan. Anda mungkin dapat mengetahui port mana yang tanpa mencabut drive tetapi saya tidak dapat berspekulasi untuk ini benar-benar berfungsi.
Oli
Dalam kasus Anda, menghentikan raid array selama 5 menit, mencabut setiap drive dan mendapatkan serial seharusnya tidak terlalu masuk akal dan tidak perlu mematikan mesin ... Tapi RAID harus diturunkan kecuali jika Anda suka itu membangun kembali.
Oli
"Lokasi" tidak selalu berguna, misalnya dalam kasus PATA sering ada 2 disk pada 1 port, dan jika disk Anda keduanya disetel ke "AUTO" untuk negosiasi master / slave, mungkin tidak ada cara untuk mengetahui yang mana ? Ini mungkin bekerja untuk SATA
JanC
1
Apakah drive PATA masih ada? Saya sudah SATA-hanya sejak ... Yah sejak disk 112gig dianggap besar. Masalah menemukan-port tidak benar-benar diperhitungkan di sini karena kita berbicara tentang ruang drive eksternal. Tapi tentu saja Pada motherboard konsumen, Anda mungkin perlu membaca manual untuk mendapatkan ide port apa itu ... Bahkan, perangkat lunak mungkin mengaitkannya dengan urutan yang berbeda.
Oli
5

Jika Anda memiliki masalah dengan mencocokkan nomor seri drive atau indikasi port dengan lokasi spasi disk Anda, Anda dapat menjalankan cat /dev/sdz >/dev/null(di mana sdzdrive gagal) dan menemukan drive dengan LED-nya (atau dengan telinga jika Anda tidak berada di ruang server yang bising) ). Jika drive tidak mau hidup, itu sudah cukup untuk mengatakan yang mana. Pastikan untuk menempatkan label yang terlihat pada disk untuk waktu berikutnya.

Gilles 'SANGAT berhenti menjadi jahat'
sumber
ini jenius murni karena memiliki efek samping meninggalkan cahaya pada benda padat, sementara yang lainnya berkedip
HDave
3

Info yang udisksmemberikan (baik pada commandline atau di Utility Disk GNOME ) termasuk nomor seri disk. Pada disk yang saya miliki, nomor seri dicetak di sisi atas dan di sisi depan (yang di sisi lain yang berisi konektor), baik sebagai angka dan dengan barcode. Sayangnya, sebagian besar casing PC membuatnya mustahil untuk membaca serial tersebut tanpa menarik keluar disk ...

Anda juga dapat menemukan nomor seri di /dev/disk/by-id/.

Karena disk Anda offline, saya menganggap itu tidak "dilihat" oleh kernel saat ini? Dalam hal ini, Anda mungkin harus pergi dengan eliminasi: Anda ingin disk dengan nomor seri yang tidak tercantum ...

JanC
sumber
2

Dengan serangan perangkat lunak, ini adalah masalah umum. Serangan perangkat keras cenderung memiliki fitur yang memungkinkan Anda untuk berkedip LED yang terkait dengan drive, dengan asumsi bahwa perangkat keras Anda mendukungnya.

Tetapi dengan perangkat lunak RAID, setiap drive memiliki beberapa metadata unik. Yang dapat Anda baca dari setiap drive menggunakan perintah mdadm -E /dev/sda1untuk setiap drive dalam array, memodifikasi perangkat agar sesuai dengan lingkungan Anda. Jadi, jika Anda memiliki situasi di mana drive memberi Anda masalah dan saat ini sedang offline. Saya akan menjalankan ini pada setiap drive yang sedang online, merekam nomor minor untuk setiap drive. Kemudian menggunakan Live CD yang mendukung MD, CD penyelamatan sistem adalah yang baik, dengan hanya satu drive yang terhubung dan menjalankan perintah ini untuk menemukan penyebabnya. Ini mungkin tidak lurus ke depan seperti yang Anda inginkan tetapi itu harus berhasil.

Pengaruh 3d
sumber
Mungkin ada nomor seri yang bisa Anda dapatkan melalui Linux yang juga dicetak pada drive fisik?
erjiang
1

lsscsi

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

jika disk tidak dalam keadaan berjalan, itu pertanda bagus. Jadi / proc / mdstat akan memberi tahu Anda anggota yang gagal. Dengan anggapan Anda tidak memiliki kandang drive yang bagus, Anda harus menelusuri dengan nomor seri, sg_inq akan membantu.

Jika Anda memiliki rangka drive yang baik, Anda harus dapat mengaktifkan suar disk untuk membantu mengidentifikasi anggota yang salah.

http://www.mail-archive.com/[email protected]/msg07307.html

ppetraki
sumber
1

Untuk mendapatkan kode serial dari semua harddisk, jalankan:

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
BVBMedia
sumber
0

Itu mudah. Ini misalnya adalah output pada PC saya:

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>

seperti yang Anda lihat saya sudah / dev / sdh1 dan / dev / sdg1 bergabung di / dev / md0

Andrea Grandi
sumber
1
Benar, tetapi ini tidak memberi tahu saya apa pun tentang di mana mereka berada secara fisik di drive eksternal.
Kees Cook
0

Karena array Anda tidak memiliki kecerdasan SES dan LED aktivitas disk tidak dapat digerakkan secara langsung, mis. Anda memerlukan dukungan firmware untuk itu. Satu-satunya hal yang dapat Anda lakukan adalah menghentikan I / O sebaik mungkin dan kemudian menggunakan sesuatu seperti ddatau sg_readpada anggota itu sendiri untuk melangkah pola membaca ke disk yang menciptakan pola blink yang dapat diidentifikasi secara unik menggunakan LED aktivitas, yang buruk suar pria jika Anda mau. Ini benar-benar satu-satunya alternatif Anda, kecuali jika menurunkan array adalah opsi.

Jenis kemudahan servis inilah yang membedakan array penyimpanan eksternal. Karena Anda tidak merencanakan ke depan dengan menuliskan nomor seri dan posisinya, Anda tidak dapat melakukan perbedaan set sederhana untuk mengidentifikasi drive yang rusak. Ini adalah harga yang Anda bayar untuk solusi yang Anda gunakan, apakah Anda menyadarinya atau tidak, tapi hei, hidup dan pelajari.

ppetraki
sumber