Конфигурирование и перепрошивка Firmware 9690SA-4I
1. 3ware 9690SA-4I и BSOD. Пропадают диски в 9690SA-4I .
В моём случае raid 9690SA-4I вёл себя таким образом. Внезапно, во время активности HDD, или после ребута пропадали винты с сообщением:
-
disk read error occurred.
Press Ctrl + Alt + Del to restart
Появлялись они только после выключения сервера или выключения питания на пару сек. В логах перед падением сервера в BSOD появлялись ошибки про 3ware raid типа AEN 0x8: unit=0 , а при запуске утилиты tw_cli.exe.
-
tw_cli.exe show diag
сыпалась куча ошибок такого вида:
040A170, segID=0x32, events=8, error=0x0)
DcbMgr::WriteSegment(map=0xC040A100, segID=0x32, events=8, error=0x0)
DcbMgr::WriteSegment(map=0xC040A0A8, segID=0x32, events=8, error=0x0)
DcbMgr::WriteSegment(map=0xC040A150, segID=0x32, events=8, error=0x0)
DcbMgr::WriteSegment(map=0xC040A150, segID=0x32, events=8, error=0x0)
DcbMgr::WriteSegment(map=0xC040A170, segID=0x32, events=8, error=0x0)
Send AEN (code, time): 0031h, 08/05/2011 13:05:55
Synchronize host/controller time
(EC:0x31, SK=0x00, ASC=0x00, ASCQ=0x00, SEV=04, Type=0x71)
DcbMgr::WriteSegment(map=0xC040A150, segID=0x32, events=8, error=0x0)
DcbMgr::WriteSegment(map=0xC040A100, segID=0x32, events=8, error=0x0)
.
.
.
.
.
DcbMgr::WriteSegment(map=0xC040A130, segID=0x32, events=8, error=0x0)
DcbMgr::WriteSegment(map=0xC040A150, segID=0x32, events=8, error=0x0)
Send AEN (code, time): 0031h, 08/05/2011 13:55:45
Synchronize host/controller time
(EC:0x31, SK=0x00, ASC=0x00, ASCQ=0x00, SEV=04, Type=0x71)
DcbMgr::WriteSegment(map=0xC040A170, segID=0x32, events=8, error=0x0)
DcbMgr::WriteSegment(map=0xC040A100, segID=0x32, events=8, error=0x0)
.
.
.
.
DcbMgr::WriteSegment(map=0xC040A100, segID=0x32, events=8, error=0x0)
DcbMgr::WriteSegment(map=0xC040A170, segID=0x32, events=8, error=0x0)
DcbMgr::WriteSegment(map=0xC040A100, segID=0x32, events=8, error=0x0)
Send AEN (code, time): 0031h, 08/05/2011 14:45:36
Synchronize host/controller time
(EC:0x31, SK=0x00, ASC=0x00, ASCQ=0x00, SEV=04, Type=0x71)
DcbMgr::WriteSegment(map=0xC040A100, segID=0x32, events=8, error=0x0)
DcbMgr::WriteSegment(map=0xC040A170, segID=0x32, events=8, error=0x0)
Send AEN (code, time): 0031h, 08/05/2011 15:35:26
Synchronize host/controller time
(EC:0x31, SK=0x00, ASC=0x00, ASCQ=0x00, SEV=04, Type=0x71)
DcbMgr::WriteSegment(map=0xC040A100, segID=0x32, events=8, error=0x0)
DcbMgr::WriteSegment(map=0xC040A100, segID=0x32, events=8, error=0x0)
DcbMgr::WriteSegment(map=0xC040A138, segID=0x32, events=8, error=0x0)
DcbMgr::WriteSegment(map=0xC040A170, segID=0x32, events=8, error=0x0)
DcbMgr::WriteSegment(map=0xC040A090, segID=0x32, events=8, error=0x0)
DcbMgr::WriteSegment(map=0xC040A100, segID=0x32, events=8, error=0x0)
DcbMgr::WriteSegment(map=0xC040A100, segID=0x32, events=8, error=0x0)
Send AEN (code, time): 0031h, 08/05/2011 16:25:19
Synchronize host/controller time
(EC:0x31, SK=0x00, ASC=0x00, ASCQ=0x00, SEV=04, Type=0x71)
DcbMgr::WriteSegment(map=0xC040A150, segID=0x32, events=8, error=0x0)
DcbMgr::WriteSegment(map=0xC040A170, segID=0x32, events=8, error=0x0)
DcbMgr::WriteSegment(map=0xC040A100, segID=0x32, events=8, error=0x0)
.
.
.
.
.
DcbMgr::WriteSegment(map=0xC040A100, segID=0x32, events=8, error=0x0)
DcbMgr::WriteSegment(map=0xC040A100, segID=0x32, events=8, error=0x0)
DcbMgr::WriteSegment(map=0xC040A150, segID=0x32, events=8, error=0x0)
DcbMgr::WriteSegment(map=0xC040A170, segID=0x32, events=8, error=0x0)
Send AEN (code, time): 0031h, 08/05/2011 17:16:15
Synchronize host/controller time
(EC:0x31, SK=0x00, ASC=0x00, ASCQ=0x00, SEV=04, Type=0x71)
Send AEN (code, time): 0031h, 08/05/2011 18:06:06
Synchronize host/controller time
(EC:0x31, SK=0x00, ASC=0x00, ASCQ=0x00, SEV=04, Type=0x71)
Send AEN (code, time): 0031h, 08/05/2011 18:55:58
Synchronize host/controller time
(EC:0x31, SK=0x00, ASC=0x00, ASCQ=0x00, SEV=04, Type=0x71)
Send AEN (code, time): 0031h, 08/05/2011 19:45:50
Synchronize host/controller time
(EC:0x31, SK=0x00, ASC=0x00, ASCQ=0x00, SEV=04, Type=0x71)
Send AEN (code, time): 0031h, 08/05/2011 20:35:42
Synchronize host/controller time
(EC:0x31, SK=0x00, ASC=0x00, ASCQ=0x00, SEV=04, Type=0x71)
Send AEN (code, time): 0031h, 08/05/2011 21:25:32
Synchronize host/controller time
(EC:0x31, SK=0x00, ASC=0x00, ASCQ=0x00, SEV=04, Type=0x71)
Send AEN (code, time): 0031h, 08/05/2011 22:16:32
Synchronize host/controller time
(EC:0x31, SK=0x00, ASC=0x00, ASCQ=0x00, SEV=04, Type=0x71)
Send AEN (code, time): 0031h, 08/05/2011 23:06:23
Synchronize host/controller time
(EC:0x31, SK=0x00, ASC=0x00, ASCQ=0x00, SEV=04, Type=0x71)
Send AEN (code, time): 0031h, 08/05/2011 23:56:14
Synchronize host/controller time
(EC:0x31, SK=0x00, ASC=0x00, ASCQ=0x00, SEV=04, Type=0x71)
SELF TEST: drive #0: SMART check passed;
SELF TEST: drive #1: SMART check passed;
SELF TEST: drive #2: SMART check passed;
SELF TEST: drive #3: SMART check passed;
SELF TEST: drive #4: no drive present.
SELF TEST: drive #5: no drive present.
SELF TEST: drive #6: no drive present.
SELF TEST: drive #7: no drive present.
.
.
.
Анализ дампа памяти, сделанного при BSOD, ничего информативного не дал
-
Probably caused by : ntkrnlmp.exe ( nt!RtlMoveMemory+2c0 )
Followup: MachineOwner
Решение было таким:
Текущую прошивку Firmware Version = FH9X 4.08.00.006 заменить на младшую Firmware Version = FH9X 4.06.00.004. С помощью утилиты tw_cli.exe это и сделал.
-
/c0 update fw=filename_with_path
Тоже самое можно проделать удалённо с помощью Powershell
-
winrs -r:ИмяХоста c:\3ware\cli\tw_cli.exe /c0 update fw=c:\3ware\CLI\OldFirmware\FW-4.06.00.004.img
Перезагрузил и ОК.
2 . Включение кеша
Без кеша, рейд значительно медленно работает. При копировании больших объёмов замечал такою ситуацию. Копирую *.vhd фалй размером больше 100 гб по 1гб\сек сети, с помощью скрипта. Начинает заполняться оперативная память(так как её у меня было 36Гб). По завершению копирования, скрипт монтирует файл как диск в ОС, но на этом моменте ошибка, так как файл не полностью скопирован, чась его в оперативке. Включив кешь, проблема исчезла.
-
tw_cli.exe /c0/u0 set cache=on
tw_cli.exe /c0/u0 set wcache=on
tw_cli.exe /c0/u0 set rcache=on
Проверить результат можно так:
-
tw_cli.exe /c0 show all
p.s Для включения кеша, желательно исползовать ботарейку, но и без неё мои сервера пару раз падали по питанию. Потерь данных не наблюдал.
Так как у меня серверов много и они в домене я написал полуавтоматизированный скрипт на Powershell и удалённо исполнял его руками с одного сервера, учитывая наличие утилиты на всех серверах.
-
invoke-command -filepath c:\scripts\CacheOn.ps1 -computerName ServerName
СacheOn.ps1
-
$Logfile = "c:\3ware\CLI\Script\log.txt"
echo Started on %COMPUTERNAME% ">> $Logfile
c:\3ware\CLI\tw_cli.exe /c0/u0 set cache=on >> $Logfile
c:\3ware\CLI\tw_cli.exe /c0/u0 set wcache=on >> $Logfile
c:\3ware\CLI\tw_cli.exe /c0/u0 set rcache=on >> $Logfile
c:\3ware\CLI\tw_cli.exe /c0 show all >> $Logfile
Исключить битый диск из массива
-
/cx/px remove
Что бы не ошибится, какой физический диск вытаскивать запустим identify=on. По идее диск должен мигать лампами как ёлка.
-
PS C:\3ware\CLI> .\tw_cli.exe /c0/p1 set identify=on
Setting port Identify on /c0/p1 to [on] ... N/A
PS C:\3ware\CLI> .\tw_cli.exe /c0/p1 set dpmstat=clear
Clearing Drive Performance Monitor running average data on/c0/p1 ... Done.
Please note this clears the Running Average and Histogram data.
-
PS C:\3ware\CLI10.0\x64> .\tw_cli.exe /c0 rescan
Rescanning controller /c0 for units and drives ...Done.
Found the following unit(s): [none].
Found the following drive(s): [/c0/p1].
Запуск ребилда нового диска:
-
PS C:\3ware\CLI10.0\x64> .\tw_cli.exe /c0/u0 start rebuild disk=1
Sending rebuild start request to /c0/u0 on 1 disk(s) [1] ... Done.
Проверка состояния:
-
PS C:\3ware\CLI10.0\x64> .\tw_cli.exe /c0/u0 show
Unit UnitType Status %RCmpl %V/I/M VPort Stripe Size(GB)
------------------------------------------------------------------------
u0 RAID-5 REBUILDING 2% - - 256K 824.188
u0-0 DISK OK - - p0 - 274.729
u0-1 DISK DEGRADED - - p1 - 274.729
u0-2 DISK OK - - p2 - 274.729
u0-3 DISK OK - - p3 - 274.729
u0/v0 Volume - - - - - 824.188
Скачать:
Утилита для конфигурирования и мониторинга рейда 3ware 9690SA
Версия провки FW-4.06.00.004
Сайт производителя LSI (3ware)