What are the best options for a root filesystem hosted on SSD under Linux

Solution 1:

Having separate partition can help if you use different filesystem/mount configuration for different partition based on usage. Some filesystems are optimised for SSDs like NILFS. So,yes, they do matter. If you have sufficient RAM, you can mount /var/log on tmpfs to reduce pressure on SSD. Options like noatime can certainly be used to reduce disk updates. If you do not have sufficent RAM, you can still mount it and use SSD for swap device as well. Also it has been strongly suggested to use noop I/O scheduler instead of default CFQ on linux. This should certainly reduce CPU usage.

Also make sure to use linux 2.6.33 if possible since it supports ATA Trim which should improve life of the device significantly. If 2.6.33 is not available then you can look at backporting them.

EDIT: Since you have mentioned embedded, I presume memory will be scarce for tmpfs. So in that situation I suggest using swap partition on SSD or if that is also not possible, a swap file(as backing store) will also do.

Solution 2:

There is no inherent advantage or disadvantage, from an SSD wear-levelling point of view, in having separate partitions. The SSD just sees writes and reads to logical blocks - it doesn't know or care whether they belong to one partition or another.

However it could be still be useful to split them up, because you might want to use different filesystem options on the different partitions - in particular you might want to experiment with having the filesystem blocksize on the frequently-written partition be large - perhaps as large as the SSD erase block size.