
У меня есть 4-дисковая конфигурация RAID5 на 5 ТБ, где один диск показывает признаки выхода из строя. Он сообщает об ошибках носителя, и из dmesg я вижу, что несколько ошибок чтения исправлены. smartctl сообщает об «уведомлениях», но пока без паники. Поскольку новые диски сейчас довольно дороги, я начинаю размышлять о том, насколько надежен слой md Linux.
Я был бы признателен, если бы кто-нибудь мог пролить свет на то, как md на самом деле справляется с ошибками диска. Например, как md справляется с ошибками записи и чтения — что (на самом деле) требуется, чтобы диск был отклонен массивом. Я также читал, что недавно md получил поддержку для отображения плохих блоков. Означает ли это, что ошибки чтения, которые у меня были, были бы отображены, если бы я использовал ядро >3.1, или md все равно попытается «поработать над ними», чтобы сделать их пригодными для использования.
решение1
Если вы заботитесь о своих данных, замените диск сейчас. Каждая подсистема делает все возможное, чтобы предотвратить потерю данных, но она может сделать только определенное количество. Даже она может отображать плохие блоки: когда есть один, будут и другие
Вы получили массу предупреждений о надвигающихся проблемах: игнорировать их — просто безответственно по отношению к данным ваших клиентов.
Отредактируйте, так как это слишком длинно для комментария:
Я понятия не имею, в чем на самом деле заключается ваш вопрос? Вы хотите знать, серьезны ли предупреждения? Да, они серьезны. Вам нужно что-то по этому поводу? Да, и сейчас.
Когда какая-то подсистема сообщает об ошибке чтения, они есть и они важны. Даже если система все еще способна их исправить, есть большая вероятность, что через две минуты это уже не так, и диск будет помечен как неисправный и переведен в автономный режим.
Linux md raid по крайней мере так же надежен, как и любая реализация аппаратного RAID, но я бы считал RAID5 опасным выбором в лучшем случае. Проблема в том, что вы будете незащищены во время восстановления, что является очень обременительной ситуацией для RAID5. Я считаю его более надежным, чем некоторые аппаратные RAID-системы, поскольку вы получите предварительные предупреждения, когда диск вот-вот выйдет из строя, в то время как аппаратный RAID может информировать вас только после сбоя. У программного RAID есть некоторые недостатки, в основном связанные с проблемами производительности, но надежность не входит в их число.
В любом случае, независимо от этого, профессиональный подход к таким ситуациям, как ваша, заключается в немедленной замене диска, и я бы поступил так же и в случае с моим личным дисковым массивом (у меня есть запасной для таких ситуаций).
решение2
Это из опыта работы с одним из наших серверов Dell примерно 6-летней давности: тогда мы не использовали аппаратный рейд, поскольку не было возможности удаленно обнаруживать сбои дисков.
Поэтому мы использовали программный raid 1 (md). Через некоторое время raid деградировал. Заглянув в /var/log/messages, я увидел список ошибок ввода-вывода, связанных с определенным разделом.
Я снова добавил раздел в рейд, но вскоре он снова был выброшен.
Я отправил Dell-support этот вывод /var/log/messages и сразу получил новый диск. Это было на неподдерживаемой Linux-разновидности и только с самым базовым уровнем поддержки.
У нас было несколько других машин с такой настройкой, и мы больше никогда не сталкивались с этими проблемами (т. е. диски никогда не выходили из строя). Для меня это доказательство того, что на md можно положиться.
Думаю, это справедливо и для ядра 3.1 (у меня пока нет ни одного из них).
решение3
Насколько мне известно, mdadm — это надежная программная реализация RAID, которая при хорошем состоянии жесткого диска редко генерирует ошибки любого типа. У меня есть несколько серверов с настроенным mdadm, и я ни разу не получал ошибок чтения в файлах журнала.
Проверьте состояние вашего массива с помощью:
mdadm --detail /dev/mdX
Однако я настоятельно рекомендую вам заменить диск, ответственный за ошибки...