Перевести HDD в режим ожидания через X минут, используя hdparm, не работает

12

Я использую Ubuntu 12.04 на домашнем сервере. Существует 5 жестких дисков: один SSD с операционной системой и 4 жестких диска (Samsung HD204UI), настроенных как RAID5 с использованием mdadm.

Мне не нужен RAID очень часто (скажем, в среднем примерно раз в день); он содержит мультимедийные данные и некоторые резервные копии, поэтому я решил перевести диски в режим ожидания большую часть времени.

Я настроил диски на автоматическое замедление через 20 минут, используя hdparm, вот /dev/sdaкак пример:

hdparm -S 240 /dev/sda

Вывод команды подтвердил это:

/dev/sdb:
 setting standby to 240 (20 minutes)

Но проблема в том, что диск вращается примерно через 5 секунд (вместо 20 минут) после последнего доступа, и

hdparm -C /dev/sdb

дисплеи:

/dev/sdb:
 drive state is:  standby

Почему накопитель не ждет 20 минут, как настроено? Это как-то связано с настройкой RAID? (Я так не думаю ...)

Это очень короткое время ожидания проблематично, поскольку это RAID5, и когда я обращаюсь к файлу, он распределяется по четырем дискам по блокам. Поскольку диск 1 не требуется, когда диск 2 читается, он засыпает, когда будет использоваться в следующий раз (после того, как диск 3 будет считан с). Таким образом, диски постоянно вращаются вверх и вниз, что приводит к пропускной способности, близкой к нулю.

Для людей, которые беспокоятся о сроке службы моих дисков: не будет проблем с тем, что диски будут вращаться вверх и вниз в среднем один раз в день, так как я предпочитаю экономить энергию и тепло, а не здоровье дисков (я использую RAID5 и не очень важно)

leemes
источник
3
Рад, что вы получили свой ответ здесь. Позор, что парни из ServerFault были такими придирчивыми. Я бы подумал, что методы энергосбережения были бы очень важны в любом перспективном корпоративном сценарии. Вместо этого они пропустят.
Tomfanning
1
@tomfanning Ну, я полагаю, что ServerFault предназначен для крупномасштабных серверов, как только в центре обработки данных. Но я не знал, и я ожидал, что домашний сервер также считается сервером. Ну, а если нет, я должен поставить свой сервер в своем саду, чтобы его больше не было дома. Что я действительно не понимаю, так это то, почему они просто не дают мне того, что я хочу, и отвечают на вопрос, только если у них есть конструктивные ответы на мой вопрос, но вместо этого хотят, чтобы я позволил этому быть тем, чем я хочу заниматься. [для других людей, не знающих, о чем мы говорим: serverfault.com/q/389222/116951]
leemes

Ответы:

11

Включен ли AHCI в вашем BIOS? Если нет, попробуйте включить и повторить попытку.

Если это по-прежнему не работает, то вам, возможно, придется попробовать что-то более сложное, поскольку hdparmне всегда приятно играть с дисками SATA, что, как я полагаю, у вас есть.

Проверьте эту страницу для следующего относительно простого решения, которое использует crontab:

sudo apt-get install sg3-utils
crontab -e

Теперь добавьте это в конец вашего crontab (замените sdx на диск, который вы хотите перевести в режим ожидания):

0-59/15 * * * * ( if [ ! -f /dev/shm/1 ] ; then touch /dev/shm/1 /dev/shm/2; fi ; mv /dev/shm/1 /dev/shm/2; cat /proc/diskstats > /dev/shm/1 ) >/dev/null 2>&1
0-59/15 * * * * ( export HD="sdx "; if [ "$(diff /dev/shm/1 /dev/shm/2 | grep $HD )" =  "" ] ; then /usr/bin/sg_start --stop /dev/$HD; fi ) >/dev/null 2>&1

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

SirCharlo
источник
Работал как шарм. Я включил AHCI в BIOS. Режим SATA был установлен на RAID (на моей материнской плате есть контроллер RAID, который я не использую). Я не знал, что AHCI необходим для правильного SMART-управления дисками SATA или чем-то еще, что здесь делает hdparm. Спасибо!
Leemes
Сэр @SirCharlo, какова основная команда для создания жесткого диска в режиме ожидания (используя это sg3-utils)? Это /usr/bin/sg_start --stop /dev/sdx?
Оки Эри Ринальди
1

Может быть, лучший способ может быть:

hdparm -B 1 -Y / dev / device
hdparm -B 255 / dev / device

Первый hdparm немедленно перевел устройство в режим ожидания. Второй отключает APM, поэтому диск остается в режиме ожидания до следующего доступа к диску.

мат
источник
Хорошее предложение, хотя следует указать, что эти команды должны использоваться со сценарием, который рассчитывает время действия.
Rucent88