On Fri 11-05-12 07:08:20, Asdo wrote: > On 05/09/12 21:50, Jan Kara wrote: > I have some troubles understanding the barriers thing, can you help me? > > In the past some blockdevices would not provide / propagate the > barriers, e.g. MD raid 5 would not. So filesystems during mount > would try the barrier operation and see that it wouldn't work, so > they would disable barrier option and mount as nobarrier. Correct. > However the flush was always available (I think), in fact databases > would not corrupt (not even above ext4 nobarrier, above a raid5 > without barriers) if fsync was called at proper times. This is not true. Both cache flushes and barriers were implemented by the same mechanism in older kernels. Thus if the device did not properly propagate the barrier capability, then fsync did not provide any guarantees in case of power failure (if there are volalile write caches in the storage device). > So first question is : why filesystems were not using the flush as a > barrier like databases did? The above explains that I guess. > Second question is : was a nobarrier mount (ext4) more risky in > terms of data or metadata lost on sudden power loss? Sure, if you have volatile write caches (normal situation on all disk drives when you don't have UPS), then nobarrier can cause filesystem corruption on power failure. It was like that before and it is still true. Nobarrier is there for cases like - you are sure you won't have unexpected power failure (you have UPS or laptop with working battery and everything is setup to shutdown the system cleanly when the battery gets low), or you have disabled write caches on the device, or the device itself has battery backed caches (the case of higher grade storage cards or NAS). Honza -- Jan Kara <jack@xxxxxxx> SUSE Labs, CR -- To unsubscribe from this list: send the line "unsubscribe linux-ext4" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html