Я отвечаю за кластер Hadoop из 44 узлов. У нас есть диски WD Green емкостью 1,5 ТБ с (совершенно неизвестной) проблемой счетчика циклов загрузки.
Эти диски работают нормально, но с возрастом они показывают все большее количество плохих блоков. Перезапись этих плохих блоков работает некоторое время, но они снова появляются в разных местах.
Поскольку большинство этих дисков используются только для узлов данных Hadoop, и у нас нет бюджета, чтобы заменить их все, я ищу стратегию
Не сходите с ума, обслуживая кластер, ошибки диска и связанные с ними проблемы файловой системы появляются почти ежедневно. Моя текущая процедура:
dmesg
выход и smartctl
и перепишите эти плохие блоки с помощью hdparm --write-sector
. fsck -f -y
на диск и перемонтируйте его.Поддерживайте стабильность системы.
На данный момент я изменил mount
варианты:
erros=continue,noatime
но я получаю случайное перемонтирование только для чтения из-за ошибок ведения журнала. Потом попробовал отключить журнал:
tune2fs -O ^has_journal
это позволяет избежать перемонтирования только для чтения, но, похоже, повреждает файловую систему (что имеет смысл, без журнала) Сейчас подумываю перейти на
tune2fs -o journal_data_writeback
и mount
с участием data=writeback,nobh,barrier=0
Но я не уверен, что это снова вводит перемонтирование только для чтения.
Итак, я бы хотел избежать повторных подключений только для чтения, хочу поддерживать стабильные метаданные файловой системы, но не беспокоиться об ошибках в данных (Hadoop позаботится об этом). На скорость тоже не должно влиять.
Какие у меня есть варианты? Я понимаю, что это, вероятно, кошмар для любого системного администратора. Разделы ОС монтируются с полным ведением журнала, и я не собираюсь тестировать производственные данные. Это строго для узлов данных / жестких дисков системы отслеживания задач Hadoop.
Лучшее, что вы можете сделать, это заменить диски. Стоимость дисков не будет зависеть от стоимости сбоя кластера и количества вашего рабочего времени, затрачиваемого на исправление сбойных блоков. Так что даже без бюджета я бы серьезно попытался убедить ваше руководство.
Если вам АБСОЛЮТНО нужно использовать эти диски, я бы рекомендовал создать файловые системы с mkfs -c -c…
чтобы mkfs проверял наличие плохих блоков.
Вы можете попробовать другую файловую систему, например btrfs, и посмотреть, работает ли она лучше, но в конечном итоге правильный ответ - «заменить диски».