Выяснить, что крутится на жестком диске

10

Я владелец NAS, работающего с дистрибутивом Linux. Он поставляется с веб-интерфейсом администрирования, где я могу управлять несколькими службами, правами пользователей, а также когда он должен перейти в спящий режим. По какой-то причине моя проблема в том, что когда NAS перешел в режим сна, жесткий диск снова включается через пару минут. Затем он будет вращаться в течение некоторого времени, затем снова спать. Это продолжается до бесконечности.

Как я могу попытаться определить причину этого? Я очень плохо знаком с Linux, но мне удалось получить root-доступ, и теперь у меня есть SSH-соединение.

Andreas
источник
Это очень старый, но могут иметь соответствующие советы.
Жиль "ТАК ... перестать быть злым"
Есть ли у вас какой-нибудь аналитический / подобный плагин с интерфейсом web / frontend для NAS? каковы детали коробки NAS? Мне интересно, могут ли некоторые инструменты системной карты использоваться для проверки активности диска. systemtap доступен только для более поздних версий ядра Linux.
Nikhil Mulley
NAS - это Lacie d2 Network 2. Вариантов плагинов нет, но, думаю, я мог бы загрузить в него все, что угодно. На нем работает веб-сервер Green Unicorn. Ядро 2.6.31.14-svn6790.
Андреас

Ответы:

6

inotify-tools - это простой способ сделать это. На их сайте есть несколько примеров, которые могли бы делать то, что вы хотите (см. Пример inotifywatch для действительно простого).

Патрик
источник
Я сейчас смотрю на это. Во-первых, мне нужно скомпилировать исходный код для процессора ARMv5TE. Это может оказаться достаточно сложно :)
Андреас
6

Попробовать, iotopвозможно, запустить ? Я нашел это полезным в прошлом.

Фахим Митха
источник
2

Еще один совет: используйте Systemtap, на сайте systemtap есть куча пробных скриптов, достаточно полезных, чтобы найти виновника.

В другом случае вообще

Если вы хотите узнать, какой процесс вызвал раскрутку диска, вы можете собрать информацию, установив флаг /proc/sys/vm/block_dump. Когда этот флаг установлен, Linux сообщает обо всех выполняемых операциях чтения и записи на диске и всех блокировках блоков, выполненных в файлах. Это позволяет отлаживать, почему диск должен раскручиваться, и еще больше увеличивает время автономной работы. Выходные данные block_dump записываются в выходные данные ядра, и их можно получить, используя «dmesg», или обратитесь к своему средству ядра системного журнала для определения места назначения сообщений отладки. В общем, так и должно быть /var/log/debug. Когда вы используете block_dump и ваш уровень ведения журнала ядра также включает в себя сообщения отладки ядра, вы, вероятно, захотите отключить klogd, в противном случае выходные данные block_dump будут регистрироваться, вызывая активность диска, которая обычно там не присутствует.

Никхил Мулли
источник
2

Вы должны сообщить ядру, чтобы оно сообщало вам обо всех операциях чтения / записи на диски, а затем вам нужно просмотреть эту информацию.

Так:

# sync
# echo 1 > /proc/sys/vm/block_dump
# dmesg -c | grep '/dev/sda'

syncсбрасывает все ожидающие записи на диски, так что вы увидите только новые операции чтения или записи.
dmesg -cпоказывает сообщения ядра и очищает их (в противном случае вы также видите старые сообщения каждый раз, когда запускаете dmesg). grepфильтрует вывод dmesg для активности на интересующем диске. Замените / dev / sda на ваше реальное устройство.

Я обычно использую что-то вроде этого, чтобы раскрутить диск, а затем проверить, не раскручивается ли он снова:

# sync
# hdparm -y /dev/sda
# while true; do hdparm -C /dev/sda ; sleep 600 ; done

В whileпроверяет петлевые диске Статус активен / холостой ход каждые 10 минут. Когда вы увидите, что он включается, запустите dmesgуказанную выше строку, чтобы увидеть, кто такой.

Грег Белл
источник