MegaCli: Uzyskaj nazwę urządzenia / dev / sd * dla dysku logicznego

16

Powiedzmy, że wiem, że dysk, który chcę, znajduje się na adapterze 8, Virtual Drive 0, czy istnieje sposób na uzyskanie nazwy urządzenia z systemem Linux (np. /dev/sdt)? Jestem na RHEL 6.2.

-pdlistwyświetla wartość WWN dla każdego dysku fizycznego, ale to niewiele pomaga. -ldinfonie drukuje WWN ani żadnej innej wartości identyfikującej.

# ./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
twblamer
źródło

Odpowiedzi:

10

Powinieneś być w stanie porównać numer seryjny dysku -pdlistz danymi wyjściowymi z lshw.

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

Następnie wyszukaj wyjście lshwnumeru seryjnego. Nazwa urządzenia będzie w logical namepolu.

Nie mogę tego zweryfikować, ponieważ wszystkie moje dyski są w woluminie.

Identyfikacja napędów logicznych

Porównaj Target Idz MegaCLI z docelową szyną SCSI dla urządzenia. W lshwtym jest 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

Z 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
Jeff Strunk
źródło
1
Właśnie próbowałem tego, ale mam dyski IBM i dla mnie wygląda na to, że nie ma korelacji między numerem seryjnym, który się pojawia, -pdlista numerem seryjnym, który się pojawia lshw. Dzięki za napiwek.
twblamer,
Możliwe, że twoja karta kontrolera nie ujawnia prawdziwego numeru seryjnego i tworzy numer seryjny woluminu dla każdego dysku.
Jeff Strunk,
Powinienem dodać, że jest to konfiguracja JBOD z każdym dyskiem skonfigurowanym w macierzy RAID0 jednego dysku. Oczekiwałbym więc, że numer seryjny dysku fizycznego będzie ukryty, ale zastanawiam się, czy mogę uzyskać jakieś informacje z konfiguracji dysku logicznego.
twblamer,
1
Wygląda na to, że JBOD jest domyślnie wyłączony na adapterze, ale mogę go włączyć:./MegaCli64 -AdpSetProp -EnableJBOD 1 -a0
twblamer
1
Aby wyświetlić tylko dyski, użyj: lshw -class disk
Dan Mazzini
7

Właśnie dodałem obsługę mojego rozwidlenia statusu megaclisas w celu dopasowania dysku logicznego do urządzenia macierzystego systemu operacyjnego. Oto przykładowy wynik:

$ 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 --

Samo narzędzie jest dostępne pod adresem : http://step.polymtl.ca/~coyote/dist/megaclisas-status/megaclisas-status

Mam nadzieję, że to pomoże,

Vincent

Vincent S. Cojot
źródło
Działa to świetnie, nawet w Centos 6, dzięki!
SvennD,
2
Należy pamiętać, że narzędzie zostało zaakceptowane i połączone w górę, dlatego nowsza wersja znajduje się pod adresem: raw.githubusercontent.com/eLvErDe/hwraid/master/wrapper-scripts/...
Vincent S. Cojot
Wow, to oszczędza mi bólu głowy. Działa pięknie. Dzięki
biocyberman
Próbowałem, ale dostałem tylko liczby w kolumnie ścieżki os
hek2mgl
Wszelkie problemy należy zgłaszać na stronie: github.com/eLvErDe/hwraid/issues
Vincent S. Cojot
6

Dla każdego, kto natknie się na to pytanie i użyje storcli(następcy MegaCLI), można zmapować dysk wirtualny na dysk widziany przez system operacyjny za pomocą:

$ /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

Testowane z storcli-1.21.06pobraniem pod adresem : https://docs.broadcom.com/docs/1.21.06_StorCLI

Dorian Gambin
źródło
5

Zamiast używać lshw, myślę, że możesz po prostu użyć, /dev/disk/by-pathaby uzyskać związek między identyfikatorem docelowym scsi a nazwą urządzenia logicznego (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
Harry Lee
źródło
Krótkie i słodkie.
Michael R. Hines
3

Zajmowałem się tym ostatnio na wielu nowych serwerach i znalazłem rozwiązanie ! Nie używamy RAID na karcie „RAID”, tylko używamy dysków SAS jako JBOD. Do /dev/disk/by-idmapowania się przy użyciu jednego (lub kilku) z położenia SAS Address. To wydaje się dziwne, ale działa na kilkudziesięciu serwerach, na których go testowałem. Otrzymałem również niezależne potwierdzenie, że działa to na innych.

megamap to krótki skrypt Perla, który implementuje powyższe odkrycie. Tworzy mapę dysku Linux sd*na identyfikator dysku MegaRaid, a także wyświetla WWN z Linuksa. Po dłuższym użyciu tego w produkcji dodałem megablinki megaunblinkdo kontrolowania migającej diody LED „come fix me”. Ta funkcja uratowała mnie przed wyciągnięciem niewłaściwego dysku z serwera. Prześlij raporty o błędach na github .

logo[zdjęcie dzięki Scott Vrable ]

pisklęta
źródło
Dodałem narzędzie wywoływane megablinkdo tego samego repozytorium github, które będzie mrugać złym dyskiem dla technika terenowego, aby łatwo go znaleźć.
pisklęta
Na podstawie raportu o błędach i kolejnych poprawek opublikowałem nową wersję megamapna github.
pisklęta
2

Polecenie Harry'ego było bardzo pomocne, ale musiałem pójść o krok dalej i ustalić urządzenie PCI, ponieważ mam wiele adapterów SAS w mojej konfiguracji. Pomyślałem, że powinienem udostępnić:

  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"
TaylorSanchez
źródło
1

Istnieje alternatywne narzędzie o nazwie, lsiutilktóre zostało wycofane. Jeśli działa z twoją kartą, może być łatwiejsza w użyciu: http://www.lsi.com/downloads/Public/Obsolete/Obsolete%20Common%20Files/LSIUtil_1.62.zip

Po wybraniu karty kontrolera opcja 42 powinna wyświetlać nazwy systemu operacyjnego. Używam tego w systemie Solaris, a dyski są w prawdziwym trybie JBOD zamiast kilku dysków logicznych RAID 0 z pojedynczym dyskiem.

Jeff Strunk
źródło
Pobrałem ten zip i niestety nie wygląda na to, że działa na mojej karcie + systemie operacyjnym. Wygląda na to, że utknąłem.
twblamer
1

Szukałem tego samego i znalazłem ten post - http://sysadm.pp.ua/linux/monitoring-systems/python-lsi-megaraid-monitoring.html . Możesz użyć skryptu python i bash, który zawiera wszystkie potrzebne informacje:

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
alex
źródło