MegaCli: Nhận tên thiết bị / dev / sd * cho ổ đĩa logic


16

Giả sử tôi biết ổ đĩa tôi muốn có trên Adaptor 8, Virtual Drive 0, có cách nào để lấy tên thiết bị Linux (ví dụ /dev/sdt) không? Tôi đang trên RHEL 6.2.

-pdlisthiển thị giá trị WWN cho mỗi ổ đĩa vật lý, nhưng điều đó không giúp được gì nhiều. -ldinfokhông in WWN hoặc bất kỳ giá trị nhận dạng nào khác.

# ./MegaCli64 -pdlist -a8 | grep WWN
WWN: 500051610003776C
WWN: 5000516100037BFC
WWN: 5000516100038090
WWN: 50005161000284F4
WWN: 5000516100037C0C
WWN: 5000516100037C5C
WWN: 50005161000310C8
WWN: 5000516100037F4C

# ls -1dt /dev/disk/by-id/wwn*
/dev/disk/by-id/wwn-0x600605b0043e52d01721fd142c12c84d
/dev/disk/by-id/wwn-0x600605b0043e52d01721fd142c0973e6
/dev/disk/by-id/wwn-0x600605b0043e52d01721fd132c002573
/dev/disk/by-id/wwn-0x600605b0043e52d01721fd122bf6e2f6
/dev/disk/by-id/wwn-0x600605b0043e52d01721fd122beda52a
/dev/disk/by-id/wwn-0x600605b0043e52d01721fd112be46f10
/dev/disk/by-id/wwn-0x600605b0043e52d01721fd112bdb3ffb
/dev/disk/by-id/wwn-0x600605b0043e52d01721fd102bd20f14

# ./MegaCli64 -v                       
 MegaCLI SAS RAID Management Tool  Ver 8.03.08 Mar 15, 2012

Câu trả lời:


10

Bạn sẽ có thể so sánh số sê-ri đĩa từ -pdlistvới đầu ra từ lshw.

# MegaCLI -pdlist -a0 | grep "Inquiry Data:"
Inquiry Data:       XXXXXXXXXXXXHitachi YYYYYYYY                 ZZZZZZ
...

Sau đó tìm kiếm đầu ra của lshwsố sê-ri. Tên thiết bị sẽ có trong logical nametrường.

Tôi không thể xác minh điều này vì tất cả các đĩa của tôi nằm trong một ổ đĩa.

Xác định các ổ đĩa logic

So sánh Target Idtừ MegaCLI với mục tiêu xe buýt scsi cho thiết bị. Trong lshwđó là bus info.

# MegaCli -ldinfo -Lall -aall 


Adapter 0 -- Virtual Drive Information:
Virtual Drive: 0 (Target Id: 0)
Name                :
RAID Level          : Primary-6, Secondary-0, RAID Level Qualifier-3
Size                : 7.275 TB
State               : Optimal
Strip Size          : 64 KB
Number Of Drives    : 6
Span Depth          : 1
Default Cache Policy: WriteBack, ReadAhead, Direct, No Write Cache if Bad BBU
Current Cache Policy: WriteBack, ReadAhead, Direct, No Write Cache if Bad BBU
Access Policy       : Read/Write
Disk Cache Policy   : Disabled
Ongoing Progresses:
  Check Consistency        : Completed 17%, Taken 89 min.
Encryption Type     : None


Virtual Drive: 1 (Target Id: 1)
Name                :
RAID Level          : Primary-6, Secondary-0, RAID Level Qualifier-3
Size                : 7.275 TB
State               : Optimal
Strip Size          : 64 KB
Number Of Drives    : 6
Span Depth          : 1
Default Cache Policy: WriteBack, ReadAhead, Direct, No Write Cache if Bad BBU
Current Cache Policy: WriteBack, ReadAhead, Direct, No Write Cache if Bad BBU
Access Policy       : Read/Write
Disk Cache Policy   : Disabled
Ongoing Progresses:
  Check Consistency        : Completed 17%, Taken 89 min.
Encryption Type     : None

Từ lshw:

# lshw -class disk
...
              *-enclosure UNCLAIMED
               description: SCSI Enclosure
               product: Bobcat
               vendor: LSI CORP
               physical id: 1.75.0
               bus info: scsi@0:1.117.0
               version: 0504
               configuration: ansiversion=5
          *-disk:0
               description: SCSI Disk
               product: MR9260-16i
               vendor: LSI
               physical id: 2.0.0
               bus info: scsi@0:2.0.0
               logical name: /dev/sda
               version: 2.12
               serial: svDASJ-f8kM-4qp5-BswW-3IKC-DDyA-djz8N7
               size: 7450GiB
               capacity: 7450GiB
               capabilities: lvm2
               configuration: ansiversion=5
          *-disk:1
               description: SCSI Disk
               product: MR9260-16i
               vendor: LSI
               physical id: 2.1.0
               bus info: scsi@0:2.1.0
               logical name: /dev/sdb
               version: 2.12
               serial: NHUvUy-1tm4-aGYW-g6DZ-t1Z9-gxW8-JhvFfL
               size: 7450GiB
               capacity: 7450GiB
               capabilities: lvm2
               configuration: ansiversion=5

1
Tôi mới thử cái này, nhưng tôi có ổ đĩa IBM và đối với tôi có vẻ như không có mối tương quan nào giữa số sê-ri xuất hiện -pdlistvà số sê-ri xuất hiện lshw. Cảm ơn các mẹo mặc dù.
twblamer

Có thể là thẻ điều khiển của bạn không để lộ số sê-ri thực và tạo số sê-ri âm lượng cho mỗi đĩa.
Jeff Strunk

Tôi nên thêm đây là một thiết lập JBOD với mỗi ổ đĩa được cấu hình trong một mảng RAID0 của một ổ đĩa. Vì vậy, tôi hy vọng số sê-ri của ổ đĩa vật lý sẽ bị ẩn, nhưng tôi tự hỏi liệu tôi có thể lấy một số thông tin ra khỏi cấu hình ổ đĩa logic không.
twblamer

1
Có vẻ như JBOD bị tắt trên bộ điều hợp theo mặc định, nhưng tôi có thể kích hoạt nó:./MegaCli64 -AdpSetProp -EnableJBOD 1 -a0
twblamer

1
Để chỉ hiển thị đĩa, hãy sử dụng: đĩa lshw-class
Dan Mazzini

7

Tôi vừa thêm một số hỗ trợ cho ngã ba megaclisas của tôi để phù hợp với ổ đĩa logic với thiết bị OS OS. Đây là một ví dụ đầu ra:

$ sudo ./megaclisas-status
-- Controller information --
-- ID | H/W Model                  | RAM    | Temp | Firmware     
c0    | LSI MegaRAID SAS 9271-8i   | 1024MB | 88C  | FW: 23.32.0-0009 
c1    | LSI MegaRAID SAS 9280-4i4e | 512MB  | N/A  | FW: 12.15.0-0205 

-- Array information --
-- ID | Type   |    Size |  Strpsz |   Flags | DskCache |  Status |  OS Path | InProgress   
c0u0  | RAID-1 |   1817G |  256 KB | ADRA,WT |  Enabled | Optimal | /dev/sda | None         
c0u1  | RAID-5 |  16370G |  512 KB | ADRA,WB |  Enabled | Optimal | /dev/sdb | None         
c1u0  | RAID-0 |    476G |  256 KB | ADRA,WT |  Enabled | Optimal | /dev/sdc | None         

-- Disk information --
-- ID   | Type | Drive Model                                  | Size     | Status          | Speed    | Temp | Slot ID  | LSI Device ID
c0u0p0  | HDD  | WD-WMC300422505WDC WD20EFRX-68AX9N0 80.00A80 | 1.817 TB | Online, Spun Up | 6.0Gb/s  | 31C  | [252:4]  | 17      
c0u0p1  | HDD  | WD-WMC300421817WDC WD20EFRX-68AX9N0 80.00A80 | 1.817 TB | Online, Spun Up | 6.0Gb/s  | 31C  | [252:5]  | 18      
c0u1p0  | HDD  | WD-WX41DA40LCE5WDC WD60EFRX-68MYMN1 82.00A82 | 5.456 TB | Online, Spun Up | 6.0Gb/s  | 32C  | [252:0]  | 15      
c0u1p1  | HDD  | WD-WX41DA40L42RWDC WD60EFRX-68MYMN1 82.00A82 | 5.456 TB | Online, Spun Up | 6.0Gb/s  | 31C  | [252:1]  | 12      
c0u1p2  | HDD  | WD-WX61DA4HAKFZWDC WD60EFRX-68MYMN1 82.00A82 | 5.456 TB | Online, Spun Up | 6.0Gb/s  | 32C  | [252:6]  | 14      
c0u1p3  | HDD  | WD-WX41DA40LEF1WDC WD60EFRX-68MYMN1 82.00A82 | 5.456 TB | Online, Spun Up | 6.0Gb/s  | 31C  | [252:7]  | 16      
c1u0p0  | SSD  | 0000000011310344CFE3M4-CT512M4SSD2 070H      | 476.4 Gb | Online, Spun Up | 6.0Gb/s  | N/A  | [252:1]  | 11      

-- Unconfigured Disk information --

Bản thân công cụ này có sẵn tại: http://step.polymtl.ca/~coyote/dist/megaclisas-status/megaclisas-status

Tôi hi vọng cái này giúp được,

Vincent


Điều này hoạt động rất tốt, ngay cả tại Centos 6, cảm ơn!
SvennD

2
Xin lưu ý rằng công cụ này đã được chấp nhận và sáp nhập ngược dòng, vì vậy phiên bản mới hơn có tại: raw.githubusercontent.com/eLvErDe/hwear/master/wrapper-scripts/ trộm
Vincent S. Cojot 16/1/2016

Wow, điều này giúp tôi đau đầu. Hoạt động rất đẹp. Cảm ơn
biocyberman

Đã thử nhưng chỉ có số trong cột đường dẫn os
hek2mgl

Vui lòng báo cáo bất kỳ vấn đề nào tại: github.com/eLvErDe/hwear/issues
Vincent S. Cojot

6

Đối với bất kỳ ai vấp phải câu hỏi này và sử dụng storcli(người kế nhiệm MegaCLI), bạn có thể ánh xạ ổ đĩa ảo vào đĩa mà hệ điều hành nhìn thấy bằng cách sau:

$ /opt/MegaRAID/storcli/storcli64 /c0/v0 show all | grep NAA
SCSI NAA Id = 6001676001750006201086de0bd7f605
$ ls -al /dev/disk/by-id/ | grep wwn-0x6001676001750006201086de0bd7f605
lrwxrwxrwx 1 root root   9 Jan 23 10:55 wwn-0x6001676001750006201086de0bd7f605 -> ../../sdk

Đã thử nghiệm với storcli-1.21.06tải xuống tại: https://docs.broadcom.com/docs/1,21,06_StorCLI


5

Thay vì sử dụng lshw, tôi nghĩ bạn chỉ có thể sử dụng /dev/disk/by-pathđể có được mối quan hệ giữa id mục tiêu scsi và tên thiết bị logic (sdX).

targetId=0;dev=`ls -l /dev/disk/by-path/ | grep -E "scsi-[0-9]:[0-9]:${targetId}:[0-9] " | awk '{print($11)}'`; echo ${dev##*\/}

  deviceId=$1
  ldPdInfo=`$MegaCommand -LdPdInfo -aALL | grep -E 'Virtual Drive|Device Id'`
  if [ $ldPdInfo ]; then
    targetId=`echo $ldPdInfo | awk '{a[NR]=$0} END {while (NR) print a[NR--]}' | awk "/Device Id: ${deviceId}$/,/Virtual Drive/" | grep -Eo 'Target Id: [0-9]' | grep -Eo '[0-9]'`
    dev=`ls -l /dev/disk/by-path/ | grep -E "scsi-[0-9]:[0-9]:${targetId}:[0-9] " | awk '{print($11)}'`
  else
    wwn=`$MegaCommand -PdList -aALL | awk "/Device Id: ${deviceId}$/,/WWN/" | grep "WWN" | awk '{print($2)}'`
    # wwn=`echo "obase=16;ibase=16; $wwn-1" | bc`
    dev=`ls -l /dev/disk/by-id/ | grep -i -E "wwn-0x${wwn:0:-1}[0-9a-z] " | awk '{print($11)}'`
  fi
  devName=${dev##*\/}
  echo $devName

Ngắn và ngọt.
Michael R. Hines

3

Gần đây tôi đã xử lý vấn đề này trên một số máy chủ mới và tôi đã đưa ra giải pháp ! Chúng tôi không sử dụng RAID trên thẻ "RAID", chỉ sử dụng các ổ đĩa SAS là JBOD. Các /dev/disk/by-idánh xạ bị tắt bởi một (hoặc một vài) từ SAS Address. Điều này có vẻ kỳ quái, nhưng nó hoạt động trên hàng tá máy chủ mà tôi đã thử nghiệm. Tôi cũng đã nhận được xác nhận độc lập rằng điều này làm việc cho người khác.

megamap là một tập lệnh Perl ngắn thực hiện khám phá ở trên. Nó tạo ra một bản đồ ổ đĩa Linux sd*sang ID ổ đĩa MegaRaid và cũng hiển thị WWN từ Linux. Sau khi sử dụng điều này trong sản xuất một thời gian, tôi cũng đã thêm megablinkmegaunblinkđể điều khiển đèn LED nhấp nháy "come fix me". Tính năng đó đã cứu tôi khỏi việc rút nhầm ổ đĩa ra khỏi máy chủ. Vui lòng gửi báo cáo lỗi trên github .

Logo[hình ảnh nhờ Scott Vipper ]


Tôi đã thêm một tiện ích được gọi megablinkvào cùng một repo github sẽ nhấp nháy ổ đĩa xấu cho kỹ thuật viên hiện trường để dễ dàng tìm thấy nó.
gà con

Dựa trên một báo cáo lỗi và các bản sửa lỗi tiếp theo, tôi đã phát hành một phiên bản mới của megamapgithub.
gà con

2

Lệnh của Harry rất hữu ích, nhưng tôi cần phải tiến thêm một bước và xác định thiết bị pci vì tôi có nhiều bộ điều hợp SAS trong cấu hình của mình. Hình tôi nên chia sẻ:

  vdisk=1

  MegaCommand=/opt/MegaRAID/CmdTool2/CmdTool2

  vendor_id=$($MegaCommand -AdpAllInfo -aALL \
    | grep -E "^Vendor Id" \
    | sed 's/.*: //g' )

  device_id=$($MegaCommand -AdpAllInfo -aALL \
    | grep -E "^Device Id" \
    | sed 's/.*: //g' )

  pci_address=$(lspci -n \
    | grep "$vendor_id" \
    | grep "$device_id" \
    | awk '{print $1}' )

  dev_sdx=$($MegaCommand -LDInfo -LALL -aALL \
    | grep "^Virtual Drive: $vdisk (" \
    | tr -d ")" \
    | sed 's/.*Target Id: //g')

  dev_sdx=$(ls -l /dev/disk/by-path/ \
    | grep -E "$pci_address-scsi-[0-9]:[0-9]:$dev_sdx:[0-9] " \
    | grep sd  \
    | sed 's/.*\///g')

  echo "Found /dev/ as /dev/$dev_sdx"

1

Có một công cụ thay thế được gọi là lsiutilđã bị ngưng. Nếu nó hoạt động cho thẻ của bạn, nó có thể dễ sử dụng hơn: http://www.lsi.com/doads/Public/Obsolete/Obsolete%20Common%20Files/LSIUtil_1.62.zip

Khi bạn chọn thẻ điều khiển, tùy chọn 42 được cho là hiển thị tên hệ điều hành. Tôi sử dụng điều này trên Solaris và các đĩa ở chế độ JBOD thực thay vì một loạt các ổ đĩa logic RAID 0 đĩa đơn.


Tôi đã tải xuống mã zip đó và không có vẻ như nó hoạt động cho thẻ + HĐH của tôi. Có vẻ như tôi có thể bị mắc kẹt.
twblamer

1

Tôi đã nghiên cứu cho điều tương tự và tìm thấy bài đăng này - http://sysadm.pp.ua/linux/monitoring-systems/python-lsi-megaraid-monitoring.html . Bạn có thể sử dụng tập lệnh python và bash cung cấp cho bạn tất cả thông tin cần thiết:

root@s11:~# bash megaraid.sh log

-- Array information --
-- ID | Type   |    Size |  Strpsz | Flags | DskCache |   Status |  OS Path | InProgress
c0u0  | RAID-5 |   2725G |   64 KB | RA,WT |  Default | Degraded | /dev/sda | None
-- Disk information --
-- ID   | Type | Drive Model                               | Size     | Status          | Speed    | Temp | Slot ID  | Device ID
c0u0p2  | HDD  | SEAGATE ST1000NM0001 0002Z1N4K2PY         | 930.3 Gb | Failed          | 6.0Gb/s  | 29C  | [4:2]    | 15
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.