GNU/Linux >> Tutoriels Linux >  >> Linux

MegaCli :obtenir le nom de périphérique /dev/sd* pour un lecteur logique

Solution 1 :

Vous devriez pouvoir comparer le numéro de série du disque à partir de -pdlist avec la sortie de lshw .

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

Ensuite, recherchez la sortie de lshw pour le numéro de série. Le nom de l'appareil sera dans le logical name champ.

Je ne peux pas vérifier cela car tous mes disques sont dans un volume.

Identification des lecteurs logiques

Comparez le Target Id de MegaCLI avec la cible du bus scsi pour le périphérique. En lshw c'est 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

De lshw :

# lshw -class disk
...
              *-enclosure UNCLAIMED
               description: SCSI Enclosure
               product: Bobcat
               vendor: LSI CORP
               physical id: 1.75.0
               bus info: [email protected]: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: [email protected]: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: [email protected]: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

Solution 2 :

Je viens d'ajouter un support à mon fork de megaclisas-status pour faire correspondre le lecteur logique à un périphérique OS natif. Voici un exemple de sortie :

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

L'outil lui-même est disponible à :http://step.polymtl.ca/~coyote/dist/megaclisas-status/megaclisas-status

J'espère que cela vous aidera,

Vincent

Solution 3 :

Pour tous ceux qui trébuchent sur cette question et utilisent storcli (successeur de MegaCLI ), vous pouvez mapper un lecteur virtuel sur le disque vu par le système d'exploitation en procédant comme suit :

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

Testé avec storcli-1.21.06 télécharger sur :https://docs.broadcom.com/docs/1.21.06_StorCLI

Solution 4 :

Au lieu d'utiliser lshw , je pense que vous pouvez simplement utiliser /dev/disk/by-path pour obtenir la relation entre l'ID cible scsi et le nom de périphérique logique (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

Solution 5 :

J'ai récemment été confronté à ce problème sur un certain nombre de nouveaux serveurs et j'ai trouvé une solution ! Nous n'utilisons pas RAID sur la carte "RAID", nous utilisons simplement les disques SAS comme JBOD. Le /dev/disk/by-id les mappages sont décalés d'un (ou quelques) du SAS Address . Cela semble bizarre, mais cela fonctionne sur des dizaines de serveurs sur lesquels je l'ai testé. J'ai également reçu une confirmation indépendante que cela fonctionne pour les autres.

megamap est un court script Perl qui implémente la découverte ci-dessus. Il produit une carte du lecteur Linux sd* à l'ID de lecteur MegaRaid et affiche également le WWN de Linux. Après l'avoir utilisé en production pendant un certain temps, j'ai également ajouté megablink et megaunblink pour contrôler la LED clignotante "come fix me". Cette fonctionnalité m'a évité de retirer le mauvais lecteur du serveur. Veuillez soumettre des rapports de bogue sur github.

[ image merci à Scott Vrable ]


Linux
  1. Quand utiliser /dev/random contre /dev/urandom ?

  2. Comment encoder en base64 /dev/random ou /dev/urandom ?

  3. Comment Linux utilise /dev/tty et /dev/tty0

  4. echo ou print /dev/stdin /dev/stdout /dev/stderr

  5. Pourquoi < ou > sont-ils nécessaires pour utiliser /dev/tcp

noyau :désactiver /dev/kmem et /dev/mem

Pourquoi sur certains systèmes Linux, le système de fichiers racine apparaît-il comme /dev/root au lieu de /dev/<real device node> dans mtab ?

Nom du lecteur ? Quel est le terme correct pour la partie sda ​​de /dev/sda ?

À quoi sert `/dev/console` ?

Créer un périphérique de bloc virtuel qui écrit dans /dev/null

Différences entre /dev/sda et /dev/sda1