Comments 99
P.S: Может кто-нить знает как выключить его под виндой?
Бипер в реальной жизни — глупость, его чаще всего не слышно среди остальных серверов, а даже если слышно, то не понятно, какой именно из серверов в стойке пищит.
В качестве HBA я пока на LSI'ках остановился, но это от безысходности. Народ ещё 3ware хвалит, сам я не щупал.
И, к слову, неплохо справляется со своей обязанностью.
На практике у меня ни разу в него не упиралось. Куда заметнее, что он грузит шину (например, 4 диска SATA — значит, при записи на 1+0 запись идёт сразу на 4 диска, что уже может полностью занять всю пропускную способность PCI)
Кстати, я переформулирую вопрос core: а какие контроллеры для дисков используются (при условии, что в RAID они будут собираться софтварный)? У нас на практике диски висят на Fusion MPT SAS, но может это плохой выбор?
покупаем новые диски разворачиваем данные с бэкапа, те старые диски идут на полку — до лучших времён, когда тестируем, а ошибок на них я так и не смог найти ни в смарт ни с пом. mhdd.
вот и лежит пара 1.5Тб вроде и целых, а мирных целях использоваться страшно.
gw merlin # smartctl -l scterc /dev/sda
smartctl version 5.38 [x86_64-pc-linux-gnu] Copyright © 2002-8 Bruce Allen
Home page is smartmontools.sourceforge.net/
=======> INVALID ARGUMENT TO -l: scterc
=======> VALID ARGUMENTS ARE: error, selftest, selective, directory, background, scttemp[sts|hist] <=======
Use smartctl -h to get a usage summary
smartctl 5.40 2010-07-12 r3124 [i686-pc-linux-gnu] (local build)
На нем все работает.
# smartctl -l scterc,1000,1000 /dev/ad10
smartctl 5.40 2010-10-16 r3189 [FreeBSD 8.2-STABLE amd64] (local build)
Copyright © 2002-10 by Bruce Allen, smartmontools.sourceforge.net
=======> INVALID ARGUMENT TO -l: scterc,1000,1000
=======> VALID ARGUMENTS ARE: error, selftest, selective, directory[,g|s], background, scttemp[sts|hist], scterc[,N,M], sasphy[,reset], sataphy[,reset], gplog,N[,RANGE], smartlog,N[,RANGE], xerror[,N][,error], xselftest[,N][,selftest] <=======
=======> Option -l scterc,[READTIME,WRITETIME] syntax error
Use smartctl -h to get a usage summary
# smartctl -l scterc,120,120 /dev/ad10
smartctl 5.40 2010-10-16 r3189 [FreeBSD 8.2-STABLE amd64] (local build)
Copyright © 2002-10 by Bruce Allen, smartmontools.sourceforge.net
SCT Error Recovery Control:
Read: 57345 (5734.5 seconds)
Write: 57345 (5734.5 seconds)
SCT-ERC-Command does will not survive a power cycle.
Поэтому можно настроить задание таймаутов где-нибудь при старте системы или прямо в udev
SCT Error Recovery Control:
Read: 57345 (5734.5 seconds)
Write: 57345 (5734.5 seconds)
Какие то большие цифры слишком.
Для RAID по рекомендациям из статьи следует уменьшить до 100 получается.
gw merlin # smartctl -a /dev/sda smartctl 5.40 2010-10-16 r3189 [x86_64-pc-linux-gnu] (local build) Copyright © 2002-10 by Bruce Allen, http://smartmontools.sourceforge.net Device: SEAGATE ST3500620SS Version: 0001 Serial number: 3QM00TLJ00008817EVD4 Device type: disk Transport protocol: SAS Local Time is: Tue Aug 2 13:16:13 2011 MSD Device supports SMART and is Enabled Temperature Warning Enabled SMART Health Status: OK Current Drive Temperature: 41 C Drive Trip Temperature: 68 C Elements in grown defect list: 0 Vendor (Seagate) cache information Blocks sent to initiator = 1813824591 Blocks received from initiator = 3355975879 Blocks read from cache and sent to initiator = 1240205903 Number of read and write commands whose size <= segment size = 521982773 Number of read and write commands whose size > segment size = 5 Vendor (Seagate/Hitachi) factory information number of hours powered up = 19151.00 number of minutes until next internal SMART test = 6 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: 2162328582 36413 0 2162364995 2162364995 25127.652 0 write: 0 0 0 0 0 6166.241 0 verify: 128126 0 0 128126 128126 0.000 0 Non-medium error count: 6 SMART Self-test log Num Test Status segment LifeTime LBA_first_err [SK ASC ASQ] Description number (hours) # 1 Background long Completed - 4529 - [- - -] Long (extended) Self Test duration: 6798 seconds [113.3 minutes]
Команды типа smartctl -l scterc /dev/sda выполняются, но никакой информации не выдают. Ни ошибки, ничего.
Как про них узнать поподробнее?
AWRE 1 [cha: y, def: 1, sav: 1] Automatic write reallocation enabled ARRE 1 [cha: y, def: 1, sav: 1] Automatic read reallocation enabled EER 0 [cha: y, def: 0, sav: 0] Enable early recovery DTE 0 [cha: y, def: 0, sav: 0] Data terminate on error DCR 0 [cha: y, def: 0, sav: 0] Disable correction RRC 11 [cha: y, def: 11, sav: 11] Read retry count WRC 5 [cha: y, def: 5, sav: 5] Write retry count RTL -1 [cha: y, def: -1, sav: -1] Recovery time limit (ms)
смысл понятен из описаний.
Вообще, sas-диск куда тоньше настраивается. Всего настраиваемых параметров там примерно в пять раз больше, чем здесь перечислено.
Например, из статьи следует, что консистентный массив должен работать с небольшими значениями, типа 60/60. Но как раз когда массив деградировал, на остальных дисках есть смысл выключить ERC (0/0), чтобы при собственно перестроении массива он с выживших дисков считывал информацию до последнего — таким образом, меньше шансов, что в процессе реконструкции RAID5 умрёт окончательно.
Диск же сам никак не сможет узнать, что массив, в котором он участвует, деградировал и сейчас нужно считывать тяжёлые блоки до последнего, а не выдавать сбой через пять секунд неудачных попыток, нужен способ ему об этом сказать. Так вот, не может быть, чтобы в «домашних» дисках «домашнего» интерфейса SATA такой способ был, а в «профессиональных» с «профессиональным» же интерфейсом SAS — не было.
ошибаетесь, это возможно:
xen0 merlin # smartctl -a -d cciss,0 /dev/cciss/c0d0 smartctl version 5.38 [x86_64-pc-linux-gnu] Copyright © 2002-8 Bruce Allen Home page is http://smartmontools.sourceforge.net/ Device: HP DG072BABCE Version: HPD5 Serial number: BSA5P8702STJ0830 Device type: disk Transport protocol: SAS Local Time is: Tue Aug 2 13:37:20 2011 MSD Device supports SMART and is Enabled Temperature Warning Enabled SMART Health Status: OK Current Drive Temperature: 38 C Drive Trip Temperature: 65 C Manufactured in week 30 of year 2008 Recommended maximum start stop count: 50000 times Current start stop count: 47 times Elements in grown defect list: 0 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: 0 0 0 0 0 0.000 0 write: 0 0 0 0 0 0.000 0 Non-medium error count: 115 No self-tests have been logged Long (extended) Self Test duration: 1142 seconds [19.0 minutes] xen0 merlin # smartctl -a -d cciss,4 /dev/cciss/c0d0 smartctl version 5.38 [x86_64-pc-linux-gnu] Copyright © 2002-8 Bruce Allen Home page is http://smartmontools.sourceforge.net/ Serial number: WD-WX50AC9D8701 Device type: disk Local Time is: Tue Aug 2 13:38:31 2011 MSD Device supports SMART and is Enabled Temperature Warning Disabled or Not Supported Log Sense failed, IE page [scsi response fails sanity test] Read defect list: asked for grown list but didn't get it Error Counter logging not supported Device does not support Self Test logging
это — случай когда диск подключен к контроллеру HP (Compaq) SmartArray E200. Подробности про это и другие контроллеры есть в man smartctl.
вот описание основного в данном вопросе ключа -d: Specify device type to one of: ata, scsi, sat[,N][+TYPE], usbcypress[,X], usbjmicron[,x][,N], usbsunplus, marvell, areca,N, 3ware,N, hpt,L/M/N, megaraid,N, cciss,N, auto, test
Сегодня вечером все выставлю в нули.
драйвер контроллера вполне может и без ФС тихо насрать в лог, сделать ретрай и ФС ничего не узнает.
кроме того, что-то я не помню такого поведения, например у линуксовых фс, при котором ядерный драйвер САМ обновлял таблицу сбойных блоков.
обычно как раз диск сыпется, в логах срач, бедблоки сиди ищи руками и руками же в фс их список закидывай.
возможно мой опыт в данном вопросе не такой широкий, так как у меня нет коробочки с сотней жестких дисков для хранения разных версий Евангелиона.
Так или иначе, это лучше, чем по-тихому смолчать, а потом прочитать некорректные данные.
У меня как раз RE3 и RE4 стоят в софт-рейде — думал, а не надо ли их настраивать.
Model Family: Western Digital Caviar Blue Serial ATA family
но при этом проверка на SCT как бы проходит:
SCT capabilities: (0x3037) SCT Status supported.
SCT Feature Control supported.
SCT Data Table supported.
хотя на самом деле управлять им нельзя:
$ smartctl -l scterc /dev/sda
smartctl 5.40 2010-07-12 r3124 [i686-pc-linux-gnu] (local build)
Copyright © 2002-10 by Bruce Allen, smartmontools.sourceforge.net
Warning: device does not support SCT Error Recovery Control command
И чем это будет отличаться от ситуации без ERC?
smartctl 5.41 2011-06-09 r3365 [FreeBSD 8.2-STABLE amd64] (local build)
Copyright © 2002-11 by Bruce Allen, smartmontools.sourceforge.net
SCT Error Recovery Control:
Read: 57345 (5734.5 seconds)
Write: 57345 (5734.5 seconds)
— и так для всех дисков Samsung (2,5" HDD) и WD (3,5" HDD). Работают в ZFS-пулах.
То есть нужно каким-то образом привести ERC и ожидания операционной системы в синхронное состояние — чтобы и там и там время таймаута совпадало с неким значением, допустим, 1 секунда. Так?
В случае современных ОС они имеют свой таймаут, и железка, не прочитавшая в указанное время (у линукса 2 минуты) считается мёртвой и игнорируется.
ERC просто контролирует когда диск должен вернуть ошибку (если таковая есть). С поведением линукса никак не коррелирует.
Попробую ещё раз: диск в RAID должен как можно скорее вернуть ошибку RAID-контроллёру и даже не пытаться самостоятельно перечитывать сбойный сектор. А значит, значения ERC его должны быть минимальными (несколько секунд). Так?
Когда RAID переходит в аварийный режим работы и режим восстановления, ERC у оставшихся дисков нужно выставить на максимум (две минуты), чтобы обеспечить надёжность считывания без случайных отвалов по ошибке чтения/записи? Я правильно понял идею?
В SVN уже исправлено:
sourceforge.net/apps/trac/smartmontools/ticket/198
Hitachi Travelstar 7K1000 | HGST HTS721010A9E630 | Есть, 0/0, можно включить
только не спрашивайте меня, откуда у меня столько дисков домаУ меня около двух сотен дисков дома на стеллаже. В двух DAS по восемь дисков на 6 и 8 Тб, тауэр на 16 дисков 3-6 Тб (сейчас отключенный).
купили крутой винт домой в количестве одна штука: выключите ERC (0,0)Как? smartctl делает это временно, до погружения в сон или перезагрузки, WDTLER может повредить диск, как предупреждает WD. И не ясно, зачем, в заметке это не раскрыто, только «гигантскими глупцами» называются те, кто не делает глупость, пытаясь отключить этот функционал при десктопном применении. Если сектор за семь секунд не будет прочитан — он никогда не будет прочитан, завешивать программу «чтением до упора» бессмысленно, а ошибка в любом случае будет зафиксирована, включено или отключено. Опыт использования более двух сотен RE дисков вне RAID показал, что никакой проблемы не возникает.
«Первый чих, и ваша файловая система огребает ошибку записи...» «не записи об ошибках, а ошибки записи» — если две-семь-десять секунд запись в сектор не может быть выполнена, при том что корректная операция занимает несколько миллисекунд, она не будет выполнена и за большее время, какой таймаут ни выставляй. И ошибка записи будет в любом случае. Глупцы как раз те, кто начинает играть с выключением/включением.
вы никогда не видели перезапускающиеся шпиндели у диска? Там и больше 7 секунд бывает.
А как вы думаете, что делают некоторые диски, увидев нечитаемый сектор? Никогда не сталкивались с дисками, которые полный рестарт делают?
Я понимаю. Прошивка диска может делать полный рестарт всего диска (spin down, spin up) если не получилось, например, прочитать трек. И это время может быть сильно больше 7 секунд.
Если диск выполняет рестарт, он этот таймаут не отсчитывает, а RAID контроллера, ждущего восемь секунд ответа, тоже в этом случае нет. Да и, если бы контроллер диска учитывал каким-то образом таймаут во время перезапуска, это ничего не даст, он выдаст сигнал об ошибке и продолжит работу.
Вы себе придумали рейд-контроллер и рассказываете мне что воображаемый рейд-контроллер делает. Я рад за него.
Я могу вам повторить: есть диски, который делают полный reset (включая spin-down/spin-up) в условиях, когда не могут что-то записать/прочитать. Иногда этот reset помогает и устройство таки прочитывает/записывает то, что хотела.
Я говорил о том, что на десктопе без рейда слишком короткий таймаут для ошибки приводит к ошибке в блочном стеке, которая пропагейтится до файловой системы. Которая может записывать writeback данные (т.е. нет приложения, которому можно вернуть ошибку). В этой ситуации файловая система сваливается в RO (я про линукс — половые проблемы виндов я не знаю), и пользователь остаётся с кучей потерянных данных, как будто ему рубанули питание.
SCT Error Recovery Control