Messages in this thread |  | | From | David Woodhouse <> | Subject | Re: your mail | Date | Sat, 31 Aug 2002 01:12:56 +0100 |
| |
adilger@clusterfs.com said: > I would instead suggest using a filesystem like JFFS2 for flash > devices. This is journaled like ext3, but it also has the benefit of > doing wear levelling on the device, which otherwise will probably wear > out the superblock part of the flash rather quickly.
He said he's using CompactFlash. CompactFlash is not flash, as far as we're concerned: it is an IDE drive. You may think it has flash inside it; we couldn't possibly comment.
In fact, it generally has a kind of pseudo-filesystem internally which it uses to emulate a block device with 512-byte sectors. It may do its own wear-levelling; the manufacturers are often quite cagey about whether it actually does or not. Draw your own conclusions about that if you will.
It's quite common to find that this internal pseudo-filesystem _itself_ gets screwed on power failures. This tends to manifest itself as unrecoverable I/O errors.
There is no fundamental reason why every CF card should have these problems, in the same way as there is no fundamental reason why all PC BIOSes should be crap. But the same expectations apply.
If you want to pass power-fail testing, I would recommend you switch to using real flash. JFFS2 on real flash has survived days of stress testing whilst being power cycled randomly every ~5 minutes. The same tests were observed to destroy CF cards¹.
CF is bog-roll technology. It's disposable storage designed for temporary use in stuff like cameras -- not for real computing. Think of it like a floppy disc and you won't go far wrong.
-- dwmw2 ¹ http://www.embeddedlinuxworks.com/articles/jffs_guide.html² ² Constant reboots no longer screw the wear levelling, as reported there.
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
|  |