lvs fullnat部署手册(一)fullnat内核编译篇
fullnat开源已经有一阵子了,内核版本为2.6.32-220.23.1.e16,项目地址http://kb.linuxvirtualserver.org/wiki/IPVS_FULLNAT_and_SYNPROXY。本屌编译测试环境如下:
centos6.3 64位
编译过程参照官方做法,只是融入后续的打rpm包的部分。过程如下:
一、下载相关代码:
下载 kernel-2.6.32-220.23.1.el6.src.rpmlinux-2.6.32-220.23.1.el6.x86_64.lvs.src.tar.gz
二、编译内核
1、安装kernel-2.6.32-220.23.1.el6.src.rpm
|
1
|
rpm -ivh kernel-2.6.32-220.23.1.el6.src.rpm |
2、生成内核源码
默认的,你会在root家目录下看到rpmbuild目
|
1
2
|
cd /rpmbuild/SPECSrpmbuild -bp kernel.spec |
3、对生成的内核源码打patch默认的
|
1
2
3
4
5
6
7
8
9
10
|
#在/usr/local/src下解压linux-2.6.32-220.23.1.el6.x86_64.lvs.src.tar.gztar tar.gz#打patchcd /rpmbuild/BUILD/kernel-2.6.32-220.23.1.el6/linux-2.6.32-220.23.1.el6.x86_64/cp .6.32-220.23.1.el6.x86_64.lvs/lvs-2.6.32-220.23.1.el6.patch .#淘宝将IP_VS改成了22,测试时遇到些麻烦,因此改为20了。#vim .configCONFIG_IP_VS_TAB_BITS=20#你可以修改Makefile把内核的名称做下标记(line:4)EXTRAVERSION = .FNAT.shanks.e27.x86_64 |
4、make
|
1
2
3
|
make make make ; |
5、配置grub.conf
|
1
2
|
#vim /boot/grub/grub.confdefault=0 |
三、reboot
reboot之后uname -r看下是不是你想要的内核。
四、打内核rpm包
1、安装kernel-2.6.32-220.23.1.el6.src.rpm
|
1
|
rpm -ivh /usr/local/src/kernel-2.6.32-220.23.1.el6.src.rpm |
2、生成内核源码目录
|
1
|
rpmbuild -bp ~/rpmbuild/SPECS/kernel.spec |
3、复制出一份内核源码目录
|
1
2
|
cd /rpmbuild/BUILD/kernel-2.6.32-220.23.1.el6/cp |
4、为内核打fullnat的patch
|
1
2
3
|
cd patch -p1 < /usr/local/src/lvs-2.6.32-220.23.1.el6.patchcp /rpmbuild/SOURCES/config-x86_64-generic |
5、删除原来内核源码目录中的.config文件。
|
1
2
|
cd /rpmbuild/BUILD/kernel-2.6.32-220.23.1.el6/linux-2.6.32-220.23.1.el6.x86_64rm |
不删的话,会在最后打rpm时遇到报错

6、打自己的patch
|
1
2
|
cd /rpmbuild/BUILD/kernel-2.6.32-220.23.1.el6/diff /SOURCES/lvs-2.6.32-220.23.1.el6.patch |
7、编辑kernel.spec
|
1
2
3
4
5
6
7
8
9
|
vim ~/rpmbuild/SPECS/kernel.specline:9 打上个版本号 %define dist .e27line:22 打上个名称的标记 %define distro_build fnat.shanksline:605 标记下自己的patch Patch999999: lvs-2.6.32-220.23.1.el6.patchline:915 让自己的patch生效 ApplyOptionalPatch lvs-2.6.32-220.23.1.el6.patch |
8、打rpm
|
1
|
rpmbuild -bb --with baseonly --with firmware --without debuginfo --target=x86_64 SPECS/kernel.spec |
|
1
2
3
4
5
6
7
8
9
10
11
12
|
在这里如果遇到这样的报错:+ cp/root/rpmbuild/SOURCES/Module.kabi_x86_64/root/rpmbuild/BUILDROOT/kernel-2.6.32-fnat.shanks.e27.x86_64/Module.kabi+ /root/rpmbuild/SOURCES/check-kabi-k /root/rpmbuild/BUILDROOT/kernel-2.6.32-fnat.shanks.e27.x86_64/Module.kabi -s Module.symvers*** ERROR - ABI BREAKAGE WAS DETECTED ***The following symbols have been changed (this will cause an ABI breakage):register_ip_vs_schedulerunregister_ip_vs_scheduler+ exit1error: Bad exit status from /var/tmp/rpm-tmp.0Wfj33 (%build)RPM build errors: Badexit status from/var/tmp/rpm-tmp.0Wfj33 (%build)可以在rpmbuild的时候加上--without kabichk |
参考:https://fedoraproject.org/wiki/Building_a_custom_kernel/zh-cn
lvs fullnat部署手册(一)fullnat内核编译篇的更多相关文章
- LVS+Redis部署手册
Redis是一个开源,先进的key-value存储,并用于构建高性能,可扩展的Web应用程序的完美解决方案. Redis从它的许多竞争继承来的三个主要特点: Redis数据库完全在内存中,使用磁盘仅用 ...
- open-falcon(v0.2)部署手册(源码编译)
今天安装falcon-plus,下面为用基础环境配置. centos 6.8 alisql5.6.32 redis-3.2.8 cmake-3.9.1 bison-3.0 openssl-1.0 ...
- LVS+MYCAT+读写分离+MYSQL主备同步部署手册
LVS+MYCAT+读写分离+MYSQL主备同步部署手册 1 配置MYSQL主备同步…. 2 1.1 测试环境… 2 1.2 配置主数据库… 2 1.2.1 ...
- 【转载】LVS+MYCAT+读写分离+MYSQL主备同步部署手册(邢锋)
LVS+MYCAT+读写分离+MYSQL主备同步部署手册 1 配置MYSQL主备同步…. 2 1.1 测试环境… 2 1.2 配置主数据库… 2 1.2.1 ...
- LVS的部署、案例、以及常见问题
LVS的部署.案例.以及常见问题 原创chenhuyang 最后发布于2018-06-03 16:18:25 阅读数 1560 收藏 展开 一.LVS的部署 LVS现在已经集成在linux内核模块中, ...
- OpenStack Kilo版加CEPH部署手册
OpenStack Kilo版加CEPH部署手册 作者: yz联系方式: QQ: 949587200日期: 2015-7-13版本: Kilo 转载地址: http://mp.weixin.qq.co ...
- Kubernetes 1.13 的完整部署手册
前言: 非常详细的K8s的完整部署手册,由于Kubernetes版本和操作系统的版本关系非常敏感,部署前请查阅版本关系对应表 地址:https://github.com/kubernetes/kube ...
- 在阿里云中编译Linux4.5.0内核 - Ubuntu内核编译教程
实验环境:Ubnuntu 64位(推荐使用14.04)+Xshell 阿里云现在提供的云服务器很好用的,用来编译内核性能也不错.本文介绍最基本的内核编译方法,为了方便,所有操作均在root用户下进行. ...
- MariaDB Galera Cluster部署手册
MariaDB Galera Cluster部署手册 galara保证双主数据库的同步及一致性 1.环境准备 基于新部署.最小化安装centos6.5 1> yum install opens ...
随机推荐
- tensorboard实现训练的可视化
tensorboard是tensorflow自带的可视化工具 输入命令可以启动tensorboard服务. tensorboard --logdir=your log dir 通过浏览器localho ...
- 对JVM的理解
操作系统内核是至高无尚的内功心法,只有掌握了内功,学习其他的武功才会轻而易举. 现在我们来谈谈java.JVM其实是操作系统中运行的进程,JVM有操作系统进程的所有共性,但是它却不是一个普通的进程,它 ...
- java中数组以及集合
java中数组: 数组在Java里是一种特殊类型,有别于普通的“类的实例”的对象.但实际数组也是一种对象类型,int[]a = new int[5] a是在java栈中分配的引用变量,类型是int[ ...
- Python学习笔记之Centos6.9安装Python3.6
0x00 注意 如果本机安装了python2,尽量不要管他,使用python3运行python脚本就好,因为可能有程序依赖目前的python2环境, 比如yum!!!!! 不要动现有的python2环 ...
- Django学习笔记之Models与ORM操作
一.ORM增加 from django.db import models class Publisher(models.Model): name = models.CharField(max_leng ...
- 20145307第五次JAVA学习实验报告
20145307<Java程序设计>第五次实验报告 北京电子科技学院(BESTI)实验报告 课程:Java程序设计 班级:1453 指导教师:娄嘉鹏 实验日期:2016.05.06 实验名 ...
- Python学习笔记(十二)—Python3中pip包管理工具的安装【转】
本文转载自:https://blog.csdn.net/sinat_14849739/article/details/79101529 版权声明:本文为博主原创文章,未经博主允许不得转载. https ...
- pagehelper的使用
知识点:使用pagehelper实现分页功能 参考资料github上:https://github.com/pagehelper/Mybatis-PageHelper/blob/master/wiki ...
- Windows下安装Redis服务、搭建简单Redis主从复制
Redis拥有非常强大的主从复制功能,而且还支持一个master可以拥有多个slave,而一个slave又可以拥有多个slave,从而形成强大的多级服务器集群架构.目前在同一台window下安装三个r ...
- 【论文解析】MTCNN论文要点翻译
目录 0.论文连接 1.前言 2.论文Abstract翻译 3.论文的主要贡献 4.4 训练 5 模型性能分析 5.1 关于在线挖掘困难样本的性能 5.2 将人脸检测与对齐联合的性能 5.3 人脸检测 ...