I have a system running linux that
must run unattended for long periods of time. The system uses industrial CF card for
storage. Most of the time there are no writes to flash, although every now and then some
configuration data/settings can be modified. The system must be resistant to power
failures.
I would like to use ext4 for this.
What is the best way to configure ext4 for this kind of setup? Bearing in mind
that:
- Performance is
not a problem at all (especially write
performance) - Upon power loss, the system should always
boot in a clean state, even if that means that data written in the last few seconds is
lost - If it is possible to avoid fsck, then all
the better.
(I am aware
of this related question:
href="https://serverfault.com/questions/318104/prevent-data-corruption-on-ext4-linux-drive-on-power-loss">Prevent
data corruption on ext4/Linux drive on power loss)
Answer
I've worked in building a system for automation on boats, and there was a
prerequisite: in every moment the power could go down and everything must boostrap again
correctly.
My solution was to build a
Gentoo-based initramfs system, with only a rw folder for application and configurations
(this is the approach used by every router/firewall vendors). This solution add an
additional layer of complexity when dealing with system upgrades, but assure you that
the system will ALWAYS
boot.
Regarding your specific
question, you should keep EXT4 journal enabled for having
faster fsck (of a few secods), use the data=journal mount
option, lower the commit option or use
sync option to keep buffers always
empty.
Refs: href="http://www.kernel.org/doc/Documentation/filesystems/ext4.txt"
rel="noreferrer">http://www.kernel.org/doc/Documentation/filesystems/ext4.txt
Comments
Post a Comment