Samsung's F2FS file system promises to boost the performance and longevity of solid-state storage devices, but will it ever reach Windows?
Samsung has designed and launched a new file system with a singular aim in mind: improving the longevity and performance of NAND flash-based storage devices.
Dubbed the Flash-Friendly File System, or F2FS, and developed by Samsung's Jaegeuk Kim, the new file system attempts to address some of the issues with using formats designed for spinning-disk devices on solid-state drives including those that lead to performance-sapping cleaning cycles and loss of throughput over time.
'
Since [SSDs] are known to have different characteristics from the conventional rotational disks, a file system, an upper layer to the storage device, should adapt to the changes from the sketch,' Kim explains in a
patch notification for the file system. '
F2FS is a new file system carefully designed for the NAND flash memory-based storage devices. We chose a log structure file system approach, but we tried to adapt it to the new form of storage. Also we remedy some known issues of the very old log structured file system, such as snowball effect of wandering tree and high cleaning overhead.
'Because a NAND-based storage device shows different characteristics according to its internal geometry or flash memory management scheme aka FTL, we add various parameters not only for configuring on-disk layout, but also for selecting allocation and cleaning algorithms.'
The result, in theory, is a file system specifically tuned to solid-state storage from any vendor, improving performance, increasing longevity and allowing for fine-tuning of various parameters - such as the type of garbage collection in use - in order to achieve maximum throughput.
A file system is no good without widespread support, however - but Samsung has a trick up its sleeve to boost adoption: as Kim's patch suggests, the file system and all related utilities are being released under the GNU General Public Licence (GPL) v2, making it suitable for integration within the Linux kernel. It's a smart move: as well as giving Samsung a large number of external testers who are looking for the best performance from their hardware and don't mind the risks inherent with adopting an as-yet unproven file system, the community will be free to write fixes and enhancements which can be adopted back into the file system.
When - or, indeed, if - the file system has proved itself in the wild, it seems likely that Samsung will release a driver for Windows to add F2FS compatibility. So far, however, the company appears to be concentrating on Linux support.
If you fancy giving the file system a trial, the tools package can be downloaded from
SourceForge - but be warned: thus far, there is no support for checking and repairing the file system in the event of a system crash, making data loss more than likely.
18 Comments
Discuss in the forums ReplyI believe Samsung's intent was (partially at least) to use this filesystem for their new Android handsets; real obscure, yeah?
Well, it ought to be android compatible at some point because otherwise it's entirely useless. EXT4 and btrfs are already pretty polished and SSD-ready, linux doesn't need another filesystem, just like it doesn't need any more desktop environments or distributions. It's time to start phasing out stuff.
It would also make more sense if this was more Windows focused, since I get the impression that Windows so far is very SSD-unfriendly, with things like fragmented files, prefetching, superfetching, indexing, paging files, and so on. While many of those things can be disabled as services, what it really comes down to is Windows needs more focus on these matters when installing the OS. It should be able to detect the drive and format it to NTFS for HDD and something like F2FS for SSD, and then disable/enable services accordingly.
Obviously you dont realise the main reason for googles, motorola acquisition. or understand the relationship google has with tech companies with regards it's android OS.
I for one see this as a great thing. hopefully it will reach a decent state of maturity, quite quickly.
You should really read up on some of those terms you just used before you call them SSD unfriendly Windows behaviour.
Fragmented files are a problem in the vast majority of file systems, prefetch and superfetch are automatically disabled when Windows is installed on an SSD, search indexing still speeds up searches considerably on an SSD and paging files are an integral part of the virtual memory system that all modern OS's on general purpose PCs use. Not to mention it benefits hugely from being on an SSD.
Besides, there is still hope for this new filesystem, its no secret that Samsung is involved with Tizen, Samsung is a freaking big company, they could help Tizen (or another alternative mobile os) to succeed, especially after they got fined a billion for android standard features they may well be looking at alternatives to android with increased interest.
Fragmented files are NOT a problem in the vast majority of FSs, that's my point. The worst fragmentation I've had from a linux setup in use for several years was 1.3% non-contiguous, and that's considered high for linux standards, and almost unachievable by Windows standards no matter how many times you defragment.
I wasn't aware the *fetches were disabled when installing, I tend to notice that all services Windows comes with are always enabled no matter what setup you have. So unless you're saying they're checked on but actually idle, then I guess that's where I didn't notice.
I guess SSDs would benefit from indexing when it comes to content and meta tags and stuff like that, but when it comes to just finding a filename, I'm pretty sure you get no benefit from indexing whatsoever.
Virtual memory is also something that only Windows has a problem with. Back when RAM was expensive and in small quantities, paging files were created to allow bigger programs to run, or run more programs at a time. Developers designed programs to distribute resources between RAM and PF to be more efficient, so sometimes you need a 256MB PF to not get the "Warning - virtual memory low" message even if you have 8+GB of RAM. But, Windows is the only OS that gets this problem. I'm not exactly sure how Mac does it, I think they allow use for the standard SWAP filesystem partitions just as all other *nix systems but I don't think they have a PF. But in Linux you don't need a SWAP partition at all. In fact if you run commands like "free -m" you'll find that the swap can be untouched after days of use.
Anyways, I'm sure SSDs do make a hell of a difference with virtual memory, but y'know what's even faster? Real RAM. The problem is Windows doesn't use the system memory when it has plenty of it. SSD space is limited and expensive, I'd rather use that disk space for other programs that might take a while to load.
I agree, many do have strengths and weaknesses, but there's some being made that are just simply pointless, or being maintained when they've been obsoleted years ago. To me, the only linux-specific filesystems that should be maintained are EXT4, btrfs, SWAP (if that even needs maintenance), and there was some other quirky one that had a specific task but I can't remember what its called. ZFS is great but don't think there's a linux release of that, or at least not a write-compatible one.
If someone makes a filesystem for internal use, that's a little different because that's something optimized for their needs and hardware. But Samsung releasing this is like "hey we're making something that currently has no clear advantage over any other linux filesystem and will probably be behind for the next few years" when they could have just pitched in and joined up with one of the other fairly polished FSs. Again, this would be more practical on Windows where they actually need the SSD attention, and if this were Windows focused I probably wouldn't have made a comment, except to say "about time".
There we go, should be even more friendly on the NAND :)
@schmidtbag: many services in windows are enabled but only start on demand.
Over half the services have startup type Manual and are not started according to services.msc on my computer.
You were not trying hard enough, I managed to get single files with 10k plus fragments each. All you need to do is forget to set your BT client to pre-allocate files and download to a fairly full volume. Pieces get scattered all over the place, managed to drop read performance on those files from the array's normal 100MB/s or so to less than 1MB/s.
Google has a successful ethos which they would be crazy to drop. Android adoption is huge and growing, and each new release is reviewed as a great move forward.
tizen is a tie in with intel most likely for intels ARM rivalling tech.
samsung didn't get stung for 'android standard features' it was its touchwiz interface.
Source:
http://docs.oracle.com/cd/E23824_01/html/821-1448/gcfof.html#gamtu