2

My NAS can hold several 3.5" hard drives and an SD card. I'm planning to boot and run a custom Linux system (based on Debian, built by me) from an SD card, and the 3.5" hard drives will be used for data storage (and possibly log files). The SD card has a sequential read and write speed of 90 MB/s.

Which Linux filesystem should I use? Is there a filesystem which provides better speed and longer hardware lifetime (if there are many log file writes) than ext4?

What are the recommended ext4 creation and mount flags for SD cards?

  • 1
    Don't overcomplicate, ext4. But it is only my opinion. Helló pts :-) – peterh says reinstate Monica Nov 29 '17 at 1:56
  • @peterh I agree. SD prices are cheap as chips. Journalling r/w can be controlled through the mount options and the SD wear can be monitored for clone/swap out before any real issues arise. My main concern would be the I/O speed on the SD. I ran my lappie from an OS on SD for a while when my I had motherboard issues with my SSD socket. Sloooow to boot, although with enough ram performance was acceptable. – bu5hman Nov 29 '17 at 3:58
  • how about none? boot from it and transfer control as possible to a hard disk. – Rui F Ribeiro Nov 29 '17 at 4:40
  • @RuiFRibeiro: I don't want any of the hard drives to contain the operating system, so that I can swap out all the hard drives (in case or failure or capacity upgrade) while the system continues running. – pts Jan 5 at 0:24
1

The filesystem is largely a matter of personal preference. Ext4 is tried and tested and resilient.

Your filesystem r/w speed will be governed by the SD card so going for a higher performance filesystem will give you no advantage or improvement. You may be able to increase the 'apparent' speed of i/o by increasing the buffer size (ram).

The debate on SD / SSD damage with i/o will not be resolved on this forum, but whichever filesystem you use, if you want to reduce SD i/o then the

noatime

option for ext4 mounts tells the system not to update each file/directory inode at each access.

1

Here is the info I was able to find online.

https://en.wikipedia.org/wiki/Flash_file_system#Linux_flash_filesystems mentions JFFS, JFFS2, YAFFS, UBIFS, LogFS, F2FS. Some of these (but not F2FS) are targeted for raw flash devices, F2FS is targeted for flash-based storage devices which already have a translation layer, such as SD cards.

I've found this 2011 question useful about the filesystems available back then: https://superuser.com/questions/248078/choice-of-filesystem-for-gnu-linux-on-an-sd-card

https://developer.ridgerun.com/wiki/index.php/High_performance_SD_card_tuning_using_the_EXT4_file_system mentions ext4 mount flags -o noatime,data=writeback and explains how to create such an ext4 filesystem. It also recommends some cache settings in /proc/sys/vm for increased performance.

https://wiki.gentoo.org/wiki/SDCard#Filesystem mentions some ext4 performance tuning settings which specify block sizes.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.