bit-tech.net

Samsung releases SSD-specific F2FS file system

Samsung releases SSD-specific F2FS file system

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 Reply
Madness_3d 9th October 2012, 11:29 Quote
Wonder how well it will work when you use it in a virtual machine where the Host and Client are running off an SSD...
Paradigm Shifter 9th October 2012, 13:03 Quote
Will be very interested in this. I don't like disabling access time as a workaround to decrease small SSD writes.
Anfield 9th October 2012, 17:49 Quote
meh, won't ever be used outside of some obscure linux distro anyway.
sheninat0r 9th October 2012, 18:24 Quote
Quote:
Originally Posted by Anfield
meh, won't ever be used outside of some obscure linux distro anyway.

I believe Samsung's intent was (partially at least) to use this filesystem for their new Android handsets; real obscure, yeah?
schmidtbag 9th October 2012, 20:48 Quote
Quote:
Originally Posted by sheninat0r
Quote:
Originally Posted by Anfield
meh, won't ever be used outside of some obscure linux distro anyway.

I 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.
Anfield 9th October 2012, 23:32 Quote
Use it for android? they may had the intention at some point, but google buying motorola may well have changed what google will allow to be used by other manufacturers who are now direct competition instead of providing hw for googles software.
SexyHyde 10th October 2012, 00:07 Quote
Quote:
Originally Posted by Anfield
Use it for android? they may had the intention at some point, but google buying motorola may well have changed what google will allow to be used by other manufacturers who are now direct competition instead of providing hw for googles software.

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.
mclean007 10th October 2012, 06:53 Quote
Quote:
Originally Posted by Anfield
meh, won't ever be used outside of some obscure linux distro anyway.
Quote:
Originally Posted by Anfield
Use it for android? they may had the intention at some point, but google buying motorola may well have changed what google will allow to be used by other manufacturers who are now direct competition instead of providing hw for googles software.
Your ignorant scepticism is starting to get a bit wearing. This sounds like an interesting development, and is a good thing. Linux is hardly obscure these days, and many servers run Linux and SSDs for high IO transaction volumes - they will be all over this. Similarly re Android, Google isn't in the business of aggressively locking down its mobile OS. Google will have no issues with Samsung and others implementing F2FS if it is stable and offers tangible benefits in terms of performance, data integrity or flash longevity.
SpAceman 10th October 2012, 06:58 Quote
Quote:
Originally Posted by schmidtbag
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.

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.
mclean007 10th October 2012, 07:07 Quote
Quote:
Originally Posted by schmidtbag
...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.
Not sure I agree with that mate. Well I agree re desktop environments and distros, but not so much re filesystems. There's no panacea for filesystems - each has its strengths and weaknesses. The closeset to perfect I've seen is ZFS, which isn't properly supported on Linux AFAIK. Solaris running Z-RAID on ZFS makes the perfect (admittedly overkill!) home server for me. But even ZFS isn't perfect for every solution - the data integrity overhead means I'd probably choose something different for a deployment where performance is critical and integrity less so, like scratch space on a search engine or something. There's a reason Google have rolled their own filesystems for internal use. And maybe something like F2FS will get the best out of flash in such situations, since it is designed from the ground up exclusively for flash.
Anfield 10th October 2012, 11:03 Quote
@sexyhyde my point is that I fear that the relationship between google and the other companies currently using android could change for the worse and who said google won't change towards a more closed system, like ios or windows rt? sure they wouldn't admit to it, but their shareholders won't say no to a closed but profitable system forever.

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.
schmidtbag 10th October 2012, 15:22 Quote
Quote:
Originally Posted by SpAceman
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.

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.
schmidtbag 10th October 2012, 15:31 Quote
Quote:
Originally Posted by mclean007
Not sure I agree with that mate. Well I agree re desktop environments and distros, but not so much re filesystems. There's no panacea for filesystems - each has its strengths and weaknesses. The closeset to perfect I've seen is ZFS, which isn't properly supported on Linux AFAIK. Solaris running Z-RAID on ZFS makes the perfect (admittedly overkill!) home server for me. But even ZFS isn't perfect for every solution - the data integrity overhead means I'd probably choose something different for a deployment where performance is critical and integrity less so, like scratch space on a search engine or something. There's a reason Google have rolled their own filesystems for internal use. And maybe something like F2FS will get the best out of flash in such situations, since it is designed from the ground up exclusively for flash.

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".
sb1991 10th October 2012, 18:29 Quote
F3S

There we go, should be even more friendly on the NAND :)
Saivert 11th October 2012, 08:19 Quote
I'm just going to give it time before I make up my mind about it.

@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.
desertstalker 11th October 2012, 10:57 Quote
[QUOTE=schmidtbag]
Quote:
Originally Posted by SpAceman
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.

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.
SexyHyde 12th October 2012, 00:25 Quote
Quote:
Originally Posted by Anfield
@sexyhyde my point is that I fear that the relationship between google and the other companies currently using android could change for the worse and who said google won't change towards a more closed system, like ios or windows rt? sure they wouldn't admit to it, but their shareholders won't say no to a closed but profitable system forever.

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.

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.
Gradius 12th October 2012, 20:27 Quote
Isn't called "Z-RAID", but RAID-Z !

Source:
http://docs.oracle.com/cd/E23824_01/html/821-1448/gcfof.html#gamtu
Log in

You are not logged in, please login with your forum account below. If you don't already have an account please register to start contributing.



Discuss in the forums