jbartlett Posted August 24, 2015 Share Posted August 24, 2015 I'm contemplating creating a tool that looks for slowdowns in the drives performance which from another user on here indicates that it can be a sign of trouble even before the SMART data starts reporting issues. Two things are mostly needed, the ability to scan and time the read of specific areas of the hard drive (dd can do that) and knowing the physical geometry. Physical geometry is pretty much useless for accessing data since drives will silently remap bad spots on the drive but the timings to read a given area can indicate a remap took place. Having the physcal geometry would allow a heat map of the drive with specific platters given which would be more clear of problem areas on a platter. If a drive has four platters, it has 8 heads. It reads from head 1 to 8 in sequence before advancing the drive head. If any platter has a bad/remapped spot, the drive head must move to another location in order to read the remapped data which would affect the read time. Being able to read & time each track looking for slowdowns and then read each side on each platter spanning tracks would present a heat map for each side of each platter that would be more clear if areas of a disk are going bad vs one heat map over the entire drive. So my question - does anyone know of a way to programically determine the actual drive geometry or would it be simpler to rely on user input? Example of a heat map: http://www.highcharts.com/demo/heatmap-canvas Link to comment
JorgeB Posted January 17, 2016 Share Posted January 17, 2016 I'm contemplating creating a tool that looks for slowdowns in the drives performance which from another user on here indicates that it can be a sign of trouble even before the SMART data starts reporting issues. Two things are mostly needed, the ability to scan and time the read of specific areas of the hard drive (dd can do that) and knowing the physical geometry. Physical geometry is pretty much useless for accessing data since drives will silently remap bad spots on the drive but the timings to read a given area can indicate a remap took place. Having the physcal geometry would allow a heat map of the drive with specific platters given which would be more clear of problem areas on a platter. If a drive has four platters, it has 8 heads. It reads from head 1 to 8 in sequence before advancing the drive head. If any platter has a bad/remapped spot, the drive head must move to another location in order to read the remapped data which would affect the read time. Being able to read & time each track looking for slowdowns and then read each side on each platter spanning tracks would present a heat map for each side of each platter that would be more clear if areas of a disk are going bad vs one heat map over the entire drive. So my question - does anyone know of a way to programically determine the actual drive geometry or would it be simpler to rely on user input? Example of a heat map: http://www.highcharts.com/demo/heatmap-canvas Any progress on this? Just recently had another drive go bad with slow sectors, started like this: I always record my parity check times so if there’s a big difference something is probably wrong: 2015/10/30 – 7:45:10 2015/12/06 – 7:46:28 2016/01/11 – 10:41:46 So I used you diskspeed script to check for a slower disk and found one, this one has particularly bad slow sectors, read speed is <1MB/s in those areas. SMART still looks perfect: 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 - 1512 3 Spin_Up_Time 0x0027 176 174 021 Pre-fail Always - 6200 4 Start_Stop_Count 0x0032 100 100 000 Old_age Always - 102 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 100 100 000 Old_age Always - 683 10 Spin_Retry_Count 0x0032 100 100 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 - 55 192 Power-Off_Retract_Count 0x0032 200 200 000 Old_age Always - 4 193 Load_Cycle_Count 0x0032 200 200 000 Old_age Always - 98 194 Temperature_Celsius 0x0022 126 117 000 Old_age Always - 24 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 I used MHDD to confirm the problem, it would be great to be able to do this from Unraid, as MHDD won’t work on HBAs, so I have to take disk out and use another computer to confirm issue. Link to comment
jbartlett Posted January 17, 2016 Author Share Posted January 17, 2016 Nada on coming up with a smart heat map by scanning particular platters, there's no way to come up with drive geometry programmatically. Brainstorming of a way to scan the entire drive like MYHDD does but allow the user to map out the reads onto different platters/sides by manually entering the geometry and remapping the tests to match. Thank you for bringing this back to my attention, now I'm brainstorming. Link to comment
jbartlett Posted January 18, 2016 Author Share Posted January 18, 2016 Looking at your MHDD scan, you can see how the platters are lining up but since the characters don't line up in the same orientation, the results are skewed. I've made headway in how to do a scan like this in UNRAID. Link to comment
Recommended Posts
Archived
This topic is now archived and is closed to further replies.