我正在开发一个embedded式系统,该系统将在SSD磁盘上引导和托pipe它的rootfs。 目前我们正在考虑使用英特尔X-18M SSD。
文件系统结构将具有一个相当静态的/ usr部分(modulo软件升级)和一个用于维护状态和日志logging的活动/ var和/ var / log。 鉴于基础闪存所做的平均损耗确实有单独的分区帮助或阻碍?
由于现代固态硬盘似乎是直截了当的设备,并隐藏他们的固件背后的映射魔术有什么意思,试图优化SSD的文件系统的select?
最后是否确保SMART监测在这方面具有任何意义,或者是确定存储硬件底层运行状况的SSD具体方法?
如果您根据使用情况对不同的分区使用不同的文件系统/挂接configuration,则分区分区可以提供帮助。 某些文件系统针对NILFS等SSD进行了优化。 所以,是的,他们确实很重要。 如果有足够的RAM,可以在tmpfs上挂载/ var / log以降低SSD的压力。 像noatime这样的选项当然可以用来减less磁盘更新。 如果你没有足够的RAM,你仍然可以挂载它,并使用SSD来交换设备。 此外强烈build议在Linux上使用noop I / O调度器而不是默认的CFQ。 这肯定会减lessCPU使用率。
如果可能的话,还要确保使用linux 2.6.33,因为它支持ATA Trim,这将显着提高设备的使用寿命。 如果2.6.33不可用,那么你可以看看backporting它们。
编辑:既然你提到embedded式,我想内存将是稀缺的tmpfs。 所以在这种情况下,我build议在SSD上使用swap分区,否则交换文件(作为后备存储)也是可以的。
从SSD磨损平衡的angular度来看,没有固有的优势或劣势,有独立的分区。 SSD只看到写入和读取逻辑块 – 它不知道或不在乎它们是属于一个分区还是另一个分区。
不过,将它们分开可能还是有用的,因为您可能希望在不同的分区上使用不同的文件系统选项 – 特别是您可能想要尝试使经常写入的分区上的文件系统块大小 – 可能是大作为SSD擦除块大小。