On Sat, 5 Mar 2005, Peter Jeremy wrote:

[CC list pruned]

On Wed, 2005-Mar-02 13:15:49 -0800, ALeine wrote:
If only hardware manufacturers were to equip hard drives with
a mechanism to ensure atomic writes. A capacitor large enough
to hold enough energy to flush the cache upon detecting the
power supply was cut would be sufficient.

I'm not sure thus is readily practical at the drive level. Based on some back-of-envelope calculations using figures in a Seagate Barracuda manual (which I happened to have handy): - Random seek is 9.5 msec. - Rotational period is 8.3msec - Power consumption at 50% R/W, 50% seek is 0.82A @ 12V + 0.68A @ 5V

A single random seek + track write will take 17.8 msec.  This translates
to an electrical charge of 0.015C @ 12V and 0.012C @ 5V.

Assuming the drive is designed to allow the supply rails to droop 20%
whilst functioning correctly during this shutdown phase (which is a
significantly bigger drop than the standard specifications), a single
random seek + track write would require the drive to include a 6000µF
capacitor on the 12V rail and a 12000µF capacitor on the 5V rail.

As a first order approximation all Unix disk operations are writes
(reads can be satisfied from the buffer cache).  Given the size of
current generation drive caches, it's more likely that there are
around 50 writes cached - which requires capacitors 50 times as large
- which would make them significantly larger than the drive itself.

They could even use
a battery the status of which could be monitored via S.M.A.R.T.,
I don't see how implementing something like that could possibly
make the cost noticably higher.

Batteries (and standard supercaps) are generally designed to release their energy over an extended period - several minutes is the lower realistic limit. It would make sense to build a battery backup system which maintained power for (say) 5 minutes. It's not realistic to build a battery backup system that can release all it's available energy in 1 second.

If you're going to the effort of building a battery backup system,
you might as well backup the entire computer.  These are available
off the shelf and have the added advantage of allowing users and
the system to clean up before the power goes away.

--
Peter Jeremy

I must be missing something, but I'll succumb to the temptation and ask:

Why not put a flash chip into the drive's onboard electronics, of the same size as the drive's cache, or the max possible size of all outstanding cached writes? If power dies, park the heads immediately. Use your last-gasp energy source of choice to commit the write cache contents into nonvolatile storage. Next time it's powered up, the drive firmware could flush the outstanding write requests to "real" storage before coming ready to the operating system.

At least some modern drives (seen this on HP/Compaq servers, etc) already have flash-upgradeable firmware. It's just a matter of adding a little more. You would use it only when power fails, so it's not like you would wear it out.

Surely this would require far less power than spinning and seeking the disk for the required amount of time? It might take longer based on the flash chip's write speed, but that's probably a feature, since a small battery would be able to supply much less current over time. Cost should be reasonably low since this stuff is in all sorts of consumer devices.

Jason Young, CCIE #8607 (R&S, Voice), MCSE
Consulting Engineer
e-velocity technical consulting, llc.
(513)677-6223 x108
_______________________________________________
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to