LVS-Fullnat之编译内核 将fullnat模块添加到内核

2024-05-10 18:28:14

主机环境   redhat6.5 64位

实验环境   ip 172.25.29.6

安装包asciidoc-8.4.5-4.1.el6.noarch.rpm

Lvs-fullnat-synproxy.tar.gz

kernel-2.6.32-220.23.1.el6.src.rpm

newt-devel-0.52.11-3.el6.x86_64.rpm

slang-devel-2.2.1-1.el6.x86_64.rpm

防火墙状态:关闭

重新编译内核之前,要保证根分区要有20G的内存。

如果没有足够的空间就添加一块20G的虚拟磁盘

1.给根分区分用lvm分20G的空间(如果有足够的空间,就不用做拉伸了)

[root@server6 ~]# fdisk -l                      #查看分区

Disk /dev/vdc: 21.5 GB, 21474836480 bytes       #新添加的磁盘

16 heads, 63 sectors/track, 41610 cylinders

Units = cylinders of 1008 * 512 = 516096 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0x00000000

[root@server6 ~]# pvcreate /dev/vdc              #用pv分成物理块

Physical volume"/dev/vdc" successfully created

[root@server6 ~]# pvs                            #查看,pv成功

PV         VG       Fmt Attr PSize  PFree

/dev/vda2  VolGroup lvm2 a--   8.51g    0

/dev/vdc            lvm2 a--  20.00g 20.00g

[root@server6 ~]# vgs                            #查看

VG       #PV #LV #SN Attr   VSize VFree

VolGroup   1  2   0 wz--n- 8.51g    0

[root@server6 ~]# vgextend VolGroup /dev/vdc      #扩展VolGroup组

Volume group"VolGroup" successfully extended

[root@server6 ~]# vgs                             #查看

VG       #PV #LV #SN Attr   VSize VFree

VolGroup   2  2   0 wz--n- 28.50g 20.00g

[root@server6 ~]# lvextend -L 20G /dev/VolGroup/lv_root  #扩展lv

Extending logicalvolume lv_root to 20.00 GiB

Logical volume lv_rootsuccessfully resized

[root@server6 ~]# df -lh                           #查看,根分区7.5G

Filesystem                   Size  Used Avail Use% Mounted on

/dev/mapper/VolGroup-lv_root 7.5G  1.5G  5.7G 21% /

tmpfs                        499M     0  499M  0% /dev/shm

/dev/vda1                    485M   55M  405M 12% /boot

[root@server6 ~]# resize2fs /dev/VolGroup/lv_root   #扩展文件系统

resize2fs 1.41.12 (17-May-2010)

Filesystem at /dev/VolGroup/lv_root is mounted on /; on-lineresizing required

old desc_blocks = 1, new_desc_blocks = 2

Performing an on-line resize of /dev/VolGroup/lv_root to5242880 (4k) blocks.

The filesystem on /dev/VolGroup/lv_root is now 5242880 blockslong.

[root@server6 ~]# df -lh                            #查看,根分区20G

Filesystem                   Size  Used Avail Use% Mounted on

/dev/mapper/VolGroup-lv_root  20G  1.5G   18G  8% /

tmpfs                        499M     0  499M  0% /dev/shm

/dev/vda1                    485M   55M  405M 12% /boot

2. 重新编译内核,将fallnat模块添加到在内核及测试

A)重新编译内核

[root@server6 mnt]# ls

asciidoc-8.4.5-4.1.el6.noarch.rpm   Lvs-fullnat-synproxy.tar.gz

kernel-2.6.32-220.23.1.el6.src.rpm  newt-devel-0.52.11-3.el6.x86_64.rpm

lvs-fullnat-synproxy               slang-devel-2.2.1-1.el6.x86_64.rpm

[root@server6 mnt]# rpm -vih kernel-2.6.32-220.23.1.el6.src.rpm    #安装内核包

[root@server6 mnt]# yum install rpm-build -y             #安装rpmbuild

[root@server6 mnt]# cd ~/rpmbuild/

[root@server6 rpmbuild]# ls

BUILD  BUILDROOT  RPMS SOURCES  SPECS  SRPMS

[root@server6 rpmbuild]# cd SPECS/

[root@server6 SPECS]# ls

kernel.spec

[root@server6 SPECS]# rpmbuild -bp kernel.spec          #生成内核源码

error: Failed build dependencies:

redhat-rpm-config isneeded by kernel-2.6.32-220.23.1.el6.x86_64

patchutils is neededby kernel-2.6.32-220.23.1.el6.x86_64

xmlto is needed bykernel-2.6.32-220.23.1.el6.x86_64

asciidoc is needed bykernel-2.6.32-220.23.1.el6.x86_64

elfutils-libelf-develis needed by kernel-2.6.32-220.23.1.el6.x86_64

binutils-devel isneeded by kernel-2.6.32-220.23.1.el6.x86_64

newt-devel is neededby kernel-2.6.32-220.23.1.el6.x86_64

python-devel is neededby kernel-2.6.32-220.23.1.el6.x86_64

perl(ExtUtils::Embed)is needed by kernel-2.6.32-220.23.1.el6.x86_64

hmaccalc is needed bykernel-2.6.32-220.23.1.el6.x86_64

[root@server6 SPECS]# yum install redhat-rpm-config patchutilsxmlto elfutils-libelf-devel binutils-devel python-devel hmaccalcperl-ExtUtils-Embed -y     #安装所缺少的包

[root@server6 SPECS]# cd /mnt/

[root@server6 mnt]# rpm -vihnewt-devel-0.52.11-3.el6.x86_64.rpm                                                                                  #安装编译内核时所需要的包

slang-devel-2.2.1-1.el6.x86_64.rpmasciidoc-8.4.5-4.1.el6.noarch.rpm

warning: newt-devel-0.52.11-3.el6.x86_64.rpm: Header V3 RSA/SHA1Signature, key ID c105b9de: NOKEY

Preparing...               ########################################### [100%]

1:slang-devel           ########################################### [ 33%]

2:newt-devel             ###########################################[ 67%]

3:asciidoc              ########################################### [100%]

[root@server6 mnt]#cd -

[root@server6 SPECS]# rpmbuild -bp kernel.spec

如果出现这种情况

wKiom1gQcvvA4j21AADROE0_Egg871.png则需:

[root@server6 ~]# yum provides */rngd      #上面的图片提示,输入rngd -r /dev/urandom,查找命令所在的安装包

Loaded plugins: product-id, subscription-manager

This system is not registered to Red Hat SubscriptionManagement. You can use subscription-manager to register.

rng-tools-2-13.el6_2.x86_64 : Random number generator relatedutilities

Repo        : rhel6.5

Matched from:

Filename    :/etc/sysconfig/rngd

Filename    : /sbin/rngd

Filename    :/etc/rc.d/init.d/rngd

[root@server6 ~]# yum install rng-tools-2-13.el6_2.x86_64 -y     #安装

[root@server6 ~]# rngd -r /dev/urandom                           #输入命令

#查看,运行通过

wKiom1gQc6aBVvetAAEBfZttGrE900.png

[root@server6 SPECS]# cd /mnt/

[root@server6 mnt]# ls

asciidoc-8.4.5-4.1.el6.noarch.rpm   newt-devel-0.52.11-3.el6.x86_64.rpm

kernel-2.6.32-220.23.1.el6.src.rpm  slang-devel-2.2.1-1.el6.x86_64.rpm

Lvs-fullnat-synproxy.tar.gz

[root@server6 mnt]# tar zxf Lvs-fullnat-synproxy.tar.gz      #解压

[root@server6 mnt]# ls

asciidoc-8.4.5-4.1.el6.noarch.rpm   Lvs-fullnat-synproxy.tar.gz

kernel-2.6.32-220.23.1.el6.src.rpm  newt-devel-0.52.11-3.el6.x86_64.rpm

lvs-fullnat-synproxy               slang-devel-2.2.1-1.el6.x86_64.rpm

[root@server6 mnt]# cd lvs-fullnat-synproxy/                 #进入解压之后的包

[root@server6 lvs-fullnat-synproxy]# ls                      #查看

lvs-2.6.32-220.23.1.el6.patch README

lvs-tools.tar.gz              toa-2.6.32-220.23.1.el6.patch

[root@server6 lvs-fullnat-synproxy]# cd~/rpmbuild/BUILD/kernel-2.6.32-220.23.1.el6/linux-2.6.32-220.23.1.el6.x86_64/

[root@server6 linux-2.6.32-220.23.1.el6.x86_64]# cp/mnt/lvs-fullnat-synproxy/lvs-2.6.32-220.23.1.el6.patch .                                  #将刚查看的包移动到当前

[root@server6 linux-2.6.32-220.23.1.el6.x86_64]# patch-p1<lvs-2.6.32-220.23.1.el6.patch                                           #打lvs的补丁

[root@server6 linux-2.6.32-220.23.1.el6.x86_64]# vimMakefile #进入,添加版本号,作为区别

4 EXTRAVERSION =-220.23.1.el6

[root@server6 linux-2.6.32-220.23.1.el6.x86_64]# make

[root@server6 linux-2.6.32-220.23.1.el6.x86_64]# makemodules_install   #安装内核模块

[root@server6 linux-2.6.32-220.23.1.el6.x86_64]# makeinstall  #安装

#在kernel一行中,添加“nohz=off”(如果不关闭nohz,大压力下CPU0可能会消耗过高,压力不均匀)

[root@server6 linux-2.6.32-220.23.1.el6.x86_64]# vim/boot/grub/grub.conf  #进入引导文件

10 default=0

16         kernel /vmlinuz-2.6.32-220.23.1.el6 roroot=/dev/mapper/VolGroup-lv_    rootnomodeset rd_NO_LUKS.UTF-8 rd_NO_MD rd_LVM_LV=VolGroup/lv_sw    ap SYSFONT=latarcyrheb-sun16crashkernel=auto rd_LVM_LV=VolGroup/lv_root KE    YBOARDTYPE=pc KEYTABLE=usrd_NO_DM nohz=off rhgb quiet

[root@server6 linux-2.6.32-220.23.1.el6.x86_64]# reboot      #重启

[root@server6 ~]# uname -r                                   #查看版本号,编译成功

2.6.32-220.23.1.el6

B)安装keepalived和ipvsadm

[root@server6 ~]# ipvsadm -l                               #查看

IP Virtual Server version 1.2.1 (size=4194304)

Prot LocalAddress:Port Scheduler Flags

->RemoteAddress:Port           ForwardWeight ActiveConn InActConn

[root@server6 ipvsadm]# ipvsadm --help | grep fullnat     #查看,fullnat模块并没有

[root@server6 ~]# yum remove ipvsadm -y                   #卸载,重新安装

[root@server6 ~]# cd /mnt/

[root@server6 mnt]# ls

asciidoc-8.4.5-4.1.el6.noarch.rpm   Lvs-fullnat-synproxy.tar.gz

newt-devel-0.52.11-3.el6.x86_64.rpm  lvs-fullnat-synproxy

kernel-2.6.32-220.23.1.el6.src.rpm  slang-devel-2.2.1-1.el6.x86_64.rpm

[root@server6 mnt]# cd lvs-fullnat-synproxy/

[root@server6 lvs-fullnat-synproxy]# ls

lvs-2.6.32-220.23.1.el6.patch README

lvs-tools.tar.gz              toa-2.6.32-220.23.1.el6.patch

[root@server6 lvs-fullnat-synproxy]# tar zxf lvs-tools.tar.gz  #解压

[root@server6 lvs-fullnat-synproxy]# ls

lvs-2.6.32-220.23.1.el6.patch README                        tools

lvs-tools.tar.gz              toa-2.6.32-220.23.1.el6.patch

[root@server6 lvs-fullnat-synproxy]# cd tools/

[root@server6 tools]# ls

ipvsadm  keepalived  quagga rpm

[root@server6 tools]# cd keepalived/                           #切换目录

[root@server6 keepalived]# ll -d /lib/modules/`uname -r`/build #查看

lrwxrwxrwx 1 root root 80 Oct 20 12:23/lib/modules/2.6.32-220.23.1.el6/build ->/root/rpmbuild/BUILD/kernel-2.6.32-220.23.1.el6/linux-2.6.32-220.23.1.el6.x86_64

[root@server6 keepalived]# ./configure--with-kernel-dir=/lib/modules/2.6.32-220.23.1.el6/build                                             #配置,生成Makfile

如有下面报错:

wKiom1gQcv3wGv7YAAArs1k4-t0432.png

则需:

[root@server6 keepalived]# yum install -y openssl-devel

[root@server6 keepalived]# ./configure--with-kernel-dir=/lib/modules/2.6.32-220.23.1.el6/build                                             #重新配置

如下报错:

wKioL1gQcv3j_QH_AAARuGkxfrk308.png

则需:

[root@server6 keepalived]# yum install popt-devel -y

[root@server6 keepalived]# ./configure --with-

kernel-dir=/lib/modules/2.6.32-220.23.1.el6/build              #重新配置

结果:

wKiom1gQcv2wEAL9AABzU3eoBzI798.png

[root@server6 keepalived]# make                     #编译

[root@server6 keepalived]# make install             #安装

[root@server6 keepalived]# cd ..

[root@server6 tools]# cd ipvsadm/

[root@server6 ipvsadm]# make                        #编译

[root@server6 ipvsadm]# make install                #安装ipvsadm

C)测试

[root@server6 ipvsadm]# ipvsadm --help | grep fullnat  #查看,内核添加fullnat模块成功

--fullnat      -b                   fullnat mode

[root@server6 ipvsadm]# vim /boot/grub/grub.conf    #将引导文件里的default该回原来的数值

10 default=2

转载于:https://blog.51cto.com/12087746/1865997

LVS-Fullnat之编译内核 将fullnat模块添加到内核相关推荐

  1. python绑定内核_向Ipython添加python2内核

    我也遇到了同样的问题,发现在python2.7系统站点目录和用户站点目录中都安装了backports包.此外,backports.shutil_get_terminal_size包仅位于系统站点目录中 ...

  2. 增加内核的ceph模块的日志打印

    本文主要是在梳理cephfs内核方式挂载的内核代码逻辑所做的准备 环境:Centos 7.5 内核源码版本:3.10.0-862.el7.x86_64 打开ceph模块的debug信息 单独编译cep ...

  3. linux 内核可装载模块 版本检查机制

    为保持 Linux 内核的稳定与可持续发展,内核在发展过程中引进了可装载模块这一特性.内核可装载模块就是可在内核运行时加载到内核的一组代码.通常 , 我们会在两个版本不同的内核上装载同一模块失败,即使 ...

  4. 自学Linux 2—Linux 的系统架构之 Linux 内核的主要模块和 Linux 的文件结构

    Linux 的系统架构 Linux 系统从应用角度来看,分为内核空间和用户空间两个部分.        内核空间是 Linux 操作系统的主要部分,但是仅有内核的操作系统是不能完成用户任务的.丰富并且 ...

  5. linux下编译安装ntfs,内核编译安装 (用NTFS模块)

    内核编译安装 (用NTFS模块) 1 rz 下载的 的内核最新文件 在这 https://www.kernel.org/ 2 tar xvf linux-4.12.10.tar.xz 解压文件 内核文 ...

  6. Centos编译加载toa模块

    什么是toa模块 toa模块是为了让后端的realserver能够看到真实的clientip而不是lvs的dip 安装步骤 安装依赖包 yum -y install kernel-devel gcc ...

  7. 从 2.4 到 2.6:Linux 内核可装载模块机制的改变对设备驱动的影响(一)

    从 2.4 到 2.6:Linux 内核可装载模 块机制的改变对设备驱动的影响 <?xml:namespace prefix = o ns = "urn:schemas-microso ...

  8. linux内核模块和功能,我可以用模块替换Linux内核功能吗?

    我在暑期研究中从事内核工作.我们希望在特定的RTT计算中对TCP进行修改.我想做的是将tcp_input.c中的功能之一的分辨率替换为由动态加载的内核模块提供的功能.我认为这将改善我们开发和分发修改的 ...

  9. linux内核可装载模块(lkm)传参机制 module_param()/module_param_string()

    对于如何向模块传递参数,Linux kernel 提供了一个简单的框架.其允许驱动程序声明参数,并且用户在系统启动或模块装载时为参数指定相应值,在驱动程序里,参数的用法如同全局变量. 使用下面的宏时需 ...

  10. Android 8.0 linux内核,在Ubuntu上为Android增加硬件抽象层(HAL)模块访问Linux内核驱动程序---Android8.0版本实现-对照老罗版本...

    老罗版本参见:https://blog.csdn.net/luoshengyang/article/details/6573809 在Android硬件抽象层(HAL)概要介绍和学习计划一文中,我们简 ...

最新文章

  1. TensorFlow 等“开源陷阱,会掐住中国 AI 企业的命门吗?
  2. 修改mysql表结构语句
  3. (56)等待链表,调度链表
  4. linux命令大写输入,在Linux命令行内的大小写转换
  5. NOLOGGINGFORCE LOGGING
  6. C#生成Excel报表 用MyXls组件生成更完美
  7. E - 连连看 HDU - 1175(思维的深搜)
  8. python统计分析--3.线性回归四种算法
  9. ios学习之旅---指针也不难
  10. 干货集锦:200+生信范文、30+款软件、12类图片素材PPT,今年的SCI稳了!(附下载)...
  11. node-sass 安装失败 win32-x64-57_binding.node
  12. C++ IO常用读写操作
  13. http协议的状态码——400,401,403,404,500,502,503,301,302等常见网页错误代码
  14. 2004年中国十大暴利行业
  15. 在移动通信中如何测试5G网络?
  16. 怎样让PHP提示错误信息
  17. 济南电子机械工程学校计算机专业班主任,济南电子机械工程学校
  18. 北京现代APP每日问答合集(持续更新)
  19. 欧空局(esa)下载哨兵-Sentinel影像-(史上最全讲解,老少皆宜)
  20. android 背景描边,Android告别使用shape标签,自定义实现圆角、背景色、描边Button...

热门文章

  1. MySQL查询用户行为,网站用户行为分析
  2. vmware fusion 文件共享_颜值至上,杜伽fusion我是真的被它的颜值吸引了
  3. vuetify文件上传 file inputs
  4. python运维脚本面试_参加Linux运维面试时经常会被问到的shell脚本问题有哪些?
  5. Linux下安装PHP扩展 pdo_sqlsrv
  6. Go github.com/e421083458/golang_common/lib
  7. mapbox symbols 层级设置_mapboxgl实现带箭头轨迹线的代码
  8. 专题九:Simulink系统仿真
  9. tomcat端口被占用的解决方式
  10. linux平台上不同类型的压缩文件的压缩与解压