我家里有一个旧的 P4 盒子,上面有 Ubuntu 服务器,我用作媒体服务器。
除了 IDE 引导驱动器外,还有一个 1TB SATA 磁盘,其中一个 el-cheapo IDE 到 SATA 适配器,比如这个。
该磁盘应该是那些我认为以 5400RPM 旋转的“绿色”磁盘之一。
它在一段时间内工作得并不太简陋,但现在(大约 70% 已满)但最近它在我的媒体渲染器上播放媒体文件时开始打嗝(尽管并非总是如此)。最初我以为是我糟糕的 WiFi 在播放。
但随后我运行 iostat 并得出一些奇怪的数字。(顺便说一句,这些数字是在 Twonkymedia 服务器尝试索引磁盘时)
以下是 iostat -dkx 2 的一些典型结果
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util
sdb 0.00 0.00 0.00 0.00 0.00 0.00 0.00 2.00 0.00 0.00 100.00
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util
sdb 0.00 0.00 0.00 0.00 0.00 0.00 0.00 1.99 0.00 0.00 99.50
......继续这样......然后:
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util
sdb 0.00 0.00 0.50 0.00 64.00 0.00 256.00 1.58 206436.00 2000.00 100.00
磁盘死了吗?
好的,所以我运行 smartctl -a /dev/sdb ,结果如下:
=== START OF INFORMATION SECTION ===
Device Model: WDC WD10EADS-00M2B0
Serial Number: WD-WCAV50522614
Firmware Version: 01.00A01
User Capacity: 1,000,204,886,016 bytes
Device is: Not in smartctl database [for details use: -P showall]
ATA Version is: 8
ATA Standard is: Exact ATA specification draft version not indicated
Local Time is: Sun Feb 7 07:43:21 2010 EST
SMART support is: Available - device has SMART capability.
SMART support is: Enabled
=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED
General SMART Values:
Offline data collection status: (0x84) Offline data collection activity
was suspended by an interrupting command from host.
Auto Offline Data Collection: Enabled.
Self-test execution status: ( 0) The previous self-test routine completed
without error or no self-test has ever
been run.
Total time to complete Offline
data collection: (20760) seconds.
Offline data collection
capabilities: (0x7b) SMART execute Offline immediate.
Auto Offline data collection on/off support.
Suspend Offline collection upon new
command.
Offline surface scan supported.
Self-test supported.
Conveyance Self-test supported.
Selective Self-test supported.
SMART capabilities: (0x0003) Saves SMART data before entering
power-saving mode.
Supports SMART auto save timer.
Error logging capability: (0x01) Error logging supported.
General Purpose Logging supported.
Short self-test routine
recommended polling time: ( 2) minutes.
Extended self-test routine
recommended polling time: ( 239) minutes.
Conveyance self-test routine
recommended polling time: ( 5) minutes.
SCT capabilities: (0x303f) SCT Status supported.
SCT Feature Control supported.
SCT Data Table supported.
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 167 167 051 Pre-fail Always - 910436
3 Spin_Up_Time 0x0027 134 110 021 Pre-fail Always - 6283
4 Start_Stop_Count 0x0032 100 100 000 Old_age Always - 158
5 Reallocated_Sector_Ct 0x0033 159 159 140 Pre-fail Always - 322
7 Seek_Error_Rate 0x002e 200 200 000 Old_age Always - 0
9 Power_On_Hours 0x0032 097 097 000 Old_age Always - 2625
10 Spin_Retry_Count 0x0032 100 100 000 Old_age Always - 0
11 Calibration_Retry_Count 0x0032 100 100 000 Old_age Always - 0
12 Power_Cycle_Count 0x0032 100 100 000 Old_age Always - 151
192 Power-Off_Retract_Count 0x0032 200 200 000 Old_age Always - 34
193 Load_Cycle_Count 0x0032 176 176 000 Old_age Always - 72261
194 Temperature_Celsius 0x0022 112 088 000 Old_age Always - 35
196 Reallocated_Event_Count 0x0032 001 001 000 Old_age Always - 320
197 Current_Pending_Sector 0x0032 192 192 000 Old_age Always - 1388
198 Offline_Uncorrectable 0x0030 200 199 000 Old_age Offline - 22
199 UDMA_CRC_Error_Count 0x0032 200 200 000 Old_age Always - 1
200 Multi_Zone_Error_Rate 0x0008 001 001 000 Old_age Offline - 125532
SMART Error Log Version: 1
No Errors Logged
SMART Self-test log structure revision number 1
No self-tests have been logged. [To run self-tests, use: smartctl -t]
SMART Selective self-test log data structure revision number 1
SPAN MIN_LBA MAX_LBA CURRENT_TEST_STATUS
1 0 0 Not_testing
2 0 0 Not_testing
3 0 0 Not_testing
4 0 0 Not_testing
5 0 0 Not_testing
Selective self-test flags (0x0):
After scanning selected spans, do NOT read-scan remainder of disk.
If Selective self-test is pending on power-up, resume after 0 minute delay.
然后我进行了两项测试,一项是短期测试,一项是运输测试。这是输出:
=== START OF READ SMART DATA SECTION ===
SMART Self-test log structure revision number 1
Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error
# 1 Conveyance offline Completed: read failure 90% 2625 1070661197
# 2 Short offline Completed: read failure 90% 2625 1070661197
好的,所以,对于那些感兴趣的人:磁盘快死了。
首先,由于这是一个旧盒子,并且只有一个 SATA 到 IDE 连接,我不得不取出磁盘并使用我的主桌面作为 SATA 磁盘之间的传输机。
我尝试运行 gParted 将分区复制到新磁盘。但默认情况下,它在复制之前运行 fsck 并且一直持续,并且由于它不使用 -C 选项运行,因此在两个小时后,您无法分辨它在哪里,它在做什么,或者它持续了多长时间采取,所以我取消了它。
然后我用 Ubuntu Desktop 作为 LiveCD 启动,并运行 fsck 试图在传输数据之前清理我所能做的。再一次,它花了很长时间,但进度条给了我一些保证,它正在取得进展。尽管有时感觉像敲打磁盘可能对降级磁盘造成的损害大于好处。
fsck 完成后,我尝试将文件复制到一个副本中,这也需要很长时间。我运行 iostat 检查传输速率,结果发现它平均为 40kB/s,等待时间在 10,000 毫秒到 60,000 毫秒之间。
两个小时后,我让 iostat 运行,然后同时从磁盘启动多个复制操作。这表现得更好,但不是很出色,现在平均传输速率在 100-600kB/s 之间波动。
此时很明显,由于我必须传输大约 800GB 的数据,因此需要 10-20 天的操作才能传输。
我只传输了大约 16 个小时的最新数据,此时服务器再次可用的需求(更不用说我的主桌面)变得比恢复所有数据的需求大。
所以我决定把新磁盘放进盒子里,因为传输速度太慢了,把旧磁盘连接到主桌面,然后尝试通过 WiFi 传输我可以管理的任何其他数据。
现在问题变成了我的主桌面,因为它运行的是 Windows,所以我安装了 Ext2FSD 来尝试访问数据,但是在连接磁盘时它根本拒绝启动 - 在 CD 检查后冻结。在 Windows 运行时尝试热插拔它,但它也没有看到它。
所以在这一点上,我将等待另一台带有 SATA 连接器的机器可用,它主要不需要任何东西,然后让它继续尝试获取它可以获取的任何数据,在磁盘变得无用之前通过网络传输它。
就是这样,我想我会让大家知道以供将来参考。
我将最终状态作为问题的附录发布,而不是回复,以便为第一个答案打勾。
谢谢大家的建议。
“打嗝”是什么意思?是声音还是行为?
我会使用 SMART 实用程序查看磁盘级诊断程序,看看发生了什么。如果那里有许多读取错误或其他迹象表明磁盘正在死去,它们应该出现在那里。
如果您谈论的是WD“绿色”驱动器,顺便说一句,它们所涉及的不仅仅是较低的功率。他们甚至可能使用替代格式,这对于 Windows 来说很好,但对于其他操作系统来说大多很糟糕(一旦执行)。