當前位置:菜譜大全網 - 饑荒食譜 - lfs是什麽意思?

lfs是什麽意思?

LFS──Linux from Scratch,就是壹種從網上直接下載源碼,從頭編譯Linux的安裝方式。它不是發行版,只是壹個菜譜,告訴妳到哪裏去買菜(下載源碼),怎麽把這些生東西( raw code) 作成符合自己口味的菜肴──個性化的Linux,不單單是個性的桌面。

Log-structured file system,是影響近代高效能檔案系統很深遠的設計,有許多效能導向的特殊應用檔案系統,像WAFL,Sprint,ZFS,都以LFS概念為設計的基礎. 因為壹般的檔案系統,只能利用10~15%的磁碟頻寬,LFS卻可以提升到80%。

這是因為如今的磁碟機的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瓶頸. 當快取沒有這些檔案,讀取效率就會變慢。