Настроить
У меня есть USB-корпус (Buffalo DriveStation Quad), содержащий четыре накопителя, подключенных к моему nas-серверу (ubuntu server 14.04). Корпус настроен на режим JBOD, поэтому я посмотрю все диски в Linux.
Два диска (sdb и sdc) настроены с программным обеспечением raid как /dev/md0
(raid1). И /dev/md0
монтируется как один раздел ( /mnt/part1
) с файловой системой ext4 без журналирования.
Два других диска (sdd и sde) настроены с LVM как одна группа томов, откуда я смонтировал два логических раздела. Один из которых составляет 90% от общей емкости группы томов ( /mnt/part2
), а другой - 10% ( /mnt/part3
). Оба также ext4 без журналирования.
Проблемы APM
Мои проблемы начались с режимами APM по умолчанию, так как я заметил, что голова жесткого диска припаркована довольно агрессивно каждые пару минут. Изучив тему немного, я использовалhdparm -B198 /dev/sd[bcde]
. Это, кажется, позволяет некоторый уровень энергосбережения, но без необходимости делать парковку головы.
Есть сон?
Я в некотором роде доволен текущей ситуацией, но я все равно хотел бы, чтобы приводы засыпали, если нет активности. Особенно sdb и sdc ( /mnt/part1
), которые действительно не получают никакой активности в течение 95% времени. Что бы я ни пробовал, похоже, проблема в том, что диски не спят дольше минуты или двух.
Размонтирование всех разделов и выдача hdparm -y /dev/sd[bcde]
приведут накопители в спящий режим, но только на несколько минут. После этого они все проснутся один за другим. Я попытался отладить проблему, включив block_dump (echo 1 > /proc/sys/vm/block_dump
), но не вижу доступа к дискам.
Я также пытался отключить APM hdparm -B255 /dev/sd[bcde]
и дать им команду спать после этого, но тоже самое. Тем не менее, диски просыпаются через пару минут.
Я не работаю mdadm
в режиме демона (только одна проверка один раз в день), и не должно быть ничего другого, исследующего диски. Так что есть идеи, что попробовать дальше? Является ли USB-корпус Buffalo просто дрянным (и делает это самостоятельно)?
Обновление № 1
Я потратил много времени на то, чтобы диски проснулись после выпуска hdparm -y /dev/sd[bc]
. Следующие временные метки иллюстрируют шаблон:
00:00 hdparm -y /dev/sd[bc]
00:40 disks start to wake up
00:59 disks fully awake
01:00 hdparm -y /dev/sd[bc]
03:40 disks start to wake up
03:59 disks fully awake
04:00 hdparm -y /dev/sd[bc]
06:40 disks start to wake up
06:59 disks fully awake
Т.е. кажется, что что-то проверяет / будит диски каждые 3 минуты. Первая команда для перехода в режим ожидания оказалась в 40 секундах от контрольной точки.
Обновление № 2
Перезагрузил машину с acpi=off apm=off
. Тоже не помогло. Кстати, машиной является ноутбук Lenovo L520. На всякий случай, если кто-то посчитает это актуальным.
upstart-{socket,file}-bridge, dhclient, getty and sshd
- не повезло :(. Конечно, запущено много процессов ядра (перечисленных в скобках). Еще не смотрел, смогу ли я уменьшить их по некоторым параметрам ядра ... и какие из них будут хорошими кандидатами.Ответы:
Может быть немного излишним, но
SystemTap
может помочь вам определить, какой процесс делает ввод / вывод на этом диске.Подготовьте SystemTap
Установить скрипт трассировки
Определите идентификатор устройства, которое вы хотите отслеживать, в этом случае я собираюсь контролировать / dev / sda5
Монитор, используя старший + младший номер (8,5) в шестнадцатеричном. Найти виновника. Радуйтесь
источник