您的位置首页百科问答

lfs是什么意思?

LFS──Linux from Scratch,就是一种从网上直接下载源码,从头编译Linux的安装方式。它不是发行版,只是一个菜谱,告诉你到哪里去买菜(下载源码),怎么把这些生东西( raw code) 作成符合自己口味的菜肴──个性化的Linux,不单单是个性的桌面。

lfs是什么意思?

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瓶颈. 当快取没有这些档案,读取效率就会变慢。