
Итак, ZFS сообщает о некоторых «проблемах чтения», поэтому, судя по всему, этот диск неисправен, исходя из того факта, что ничего не указано вЗФС-8000-9Потчеты о документах произошли, о которых мы знаем. Эти диски довольно новые, единственная проблема, с которой мы столкнулись недавно, была полная ZFS.
ZFS работает поверхLSI MegaRAID 9271-8i, все диски работают в режиме "raid 0" на диск. Я не очень хорошо знаком с этой картой raid, поэтому нашел скрипт, который возвращает данные, полученные из инструмента командной строки megacli. Я добавил 1 диск, чтобы показать настройку, они все настроены одинаково. (системные диски разные)
вывод статуса zpool
pool: data
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: none requested
config:
NAME STATE READ WRITE CKSUM
data ONLINE 0 0 0
raidz2-0 ONLINE 0 0 0
br0c2 ONLINE 0 0 0
br1c2 ONLINE 0 0 0
br2c2 ONLINE 0 0 0
br0c3 ONLINE 0 0 0
br1c3 ONLINE 0 0 0
br2c3 ONLINE 0 0 0
r2c1 ONLINE 0 0 0
r1c2 ONLINE 0 0 0
r5c3 ONLINE 0 0 0
sdb ONLINE 0 0 0
sdc ONLINE 0 0 0
sdd ONLINE 0 0 0
sde ONLINE 0 0 0
sdf ONLINE 0 0 0
sdg ONLINE 0 0 0
r3c1 ONLINE 0 0 0
r4c1 ONLINE 2 0 0
... cut raidz2-1 ...
errors: No known data errors
Вывод скрипта LSI
Virtual Drive: 32 (Target Id: 32)
Name :
RAID Level : Primary-0, Secondary-0, RAID Level Qualifier-0
Size : 3.637 TB
Sector Size : 512
Is VD emulated : No
Parity Size : 0
State : Optimal
Strip Size : 512 KB
Number Of Drives : 1
Span Depth : 1
Default Cache Policy: WriteBack, ReadAheadNone, Direct, No Write Cache if Bad BBU
Current Cache Policy: WriteBack, ReadAheadNone, Direct, No Write Cache if Bad BBU
Default Access Policy: Read/Write
Current Access Policy: Read/Write
Disk Cache Policy : Disk's Default
Encryption Type : None
PI type: No PI
Is VD Cached: No
Скрипт не сообщает о неисправном диске, а raidcontroller не отмечает диск как неисправный. Я нашел несколько других темошибка zpoolкоторый дал совет очистить ошибку и запустить очистку. Теперь мой вопрос, когда порог для запуска очистки, сколько времени это займет (предполагая, что этот zfs raid снизит производительность при запуске очистки) Также, когда этот диск действительно неисправен, будет ли горячая замена инициализировать "перестройку"? Все диски - "Western Digital RE 4 ТБ, SAS II, 32 МБ, 7200 об/мин, enterprise 24/7/365". Есть ли система, которая будет проверять ошибки zfs, поскольку это была просто обычная ручная проверка?
версия zfs: 0.6.4.1 zfsonlinux
Я знаю, что 2 ошибки чтения — это не предел, но я бы предпочел заменить диски пораньше, чем позже.
решение1
zfs scrub
это "система, которая будет проверять ошибки zfs". Это займет столько времени, сколько потребуется для чтения всех данных, хранящихся в томе (идет в последовательном порядке txg, поэтому может потребоваться много поиска, в зависимости от того, насколько заполнен пул и как были записаны данные). После запуска zfs status
покажет некоторую оценку. Запуск очистки можно остановить.
Если вы хотите что-то периодически проверять zpool status
, самый простой способ — запускать что-то вроде zpool status | grep -C 100 Status
periodic (раз в 6 часов) и отправлять по электронной почте вывод, если таковой имеется. Вы, вероятно, могли бы найти плагин для вашей любимой системы мониторинга, например, nagios. Или было бы довольно просто написать его самостоятельно.
Просто горячая замена диска не запустит resilver. Вам придется бежать, zfs replace
чтобы это произошло.
Ошибка чтения, которую вы видите, может быть просто какой-то неполадкой контроллера. Несмотря на то, что это корпоративное оборудование, эти контроллеры (HW RAID) иногда ведут себя странно. И эти ошибки могут быть, например, результатом слишком долгой команды — контроллер занят чем-то еще. Вот почему я стараюсь держаться от них подальше, если в этом нет необходимости.
Я бы проверил данные SMART на диске (см. man smartctl
) и очистил пул. Если оба выглядят нормально, очистите ошибки и не трогайте пул. Потому что если пул почти заполнен, чтение всех данных во время resilver может фактически вызвать еще одну ошибку. Начинайте паниковать, как только снова увидите ошибки на том же диске ;).
Кстати, для лучшей производительности следует использовать n^2+2 дисков в виртуальных устройствах RAIDZ2.
решение2
В этом случае я бы сделал то, что говорит ZFS.Пожалуйста, выполните очистку.
Я чищу свои системы еженедельно по графику. Я также используюzfswatcherдемон для мониторинга работоспособности установок Linux ZFS.
Ваш массив ZFS, вероятно, не настроен, поэтому есть некоторые значения, которые могут помочь улучшить производительность очистки, но на этом этапе вам следует просто запустить ее.
А что касается другого вопроса, то ваша горячая замена, вероятно, не будет делать того, чего вы ожидаете... См. тираду ниже.
тирада:
Наличие нескольких виртуальных дисков RAID-0 за аппаратным контроллером — плохая идея!
У вас худшее из обоих миров. Восстанавливаемость и проверка ошибок ограничены. Неисправный диск по сути является неисправным виртуальным диском, и есть последствия горячей замены. Допустим, вы удаляете диск(и) из-за проблем. Вам, вероятно, придется создать новый виртуальный диск или вы можете получить другой список дисков.
В определенный момент лучше приобрести настоящий HBA и запустить диски как транзитные устройства (без метаданных RAID) илипросто запустите ZFS поверх виртуальных устройств, защищенных аппаратными массивами.Например, запустите RAID-6 на вашем контроллере и установите ZFS поверх. Или запустите несколько групп RAID-X и сделайте так, чтобы ZFS зеркалировала или чередовала полученные vdev.