This morning as I was reading USENIX conference summaries which suggested that maybe SATA/SAS is not an optimimum interface for SSDs it came to mind that some out-of-the-box thinking is needed for hard drives as well. Hard drive storage densities have been increasing dramatically so that latest SATA drives are measured in terrabytes, just they were measured in gigabytes some years ago.

A problem with huge hard drives is that the resilver times increase with drive size. Failure of hard drives with sizes in the terrabyte range lead to a long wait.

Hard drives are comprised of multiple platters, with typically an independently navigated head on each side. Due to a mix of hardware and firmware, these disparate platters and heads are exposed as a simple logical linear device comprised of blocks. If one side of a platter, or a drive head fails, then the whole drive fails.

My understanding is that most drives stripe logical blocks across the various platters such that the lower block addresses are on the outer edge of the disks to achieve fastest I/O transfer rate. This approach is great for large linear writes, but is not so great for random I/O, is not so great for when data becomes spread across the disk, or when the disk becomes almost full.

The thought I had this morning is that perhaps the firmware on the disk drive can be updated to create a logical disk drive appareance for each drive head. Any bad block management (if enabled) would be done using the same platter side. With this approach a single physical drive could appear like two, four, or eight logical drives.

ZFS is really good about scheduling I/O across many drives. Provided that care is taken to ensure that redundant data is appropriately distributed, it seems like subdividing the drives like this would allow ZFS to offer considerably improved performance, and resilver time of a logical drive would be reduced since it is smaller. If a drive head fails, then that logical drive could be marked permanently out of service, but the whole drive would not need to be immediately resigned to the dumpster.

Does anyone have thoughts on the viability of this approach? Can existing drives be effectively subdivided like this by simply updating drive firmware?

Bob
--
Bob Friesenhahn
bfrie...@simple.dallas.tx.us, http://www.simplesystems.org/users/bfriesen/
GraphicsMagick Maintainer,    http://www.GraphicsMagick.org/
_______________________________________________
zfs-discuss mailing list
zfs-discuss@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/zfs-discuss

Reply via email to