lvs fullnat+ECMP【1】核心編譯

來源:互聯網
上載者:User

標籤:targe   err   could not   串連   mpp   drive   evel   cache   mkdir   

0、請使用物理機安裝,虛擬機器沒編譯成功1、先查看一下系統版本,需要是centos6,核心2.6

cat /etc/*release
uname -r

[[email protected] ~]# cat /etc/*releaseCentOS release 6.5 (Final)LSB_VERSION=base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-noarchCentOS release 6.5 (Final)CentOS release 6.5 (Final)[[email protected] ~]# uname -r2.6.32-431.el6.x86_64[[email protected] ~]# 
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/BUILD  cd /home/pukong;   mkdir rpms;   mkdir rpms/tmp;   mkdir rpms/SOURCES;   mkdir rpms/SPECS;   mkdir rpms/SRPMS;   mkdir rpms/RPMS;   mkdir rpms/BUILD;useradd mockbuildrpm -ivh kernel-2.6.32-220.23.1.el6.src.rpmcd /home/pukong/rpms/SPECSyum -y install rpm-buildyum -y install gcc zlib-devel patchutils xmlto asciidoc elfutils-libelf-devel  binutils-devel  newt-devel python-devel hmaccalcyum -y install  rng-tools  openssl-develrngd -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找到核心源碼

[[email protected] SPECS]#  cd /home/pukong/rpms/BUILD/;[[email protected] BUILD]# lskernel-2.6.32-220.23.1.el6
4、添加lvs patch

[Lvs-fullnat-synproxy.tar.gz]
https://pan.baidu.com/s/1sOnbGpnk7vZGoTxgEVDpAA
將檔案放到伺服器中

tar xvf Lvs-fullnat-synproxy.tar.gz cd lvs-fullnat-synproxy/cp lvs-2.6.32-220.23.1.el6.patch /home/pukong/rpms/BUILD/kernel-2.6.32-220.23.1.el6/linux-2.6.32-220.23.1.el6.x86_64/cd /home/pukong/rpms/BUILD/;cd kernel-2.6.32-220.23.1.el6/linux-2.6.32-220.23.1.el6.x86_64/;patch -p1<lvs-2.6.32-220.23.1.el6.patch; // patch is in lvs-fullnat-synproxy.tar.gz 給核心打補丁    補丁不能重複打

打完補丁,修改Makefile檔案,給核心版本命名:

[[email protected] linux-2.6.32-220.23.1.el6.x86_64]# uname -r2.6.32-431.el6.x86_64[[email protected] linux-2.6.32-220.23.1.el6.x86_64]# vim Makefile

將Makefile中EXTRAVERSION 欄位補上一個跟uname -r相似欄位,如

VERSION = 2PATCHLEVEL = 6SUBLEVEL = 32EXTRAVERSION = -431.toa.el6.x86_64NAME = Man-Eating Seals of AntiquityRHEL_MAJOR = 6RHEL_MINOR = 2RHEL_RELEASE = 219

注意修改.config檔案中的參數,主要是為了擴大VS最大串連數,可以增大VS的輸送量(並發串連量),如果值只是原本的4096可能會丟包

 vim .config CONFIG_IP_VS_TAB_BITS=22 
5、編譯核心
make -j16 ##j是指同時作業的數量,可以不用添加此參數make modules_install;make install;

此時可能會報幾個錯

[[email protected] 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_ichERROR: modinfo: could not find module ptp[[email protected] 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/ptpcp /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/

重新安裝,會有幾個警告,忽略即可

[[email protected] 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_traceWARNING: /lib/modules/2.6.32-431.toa.el6.x86_64/kernel/drivers/ptp/ptp.ko needs unknown symbol posix_clock_registerWARNING: /lib/modules/2.6.32-431.toa.el6.x86_64/kernel/drivers/ptp/ptp.ko needs unknown symbol posix_clock_unregister[[email protected] linux-2.6.32-220.23.1.el6.x86_64]# 
6、修改核心檔案

vim /boot/grub/grub.conf
修改default的值為0 表示先啟動
引導檔案中有兩個引導啟動段,一個是原本核心的linux,一個是新編譯的核心,新編譯的核心在上面,所以把default的值設為0,即表示使用新的核心引導系統了。

7、重啟

reboot

lvs fullnat+ECMP【1】核心編譯

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.