Làm thế nào tôi có thể xác định vật lý một ổ đĩa trong một mảng RAID?


16

Tôi có một khoang ổ đĩa ngoài với 4 đĩa eSATA. Hệ thống của tôi có thẻ eSATA 4 cổng, cũng như một cặp ổ đĩa RAID1 phần cứng bên trong. Các ổ đĩa ngoài nằm trong cặp RAID1 phần mềm /dev/md0/dev/md1. Cả hai đã được cấu hình là khối lượng vật lý LVM để tạo storagevgnhóm âm lượng LVM của tôi . Gần đây, một ổ đĩa đã ngoại tuyến (tôi nghi là dây cáp), nhưng dường như không có cách nào tốt để xác định vật lý mà tôi cần kiểm tra, đặc biệt là vì thứ tự khởi tạo không giống nhau giữa các lần khởi động. Làm thế nào tôi có thể tìm thấy đĩa cần chú ý?

Câu trả lời:


15

Disk Utility (ngồi trong Hệ thống -> Quản trị) sẽ cung cấp cho bạn các số sê-ri cho tất cả các đĩa của bạn.

Đây là những gì tôi thấy (nhìn ở phía trên bên phải cho nối tiếp). Bạn sẽ nhận thấy rằng ổ đĩa này nằm trong một mảng RAID mdadm. Disk Utility có thể xâm nhập vào mảng để truy cập đĩa thô.

Tiện ích đĩa

Tôi có 6 mô hình đĩa giống nhau trong PC của mình, vì vậy tôi đã vẽ một sơ đồ nhỏ cho thấy vị trí của chúng trong trường hợp và số sê-ri để tôi có thể xác định vị trí của chúng một cách nhanh chóng trong trường hợp khẩn cấp.

Điều ngược lại cũng đúng ở chỗ nếu một đĩa chết, tôi chỉ cần tìm những đĩa nào đang hiển thị và tôi có thể loại bỏ chúng cho đến khi tôi biết thiếu serial nào.

Chỉnh sửa: Tôi đang cố gắng cải thiện bash-fu của mình vì vậy tôi đã viết phiên bản dòng lệnh này để cung cấp cho bạn danh sách các số sê-ri đĩa hiện có trong máy của bạn. fdiskcó thể tặc lưỡi một số lỗi nhưng điều đó không làm mờ danh sách:

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

(Và bạn có thể chia nó thành một dòng nếu bạn cần - Tôi đã chia nhỏ nó để dễ đọc)

Chỉnh sửa 2: ls /dev/disk/by-id/ có phần dễ dàng hơn;)


Sử dụng số sê-ri có thể hoạt động tốt nếu người ta đã ghi lại chúng bên ngoài. Trong trường hợp hệ thống không thể tắt nguồn nhưng có ổ đĩa trao đổi nóng, thật tuyệt khi có thể xác định vị trí ổ đĩa bị lỗi thông qua đèn LED.
Kees Cook

Bạn cũng sẽ nhận thấy rằng có một số nhận dạng "Vị trí" trong Disk Utility, cho biết cổng nào của bộ điều hợp máy chủ được cắm. Bạn có thể đoán được cổng nào mà không cần rút ổ đĩa nhưng tôi không thể suy đoán Điều này thực sự làm việc.
Oli

Trong trường hợp của bạn, việc dừng mảng đột kích xuống trong 5 phút, rút ​​từng ổ đĩa và lấy sê-ri không nên quá vô lý và không cần phải tắt máy ... Nhưng RAID sẽ phải bị gỡ xuống trừ khi bạn thích nó xây dựng lại.
Oli

"Vị trí" không phải lúc nào cũng hữu ích, ví dụ trong trường hợp PATA thường có 2 đĩa trên 1 cổng và nếu cả hai đĩa của bạn được đặt thành "TỰ ĐỘNG" để đàm phán chính / phụ, có lẽ không có cách nào để tìm ra cái nào ? Nó có thể hoạt động cho SATA mặc dù
JanC

1
Ổ đĩa PATA có còn tồn tại không? Tôi đã chỉ sử dụng SATA kể từ khi ... Chà vì một đĩa 112gig được coi là lớn. Vấn đề tìm cổng không thực sự được tính ở đây vì chúng ta đang nói về khoang ổ đĩa ngoài. Nhưng chắc chắn. Trên bo mạch chủ của người tiêu dùng, có lẽ bạn sẽ cần tham khảo hướng dẫn để có ý tưởng cổng là gì ... Ngay cả khi đó, phần mềm có thể quy cho họ một thứ tự khác.
Oli

5

Nếu bạn gặp sự cố khi khớp số sê-ri ổ đĩa hoặc chỉ báo cổng với các vị trí không gian của ổ đĩa, bạn có thể chạy cat /dev/sdz >/dev/null( sdzổ đĩa bị lỗi) và xác định vị trí ổ đĩa bằng đèn LED của nó (hoặc bằng tai nếu bạn không ở trong phòng máy chủ ồn ào ). Nếu ổ đĩa thậm chí không bật nguồn, điều đó là đủ để nói nó là cái nào. Hãy chắc chắn để đặt một nhãn có thể nhìn thấy trên các đĩa cho lần tiếp theo.


Đây là một thiên tài thuần túy vì nó có tác dụng phụ là để ánh sáng trở nên rắn chắc, trong khi tất cả những người khác đang chớp mắt
HDave

3

Thông tin udiskscung cấp (trên dòng lệnh hoặc trong Tiện ích đĩa Gnome ) bao gồm số sê-ri đĩa. Trên các đĩa tôi có, số sê-ri được in ở mặt trên và mặt trước (mặt kia của mặt kia chứa các đầu nối), cả dưới dạng số và có mã vạch. Thật không may, hầu hết các trường hợp PC làm cho không thể đọc các serial đó mà không rút đĩa ra ...

Bạn cũng có thể tìm thấy các số serial trong /dev/disk/by-id/.

Vì đĩa của bạn không trực tuyến, tôi cho rằng hiện tại nó không được "nhìn thấy" bởi kernel? Trong trường hợp đó, bạn có thể phải loại bỏ: bạn muốn đĩa có số sê-ri không được liệt kê ...


2

Với cuộc đột kích phần mềm, đây là một vấn đề phổ biến. Các cuộc tấn công phần cứng có xu hướng có một tính năng cho phép bạn nhấp nháy đèn LED liên quan đến ổ đĩa, giả sử rằng phần cứng của bạn hỗ trợ điều đó.

Nhưng với phần mềm RAID, mỗi ổ đĩa có một số siêu dữ liệu duy nhất. Mà bạn có thể đọc nó từ mỗi ổ đĩa bằng cách sử dụng lệnh mdadm -E /dev/sda1cho từng ổ đĩa trong mảng, sửa đổi các thiết bị để phù hợp với môi trường của bạn. Vì vậy, nếu bạn có một tình huống mà một ổ đĩa đang gây ra sự cố cho bạn và hiện đang ngoại tuyến. Tôi sẽ chạy cái này trên mỗi ổ đĩa đang trực tuyến, ghi lại số phụ cho mỗi ổ đĩa. Sau đó, sử dụng Live CD hỗ trợ MD, cd cứu hộ hệ thống là một ổ đĩa tốt, chỉ có một ổ đĩa tại một thời điểm được kết nối và chạy lệnh này để tìm ra thủ phạm. Điều này có thể không đơn giản như bạn muốn nhưng nó sẽ hoạt động.


Có lẽ có thể có số sê-ri bạn có thể nhận được thông qua Linux cũng được in trên ổ đĩa vật lý?
erjiang

1

lsscsi

$ lsscsi -l
[0: 0: 0: 0] đĩa ATA TOSHIBA THNS128G AGLA / dev / sda
  bang = đang chạy queue_depth = 1 scsi_level = 6 loại = 0 device_blocked = 0 timeout = 30
[1: 0: 0: 0] cd / dvd HL-DT-ST DVDRAM GT30N LT09 / dev / sr0
  state = đang chạy queue_depth = 1 scsi_level = 6 loại = 5 device_blocked = 0 timeout = 30

nếu đĩa không ở trạng thái chạy, đó là một dấu hiệu khá tốt. Vì vậy / Proc / mdstat sẽ cho bạn biết thành viên nào thất bại. Giả sử bạn không có một ổ đĩa đẹp, bạn sẽ phải truy sâu vào số sê-ri, sg_inq sẽ giúp với điều đó.

Nếu bạn có một lồng ổ đĩa tốt, bạn sẽ có thể kích hoạt đèn hiệu đĩa để giúp xác định thành viên bị lỗi.

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


1

Để có được mã nối tiếp của tất cả các ổ cứng chạy:

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

Thật đơn giản. Ví dụ này là đầu ra trên PC của tôi:

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>

như bạn có thể thấy tôi / dev / sdh1/ dev / sdg1 đã tham gia / dev / md0


1
Phải, nhưng điều này không cho tôi biết bất cứ điều gì về vị trí của chúng trong vỏ ổ đĩa ngoài.
Kees Cook

0

Vì mảng của bạn không có SES smarts và đèn LED hoạt động của đĩa không thể truyền trực tiếp, ví dụ: bạn cần hỗ trợ phần sụn cho điều đó. Điều khác duy nhất bạn có thể làm là kiểm tra I / O một cách tốt nhất có thể và sau đó sử dụng một cái gì đó giống như ddhoặc sg_readtrên chính các thành viên để sải một mẫu đọc vào đĩa tạo ra mô hình nhấp nháy có thể nhận dạng duy nhất bằng đèn LED hoạt động, kém đèn hiệu của người đàn ông nếu bạn muốn. Đó thực sự là lựa chọn duy nhất của bạn, trừ khi đưa mảng xuống là một tùy chọn.

Loại dịch vụ này là những gì phân biệt các mảng lưu trữ bên ngoài. Vì bạn không lên kế hoạch trước bằng cách viết nguệch ngoạc các số sê-ri và vị trí của chúng, bạn không thể thực hiện chênh lệch thiết lập đơn giản để xác định ổ đĩa bị lỗi. Đó là cái giá bạn phải trả cho giải pháp bạn đã triển khai, cho dù bạn có nhận ra hay không, nhưng này, hãy sống và học hỏi.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.