X分钟后使用hdparm将硬盘置于待机状态不起作用


12

我在家庭服务器上使用Ubuntu 12.04。有5个硬盘驱动器:一个带有OS的SSD和四个使用mdadm配置为RAID5的HDD(Samsung HD204UI)。

我不需要非常频繁的RAID(例如,平均每天大约一次)。它包含多媒体数据和一些备份,因此我决定大部分时间将驱动器置于待机状态。

我将驱动器配置为使用hdparm在20分钟后自动降速,/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,当我访问文件时,它以块为单位分布在四个驱动器上。由于读取驱动器2时不需要驱动器1,因此下次使用它时(在读取驱动器3之后)它将进入睡眠状态。因此,驱动器始终保持上下旋转,从而导致吞吐量接近零。

对于关心驱动器寿命的人们:平均每天旋转一次驱动器是没有问题的,因为与驱动器的运行状况相比,我更喜欢节省能源和热量(我使用RAID5,并且存储内容不是不是很重要)。


3
很高兴您在这里得到了答案。真可惜ServerFault的家伙是如此挑剔。我以为节能技术在任何具有前瞻性的企业方案中都非常重要。相反,他们会错过。
tomfanning,2012年

1
@tomfanning好吧,我认为ServerFault仅适用于大型服务器,例如数据中心中的服务器。但是我不知道,我希望家用服务器也可以算作服务器。好吧,如果没有,我应该将服务器放在我的花园里,所以它不再在我的家里。我真正不明白的是,为什么他们只是不让我满足我的需求,仅在他们对我的问题有建设性答案的情况下回答问题,而要我让它成为我想做的事情。[对于其他不知道我们在说什么的人:serverfault.com/q/389222/116951]
leemes 2012年

Answers:


11

BIOS中是否启用了AHCI?如果没有,请尝试将其打开并重试。

如果仍然不能解决问题,那么您可能必须尝试一些更复杂的操作,因为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

当然,在尝试任何一种操作之前,强烈建议对硬盘内容进行完整备份。


像魅力一样工作。我在BIOS中启用了AHCI。SATA模式设置为RAID(我的主板上有一个我不使用的RAID控制器)。我不知道要对SATA驱动器或此处的hdparm进行适当的SMART控制,就需要AHCI。谢谢!
leemes

@SirCharlo先生,在待机模式下使用该命令制作硬盘的基本命令是什么sg3-utils?是/usr/bin/sg_start --stop /dev/sdx
Oki Erie Rinaldi

1

也许更好的方法可能是:

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

第一个hdparm使设备立即待机。第二个关闭APM,因此磁盘将保持待机状态,直到下一次磁盘访问为止。


好的建议,尽管应该指出这些命令应与对动作进行计时的脚本一起使用。
Rucent88 '16
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.