Я не профессиональный системный администратор, но так как я не мог найти ответы на свой конкретный случай после исследования некоторое время, я надеялся, что мог получить некоторую справку здесь. Наш сервер использует P222 - массив контроллера HP Smart в конфигурации RAID1. Я полагаю, что некоторые секторы на одном из физических дисков перестали работать. Я использовал hpacucli
инструмент и вывод были похожи на:-
$ hpacucli ctrl all show config
Smart Array P222 in Slot 1 (sn: PDSXH0ARH5I0SW)
array A (SATA, Unused Space: 0 MB)
logicaldrive 1 (2.7 TB, RAID 1, Ready for Rebuild)
physicaldrive 2I:1:1 (port 2I:box 1:bay 1, SATA, 3 TB, OK)
physicaldrive 2I:1:2 (port 2I:box 1:bay 2, SATA, 3 TB, Predictive Failure)
Я выполнил тот же инструмент снова несколько раз для проверки состояния, и однажды я заметил, что "Прогнозирующий Отказ" был заменен путем "Восстановления 1%", увеличенный позже до 2%. Я не думаю, что сделал что-либо для инициирования восстановления. Так или иначе я позволяю ему работать и проверил состояние через некоторое время, в которой точке это вернулось к 'Прогнозирующему Отказу'.
При выполнении smartctl длинные и короткие тесты - журналы самопроверки:-, о котором сообщают,
=== START OF READ SMART DATA SECTION ===
SMART Self-test log structure revision number 1
Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error
# 1 Extended offline Completed: read failure 90% 14368 334201968
# 2 Short offline Completed: read failure 90% 14367 625082211
Мы выполняем экземпляр MySQL на этом сервере, и это продолжает не удаваться начать жаловаться на ошибку чтения, которая указала, что это может произойти из-за провального жесткого диска/a поврежденный сектор следовательно инструменты, используемые выше. У меня было несколько вопросов:-
Счастливый сообщить о любых дополнительных деталях, которые могут требоваться для диагностирования/фиксации этого
РЕДАКТИРОВАНИЕ 1: Согласно просьбе журналы ошибок MySQL как так:-
150824 10:27:00 InnoDB: Completed initialization of buffer pool
150824 10:27:00 InnoDB: highest supported file format is Barracuda.
InnoDB: The log sequence number in ibdata files does not match
InnoDB: the log sequence number in the ib_logfiles!
150824 10:27:00 InnoDB: Database was not shut down normally!
InnoDB: Starting crash recovery.
InnoDB: Reading tablespace information from the .ibd files...
InnoDB: Restoring possible half-written data pages from the doublewrite
InnoDB: buffer...
150824 10:27:00 InnoDB: Waiting for the background threads to start
150824 10:27:01 InnoDB: 5.5.35 started; log sequence number 2723867081864
150824 10:27:01 [Note] Server hostname (bind-address): <ip and port here>;
150824 10:27:01 [Note] - <ip here> resolves to <ip here>;
150824 10:27:01 [Note] Server socket created on IP: <ip here>.
InnoDB: Error: tried to read 16384 bytes at offset 70 1898921984.
InnoDB: Was only able to read -1.
150824 10:27:01 InnoDB: Operating system error number 5 in a file operation.
InnoDB: Error number 5 means 'Input/output error'.
InnoDB: Some operating system error numbers are described at
InnoDB: http://dev.mysql.com/doc/refman/5.5/en/operating-system-error-codes.html
InnoDB: File operation call: 'read'.
InnoDB: Cannot continue operation.
РЕДАКТИРОВАНИЕ 2: на основе комментария https://serverfault.com/a/716471/306555, я открыл билет для замены диска и заменил его и восстановленный RAID. Вывод от hpacucli похож на:-
physicaldrive 2I:1:1 (port 2I:box 1:bay 1, SATA, 3 TB, OK)
physicaldrive 2I:1:2 (port 2I:box 1:bay 2, SATA, 3 TB, OK)
Таким образом, Прогнозирующего Отказа не стало. Однако MySQL продолжал давать мне ошибки чтения, таким образом, я выполнил smartctl длинный и короткий тест снова. В то время как короткий тест передал, длинный, отказавший с ошибкой чтения:-
Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error
# 1 Extended offline Completed: read failure 90% 14393 625116232
# 2 Short offline Completed without error 00% 14392 -
Я также проверил системный журнал и заметил, что каждый раз MySQL пытается запуститься, в системном журнале существует эта ошибка
Aug 25 14:23:41 kernel: [ 1603.911185] sd 6:0:0:1: [sda] Unhandled sense code
Aug 25 14:23:41 kernel: [ 1603.911186] sd 6:0:0:1: [sda] Result: hostbyte=invalid driverbyte=DRIVER_SENSE
Aug 25 14:23:41 kernel: [ 1603.911188] sd 6:0:0:1: [sda] Sense Key : Medium Error [current]
Aug 25 14:23:41 kernel: [ 1603.911190] sd 6:0:0:1: [sda] Add. Sense: Unrecovered read error
Aug 25 14:23:41 kernel: [ 1603.911192] sd 6:0:0:1: [sda] CDB: Read(10): 28 00 46 a2 d5 a0 00 00 08 00
На что это указало бы? (похож, это - поврежденный сектор на диске?), Если это так, там способ зафиксировать это?
Хорошо. Это длинный вопрос, но на него вы получите короткий ответ:
Если вы видите «Predictive Failure» или «Failed», замените диск.
Оба этих условия действительны для целей создания заявки в службу поддержки и / или замену деталей по гарантии от HP.
«Прогнозируемый отказ» включает SMART данные, а также другие эвристические методы для определения состояния диска. Но детали не должны иметь значения. Запланируйте замену диска.
Тот факт, что вы видите воздействие на уровне приложения, является еще одним признаком того, что правильным курсом действий является замена диска. Это легко сделать ... хотя это диск SATA, это часть HP, поэтому на него распространяется гарантия (вероятно, 1 год, но она привязана к серийному номеру вашего сервера) .
Позвоните в HP ...
Вы используете жесткие диски HP? Или нормальные потребительские диски? Есть ли на дисках функция восстановления после ошибок, ограниченная по времени?
В противном случае диск может заблокировать контроллер, пытаясь прочитать поврежденный сектор. Для отказа диска потребуется много времени, поэтому чтение не будет выполнено. Контроллер рейда не имеет возможности попробовать другой диск, потому что он завис, ожидая, пока первый диск определит, что он неисправен.
Такое поведение также приводит к временному выпадению дисков из рейда, что объясняет перестройку.
Это должно применяться только в том случае, если вы используете диски сторонних производителей - поддерживаемые диски запрограммированы так, чтобы быстро отказаться и позволить контроллеру рейда обработать ошибку.