lvs fullnat+ECMP【1】内核编译
0、請使用物理機安裝,虛擬機沒編譯成功
1、先查看一下系統版本,需要是centos6,內核2.6
cat /etc/*release
uname -r
2、從Redhat網站下載kernel的rpm
wget ftp://ftp.redhat.com/pub/redhat/linux/enterprise/6Server/en/os/SRPMS/kernel-2.6.32-220.23.1.el6.src.rpm
如果無法現在,請從網盤下載。連接:
<https://pan.baidu.com/s/1p1tkhI7Wn5eAq999E9D_xA>
3、從rpm中獲得kerel源碼
vim ~/.rpmmacros;add:%_topdir /home/pukong/rpms%_tmppath /home/pukong/rpms/tmp%_sourcedir /home/pukong/rpms/SOURCES%_specdir /home/pukong/rpms/SPECS%_srcrpmdir /home/pukong/rpms/SRPMS%_rpmdir /home/pukong/rpms/RPMS%_builddir /home/pukong/rpms/BUILDcd /home/pukong;mkdir rpms;mkdir rpms/tmp;mkdir rpms/SOURCES;mkdir rpms/SPECS;mkdir rpms/SRPMS;mkdir rpms/RPMS;mkdir rpms/BUILD;useradd mockbuild rpm -ivh kernel-2.6.32-220.23.1.el6.src.rpm cd /home/pukong/rpms/SPECS yum -y install rpm-build yum -y install gcc zlib-devel patchutils xmlto asciidoc elfutils-libelf-devel binutils-devel newt-devel python-devel hmaccalcyum -y install rng-tools openssl-devel rngd -r /dev/urandom ##rng-tools用于在執行rpmbuild -bb --target=`uname -m` kernel.spec的時候生成隨機數,不然會卡在那里,但是根據卡的地方倒退回去會看到提示就執行rngd -r /dev/hwrandom,不行的話執行 rngd -r /dev/urandom,因此需要安裝此工具rpmbuild -bp kernel.spec;最后的rpmbuild是一個可能是一個十分漫長的操作,請不要關閉xshell。
這時候你就能在/home/pukong/rpms/BUILD找到內核源碼
[root@lvs-fullnat-one SPECS]# cd /home/pukong/rpms/BUILD/; [root@lvs-fullnat-one BUILD]# ls kernel-2.6.32-220.23.1.el64、添加lvs patch
[Lvs-fullnat-synproxy.tar.gz]
https://pan.baidu.com/s/1sOnbGpnk7vZGoTxgEVDpAA
將文件放到服務器中
打完補丁,修改Makefile文件,給內核版本命名:
[root@lvs-fullnat-one linux-2.6.32-220.23.1.el6.x86_64]# uname -r 2.6.32-431.el6.x86_64 [root@lvs-fullnat-one linux-2.6.32-220.23.1.el6.x86_64]# vim Makefile將Makefile中EXTRAVERSION 字段補上一個跟uname -r相似字段,如下圖
VERSION = 2 PATCHLEVEL = 6 SUBLEVEL = 32 EXTRAVERSION = -431.toa.el6.x86_64 NAME = Man-Eating Seals of Antiquity RHEL_MAJOR = 6 RHEL_MINOR = 2 RHEL_RELEASE = 219注意修改.config文件中的參數,主要是為了擴大VS最大連接數,可以增大VS的吞吐量(并發連接量),如果值只是原本的4096可能會丟包
vim .configCONFIG_IP_VS_TAB_BITS=225、編譯內核
make -j16 ##j是指同時作業的數量,可以不用添加此參數 make modules_install; make install;此時可能會報幾個錯
[root@lvs-fullnat-one linux-2.6.32-220.23.1.el6.x86_64]# make install; sh /home/pukong/rpms/BUILD/kernel-2.6.32-220.23.1.el6/linux-2.6.32-220.23.1.el6.x86_64/arch/x86/boot/install.sh 2.6.322.6.32-431.el6.x86_64 arch/x86/boot/bzImage \System.map "/boot" ERROR: modinfo: could not find module lpc_ich ERROR: modinfo: could not find module ptp [root@lvs-fullnat-one linux-2.6.32-220.23.1.el6.x86_64]#需要復制進來幾個模塊
cp /lib/modules/2.6.32-431.el6.x86_64/kernel/drivers/mfd/lpc_ich.ko /lib/modules/2.6.32-431.toa.el6.x86_64/kernel/drivers/mfd/mkdir /lib/modules/2.6.32-431.toa.el6.x86_64/kernel/drivers/ptp cp /lib/modules/2.6.32-431.el6.x86_64/kernel/drivers/ptp/ptp.ko /lib/modules/2.6.32-431.toa.el6.x86_64/kernel/drivers/ptp/重新安裝,會有幾個警告,忽略即可
[root@lvs-fullnat-one linux-2.6.32-220.23.1.el6.x86_64]# make install; sh /home/pukong/rpms/BUILD/kernel-2.6.32-220.23.1.el6/linux-2.6.32-220.23.1.el6.x86_64/arch/x86/boot/install.sh 2.6.32-431.toa.el6.x86_64 arch/x86/boot/bzImage \System.map "/boot" WARNING: /lib/modules/2.6.32-431.toa.el6.x86_64/kernel/drivers/ptp/ptp.ko needs unknown symbol kmem_cache_alloc_trace WARNING: /lib/modules/2.6.32-431.toa.el6.x86_64/kernel/drivers/ptp/ptp.ko needs unknown symbol posix_clock_register WARNING: /lib/modules/2.6.32-431.toa.el6.x86_64/kernel/drivers/ptp/ptp.ko needs unknown symbol posix_clock_unregister [root@lvs-fullnat-one linux-2.6.32-220.23.1.el6.x86_64]#6、修改內核文件
vim /boot/grub/grub.conf
修改default的值為0 表示先啟動
引導文件中有兩個引導啟動段,一個是原本內核的linux,一個是新編譯的內核,新編譯的內核在上面,所以把default的值設為0,即表示使用新的內核引導系統了。
7、重啟
reboot
微信公眾號,隨便發點有意思的東西
轉載于:https://blog.51cto.com/9346709/2307280
總結
以上是生活随笔為你收集整理的lvs fullnat+ECMP【1】内核编译的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MSSQL · 最佳实践 · 使用混合密
- 下一篇: 从源码中编译安装gmt官方开发版(优先体