“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.”
Don’t let Apple find out! Next thing you know, they’ll try to find something to sue over in this new file system.
But a bit more seriously though, this is a good thing. It’s disappointing that when it comes to flash media, no suitable file system has gained popularity and we’re still stuck with FAT. Well, ext2, too–but at the expense of cross-platform read/write-ability because some company in Redmond wants you to use their crappy, antiquated file system from the 1980s. And apparently every company loves it because, being such creaky old and simplistic technology, implementing it is a breeze.
That said, IMO ext2 is not that good of a solution either really; there needs to be a file system built from the ground up to support all major operating systems equally. Something designed for flash drives and with implementations for all major operating systems from the start.
The thing here is that any block device filesystem will do for external media due to the hardware FTL (flash translation layer — converts flash into a block device).
The post implies that this filesystem is to be used as a block device and not a mtd device. What confuses me is that they compare this to log structured filesystems, but those are usually used in mtd devices (which lack a FTL).
So what is the use case specifically for this FS?
Edited 2012-10-06 16:10 UTC
From the KML, it seems some of the kernel devs are confused as well…
It seems that it does not do wear leveling and is designed to work with an FTL, but its as clear as mud to me.
I guess it will all shake out eventually. It does look interesting though:
http://article.gmane.org/gmane.linux.kernel/1370709
FTL handles wear leveling, but introduces unusual performance characteristics: in-place updates become very expensive. In many cases this can be helped by file system doing copy-on-write instead of in-place update. I guess this is the idea.
That said, I thought Samsung has enough resources to proof read the documentation before submitting (at least use a spell checker). Comparison to similar file systems and some benchmark results would also help.
A log-structured filesystem is not necessarily a bad design choice for FTL volumes. You don’t need to worry about wear-leveling, but you don’t need to worry about spatial locality either, and you know that the FTL will override any attempts to do in-place updates.
So you can only really optimize two things: allocating free (logical) blocks for writes, and indexing file extents for reads. Log-structured filesystems are as good as it gets for allocating free space (just continue writing where we left off), and they also avoid the fragmentation of files across many extents.
The only thing one might want to do differently than a classic log-structured filesystem is to update the superblocks and inodes in-place and defer to the FTL’s wear-leveling algorithm. These are fixed block-sized structures, so in-place updates are simple and copy-on-write is an unnecessary overhead.
That makes perfect sense. Thanks for the explanation.
And what is the deal with linux and ZFS? Why not use the best fs?
The existing kernel-level implementation is under CDDL which is GPL-incompatible and the abstract filesystem itself is covered by software patents that not even pre-Oracle Sun was eager to share.
ZFS isn’t the best FS for small flash filesystems on mobile devices.
Nor for the average computer. It loves to feast on ram, and starts running like crap sometimes even with 4GB…
Edited 2012-10-06 19:23 UTC
ZFS doesn’t use nearly as much RAM as you suggest. I have a server with 1GB of RAM running ZFS pools and all the services and ZFS combined are using less than half of my available memory.
And, someone managed to get ZFS running and importing a pool on a RaspberryPi, which only has 256 MB of RAM (128 MB usable by the OS):
http://raspberry-python.blogspot.com/2012/10/zfs-file-system-on-ras…
ZFS is definitely not the best choice for flash – media, plus it’s very resource-hungry on the host – side of things, too. ZFS is plenty useful on a server, and even on a desktop it could possibly be useful, but it is not suitable for use in embedded devices with limited resources or devices where you simply have no need for all of its features.
… LogFS, UBIFS, and YAFFS.
Was there really a need to invent yet another wheel?
Been a while since I looked into flash-specific filesystems, so I may remember wrongly that the three above are also Flash FS’s.
Is this another case of Not Invented Here, or does F2FS have merit?
As far as I know both UBIFS and YAFFS are designed to be used with raw flash-chips whereas F2Fs is designed to work well in conjunction with flash-devices with FTL. The needs and optimization techniques are different and with careful planning of the filesystem the FTL can handle all the low-level details while still providing excellent speeds and reliability for a flash-friendly filesystem.
The whole point as I see it is that this allows one to separate the actual low-level hardware details from the operation of the filesystem, allowing you to improve/work on either one of those separately without having to re-design the whole thing every single time or for every new development in the hardware.
Edited 2012-10-07 04:54 UTC
The interesting thing here is that Samsung might (might) release a tool tgat will allow usage of this FS with Windows, breakibg the artificial lockin to FAT32 and exFAT imposed by Windows.
PS: Yes theoretically Apple can file a patent for this, and then Samsung will have to prove prior act which bought/incompetent judges like Koh will ignore
Browser: Mozilla/5.0 (Linux; U; Android 2.3.4; el-gr; LG-P990 Build/GRJ23) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 MMS/LG-Android-MMS-V1.0/1.2
…didn’t Sandisk invent their own “flash-optimized” FS not too long ago? What happened to that?!? :-O
Microsoft’s NIH syndrome happened.
Let’s hope they’ll provide all drivers (including Windows one), and no idiot will come up with some patents to disrupt it. It’ll solve all the mess with FAT and co.
Let’s hope Samsung doesn’t want to exercise any patents related to that.
Don’t know about windows drivers, but it seems to have landed in debian
http://packages.debian.org/sid/f2fs-tools
I’ve seen their flash-based servers outperform machines with scores of spindles, twice the RAM and CPU, and costing at least twice as much.
Flash is the only way to go.
Has anyone here argued anything to the contrary or who are you directing your comment at?
It was spam.
Now, I realize that this is a forum for people who know, understand and work/program at the most basic to complex levels.
But just for a laugh,.. I got here via links to an interesting article(s). I use the Galaxy Tab 10.1 and it just updated itself. So, I wanted to read up on the changes.
When I read through your comments, I had to laugh: As a end-user who could barely program my multifunction remote control, I found myself reading all of the initials and Abbreviations and wondering: Are there any sub-titles so schmuck like me can understand anything written here?!?!?
Really though, keep doing the stuff you love to do. We end users do appreciate the thought and efforts that go into making all my gizmos work.
Sorry for the long post. Have a great Monday.
Jim
Most of the comments here are one or multiple of the following:
1) An insightful/informative post
2) Troll post
3) A post by someone who doesn’t know what he is talking about but is trying his best to appear smart
4) A completely off-topic post
5) A post about politics
6) not worth reading and therefore modded down
7) not worth reading yet still modded up
8) worth reading and therefore modded up
9) worth reading and yet still modded down
10) funny
11) definitely not funny
12) can only be understood by other geeks
13) can not be understood even by other geeks
14) can no longer be understood by the commenter himself the next day
Basically, most comments are either #2, #3 or #4 and thus you’d be wasting your time reading the subtitles anyways, and while there are a few that qualify as #1 they’re always #12, #13 or #14 and therefore subtitles still wouldn’t help you. There are some #10 #2s here every now and then, but they still #12. With the #6,#7, #8 and #9 an outsider like yourself won’t know what to read and what not to read, so you’d still be wasting your time.
As such I must conclude that subtitling wouldn’t work and would most likely just confuse you outsiders even more. Now, there ARE steps you can take to eventually develop the needed cognitive skills to follow the discussion here and I shall list these steps below:
To become one of us and therefore be able to follow our discussions one day you must fulfill atleast 6 of the following:
1) drink lots of soda/energy drinks
2) acquire reasonable amounts of body mass, then triple that amount and concentrate it around your waist
3) lose 90% of your body mass so that when you stand against a bright light people can see your skeleton shine through
4) wear non-hipster glasses
5) develop large amounts of pimples
6) clean yourself bi-monthly
7) exercise your wrist(s) atleast 3 times a day. Must be done in front of a computer
8) familiarize yourself with all the current Internet-memes
9) develop an unhealthy relationship with one or another computer-related brand name or phenomenon
If you still do not seem to succeed it might be because you’re not mentally disturbed enough, and for that the most effective cure is browsing 4chan forums on a daily basis for a month. Looking for terms like e.g. “clop-clop” will certainly lead to excellent results in no time.
I hope this post was helpful!
Edited 2012-10-08 11:09 UTC
Apple trolls (they are a gang of trolls up voting the troll that post troll comments and down vote anyone who doesn’t praise their dead leader and calls the apple trolls what they are)
Apart from being informed Samsung is working on a new flash friendly file system I’m none the wiser. Why they bothered and how it works…just the basics would be nice , what’s the point of news otherwise.
There is no in-depth explanation of the inner workings of F2FS yet, but I read somewhere that they mostly try to group writes together in order to avoid the drive having to do so many costly copy-on-writes. Also, it is to separate FTL from the filesystem so either one can be worked on independently unlike UBIFS and the like. The filesystem also apparently has a lot of options that can be tuned to match the specifics of the device in question better than what the pre-existing ones offer.
Alas, Samsung will provide us more details after they’ve presented F2FS on the Korean Linux-forums. According to the Linux-Kernel archives discussions there will be slides and performance benchmarks for us to see.
http://lkml.indiana.edu/hypermail/linux/kernel/1210.0/03913.html :
I somehow get the feeling that they didn’t actually do much research on the existing filesystems and just decided to write one from the scratch. I mean, there’s a lot of “if” and “maybe” there and no actual reasoning whatsoever. I am quite certain that e.g. ext4 could be a viable flash-filesystem with some changes and since it’s an already proven and tested filesystem it’s much less likely to contain any bad bugs. Also, Jaegeuk mentions they’re not including any advanced functionality, only the basics, and thus I cannot help but wonder if writing patches for an existing FS would have been better use of everyone’s time.
EDIT: Forgot to add the link.
Edited 2012-10-08 21:34 UTC