MegaCli: Ermittelt den Gerätenamen / dev / sd * für ein logisches Laufwerk


16

Angenommen, ich weiß, dass das gewünschte Laufwerk auf Adapter 8 (virtuelles Laufwerk 0) installiert ist. Gibt es eine Möglichkeit, den Linux-Gerätenamen abzurufen (z. B. /dev/sdt)? Ich bin auf RHEL 6.2.

-pdlistzeigt einen WWN-Wert für jedes physische Laufwerk an, aber das hilft nicht viel. -ldinfodruckt keinen WWN oder einen anderen identifizierenden Wert.

# ./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

Antworten:


10

Sie sollten in der Lage sein, die Seriennummer der Festplatte -pdlistmit der Ausgabe von zu vergleichen lshw.

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

Durchsuchen Sie dann die Ausgabe von lshwnach der Seriennummer. Der Gerätename wird im logical nameFeld angezeigt .

Ich kann dies nicht überprüfen, da sich alle meine Festplatten in einem Volume befinden.

Logische Laufwerke identifizieren

Vergleichen Sie die Target Idvon MegaCLI mit dem SCSI-Bus-Ziel für das Gerät. Darin lshwist 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

Aus 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
Ich habe es gerade versucht, aber ich habe IBM-Laufwerke, und für mich scheint es keine Korrelation zwischen der Seriennummer, die in angezeigt wird, -pdlistund der Seriennummer, die angezeigt wird lshw. Danke für den Tipp.
Twblamer

Es kann sein, dass Ihre Controllerkarte nicht die tatsächliche Seriennummer anzeigt und für jede Festplatte eine Volume-Seriennummer erstellt.
Jeff Strunk

Ich sollte hinzufügen, dass dies ein JBOD-Setup ist, bei dem jedes Laufwerk in einem RAID0-Array von einem Laufwerk konfiguriert ist. Ich würde also erwarten, dass die Seriennummer des physischen Laufwerks verborgen ist, aber ich frage mich, ob ich Informationen aus der Konfiguration des logischen Laufwerks erhalten kann.
Twblamer

1
Es sieht so aus, als ob JBOD auf dem Adapter standardmäßig deaktiviert ist, aber ich kann es aktivieren:./MegaCli64 -AdpSetProp -EnableJBOD 1 -a0
twblamer

1
Um nur Festplatten anzuzeigen, verwenden Sie: lshw-class disk
Dan Mazzini

7

Ich habe gerade die Unterstützung für den Megaclisas-Status für das Zuordnen des logischen Laufwerks zu einem OS Native-Gerät hinzugefügt. Hier ist eine Beispielausgabe:

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

Das Tool selbst ist verfügbar unter: http://step.polymtl.ca/~coyote/dist/megaclisas-status/megaclisas-status

Ich hoffe das hilft,

Vincent


Das funktioniert auch bei Centos 6 super, danke!
Mittwoch,

2
Bitte beachten Sie, dass das Tool vom Upstream akzeptiert und zusammengeführt wurde. Eine aktuellere Version finden Sie unter: raw.githubusercontent.com/eLvErDe/hwraid/master/wrapper-scripts/…
Vincent S. Cojot

Wow, das erspart mir Kopfschmerzen. Funktioniert wunderbar. Danke
Biocyberman

Versuchte, dass aber nur Zahlen in os Pfad Spalte bekam
hek2mgl

Bitte melden Sie Probleme unter: github.com/eLvErDe/hwraid/issues
Vincent S. Cojot

6

Wenn Sie über diese Frage stolpern und storcli(Nachfolger von MegaCLI) verwenden, können Sie der vom Betriebssystem angezeigten Festplatte ein virtuelles Laufwerk folgendermaßen zuordnen:

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

Getestet mit storcli-1.21.06Download unter: https://docs.broadcom.com/docs/1.21.06_StorCLI


5

Anstelle von using lshwkönnen Sie /dev/disk/by-pathmeines Erachtens auch einfach die Beziehung zwischen der SCSI-Ziel-ID und dem logischen Gerätenamen (SDX) ermitteln.

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

Kurz und bündig.
Michael R. Hines

3

Ich habe mich in letzter Zeit mit einer Reihe neuer Server befasst und eine Lösung gefunden ! Wir verwenden kein RAID auf der "RAID" -Karte, sondern nur die SAS-Laufwerke als JBOD. Die /dev/disk/by-idZuordnungen sind um eins (oder ein paar) von der SAS Address. Dies scheint bizarr, funktioniert aber auf Dutzenden von Servern, auf denen ich es getestet habe. Ich habe auch die unabhängige Bestätigung erhalten, dass dies für andere funktioniert.

megamap ist ein kurzes Perl-Skript, das die obige Entdeckung implementiert. Es erstellt eine Zuordnung des Linux-Laufwerks sd*zur MegaRaid-Laufwerks-ID und zeigt auch den WWN von Linux an. Nachdem ich diese für eine Weile in der Produktion verwendet hatte, fügte ich sie hinzu megablinkund megaunblinkkontrollierte die blinkende LED "come fix me". Diese Funktion hat mich daran gehindert, das falsche Laufwerk aus dem Server zu ziehen. Bitte senden Sie Fehlerberichte auf Github .

Logo[Bild dank Scott Vrable ]


Ich habe ein Programm mit dem Namen hinzugefügt , megablinkum den gleichen GitHub Repo, die den blinken schlechten Antrieb für die Feldtechniker leicht zu finden.
Küken

Basierend auf einem Fehlerbericht und nachfolgenden Korrekturen habe ich eine neue Version von megamapon github veröffentlicht.
Küken

2

Harrys Befehl war sehr hilfreich, aber ich musste noch einen Schritt weiter gehen und das PCI-Gerät bestimmen, da ich mehrere SAS-Adapter in meiner Konfiguration habe. Ich dachte, ich sollte teilen:

  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

Es gibt ein alternatives Tool namens lsiutil, das eingestellt wurde. Wenn es für Ihre Karte funktioniert, ist die Verwendung möglicherweise einfacher: http://www.lsi.com/downloads/Public/Obsolete/Obsolete%20Common%20Files/LSIUtil_1.62.zip

Sobald Sie Ihre Controllerkarte ausgewählt haben, zeigt Option 42 die Namen des Betriebssystems an. Ich verwende dies unter Solaris, und die Festplatten befinden sich im echten JBOD-Modus anstelle einer Reihe von RAID 0-Laufwerken mit einer einzelnen Festplatte.


Ich habe diese Zip-Datei heruntergeladen und es sieht leider nicht so aus, als würde sie für meine Karte + mein Betriebssystem funktionieren. Scheint, als würde ich stecken bleiben.
Twblamer

1

Ich habe nach dem gleichen Thema gesucht und diesen Beitrag gefunden - http://sysadm.pp.ua/linux/monitoring-systems/python-lsi-megaraid-monitoring.html . Sie können Python- und Bash-Skripte verwenden, die Ihnen alle benötigten Informationen liefern:

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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.