Назад | Перейти на главную страницу

Диагностика причины потерянных inodes в Linux, занятый MySQL?

На одном из наших серверов недавно произошло некоторое повреждение файловой системы, и наша корневая файловая система была автоматически перемонтирована как доступная только для чтения. Для восстановления я предпринял следующие шаги:

  1. пытался remount > mount -n -o remount / это не удалось
  2. перезагрузил сервер
  3. было предложено выполнить руководство fsck, было 5 осиротевших inode, которые требовали исправления.

После выполнения этих шагов я смог получить доступ, и файловая система снова стала доступной для записи. К сожалению, у меня нет информативных журналов, так как они не были написаны, иначе я бы их включил.

Одна из причин, которые были предложены, заключалась в том, что наша база данных была слишком занята для правильной записи данных на диск, и это вызвало проблему, высокий уровень кэш-памяти был указан как указание на то, что это могло быть так. Однако я не уверен в этом, поскольку, хотя кеш велик, мы вообще не используем своп (вывод free ниже).

$ free -m
             total       used       free     shared    buffers     cached
Mem:          2041       1879        162          0         62       1599
-/+ buffers/cache:        216       1825
Swap:          471          0        471

Есть ли способ диагностировать неисправность после ее возникновения? MySQL выглядит вероятным кандидатом?

Если нет, что я должен предпринять в будущем, если это повторится?

Осиротевшие иноды безвредны и совершенно нормальны, когда у вас нечистый соскок. Это просто файлы, которые были удалены, но все еще были открыты, когда fs была перемонтирована только для чтения. Они не причина, а всего лишь симптом. Вам необходимо проверить журналы ядра, чтобы увидеть, какая реальная проблема вызвала перемонтирование только для чтения. Вы также можете запустить диагностику SMART, чтобы убедиться, что диск не выходит из строя.

Сначала проверьте работоспособность вашего сервера:

  • Вы используете память ECC?
  • Вы используете RAID? Вы видели какие-либо ошибки карт RAID? (dmesg показывал бы их тогда, но теперь вы перезагрузили их, вероятно, они потеряны)

Желателен высокий уровень кеширования, который никоим образом не должен повредить вашу файловую систему.