天天看點

Flashcace安裝 How-to

1. 環境說明

使用的是rhel5.4的系統:

$cat /etc/issue

red hat enterprise linux server release 5.4 (tikanga)

$uname -a

linux myhost 2.6.18-164.el5 #1 smp tue aug 18 15:51:48 edt 2009 x86_64 x86_64 x86_64 gnu/linux

2. 需要的rpm包

安裝基本工具包:rpm-build redhat-rpm-config unifdef。一般情況這三個包都是安裝過的,檢查一下即可。

$sudo yum install rpm-build

package rpm-build-4.4.2.3-18.el5.x86_64 already installed and latest version

$sudo yum install redhat-rpm-config

package redhat-rpm-config-8.0.45-32.el5.noarch already installed and latest version

$sudo yum install unifdef

package unifdef-1.171-5.fc6.x86_64 already installed and latest version

3. 下載下傳并安裝源碼包

現在的rhel發行版中,已經不再帶源碼包,是以需要單獨下載下傳,供flashcache編譯使用。

3.1 準備目錄

[supu@host]$ cd

[supu@host]$ mkdir -p rpmbuild/{build,rpms,sources,specs,srpms}

[supu@host]$ echo '%_topdir %(echo $home)/rpmbuild' > .rpmmacros

3.2 下載下傳源碼包

可以在ftp://ftp.redhat.com/下載下傳到對應的源碼包。這裡的核心版本号是:

$uname -r

2.6.18-164.el5

是以需要下載下傳的是kernel-2.6.18-164.el5.src.rpm,完整的url是:

ftp://ftp.redhat.com/pub/redhat/linux/enterprise/5server/en/os/srpms/kernel-2.6.18-164.el5.src.rpm

注:最好選擇合适的鏡像下載下傳,速度會差很多的。

3.3 安裝源碼包

有了前面的目錄準備,現在可以安裝源碼包了

sudo rpm -i kernel-2.6.18-164.el5.src.rpm

cd ~/rpmbuild/specs

rpmbuild -bp --target=`uname -m` kernel-2.6.spec 2> prep-err.log | tee prep-out.log

ok,這時候源碼包就安裝到了如下目錄:/home/supu/rpmbuild/build/kernel-2.6.18/linux-2.6.18.x86_64

3.4 準備子產品編譯

在源碼目錄執行如下指令,主備flashcache子產品編譯

cd ~/rpmbuild/build/kernel-2.6.18/linux-2.6.18.x86_64

make oldconfig

make prepare

make modules_prepare

4. 編譯flashcache

可以在github上下載下傳flashcache的源代碼,和linux源碼一起編譯,編譯完成後會生成三個可執行程式和一個可動态加載的核心子產品:

flashcache_create

flashcache_load

flashcache_destroy

flashcache.ko

4.1 下載下傳并準備編譯

在在github上可以下載下傳到flashcache最新的源碼。這裡下載下傳的是flashcache-1.0.11,解壓後,有如下目錄:

[supu@host facebook-flashcache-15adea8]$ ls

doc flashcache-wt license makefile readme readme-centos5.4 readme-dkms src

其中src包含了普通的flashcache(這裡的普通指的是write-back版本的flashcache),flashcache-wt包含了write-through版本的源碼;檔案readme-centos5.4中包含了在rhel5.4下編譯的注意事項,本文主要參考該檔案。

按照readme-centos5.4中的說明,修改檔案src/makefile,将行extra_cflags(第一行),用如下内容替換:

注意:這裡沒有換行。

4.2 編譯之

make kernel_tree=/home/supu/rpmbuild/build/kernel-2.6.18/linux-2.6.18.x86_64/

4.3 動态加載子產品

最後需要将子產品flashcache.ko加載到核心,這裡可以将flashcache.ko拷貝到相應目錄:

sudo cp flashcache.ko /lib/modules/2.6.18-164.el5/kernel/drivers/block

或者使用insmod指令,動态加載之:

sudo insmod flashcache.ko

job done! enjoy!

繼續閱讀