fcache:加速linux的启动
一. 简介: fcache的作者是Jens Axboe,他是把这个patch当成一个weekend project写的 . 这个补丁的目的是在不修改文件系统的前提下,而使启动的流程是完全线性的(应该是指读磁盘的流程),从而加速linux的启动,简单的说fcache就是文件系统和块设备之间一种重映射. fcache有两种运行模式:prime模式和normal模式.当运行在prime模式时,他缓存一切对目标分区的读操作,写入缓存分区.从而使数据在缓存设备中线性存放,即是一个关于时间的函数.当运行在normal模式时,fcache将会在缓存设备中查找缓存,如果命中的话,那么启动即可以直接读入缓存设备的线性数据.启动流程大多时候是重复性的,因此,fcache会提供完美的获取启动数据途径. 一般来说,第一次启动使用prime模式,准备好缓存数据,以后启动时使用normal模式,可以大大加速启动的速度(只要你的启动流程不变的话) 这里有一份hzmagnel写的关于fcache原理的文档,有兴趣的同学可以随便翻翻,我们会感动的内牛满面! 二. 如何使用fcache Step 1:给内核打上fcache补丁,推荐的内核版本是2.6.17 cd /usr/src/linux 下载补丁 wget http://www.kernel.org/pub/linux/kernel/people/ck/patches/2.6/2.6.17/2.6.17-ck1/patches/fs-fcache-v2.1.patch 进入内核源代码目录 patch -p1 Block devices->Boot fronted cache driver 然后重新编译内核,并使用这个内核. Step 2:创建fcache的分区 分区大小为512M左右,文件系统为ext3,如果仅仅为试验,可以暂时使用swap分区作为fcache的分区 Step 3:修改启动和关闭脚本 在linux启动的时候,根文件系统第一次被加载的时候是readonly的,等到检查完根文件系统,这时候再用rw的方式remount根文件系统.我们要做事情就是在remount的时候,加上fcache的参数.而remount的所在是因不同发行版而异的,比如在gentoo中,remount在/etc/init.d/checkroot里,而在suse中,remount在/etc/init.d/rootfsck中.我们可以通过grep "remount"找到那个脚本. 找到那个脚本后,找出mount -n -o remount,rw / 2>/dev/null 修改为mount -n -o remount,fcache_dev=#/*,fcache_prime=0 / 2>/dev/null 以下针对ubuntu 7.04,写出一种具体做法(注意:其他版本需要做相应调整) 编辑 /etc/init.d/checkroot.sh脚本,找到 if ! mount -n -o remount,$rootopts,$rootmode $fstabroot / 2>/dev/null then mount -n -o remount,$rootopts,$rootmode / fi 修改为 if ! mount -n -o remount,$rootopts,$rootmode,fcache_dev=#/*,fcache_prime=1 $fsabroot / 2>/dev/null then mount -n -o remount,$rootopts,$rootmode,fcache_dev=#/*,fcache_prime=1 / fi 注意这里fcache_dev=#/*,其中fcache_dev是指我们在第二步创建的那个分区对应的设备. #代表主设备号,*代表次设备号.比如笔者的使用的IDE硬盘,是hda10,因此fcache_dev=3/10 编辑/etc/init.d/umountroot脚本,找到 mount $MOUNT_FORCE_OPT -n -o remount,ro -t dummytype dummydev / 2>/dev/null || mount $MOUNT_FORCE_OPT -n -o remount,ro dummydev / 2>/dev/null || mount $MOUNT_FORCE_OPT -n -o remount,ro 修改为 mount $MOUNT_FORCE_OPT -n -o remount,ro,fcache_dev=#/* -t dummytype dummydev / 2>/dev/null || mount $MOUNT_FORCE_OPT -n -o remount,ro,fcache_dev=#/* dummydev / 2>/dev/null || mount $MOUNT_FORCE_OPT -n -o remount,ro,fcache_dev=#/* / |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |