Menu Zamknij

MegaRAID w stacji roboczej i poszukiwanie SMARTa

Kolejny artykuł o zabawie z moją stacją roboczą (Dell T5500) – tym razem w roli głównej kontroler RAID firmy LSI – MegaRAID SAS6IR (Windowsy driver widzi to jako Karta LSI, seria SAS 3000, 8 portów z 1068E). A konkretniej podejrzenie awarii jednego z dysków w macierzy.

Ale po kolei. Mój setup wykorzystujący sprzętowy RAID to proste mirrorowanie dwóch dysków SAS od Seagate’a (były w zestawie z komputerem i o dziwo jeszcze żyją) o przyjemnej prędkości obrotowej 15.7k RPM. Dla windowsa jest prezentowany wirtualny dysk i tyle. Nie pamiętam dokładnie setupu ale widziałem maszynę Della na której WinServer widział składniki macierzy i dyski logiczne – tu nie ma to miejsca. Podczas któregoś polowania na sterowniki doinstalowałem sobie MegaRAID Storage Managera czyli konsolę administracyjną karty PCI która zarządza dyskami – dość wygodna żeby nie rebootować maszyny do BIOSu kontrolera.

Aż pewnego pięknego dnia zaczął wyskakiwać komunikat o wypadnięciu dysku z macierzy. W logach pojawiał się z datą „2000-01-01 12:00:00”. Co ciekawe eventy o pomyślnym logowaniu do konsoli mają poprawną datę. W każdym razie okazało się że leci rebuild. Po czym drugi raz. I trzeci.

Wtedy postanowiłem zbadać stan SMARTa dysków (niektórzy mogą się domyślić że nie ma to sensu, ale o tym potem). Czas pobrać pakiet smarrtmontools. Bash na Windowsa był pierwszym strzałem. Pudło bo to kontener który nie ma bindowań do devfs (w sumie nie ma za bardzo jak mieć). Kolejna próba to build smartctl na Windowsa. Nawet wiki projektu potwierdza że się powinno dać – przez CSMI. Znowu pudło bo support megaraida wyparował z wersji windowsowej. Próby enumerowania ukrytych urządzeń przez cygwina też upadły (smartctl –scan).

Czas zatem na najlepszego przyjaciela użytkownika Gentoo i nie tylko – SystemRescueCD. I tu kolejna porażka – driver megaraida w smartctl wymaga podania ID kontrolera (ale nie SCSI tylko samego megaraida). Wiki Thomas-Krenna daje sporo informacji ale nie mogę się natknąć na szukane ID (bruteforcowy for-loop sugeruje że może jednak go tam nie ma…) Jedyne co mam to zlistowane LUNy fizycznych urządzeń od lsscsi:

[1:0:0:0]    disk    ATA      INTEL SSDSA2BW16 0365  /dev/sda 
[3:0:0:0]    disk    ATA      WDC WD1002FBYS-0 NA01  /dev/sdb 
[4:0:0:0]    disk    ATA      KINGSTON SA400S3 71E0  /dev/sdc 
[6:0:0:0]    disk    Generic  STORAGE DEVICE   1532  /dev/sdd 
[7:0:0:0]    disk    Samsung  Flash Drive      1100  /dev/sde 
[8:0:0:0]    disk    DYMO     PnP              1.00  /dev/sdf 
[9:0:0:0]    disk    SEAGATE  ST3300657SS      ES02  -        
[9:0:1:0]    disk    SEAGATE  ST3300657SS      ES02  -        
[9:1:0:0]    disk    Dell     VIRTUAL DISK     1028  /dev/sdg 

Wtedy dotarło do mnie że może brakuje mi jakiegoś modułu jądra. Znalazłem też wzmiankę o narzędziu megacli. Które teraz nazywa się StorCLI. Tym sposobem na gentoo odpaliłem stronę z Wiki Debiana. Po potwierdzeniu przez lspci okazało się że szukam mptsas. Kilka modprobów później mpt-status ożył.

root@sysresccd % lspci | grep SAS
23:00.0 SCSI storage controller: LSI Logic / Symbios Logic SAS1068E PCI-Express Fusion-MPT SAS (rev 08)
root@sysresccd % modprobe mptsas
root@sysresccd % storcli show | grep Number
Number of Controllers = 0
root@sysresccd % storcli show | grep Number
root@sysresccd % lsiutil
zsh: command not found: lsiutil
root@sysresccd % mpt-status
open /dev/mptctl: No such file or directory
  Try: mknod /dev/mptctl c 10 220
Make sure mptctl is loaded into the kernel
root@sysresccd % mknod /dev/mptctl c 10 220
root@sysresccd % mpt-status                 
open /dev/mptctl: No such device
  Are you sure your controller is supported by mptlinux?
Make sure mptctl is loaded into the kernel
root@sysresccd % ls /dev/mptctl 
/dev/mptctl
root@sysresccd % mpt-status    
open /dev/mptctl: No such device
  Are you sure your controller is supported by mptlinux?
Make sure mptctl is loaded into the kernel
root@sysresccd % mknod /dev/mptctl c 10 220
mknod: /dev/mptctl: File exists
root@sysresccd % modprobe mptctl
root@sysresccd % mpt-status                
ioc0 vol_id 0 type IM, 2 phy, 278 GB, state DEGRADED, flags ENABLED RESYNC_IN_PROGRESS
ioc0 phy 0 scsi_id 8 SEAGATE  ST3300657SS      ES02, 279 GB, state ONLINE, flags NONE
ioc0 phy 1 scsi_id 1 SEAGATE  ST3300657SS      ES02, 279 GB, state ONLINE, flags OUT_OF_SYNC
root@sysresccd % 

Czas na narzędzie do zarządzania – lsiutil. Ciężkie do znalezienia ale są dobrzy ludzie którzy mirrorują na blogach. Okazuje się że to narzędzie to koszmarek podobny do fdiska z milionem menu, ale chociaż działa.

Szczęśliwy człowiek wraca do smartctla a tam… przypomina sobie że dyski SAS nie mają SMARTa z dysków [S]ATA. <facepalm />

LSI Logic MPT Configuration Utility, Version 1.57, April 28, 2008

1 MPT Port found

     Port Name         Chip Vendor/Type/Rev    MPT Rev  Firmware Rev  IOC
 1.  /proc/mpt/ioc0    LSI Logic SAS1068E B3     105      00192f00     0

Diagnostics menu, select an option:  [1-99 or e/p/w or 0 to quit] 12
Adapter Phy 0:  Link Up, No Errors
Adapter Phy 1:  Link Up
  Invalid DWord Count                                   1,413,606
  Running Disparity Error Count                         1,372,067
  Loss of DWord Synch Count                                     2
  Phy Reset Problem Count                                       0

Adapter Phy 2:  Link Down, No Errors
Adapter Phy 3:  Link Down, No Errors
Adapter Phy 4:  Link Down, No Errors
Adapter Phy 5:  Link Down, No Errors
Adapter Phy 6:  Link Down, No Errors
Adapter Phy 7:  Link Down, No Errors

Main menu, select an option:  [1-99 or e/p/w or 0 to quit] l

 1.  Identify firmware, BIOS, and/or FCode
 2.  Download firmware (update the FLASH)
 4.  Download/erase BIOS and/or FCode (update the FLASH)
 8.  Scan for devices
10.  Change IOC settings (interrupt coalescing)
13.  Change SAS IO Unit settings
16.  Display attached devices
20.  Diagnostics
21.  RAID actions
22.  Reset bus
23.  Reset target
42.  Display operating system names for devices
45.  Concatenate SAS firmware and NVDATA files
60.  Show non-default settings
61.  Restore default settings
69.  Show board manufacturing information
97.  Reset SAS link, HARD RESET
98.  Reset SAS link
99.  Reset port
 e   Enable expert mode in menus
 p   Enable paged mode
 w   Enable logging

Kilka eksperymentów z diagnostyką dostępną w lsiutilu wykazuje że dysk (bo failował tylko jeden) w zasadzie żyje i nie udało mi się złapać badsectorów. Cóż, przy kolejnej awarii posiedzę w menu diagnostyki dłużej albo przepnę do maszyny z kontrolerem SAS który pracuje w trybie JBOD i wykonam destrukcyjny test powierzchni – z wynikami które rozumiem 🙂

Na sam koniec jeszcze mój mirror lsiutil’a na wszelki wypadek.

Dodaj komentarz