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


10

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

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


Это очень старый, но могут иметь соответствующие советы.
— Жиль "ТАК ... перестать быть злым"

Есть ли у вас какой-нибудь аналитический / подобный плагин с интерфейсом 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. Это может оказаться достаточно сложно :)
— Андреас


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указанную выше строку, чтобы увидеть, кто такой.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.