A disk’s temperature exceeded the limits established by its manufacturer.

После этой ошибки zpool выбросил сбойный диск из пула. Очень странная ошибка. Смотрим smart данного диска:

# smartctl -d scsi -a /dev/rdsk/c6t5000C50056DFD131d0s0
...
Current Drive Temperature:     42 C
Drive Trip Temperature:        40 C
...

Примечание.

Его можно посмотреть, только тогда, когда он будет доступен в пуле. То есть его нужно засунуть обратно в пул через fmadm repaired.

Речь идёт о дисках SAS ))

В гугле находим небольшое описание проблемы: http://www.bigdatajunkie.com/index.php/10-hardware/19-seagate-constellation-es-3-firmware-0003 . Оказывается, проблема в прошивке 0003. Решение приходит соответствующее: найти прошивку поновее и прошить диски. Идём сразу по URL https://apps1.seagate.com/downloads/request.html , вводим серийный номер диска (правильный серийник мне удалось узнать через утилиту sas2ircu; пример — Z1Y0B1H6) и получаем список необходимого ПО для вашего диска. На период написания статьи самая последняя прошивка была 0004. Скачиваем

Обновление встроенного ПО - Constellation ES.3 SAS

Так же, в самом верху нужно обратить внимание на Part Number (позже, на его основе и будет выбрана нужная прошивка). В моём случае он был таким

Номер детали (PN): 9ZM278-003

В скачанном архиве находим подпапки firmware и в ней 2 прошивки: MegalodonES3-SAS-SED-0004.LOD и MegalodonES3-SAS-STD-0004.LOD. Какую же из них выбрать? Ниже таблица из мануала (напомню, у нас PN 9ZM278)

Model#        Part#   Type    Firmware file to use
ST1000NM0023  9ZM273  STD  MegalodonES3-SAS-STD-0004.LOD
ST2000NM0023  9ZM275  STD  MegalodonES3-SAS-STD-0004.LOD
ST3000NM0023  9ZM278  STD  MegalodonES3-SAS-STD-0004.LOD
ST4000NM0023  9ZM270  STD  MegalodonES3-SAS-STD-0004.LOD
ST1000NM0043  1C1273  SED  MegalodonES3-SAS-SED-0004.LOD
ST2000NM0043  1C1275  SED  MegalodonES3-SAS-SED-0004.LOD
ST3000NM0043  1C1278  SED  MegalodonES3-SAS-SED-0004.LOD
ST4000NM0043  1C1270  SED  MegalodonES3-SAS-SED-0004.LOD
STD   Standard
SED   Self Encrypting Drive

Немного забегая наперёд, скажу, что если выберете не ту прошивку, утилита просто ругнёться и не даст прошить (возможно в вашем случае исход можем быть другим, будьте внимательны). Открываем Readme в архиве и смотрим: для нашего Part number подходит прошивка *-STD-*. Осталось дело за малым — прошить диск.
В архиве утилиты прошивки только под Linux, а у меня Solaris. Как-то не охота ребутаться, грузится с LiveCD, прошивать и потом обратно в Solaris (опять забегая наперёд, это стал единственный метод после нескольких проб), поэтому решил поискать варианты прошивки под Solaris.

fwflash — стандартная утилиты для прошивки дисков. Но прошить через неё не удалось, так как ругается, что превышен максимальный размер прошивки в 1.4Мб (а прошивка занимает 1.6Мб)

fwdl — нашёл на просторах сети эту утилиту, собрал под Solaris, запустил — error.

sg_write_buffer из пакета sg3_utils — тоже не захотела прошивать.

И так, выходи один — делать всё это из-под Linux’a. Ищем LiveCD на борту со smartmontools (я выбрал Gpated Live CD amd64), грузимся с него, назначаем IP/GW, запускаем screen (ибо там только одна консоль и переключиться на другие — нельзя), копируем на него распакованный (потому что архив в формате zip, а unzip’a там нету) архив ConstellationES3-Megalodon-SAS-0004 и приступаем к прошивке. Напомню, что наши диски будут видны как /dev/sgXX. Далее, через smartctl определяем нужные диски для прошивки:

# smartctl -a /dev/sg2 | egrep 'Rev|Prod'
Revision 0003
Product ST3000NM0023

Наш клиент. Приступаем к прошивке (сама утилита для прошивки seaflashlin-0.3.6_64):

# chmod +x "ConstellationES3-Megalodon-SAS-0004/linux cli tools/seaflashlin-0.3.6_64"
# ConstellationES3-Megalodon-SAS-0004/linux\ cli\ tools/seaflashlin-0.3.6_64 -f ConstellationES3-Megalodon-SAS-0004/firmware/MegalodonES3-SAS-STD-0004.LOD -d /dev/sg2
Downloading file MegalodonES3-SAS-STD-0004.LOD
....
Download SUCCESSFUL

И так прошиваем все диски: сначала смотрим через smartctl номер Rev и только тогда прошиваем. Напомню, что данная прошивка годится лишь для дисков, у которых текущая прошивка 000X. В противном случае можете сделать из диска кирпич.

После прошивок всех дисков, ОБЯЗАТЕЛЬНО выключаем сервер (перезагрузки недостаточно). И потом включаем и смотрим, что наша прошивка изменилась:

# smartctl -d scsi -a /dev/rdsk/c6t5000C50056DFD131d0s0 | egrep 'Prod|Rev|Temp'
Product:              ST3000NM0023
Revision:             0004
Temperature Warning:  Enabled
Current Drive Temperature:     33 C
Drive Trip Temperature:        60 C

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *