Re: [patch] ext2/3: document conditions when reliable operation ispossible

From: Ric Wheeler
Date: Tue Aug 25 2009 - 19:41:31 EST


On 08/25/2009 07:26 PM, Pavel Machek wrote:

Basically, any file system (Linux, windows, OSX, etc) that writes into
the page cache will lose data when you hot unplug its storage. End of
story, don't do it!

No, not ext3 on SATA disk with barriers on and proper use of
fsync(). I actually tested that.

Yes, I should be able to hotunplug SATA drives and expect the data
that was fsync-ed to be there.

You can and will lose data (even after fsync) with any type of storage at
some rate. What you are missing here is that data loss needs to be
measured in hard numbers - say percentage of installed boxes that have
config X that lose data.

I'm talking "by design" here.

I will lose data even on SATA drive that is properly powered on if I
wait 5 years.


You are dead wrong.

For RAID5 arrays, you assume that you have a hard failure and a power outage before you can rebuild the RAID (order of hours at full tilt).

The failure rate of S-ATA drives is at the rate of a few percentage of the installed base in a year. Some drives will fail faster than that (bad parts, bad environmental conditions, etc).

Why don't you hold all of your most precious data on that single S-ATA drive for five year on one box and put a second copy on a small RAID5 with ext3 for the same period?

Repeat experiment until you get up to something like google scale or the other papers on failures in national labs in the US and then we can have an informed discussion.


I can promise you that hot unplugging and replugging a S-ATA drive will
also lose you data if you are actively writing to it (ext2, 3, whatever).

I can promise you that running S-ATA drive will also lose you data,
even if you are not actively writing to it. Just wait 10 years; so
what is your point?

I lost a s-ata drive 24 hours after installing it in a new box. If I had MD5 RAID5, I would not have lost any.

My point is that you fail to take into account the rate of failures of a given configuration and the probability of data loss given those rates.


But ext3 is _designed_ to preserve fsynced data on SATA drive, while
it is _not_ designed to preserve fsynced data on MD RAID5.

Of course it will when you properly configure your MD RAID5.


Do you really think that's not a difference?

I think that you are simply wrong.


I don't object to making that general statement - "Don't hot unplug a
device with an active file system or actively used raw device" - but
would object to the overly general statement about ext3 not working on
flash, RAID5 not working, etc...

You can object any way you want, but running ext3 on flash or MD RAID5
is stupid:

* ext2 would be faster

* ext2 would provide better protection against powerfail.

Not true in the slightest, you continue to ignore the ext2/3/4 developers
telling you that it will lose data.

I know I will lose data. Both ext2 and ext3 will lose data on
flashdisk. (That's what I'm trying to document). But... what is the
benefit of ext3 journaling on MD RAID5? (On flash, ext3 at least
protects you against kernel panic. MD RAID5 is in software, so... that
additional protection is just not there).

Faster recovery time on any normal kernel crash or power outage. Data
loss would be equivalent with or without the journal.

No, because you'll actually repair the ext2 with fsck after the kernel
crash or power outage. Data loss will not be equivalent; in particular
you'll not lose data writen _after_ power outage to ext2.
Pavel


As Ted (who wrote fsck for ext*) said, you will lose data in both. Your argument is not based on fact.

You need to actually prove your point, not just state it as fact.

ric
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/