Data recovery and disk repair questions and discussions related to old-fashioned SATA, SAS, SCSI, IDE, MFM hard drives - any type of storage device that has moving parts
Post a reply

How are blocks stored on HDD

October 10th, 2016, 10:46

Hello,
I believed that HDDs use some sort of RAID internally, ie that a block of data is written across all platters / sides the HDD have, to get best possible speed (something like RAID0). Today I had a chat with a friend of mine who told me that this is very unlikely and one block of data is read by 1 head only (meaning the remaining ones do nothing at the time)
Does anyone know what the truth is, and if no "RAID" is used, then why? If a drive have for example 2 platters, the heads would be able to read/write 4 data streams simultaneously yielding almost 4x performance. Or am I wrong? Are there some SW HW limitations I am not aware of?
Thanks for your insights!

Re: How are blocks stored on HDD

October 10th, 2016, 11:23

This excellent article should clarify your understanding: http://hddscan.com/doc/HDD_Tracks_and_Zones.html

Re: How are blocks stored on HDD

October 10th, 2016, 11:38

thanks for the link LarrySabo, its a nice article, but I don't think it answers (or is related to) my question

Re: How are blocks stored on HDD

October 10th, 2016, 12:04

It does if you read it all, but that will take some time.

HDD's don't use a RAID per say, as that's a Redundant Array of Inexpensive Disks, and a HDD is just a single disk. Nor do they use any sort of RAID block/parity algorithm. They do however split and stripe data across all used platter surfaces. The size of these stripes has more to do with a number of tracks than a certain block size of data. From one part of the drive to another it may have very different stripe sizes. For example, the outer tracks contain more sectors and thus will use larger stripes than the inner tracks. There's also quite a bit of variation between brands. Some may switch platters every few MB while others, such as Samsung drives, may write several GB before switching platter surface.

HDD's also don't use any parity between platters. They do however have ECC code for each sector which is used to correct unreadable bytes within the sector.

Re: How are blocks stored on HDD

October 10th, 2016, 13:18

data-medics, very good explained :good:

Re: How are blocks stored on HDD

October 10th, 2016, 14:07

I read all of it, possibly misunderstood something, its complicated : )

so is the answer "disk R/W is so difficult that syncing all heads at once is not possible"? I did not really found that in the article.

All heads move together, so they are the same distance from platter center every moment. Therefore the data they're at are written with same density etc. I don't really see why all the heads can't read or write simultaneously. I appreciate all responses

Re: How are blocks stored on HDD

October 10th, 2016, 14:26

As far as I understand it, drives generally read/write from one head at a time. Trying to do more than that would be problematic as servo tracking is on each platter and must be very precise to accurately read tracks. This servo may not be perfectly aligned from one platter to another especially given that we are talking about a mechanical device reading/writing on a microscopic level. The micro adjustments that the head stack must make continually while reading to stay on track is very precise and would throw off reading/writing of the other platter's tracks were it working simultaneously. Back when the aerial density of drives was much lower this may have been possible, but on modern drives it really isn't.

Re: How are blocks stored on HDD

October 10th, 2016, 15:05

In the old days (1980s and earlier) hard drives had a separate, dedicated servo surface. This was used for positioning the headstack and for generating the data strobes. All the read/write heads were aligned to this servo surface. This was possible because of the lower data densities and because heads could be manufactured to precise tolerances, making them essentially identical. Nowadays the performance of each head is greatly variable, with the result that some can support significantly lower data densities than others.

The following article contains several examples that illustrate these performance differences. Note the extreme variability in the Seagate example.

How to determine number of heads using HD Tune:
http://www.hddoracle.com/viewtopic.php? ... 650&p=1796

Re: How are blocks stored on HDD

October 10th, 2016, 16:06

See Fig 0-16 on page 15:

http://www.lintech.org/comp-per/10HDDISK_chapter.pdf

Another problem is that modern heads have separate read and write elements whose spacing varies from head to head. Therefore, if the read elements were vertically aligned, then the write elements would not be.

Re: How are blocks stored on HDD

October 10th, 2016, 17:47

Great, thank you both! I expected the actual information to be stored precisely enough on the platters.
Post a reply