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/SPECS rpmbuild -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.gz tar
tar .gz #打patch cd
/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 .config CONFIG_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.conf default=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.patch cp
/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_64 rm
|
不删的话,会在最后打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 .spec line:9 打上个版本号 %define dist .e27 line:22 打上个名称的标记 %define distro_build fnat.shanks line:605 标记下自己的patch Patch999999: lvs-2.6.32-220.23.1.el6.patch line: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_scheduler unregister_ip_vs_scheduler + exit 1 error: Bad exit status from /var/tmp/rpm-tmp .0Wfj33 (%build) RPM build errors: Bad exit 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 ...
随机推荐
- 新一批创业者金矿,iclap谁与争锋
19世纪,美国西部开发,无数拓荒者涌入,并最终因金矿的发现形成了淘金热.而当无数人埋头寻找黄金之时,有一个人却抬起头看到了潜藏在无数淘金者身上的金矿-这个人就是牛仔裤的发明者,Levi’s的创始人-李 ...
- Hbase Region Server整体架构
Region Server的整体架构 本文主要介绍Region的整体架构,后续再慢慢介绍region的各部分具体实现和源码 RegionServer逻辑架构图 RegionServer职责 1. ...
- java.lang.ClassFormatError: Trjava.lang.ClassFormatError: Truncated class fileuncated class file
周末过来加班,上传编译好的文件后,部署到服务器没事.但是服务器日志满了,把日志清除后,把服务启动,发现报这个错误,大致网上看了一下,这个错误是编译的文件损坏了.然后大致看了一下文件,还真是.由于日志满 ...
- 20145301《Java程序设计》实验报告一:Java开发环境的熟悉
20145301<Java程序设计>实验报告一:Java开发环境的熟悉 课程:Java程序设计 实验名称:Java开发环境的熟悉 实验目的与要求: 1.没有Linux基础的同学建议先学习& ...
- js事件委托篇(附js一般写法和js、jq事件委托写法)
参考: jQuery代码优化:事件委托篇 使用该技术能让你避免对特定的每个节点添加事件监听器:相反,事件监听器被添加在他们的父元素上,事件监听器会分析从子元素上冒泡上来的事件,并找到是哪个子元素事件. ...
- Jquery13 Ajax 进阶
学习要点: 1.加载请求 2.错误处理 3.请求全局事件 4.JSON 和 JSONP 5.jqXHR 对象 一.加载请求 在 Ajax 异步发送请求时,遇到网速较慢的情况,就会出现请求时间较长的问题 ...
- $(document).ready(function(){})和$(window).load(function(){})的区别
页面加载完成有两种状态: 1.Ready:表示文档结构已经加载完成,不包含图片等非文字媒体文件,在Dom节点创建完成后执行,如果有多个定义则依次执行 $(document).ready(functio ...
- poj_2528 Mayor's posters (线段树经典题+离散化方法)
由于题面中给定的wall最大长度为10 000 000:若简单用线段树势必会超时. 而注意到题面中规定了输入海报的个数<=1000:因此不妨离散化,使得线段中叶节点仅含有1000个,那么线段最大 ...
- SQL映射文件-----MySQL关系映射【1对1,1对多,多对多】
SSM框架下,mapper.xml 中 association 标签和 collection 标签的使用 当数据库中表与表之间有关联时,在对数据库进行操作时,就不只是针对某一张表了,需要联表查询 My ...
- 【网络结构】Deep Residual Learning for Image Recognition(ResNet) 论文解析
目录 0. 论文链接 1. 概述 2. 残差学习 3. Identity Mapping by shortcuts 4. Network Architectures 5. 训练细节 6. 实验 @ 0 ...