這是因為現在磁碟機的IO頻寬已經很快,但是受限於磁頭磁軌移動的機械動作加速有限,和磁碟轉動到所需的磁區也需要的時間,讓機械動作比較少的連續磁區讀取,速度遠比需要大量機械動作的隨機讀取快. 但是根據研究,UNIX的檔案系統,約略80%是8K以下小檔,分散在各地的小檔,會造成大量隨機讀取,而讓磁碟I/O明顯變慢. LFS就是想解決這樣的問題.
LFS為了能充份的利用磁碟I/O頻寬,減少隨機讀寫,他定義了Segment為基本的磁碟存取單位,Segment 是由連續的小磁區組成,大小為512KB(1024個磁區). LFS假設系統有足夠大的快取記憶體,讓磁碟機的動作會集中在寫入(因為讀取大多會從快取),因此我們只要把小檔集中起來成為一個個segment 大小再集中寫入,就可以理想上使用100%磁碟頻寬.
顧名思義,LFS本身就是把檔案系統當成一個巨大的log,他的好處是可以很容易處理異常關機產生的問題,只需要檢查最後寫入的磁區就可以. 但相對有個缺點,就是必須保持log尾端有足夠的free space 才能新增/異動檔案. 因此,一但log 滿了,就必須清理log中所有刪除的檔案來釋放空間,並且把空出來的空間往後移,移到尾端再利用,這個動作稱做Segment Clean.
Segment Clean 是一項非常繁重的工作,會占用絕大多部分的磁碟頻寬,以致於系統效能受到拖累,形成LFS實作非常大的問題.
此外,LFS 雖然把小檔案clusted 起來成為Segment,讓寫入效能大增,但讀取時仍可能需要到各個Segments中讀取小檔,由於Segment是很大的IO單位,造成IO瓶頸. 當快取沒有這些檔案,讀取效率就會變慢.
這些都是有待改進的地方.Linux卷結構檔案系統LogFS
Linux對數結構快閃記憶體檔案系統(Linux log-structured Flash file System,LogFS)是在Linux上,使用對數結構,並可擴展的快閃記憶體檔案系統之一,打算用於大容量快閃記憶體存儲設備上,並與UBIFS相互競爭,作為JFFS2的後繼檔案系統之一。這個檔案系統主要是由Jörn Engel,部分是由Linux消費電子論壇(CE Linux Forum)所撰寫。
截至2008年11月,LogFS的測試包終於能夠通過所有的測試案例──這表示LogFS趨於成熟。但是由於還有大量的開發工作正在進行,目前在業界還沒有任何已知的系統安裝LogFS。