Назад | Перейти на главную страницу

MegaCli сообщает о несогласованном количестве физических дисков

Во-первых, вот сокращенный вариант моего вопроса. У меня мигает красный свет на диске в массиве RAID, и хотя MegaCli не сообщает о сбоях диска или предупреждениях, некоторые команды MegaCli показывают 24 диска, а другие показывают только 23. Я также вижу следующую ошибку, повторяющуюся ежедневно:

Event Description: Controller encountered a fatal error and was reset

Связаны ли эти вещи? Здесь проблема?

А вот и более длинная версия. Я унаследовал ответственность за сервер (назовем его my_server), который размещается в центре обработки данных и который, как я полагаю, имеет LSI MegaRAID SAS 9265-8i с конфигурацией RAID 50 / RAID 5 + 0. Я получил электронное письмо из центра обработки данных, что на одном из жестких дисков этого сервера мигает красный индикатор. К сожалению, я почти ничего не знаю о RAID-массивах, поэтому мне приходится нащупывать Руководство пользователя программного обеспечения MegaRAID SAS и различные онлайн-уроки.

Я ssh'ed на сервер, чтобы попытаться диагностировать проблему. Далее следует пример сеанса оболочки, который демонстрирует мои усилия и дает некоторую важную информацию о рассматриваемой системе.

Сначала я проверяю базовую информацию о системе:

$ cat /etc/issue
CentOS release 6.4 (Final)
Kernel \r on an \m

$ uname -a
Linux my_server 2.6.32-358.11.1.el6.x86_64 #1
SMP Wed Jun 12 03:34:52 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

Затем я проверяю массив RAID и версию MegaCli:

$ sudo /opt/MegaRAID/MegaCli/MegaCli64 -adpallinfo -aALL | grep "Product Name"
Product Name    : LSI MegaRAID SAS 9265-8i

$ sudo /opt/MegaRAID/MegaCli/MegaCli64 -CfgDsply -a0 | grep 'RAID Level'
RAID Level          : Primary-5, Secondary-0, RAID Level Qualifier-3

$ sudo /opt/MegaRAID/MegaCli/MegaCli64 -v

      MegaCLI SAS RAID Management Tool  Ver 8.04.07 May 28, 2012

    (c)Copyright 2011, LSI Corporation, All Rights Reserved.

Exit Code: 0x00

Теперь немного сводной информации о дисках в массиве:

$ sudo /opt/MegaRAID/MegaCli/MegaCli64 -adpallinfo -a0 | grep -A8 "Device Present"

                    Device Present
                    ================
    Virtual Drives    : 1
      Degraded        : 0
      Offline         : 0
    Physical Devices  : 27
      Disks           : 24
      Critical Disks  : 0
      Failed Disks    : 0

Здесь вроде все нормально. Потом проверяю S.M.A.R.T. предупреждения:

$ sudo /opt/MegaRAID/MegaCli/MegaCli64 -PDList -aALL | grep 'S.M.A.R.T.'
Drive has flagged a S.M.A.R.T alert : No
Drive has flagged a S.M.A.R.T alert : No
[...]
Drive has flagged a S.M.A.R.T alert : No
Drive has flagged a S.M.A.R.T alert : No

Нет S.M.A.R.T. оповещения, поэтому, прочитав пару руководств, я запускаю еще несколько команд:

$ sudo /opt/MegaRAID/MegaCli/MegaCli64 -ldinfo -lall -a0 | grep Drives
Number Of Drives    : 23

$ sudo /opt/MegaRAID/MegaCli/MegaCli64 -CfgDsply -aALL | grep -Pi 'SPAN|Span\ Ref|Number\ of'
Number of DISK GROUPS: 1
Number of Spans: 1
SPAN: 0
Span Reference: 0x00
Number of PDs: 23
Number of VDs: 1
Number of dedicated Hotspares: 0
Number Of Drives    : 23
Span Depth          : 1
Drive's postion: DiskGroup: 0, Span: 0, Arm: 0
Drive's postion: DiskGroup: 0, Span: 0, Arm: 1
Drive's postion: DiskGroup: 0, Span: 0, Arm: 2
Drive's postion: DiskGroup: 0, Span: 0, Arm: 3
[...]
Drive's postion: DiskGroup: 0, Span: 0, Arm: 20
Drive's postion: DiskGroup: 0, Span: 0, Arm: 21
Drive's postion: DiskGroup: 0, Span: 0, Arm: 22

Теперь я немного смущен, потому что некоторые команды (например, adpallinfo и pdlist) показывают 24 диска, а другие (например, ldinfo и CfgDsply) показывают только 23.

Наконец, я создаю файл журнала событий и ищу признаки проблемы:

$ sudo /opt/MegaRAID/MegaCli/MegaCli64 -adpeventlog -getevents -f lsi-events.log -a0 -nolog
$ cat lsi-events.log | grep -P -i 'fail|error|warn'

[...]
Event Description: Controller encountered a fatal error and was reset
Event Description: Controller encountered a fatal error and was reset
Event Description: Controller encountered a fatal error and was reset
Event Description: Controller encountered a fatal error and was reset
Event Description: Controller encountered a fatal error and was reset


$ cat lsi-events.log | grep -B6 -A3 -P -i 'fail|error|warn'

[...]
seqNum: 0x000f8644
Time: Sun Feb 26 07:32:16 2017

Code: 0x00000159
Class: 2
Locale: 0x20
Event Description: Controller encountered a fatal error and was reset
Event Data:
===========
None

А также поищите сообщения, относящиеся к слоту 23:

$ cat lsi-events.log | grep -P -i 's23' | tail -30

Event Description: Power state change on PD 1f(e0x21/s23) from POWERSAVE(1) to TRANSITION(ff)
Event Description: Power state change on PD 1f(e0x21/s23) from TRANSITION(ff) to ON(0)
Event Description: Power state change on PD 1f(e0x21/s23) from ON(0) to POWERSAVE(1)
Event Description: Inserted: PD 1f(e0x21/s23)
Event Description: Inserted: PD 1f(e0x21/s23) Info: enclPd=21, scsiType=0, portMap=10, sasAddr=5000c50034366199,5000c5003436619a
Event Description: Global Hot Spare created on PD 1f(e0x21/s23) (global,rev)
Event Description: Power state change on PD 1f(e0x21/s23) from ON(0) to POWERSAVE(1)
Event Description: Power state change on PD 1f(e0x21/s23) from POWERSAVE(1) to TRANSITION(ff)
Event Description: Power state change on PD 1f(e0x21/s23) from TRANSITION(ff) to ON(0)
Event Description: Inserted: PD 1f(e0x21/s23)
Event Description: Inserted: PD 1f(e0x21/s23) Info: enclPd=21, scsiType=0, portMap=10, sasAddr=5000c50034366199,5000c5003436619a
Event Description: Global Hot Spare created on PD 1f(e0x21/s23) (global,rev)
Event Description: Inserted: PD 1f(e0x21/s23)
Event Description: Inserted: PD 1f(e0x21/s23) Info: enclPd=21, scsiType=0, portMap=10, sasAddr=5000c50034366199,5000c5003436619a
Event Description: Global Hot Spare created on PD 1f(e0x21/s23) (global,rev)
Event Description: Power state change on PD 1f(e0x21/s23) from ON(0) to POWERSAVE(1)
Event Description: Inserted: PD 1f(e0x21/s23)
Event Description: Inserted: PD 1f(e0x21/s23) Info: enclPd=21, scsiType=0, portMap=10, sasAddr=5000c50034366199,5000c5003436619a
Event Description: Global Hot Spare created on PD 1f(e0x21/s23) (global,rev)
Event Description: Inserted: PD 1f(e0x21/s23)
Event Description: Inserted: PD 1f(e0x21/s23) Info: enclPd=21, scsiType=0, portMap=10, sasAddr=5000c50034366199,5000c5003436619a
Event Description: Global Hot Spare created on PD 1f(e0x21/s23) (global,rev)
Event Description: Power state change on PD 1f(e0x21/s23) from ON(0) to POWERSAVE(1)
Event Description: Global Hot Spare PD 1f(e0x21/s23) (global,rev) disabled
Event Description: State change on PD 1f(e0x21/s23) from HOT SPARE(2) to UNCONFIGURED_GOOD(0)
Event Description: Power state change on PD 1f(e0x21/s23) from POWERSAVE(1) to TRANSITION(ff)
Event Description: Global Hot Spare created on PD 1f(e0x21/s23) (global,rev)
Event Description: State change on PD 1f(e0x21/s23) from UNCONFIGURED_GOOD(0) to HOT SPARE(2)
Event Description: Power state change on PD 1f(e0x21/s23) from TRANSITION(ff) to ON(0)
Event Description: Power state change on PD 1f(e0x21/s23) from ON(0) to POWERSAVE(1)

Я связался с центром обработки данных и был проинформирован, что мигает индикатор на диске 10, поэтому я посмотрел на этот диск:

$ sudo /opt/MegaRAID/MegaCli/MegaCli64 -PDInfo -PhysDrv [33:10] -a0

Enclosure Device ID: 33
Slot Number: 10
Drive's postion: DiskGroup: 0, Span: 0, Arm: 10
Enclosure position: 1
Device Id: 18
WWN: 5000C500344D5940
Sequence Number: 2
Media Error Count: 0
Other Error Count: 0
Predictive Failure Count: 0
Last Predictive Failure Event Seq Number: 0
PD Type: SAS

Raw Size: 1.819 TB [0xe8e088b0 Sectors]
Non Coerced Size: 1.818 TB [0xe8d088b0 Sectors]
Coerced Size: 1.818 TB [0xe8d00000 Sectors]
Emulated Drive: No
Firmware state: Online, Spun Up
Commissioned Spare : No
Emergency Spare : No
Device Firmware Level: 0006
Shield Counter: 0
Successful diagnostics completion on :  N/A
SAS Address(0): 0x5000c500344d5941
SAS Address(1): 0x5000c500344d5942
Connected Port Number: 0(path0) 1(path1) 
Inquiry Data: SEAGATE ST32000444SS    00069WM6369D            
FDE Capable: Not Capable
FDE Enable: Disable
Secured: Unsecured
Locked: Unlocked
Needs EKM Attention: No
Foreign State: None 
Device Speed: 6.0Gb/s 
Link Speed: 6.0Gb/s 
Media Type: Hard Disk Device
Drive Temperature :26C (78.80 F)
PI Eligibility:  No 
Drive is formatted for PI information:  No
PI: No PI
Port-0 :
Port status: Active
Port's Linkspeed: 6.0Gb/s 
Port-1 :
Port status: Active
Port's Linkspeed: 6.0Gb/s 
Drive has flagged a S.M.A.R.T alert : No

Exit Code: 0x00

Я также пробовал использовать smartctl:

$ sudo smartctl -a -d megaraid,18 /dev/sdc

smartctl 5.43 2012-06-30 r3573 [x86_64-linux-2.6.32-358.11.1.el6.x86_64] (local build)
Copyright (C) 2002-12 by Bruce Allen, http://smartmontools.sourceforge.net

Vendor:               SEAGATE 
Product:              ST32000444SS    
Revision:             0006
User Capacity:        2,000,398,934,016 bytes [2.00 TB]
Logical block size:   512 bytes
Logical Unit id:      0x5000c500344d5943
Serial number:        9WM6369D0000914458SC
Device type:          disk
Transport protocol:   SAS
Local Time is:        Tue Feb 28 17:18:33 2017 CST
Device supports SMART and is Enabled
Temperature Warning Enabled
SMART Health Status: OK

Current Drive Temperature:     26 C
Drive Trip Temperature:        68 C
Manufactured in week 21 of year 2011
Specified cycle count over device lifetime:  10000
Accumulated start-stop cycles:  41
Specified load-unload count over device lifetime:  300000
Accumulated load-unload cycles:  41
Elements in grown defect list: 0
Vendor (Seagate) cache information
  Blocks sent to initiator = 3508224337
  Blocks received from initiator = 38846232
  Blocks read from cache and sent to initiator = 44013719
  Number of read and write commands whose size <= segment size = 2649500
  Number of read and write commands whose size > segment size = 4
Vendor (Seagate/Hitachi) factory information
  number of hours powered up = 45862.30
  number of minutes until next internal SMART test = 46

Error counter log:
           Errors Corrected by           Total   Correction     Gigabytes    Total
               ECC          rereads/    errors   algorithm      processed    uncorrected
           fast | delayed   rewrites  corrected  invocations   [10^9 bytes]  errors
read:   22540834        0         0  22540834   22540834        230.346           0
write:         0        0         0         0          0         20.012           0
verify: 161330204        1         0  161330205   161330205       1896.577           0

Non-medium error count:        0

[GLTSD (Global Logging Target Save Disable) set. Enable Save with '-S on']
No self-tests have been logged
Long (extended) Self Test duration: 18500 seconds [308.3 minutes]

Несоответствие, которое вы видите между представлением логического диска и представлением физических устройств, связано с тем, что ваш диск в слоте 23 настроен как глобальный Hotspare, поэтому он не назначен ни одному логическому диску и может подключиться как резервный к любому LD, если он перейдет в ухудшенное состояние. Таким образом, у вас есть 24 физических диска и 23 диска, назначенных LD 0 с одним Global Hotspare.

Что касается мигания красного светового индикатора на диске, вам следует уточнить в DC, какой это слот, а затем просмотреть подробную информацию об этом состоянии диска с помощью MegaCli -PDInfo -PhysDrv [E:S] -a0 где E - номер корпуса, а S - номер слота. Обычно мигающий красный свет свидетельствует о неизбежном отказе PFA / SMART, хотя фактический пробег может отличаться.

Кстати, используя grep проверять результаты дословно понятных для человека команд вывода, таких как MegaCli, - это привычка, которая в конечном итоге приведет к проблемам.