Всем мне нравится mdadm - простота и гибкость настройки и переноса и т.п.
Кроме одного - нет обратной связи и логики выкидывании диска из массива при ошибке.
Т.е. во всяком случае у меня переодически как один из винтов (в простейшей конфе зеркала из 2х) начинает «сыпаться», выкинуть может и рабочий диск.
Т.е. возникает рассинхронизация массива в результате ошибок I/O, и mdadm выкидывает, как он говорит, «старый» (non-fresh) диск из массива.
Правда порой «старым» оказывается вполне рабочий диск, а в массиве остается помирающий.
Всё еще просто, когда можно вновь добавить рабочий диск, дождаться ресинхронизации и выкинуть уже дохлый.
Но иногда из-за дохлости диска не проходит ресинхронизация и соотв. рабочий диск опять помечается «дохлым».
Я конечно могу легко создать новый массив, перенести данные туда «ручками» и т.п. Но тут возникает простой или даже ребут, если раздел был корневым. В любом случае неудобно. Когда выкидывается «правильный, битый» диск - можно online с hotswap'ом всё сделать без простоя.
Есть какие-либо не костыльные варианты решения данной проблемы? Ядро то ведь знает какой из дисков битый (ошибки в dmesg видны явно), smartd знает. Как-то их подружить можно?