Дізнатися, що обертається жорстким диском


10

Я є власником NAS, який працює з деяким дистрибутивом Linux. Він оснащений веб-адміністрацією, де я можу керувати декількома службами, правами користувача, а також коли слід спати. Моя проблема з певних причин, коли NAS перейшов у сплячий режим, через пару хвилин знову вмикається жорсткий диск. Тоді він буде крутитися деякий час, потім знову спати. Це триває нескінченно.

Як я можу спробувати визначити причину цього? Я дуже новачок у Linux, але мені вдалося отримати кореневий доступ, і тепер маю SSH-з'єднання.


Це дуже старе, але може мати відповідні поради.
— Жил 'ТАК - перестань бути злим'

У вас є якийсь аналітичний / на зразок плагін із інтерфейсом web / frontend до коробки NAS? які деталі коробки NAS? Мені цікаво, чи можуть бути використані якісь інструменти системного вкладу, щоб перевірити активність диска. systemtap доступний лише для пізніших версій ядра Linux.
— Нікхіл Мюллі

NAS - це мережа Lacie d2 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" або подивитися на ваш об'єкт syslog kern для призначення повідомлень про налагодження. Взагалі, так і має бути /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.