几个月前,我构建了一个 1u 服务器,将其放入一个托管设施中。由于不知道更好的办法,我使用了 WD Caviar Green 硬盘。我的用户一直在抱怨系统启动速度有点慢,并且smartctl
显示非常高的 Load_Cycle_Count。我读到这是由于“绿色”表示它们尝试频繁减速,因此人们看到的延迟是硬盘重新旋转时。我看到的唯一阻止它们减速的建议是将服务器带回家并将磁盘放入 Windows 机箱中以运行程序。但我曾经遇到过类似的 Seagate 外置硬盘问题,并使用 修复了它sdparm
。是否有sdparm
命令可以修复此问题?
=== START OF READ SMART DATA SECTION ===
SMART Attributes Data Structure revision number: 16
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE
1 Raw_Read_Error_Rate 0x002f 200 200 051 Pre-fail Always - 0
3 Spin_Up_Time 0x0027 168 133 021 Pre-fail Always - 4558
4 Start_Stop_Count 0x0032 100 100 000 Old_age Always - 65
5 Reallocated_Sector_Ct 0x0033 200 200 140 Pre-fail Always - 0
7 Seek_Error_Rate 0x002e 200 200 000 Old_age Always - 0
9 Power_On_Hours 0x0032 092 092 000 Old_age Always - 6213
10 Spin_Retry_Count 0x0032 100 253 000 Old_age Always - 0
11 Calibration_Retry_Count 0x0032 100 253 000 Old_age Always - 0
12 Power_Cycle_Count 0x0032 100 100 000 Old_age Always - 58
192 Power-Off_Retract_Count 0x0032 200 200 000 Old_age Always - 42
193 Load_Cycle_Count 0x0032 196 196 000 Old_age Always - 14941
194 Temperature_Celsius 0x0022 120 106 000 Old_age Always - 27
196 Reallocated_Event_Count 0x0032 200 200 000 Old_age Always - 0
197 Current_Pending_Sector 0x0032 200 200 000 Old_age Always - 0
198 Offline_Uncorrectable 0x0030 200 200 000 Old_age Offline - 0
199 UDMA_CRC_Error_Count 0x0032 200 200 000 Old_age Always - 0
200 Multi_Zone_Error_Rate 0x0008 200 200 000 Old_age Offline - 0
答案1
有没有办法将该服务器映像到另一组服务器级驱动器上,而不是改变这些驱动器的设计工作方式?听起来你有点空闲时间,因为实际上没有发生任何故障。
在我看来,在生产服务器上运行任何会改变硬盘工作方式的东西都是坏消息。使用这些类型的驱动器会持续活动,这会很快磨损它们。我建议尝试一种涉及新硬件的不同方法,尽管你可能不想这样做。
答案2
有效的解决方案如下,立即测试!
使用以下命令制作可启动的 FreeDOS USB 驱动器联合国网启动(
sudo apt-get install unetbootin
)。将下载的实用程序复制到 USB 驱动器。
配置您的 BIOS 以使磁盘控制器在兼容或传统模式下运行(取决于您的主板制造商)。
通过 USB 启动 FreeDOS,选择带有 HIMEM + EMM386 的 FreeDOS Live CD
使用以下方法移动到 C:(USB 驱动器)
C:
最后使用以下命令执行该实用程序
wdidle3.exe /D
请记住从 BIOS 重新启用增强型或 SATA 控制器。
答案3
我设置了 cron 每隔几分钟运行一次,强制进行一些磁盘活动,从而使绿色驱动器保持活动状态。这可以很简单,echo $(date) >> somefile
只需在驱动器进入睡眠状态之前重置驱动器不活动计时器即可。
这是一种黑客手段,但它似乎能解决我家里的文件服务器的问题。最后,我不认为这是一个长期的解决方案。
答案4
如果驱动器是 SATA,您应该能够使用以下命令禁用旋转:
# hdparm -S 0 /dev/sda
/dev/sda:
setting standby to 0 (off)