Evaluation of File Systems for Solid State Drives

Abstract. The Solid State Drives (SSD) of digital cameras, mobile phones, tablets, and Multimedia Card(MMC), Secure Digital (SD) cards, USB (Universal Serial Bus) ﬂash drives are the personal storage devicesprevalent in today’s human life. The SSDs provides the high speed, high storage capacity with lower physicalspace and price. Hence SSDs are the replacement for traditional Hard Disk Drives (HDD). Today, SSDs areavailable with SATA (Serial Advance Attachment) interface and hence laptops and Personal computers useSSDs. This paper examines the available ﬁle systems in Windows and Linux kernel based operating systemswith respect to features such as crash resilience, Garbage Collection, Wear Levelling, Performance and abilityto use the ﬁle system in multiple operating systems. Keywords: Btrfs, ExFAT, ext4, F2FS, File system, FAT, Flash memory, FUSE, JFFS, LFS, Linux, MMC,NAND, NOR, MTD, SD, SSD, UBIFS, YAFFS. 1. Introduction The MMC [1]/SD [2] memory cards are made up of NOR or NAND ﬂash memoires which can be electrically erasedand reprogrammed. The ﬂash memories are called as “Solid State Drives (SSD)”. Data is written to the ﬂash memoryin units called pages. Each page is made up of multiple memory cells. However, the memory can only be erased inlarger units called blocks. Each Block consists of multiple pages. In case of hard disks drives, data can be written interms of bytes and blocks, and overwrites are possible too. In case of ﬂash memories writes are performed only interms of pagesand no byte writes are possible. In case of overwrites, even-thougha single page needsto be updatedtheblock, containing the page to be updated, need to be erased and written with updated data. The erase cycles determinesthe endurance of the ﬂash memory. This means that after the maximum device speciﬁc erase cycles per block, the ﬂashdevices becomes unreliable. To improve the life span of the ﬂash device, A mechanism called “Wear levelling” [3] isrequired to arrange the data in the blocks such that erase cycles are equally distributed among all blocks of the ﬂashstorage device. While erasing a block If the data in some of the pages of the block are no longer needed (also calledstale pages), only the pages with good data in that block are read and re-written into another previously erased emptyblock, then the free pages left by not moving the stale data are available for new data. This is a process called garbagecollection (GC) [3]. All SSDs include some level of garbage collection, but they may differ in when and how fast theyperform the process. The continuous usage (write operations) of NAND ﬂash memoires cause the block of memorycan wear out and therefore such blocks should not be used and alternative block should be provided for logical tophysical mapping. The process of tracking the bad blocks and replacing with valid blocks are called “Bad BlockManagement” [3]. A ﬁle systems in general deﬁnes the data structures and algorithms to store the user data such as documents,text ﬁles, executable, multimedia ﬁles, directories etc. The conventional ﬁle systems assumes that storage device isbyte accessible and overwrites are permitted and thus these ﬁle system requires a dedicated FTL (Flash TranslationLayer)s [4,5] software to handle the wear-levelling, logical to physical block mappings. The MMC/SD cards, USB [6]pen drives and SATA [7] SSD storage devices has in-built (ﬁrmware) wear-levellingand garbagecollectionalgorithms.Where as in case of NAND/NOR ﬂash memories FTL is software module. Deﬁning a ﬁle system pattern for ﬂashmemories is challengingtask because ﬂash memories requireswear-levellingand garbagecollectionof memoryblocks