Вопрос или проблема
У меня есть массив Linux md-raid raid1 (фс ext4) с двумя дисками по 3 ТБ. В течение последних нескольких месяцев массив демонстрирует значительное замедление доступа и времени чтения. Выполнение команды ls
в каталоге с менее чем 20 записями иногда занимает 2-3 минуты для возврата.
Похоже, что он тратит много времени в состоянии “проверка”, но даже когда состояние “чистое”, доступ и время чтения очень медленные. Я не нахожу никаких ошибок, сообщаемых в системных журналах. Единственное, что стоит отметить, это то, что файловая система уже долгое время близка к заполнению. Вывод команды mdadm -D /dev/md127
показывает:
/dev/md127:
Version : 1.2
Creation Time : Thu Jun 20 11:34:21 2019
Raid Level : raid1
Array Size : 2930132992 (2794.39 GiB 3000.46 GB)
Used Dev Size : 2930132992 (2794.39 GiB 3000.46 GB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent
Intent Bitmap : Internal
Update Time : Sun Sep 26 13:58:50 2021
State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
Consistency Policy : bitmap
Name : giles:meta (local to host giles)
UUID : 638efea5:1e7b07d2:78fec1dc:d919dccf
Events : 8359
Number Major Minor RaidDevice State
0 8 1 0 active sync /dev/sda1
1 8 17 1 active sync /dev/sdb1
Есть ли какие-либо мысли о том, что может вызывать это или предложения по отладке? Я в процессе копирования данных на новый набор большими дисками, и за более чем 48 часов было скопировано только 301 ГБ.
Спасибо за ответы. Журнал syslog действительно показывает, что smartctl/smartd сообщают о множестве ошибок на sdb. Я отключил диск (mdadm --manage /dev/md127 --fail /dev/sdb1
) и удалил его из массива (mdadm --manage /dev/md127 --remove /dev/sdb1
), после чего копирование данных на новый массив завершилось за несколько часов.
Урок для меня здесь заключается в том, что настройка mdadm для отправки уведомлений по электронной почте о проблемах RAID недостаточно (он быстро отправил мне электронное письмо о состоянии RAID после того, как я вручную отключил диск). Мне нужно настроить автоматическую отчетность от smartd, чтобы получать более ранние предупреждения, а не просто гадать, что происходит с производительностью ввода-вывода диска.
Ответ или решение
Ситуация с вашим массивом RAID1, о которой вы сообщаете, действительно вызывает опасения. Чувствительные задержки в доступе к данным и в операциях чтения могут быть следствием нескольких факторов. Давайте рассмотрим основные моменты, которые могли вызвать такую проблему, а также способы их диагностики и устранения.
1. Физическое состояние дисков
Вы упомянули, что система сообщает об ошибках на диске /dev/sdb. Это один из самых распространенных факторов, приводящих к замедлению работы RAID-массива. При наличии неисправных секторов или других механических повреждений RAID1, хотя и предоставляет защиту данных, всё же может задерживать операции на уровне чтения и записи по мере попыток прочитать или восстановить поврежденные данные. Ваше следующее действие, состоящее в отключении неисправного диска, было абсолютно правильным решением.
Рекомендация:
Во-первых, обязательно проверьте состояние (S.M.A.R.T.) обоих дисков с помощью утилиты smartctl
. Это позволит заранее выявить возможные проблемы.
sudo smartctl -a /dev/sda
sudo smartctl -a /dev/sdb
Если вы обнаружите какие-либо предупреждения (например, капсуляция секторов), стоит подумать о замене дисков.
2. Заполнение файловой системы
Замечание о том, что файловая система была близка к полному заполнению, также может вызвать проблемы с производительностью. При недостатке свободного места системы могут значительно замедлить работу, так как у них нет возможностей для временного хранения и организации данных.
Рекомендация:
Очистите ненужные файлы и проверьте состояние дисковой подсистемы, чтобы освободить место на файловой системе. Вы можете использовать команды df -h
и du -sh *
для анализа использования диска.
3. Состояние массива RAID
Несмотря на то, что состояние массива RAID показывало "чистое", важным аспектом остаётся текущая политика согласованности и возможные операции, выполняемые на массиве. Например, состояние "проверка" ранее может указывать на работу или активные операции синхронизации данных.
Рекомендация:
Выполните проверку состояния массива с помощью следующей команды, чтобы получить дополнительную информацию о его функционировании:
cat /proc/mdstat
Это позволит вам понять, как долго массив работает в режиме реконструкции после неисправности, и есть ли необходимость в дополнительных действиях.
4. Уведомления об ошибках
Как вы упомянули, ваша система отправляла уведомления о состоянии массива, но это не предостерегло вас от медленной работы. Настройка smartd
на автоматическую отправку уведомлений является шагом к предотвращению проблем в будущем. Настройте smartd
так, чтобы он оповещал вас о любых ошибках или критических значениях, что позволит вам оперативно реагировать на потенциальные угрозы.
Рекомендация:
Проверьте файл конфигурации smartd
, чтобы добавить нужные параметры уведомлений, например, отправляйте уведомления по электронной почте.
Заключение
Ваша текущая проблема была вызвана физическими неисправностями одного из дисков, что привело к значительному снижению производительности RAID1 массива. Устранение неисправного устройства и обеспечение регулярного мониторинга состояния дисков с использованием smartctl
и smartd
поможет в будущем избежать подобных ситуаций. Регулярная профилактика и управление системой мониторинга позволят поддерживать надежную работу вашего массива и быстро реагировать на проблемы.