Worried about corruption
I'm about ready to install pfsense onto a new machine (i5-4670k + 32GB SSD) and i'm worried about the possibility of filesystem corruption during abrupt power outages. There is no budget for a UPS to enable safe shutdowns and the end-user for this doesn't know or care about best shutdown practices regardless. In the past I have had installs become corrupted beyond repair from power outages. Am I best off installing the nanobsd release on this machine? Will there be any performance hit due to the different kernel? This machine only has basic routing to do (at gigabit speeds) + vpn + traffic shaping. Thanks!
Wait until the budget grows by $100 for a ups is my suggestion.
Regardless of a UPS existing or not there are still plenty of scenarios that can end in filesystem corruption. I would prefer to run the nanobsd image for this reason, I just don't want to suffer any non-documented performance decreases because of it. Do I run that risk, or should performance be the same?
For the system I recently built, I went with an Intel Data Center class SSD for the following feature:
Enhanced Power Loss Data Protection
Reduces potential data loss by detecting and protecting data from an unexpected system power loss. The drive saves all cached data in the process of being written prior to shutting down, thereby reducing potential data loss.
Come in sizes starting at 80G.
Life Expectancy - 2 million hours Mean Time Between Failures (MTBF)
Lifetime Endurance - Up to 450TB Written
Would be a bit more $$ than a standard 30G SSD, but I think the price is reasonable.
I went ahead and just installed the nanobsd image, a read-only filesystem is the only way to be mostly safe. I'll update this post in the future if any routing performance issues are encountered due to this.
Any time you're using a file system that isn't in read-only mode you take the risk of corruption during a power loss, even with a SSD that has a super cap, as just because the writes in cache are flushed does mean that the system didn't need to write more as a part of a larger transaction.
nanobsd is the way to go