Ошибки контрольной суммы ZFS, когда я заменяю диск?

9

Я довольно новичок в ZFS, и у меня есть простая настройка зеркального пула хранения с 8 дисками. После нескольких недель работы один диск, по-видимому, генерировал много ошибок, поэтому я заменил его.

Проходит еще несколько недель, и теперь я вижу небольшие ошибки по всему пулу (см. zpool statusВывод ниже). Должен ли я беспокоиться об этом? Как определить, указывает ли ошибка на необходимость замены накопителя?

# zpool status
  pool: storage
 state: ONLINE
status: One or more devices has experienced an unrecoverable error.  An
        attempt was made to correct the error.  Applications are unaffected.
action: Determine if the device needs to be replaced, and clear the errors
        using 'zpool clear' or replace the device with 'zpool replace'.
   see: http://zfsonlinux.org/msg/ZFS-8000-9P
  scan: scrub repaired 22.5K in 1h18m with 0 errors on Sun Jul 10 03:18:42 2016
config:

        NAME        STATE     READ WRITE CKSUM
        storage     ONLINE       0     0     0
          mirror-0  ONLINE       0     0     0
            enc-a   ONLINE       0     0     2
            enc-b   ONLINE       0     0     0
          mirror-1  ONLINE       0     0     0
            enc-c   ONLINE       0     0     0
            enc-d   ONLINE       0     0     2
          mirror-2  ONLINE       0     0     0
            enc-e   ONLINE       0     0     2
            enc-f   ONLINE       0     0     1
          mirror-3  ONLINE       0     0     0
            enc-g   ONLINE       0     0     0
            enc-h   ONLINE       0     0     3

errors: No known data errors

ZFS услужливо говорит мне: «Определите, нужно ли заменить устройство ...», но я не уверен, как это сделать. Я прочитал ссылочную статью, которая была полезной, но не совсем убедительной.

Я посмотрел на результаты теста SMART для задействованных накопителей, и у меня ничего не вышло (все тесты были выполнены без ошибок), но я также могу опубликовать данные SMART, если это будет полезно.

Обновление: при подготовке к перезагрузке в Memtest86 + я заметил много ошибок на консоли. Обычно я в SSH, поэтому раньше их не видел. Я не уверен, какой журнал я должен был проверять, но весь экран был заполнен ошибками, которые выглядят так (не моя точная строка ошибки, я просто скопировал это с другого форума):

blk_update_request: I/0 error, dev sda, sector 220473440

От некоторых Google, кажется, эта ошибка может указывать на плохой диск, но мне трудно поверить, что все они терпят неудачу сразу, как это. Мысли о том, куда идти отсюда?

Обновление 2: я столкнулся с этой проблемой ZOL, которая, кажется, может быть связана с моей проблемой. Как и операционная система, я использую hdparm, чтобы раскрутить свои диски, и я вижу похожие ошибки и blk_update_requestошибки контрольной суммы ZFS . На моей машине все еще работает Memtest, поэтому я не могу проверить свое ядро ​​или версию ZFS, но это, по крайней мере, похоже на возможность. Я также видел этот похожий вопрос, который отчасти обескураживает. Кто-нибудь знает проблемы с ZFS и раскруткой дисков?

Обновление 3. Может ли несовместимая версия прошивки и драйвера на контроллере LSI вызвать подобные ошибки? Похоже, я использую версию драйвера 20.100.00.00 и версию прошивки 17.00.01.00. Стоит ли пытаться прошить обновленную прошивку на карту?

# modinfo mpt2sas
filename:       /lib/modules/3.10.0-327.22.2.el7.x86_64/kernel/drivers/scsi/mpt2sas/mpt2sas.ko
version:        20.100.00.00
license:        GPL
description:    LSI MPT Fusion SAS 2.0 Device Driver
author:         Avago Technologies <MPT-FusionLinux.pdl@avagotech.com>
rhelversion:    7.2
srcversion:     FED1C003B865449804E59F5

# sas2flash -listall
LSI Corporation SAS2 Flash Utility
Version 20.00.00.00 (2014.09.18) 
Copyright (c) 2008-2014 LSI Corporation. All rights reserved 

    Adapter Selected is a LSI SAS: SAS2308_2(D1) 

Num   Ctlr            FW Ver        NVDATA        x86-BIOS         PCI Addr
----------------------------------------------------------------------------

0  SAS2308_2(D1)   17.00.01.00    11.00.00.05    07.33.00.00     00:04:00:00

Обновление 4: появилось еще несколько ошибок в dmesgвыводе. Я не уверен, что это вызвало, но я заметил их после размонтирования всех дисков в массиве при подготовке к обновлению прошивки контроллера LSI. Я подожду немного, чтобы увидеть, решило ли обновление прошивки проблему, но пока что есть ошибки. Я не совсем уверен, что они имеют в виду.

[87181.144130] sd 0:0:2:0: [sdc] FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_OK
[87181.144142] sd 0:0:2:0: [sdc] CDB: Write(10) 2a 00 35 04 1c d1 00 00 01 00
[87181.144148] blk_update_request: I/O error, dev sdc, sector 889461969
[87181.144255] sd 0:0:3:0: [sdd] FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_OK
[87181.144259] sd 0:0:3:0: [sdd] CDB: Write(10) 2a 00 35 04 1c d1 00 00 01 00
[87181.144263] blk_update_request: I/O error, dev sdd, sector 889461969
[87181.144371] sd 0:0:4:0: [sde] FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_OK
[87181.144375] sd 0:0:4:0: [sde] CDB: Write(10) 2a 00 37 03 87 30 00 00 08 00
[87181.144379] blk_update_request: I/O error, dev sde, sector 922978096
[87181.144493] sd 0:0:5:0: [sdf] FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_OK
[87181.144500] sd 0:0:5:0: [sdf] CDB: Write(10) 2a 00 37 03 87 30 00 00 08 00
[87181.144505] blk_update_request: I/O error, dev sdf, sector 922978096
[87191.960052] sd 0:0:6:0: [sdg] FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_OK
[87191.960063] sd 0:0:6:0: [sdg] CDB: Write(10) 2a 00 36 04 18 5c 00 00 01 00
[87191.960068] blk_update_request: I/O error, dev sdg, sector 906238044
[87191.960158] sd 0:0:7:0: [sdh] FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_OK
[87191.960162] sd 0:0:7:0: [sdh] CDB: Write(10) 2a 00 36 04 18 5c 00 00 01 00
[87191.960179] blk_update_request: I/O error, dev sdh, sector 906238044
[87195.864565] sd 0:0:0:0: [sda] FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_OK
[87195.864578] sd 0:0:0:0: [sda] CDB: Write(10) 2a 00 37 03 7c 68 00 00 20 00
[87195.864584] blk_update_request: I/O error, dev sda, sector 922975336
[87198.770065] sd 0:0:1:0: [sdb] FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_OK
[87198.770078] sd 0:0:1:0: [sdb] CDB: Write(10) 2a 00 37 03 7c 88 00 00 20 00
[87198.770084] blk_update_request: I/O error, dev sdb, sector 922975368

Обновление 5: Я обновил прошивку для контроллера LSI, но после очистки ошибок ZFS и очистки, я вижу то же самое поведение (незначительные ошибки контрольной суммы на нескольких дисках). Следующим шагом будет обновление прошивки на самих дисках.

Обновление 6: Я заменил переходник PCI после прочтения на некоторых форумах, что у других людей, имеющих дело с U-NAS NSC800, были проблемы с предоставленным переходником. Не было никакого влияния на ошибки контрольной суммы. Я откладывал обновление прошивки жесткого диска, потому что процесс такой боли, но я думаю, пришло время смириться с этим и сделать загрузочную флешку DOS.

Обновление 7: я обновил прошивку на трех дисках Seagate. На других дисках либо не было доступно обновление прошивки, либо я не смог его получить (Western Digital сказал мне, что для моего диска не было обновления прошивки). Никаких ошибок не возникло после первоначальной очистки, но я собираюсь дать ей хотя бы неделю или две, прежде чем сказать, что это решило проблему. Мне кажется маловероятным, что прошивка на трех дисках может повлиять на весь пул, как это.

Обновление 8: ошибки контрольной суммы вернулись, как и раньше. Я мог бы посмотреть обновление прошивки для материнской платы, но в данный момент я в растерянности. Заменить оставшиеся физические компоненты (контроллер, объединительную плату, кабели) будет трудно / дорого, и я просто не уверен на 100%, что это не проблема с моей настройкой (ZFS + Linux + LUKS + вращение незанятых дисков). Любые другие идеи приветствуются.

Обновление 9: Все еще пытаюсь отследить это. Я столкнулся с этим вопросом, который имел некоторые сходства с моей ситуацией. Итак, я пошел дальше и перестроил zpool, используя, ashift=12чтобы увидеть, решит ли это проблему (не повезло). Затем я укусил пулю и купил новый контроллер. Я только что установил плату HBA Supermicro AOC-SAS2LP-MV8 . Я дам неделю или две, чтобы посмотреть, решит ли это проблему.

Обновление 10: просто чтобы закрыть это. Прошло около 2 недель с тех пор, как появилась новая карта HBA, и, рискуя ее сглазить, с тех пор у меня не было ошибок контрольной суммы. Огромное спасибо всем, кто помог мне разобраться с этим.

Доминик П
источник
2
Можете ли вы рассказать нам больше об оборудовании? Наличие этих ошибок на нескольких дисках, кажется, указывает на проблему объединительной платы / контроллера / кабельной системы больше, чем проблема диска.
ewwhite
Я не думал об этом. Диски находятся в корпусе U-NAS NSC-800, который поставляется со встроенной объединительной платой SATA / SAS. Он подключен через 2 разъема mini-sas к адаптеру LSI SAS 9207-8i . Он подключен через переходную шину PCI, поставляемую с шасси к Supermicro MBD-X10SDV-4C .
Доминик П,
1
С вашей оперативной памятью все в порядке? У меня были подобные ошибки, когда модуль памяти был неисправен - никаких ошибок на диске, но некоторое (небольшое) количество ошибок контрольной суммы на всех дисках.
user121391
1
То, что, скорее всего, контроллер на данный момент явно очевиден. На самом деле это было явно очевидно некоторое время назад, с «Обновлением 4».
Майкл Хэмптон
1
Добро пожаловать @ hak8or. Люди на этом сайте очень помогли мне, поэтому приятно слышать, что мой пример может помочь кому-то еще.
Доминик П

Ответы:

6

Наличие этих ошибок на нескольких дисках, кажется, указывает на проблему объединительной платы / контроллера / кабельной системы больше, чем на диск или на ОЗУ.

ewwhite
источник
Спасибо за помощь. Я не могу поменять все эти компоненты в данный момент. У вас есть предложение о том, как я могу сузить его или каков может быть наиболее вероятный виновник?
Доминик П
Попробуйте обновления прошивки всех задействованных компонентов. Это диски SATA?
ewwhite
Сделаю, спасибо. Я начну с обновления прошивки на контроллере, потому что я видел в других местах, что версии прошивки и драйвера должны совпадать (см. Обновление 3 на мой вопрос). Да, это все диски SATA емкостью 1 ТБ, и я помню, smartctlчто там было указано обновление прошивки для некоторых дисков Seagate, которые я использую, поэтому я тоже обновлю их.
Доминик П
7

Мое общее правило таково: если ошибки продолжают неожиданно увеличиваться, диск необходимо заменить; если он статический, возможно, возникло какое-то временное состояние, вызвавшее ошибку, и система не воспроизводит условия, вызвавшие проблемы.

Несколько ошибок контрольной суммы не обязательно указывают на что-то плохое механически с диском (происходит гниение, ZFS просто обнаруживает это, в то время как другие файловые системы этого не делают), но если эти ошибки произошли в течение часа, то это ситуация совершенно иная, чем если бы они произошли в течение года.

Шейн Мэдден
источник