MegaCli: ottieni il nome del dispositivo / dev / sd * per un'unità logica


16

Diciamo che so che l'unità che voglio è su Adapter 8, Virtual Drive 0, c'è un modo per ottenere il nome del dispositivo Linux (ad es. /dev/sdt)? Sono su RHEL 6.2.

-pdlistvisualizza un valore WWN per ogni unità fisica, ma non aiuta molto. -ldinfonon stampa un WWN o qualsiasi altro valore identificativo.

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

Risposte:


10

Dovresti essere in grado di confrontare il numero di serie del disco -pdlistcon l'output di lshw.

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

Quindi cercare l'output di lshwper il numero di serie. Il nome del dispositivo sarà nel logical namecampo.

Non posso verificarlo perché tutti i miei dischi sono in un volume.

Identificazione delle unità logiche

Confronta il Target Idda MegaCLI con il target del bus scsi per il dispositivo. Lo lshwè 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

Da 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
Ho appena provato questo, ma ho unità IBM e per me sembra che non ci sia alcuna correlazione tra il numero seriale che compare -pdliste il numero seriale che appare lshw. Grazie per la punta però.
twblamer,

È possibile che la scheda del controller non esponga il numero seriale reale e crei un numero seriale del volume per ciascun disco.
Jeff Strunk,

Dovrei aggiungere che si tratta di una configurazione JBOD con ogni unità configurata in un array RAID0 di un'unità. Quindi mi aspetto che il numero di serie dell'unità fisica sia nascosto, ma mi chiedo se riesco a ottenere alcune informazioni dalla configurazione dell'unità logica.
twblamer,

1
Sembra che JBOD sia disabilitato sull'adattatore di default, ma posso abilitarlo:./MegaCli64 -AdpSetProp -EnableJBOD 1 -a0
twblamer

1
Per mostrare solo i dischi, utilizzare: lshw -class disk
Dan Mazzini

7

Ho appena aggiunto un po 'di supporto al mio fork di stato di megaclisi per abbinare l'unità logica a un dispositivo nativo del sistema operativo. Ecco un esempio di output:

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

Lo strumento stesso è disponibile su: http://step.polymtl.ca/~coyote/dist/megaclisas-status/megaclisas-status

Spero che questo possa essere d'aiuto,

Vincent


Funziona benissimo, anche con Centos 6, grazie!
SvennD,

2
Si noti che lo strumento è stato accettato e unito a monte, quindi una versione più recente è disponibile su: raw.githubusercontent.com/eLvErDe/hwraid/master/wrapper-scripts/…
Vincent S. Cojot,

Wow, questo mi fa venire il mal di testa. Funziona magnificamente. Grazie
biocyberman il

Ci

Si prega di segnalare eventuali problemi su: github.com/eLvErDe/hwraid/issues
Vincent S. Cojot

6

Per chiunque inciampare in questa domanda e utilizzare storcli(successore di MegaCLI), è possibile mappare un'unità virtuale sul disco visto dal sistema operativo con quanto segue:

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

Testato con storcli-1.21.06download all'indirizzo: https://docs.broadcom.com/docs/1.21.06_StorCLI


5

Invece di usare lshw, penso che puoi semplicemente usare /dev/disk/by-pathper ottenere la relazione tra l'id di destinazione scsi e il nome del dispositivo logico (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

Breve e dolce
Michael R. Hines,

3

Di recente ho avuto a che fare con questo attraverso diversi nuovi server e ho trovato una soluzione ! Non stiamo usando il RAID sulla scheda "RAID", ma solo le unità SAS come JBOD. I /dev/disk/by-idmapping sono disattivati ​​di uno (o pochi) dal SAS Address. Sembra bizzarro, ma funziona su decine di server su cui l'ho provato. Ho anche ricevuto la conferma indipendente che questo funziona per gli altri.

megamap è un breve script Perl che implementa la scoperta di cui sopra. Produce una mappa di unità Linux sd*con l'ID unità MegaRaid e visualizza anche il WWN da Linux. Dopo averlo usato in produzione per un po 'ho anche aggiunto megablinke megaunblinkper controllare il LED lampeggiante "come fix me". Questa funzione mi ha salvato dall'estrarre l'unità sbagliata dal server. Si prega di inviare segnalazioni di bug su github .

logo[immagine grazie a Scott Vrable ]


Ho aggiunto un'utility chiamata megablinkallo stesso repo github che lampeggerà il cattivo unità per il tecnico sul campo per trovare facilmente.
pulcini

Sulla base di una segnalazione di bug e delle successive correzioni ho rilasciato una nuova versione di megamapsu github.
pulcini,

2

Il comando di Harry è stato molto utile, ma avevo bisogno di fare un ulteriore passo avanti e determinare il dispositivo PCI perché nella mia configurazione ho più adattatori SAS. Ho pensato di condividere:

  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'è uno strumento alternativo chiamato lsiutilche è stato sospeso. Se funziona per la tua carta, potrebbe essere più facile da usare: http://www.lsi.com/downloads/Public/Obsolete/Obsolete%20Common%20Files/LSIUtil_1.62.zip

Una volta selezionata la scheda controller, l'opzione 42 dovrebbe visualizzare i nomi del sistema operativo. Lo uso su Solaris e i dischi sono in modalità JBOD reale anziché un gruppo di unità logiche RAID 0 a disco singolo.


Ho scaricato quella zip e purtroppo non sembra funzionare per la mia scheda + OS. Sembra che potrei essere bloccato.
twblamer,

1

Stavo cercando la stessa cosa e ho trovato questo post: http://sysadm.pp.ua/linux/monitoring-systems/python-lsi-megaraid-monitoring.html . Puoi usare python e bash script che ti danno tutte le informazioni necessarie:

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
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.