Hi,
I'm trying to figure out what state of the art linux filesystem/scheme I could use, if I have to use CF or SD card and primary storage.
Part of my dataset rarely changes and I can make a read-only partition for that. Another part is quite dynamic, potential small updates every 10 seconds. I've gone quite far to make sure writes are only done when needed at user level. And device could lose power any time and should recover quickly.
My naive approach is ext3 and sqlite with pargma synchronous = normal. Startup is normal linux startup plus sqlite pragma quick_check(1). Failure rate of this approach is >5% per year :-(. Some of it may be due to elevated temp, still it sucks.
What would be better? Can LogFS be practically used on flash cards now? Btrfs with some special settings? Ext2? How to make fsck fast? Vfat? Can sqlite manage on vfat? Something custom?
Should I split the card into partitions and RAID it? I would wear faster, but at least I would know about errors earlier...
Is it conceivable or even likely that errors in one partion could cause errors in another?
Is there any practical difference between CF and SD? Do consumer grade CF/SD cards still perform wear levelling in chunks of 1000/1024? Do consumer cards commonly use static or dynamic wear levelling? What about industrial grade?
previous discussion: