设为首页 收藏本站
云服务器等爆品抢先购,低至4.2元/月
查看: 1706|回复: 0

[经验分享] LVS-Fullnat之编译内核 将fullnat模块添加到内核

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-10-27 09:42:10 | 显示全部楼层 |阅读模式
主机环境   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的空间(如果有足够的空间,就不用做拉伸了)
[iyunv@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
[iyunv@server6 ~]# pvcreate /dev/vdc              #用pv分成物理块
  Physical volume"/dev/vdc" successfully created
[iyunv@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
[iyunv@server6 ~]# vgs                            #查看
  VG       #PV #LV #SN Attr   VSize VFree
  VolGroup   1  2   0 wz--n- 8.51g    0
[iyunv@server6 ~]# vgextend VolGroup /dev/vdc      #扩展VolGroup组
  Volume group"VolGroup" successfully extended
[iyunv@server6 ~]# vgs                             #查看
  VG       #PV #LV #SN Attr   VSize VFree
  VolGroup   2  2   0 wz--n- 28.50g 20.00g
[iyunv@server6 ~]# lvextend -L 20G /dev/VolGroup/lv_root  #扩展lv
  Extending logicalvolume lv_root to 20.00 GiB
  Logical volume lv_rootsuccessfully resized      
[iyunv@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
[iyunv@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.
[iyunv@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)重新编译内核
[iyunv@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
[iyunv@server6 mnt]# rpm -vih kernel-2.6.32-220.23.1.el6.src.rpm    #安装内核包
[iyunv@server6 mnt]# yum install rpm-build -y             #安装rpmbuild
[iyunv@server6 mnt]# cd ~/rpmbuild/
[iyunv@server6 rpmbuild]# ls
BUILD  BUILDROOT  RPMS SOURCES  SPECS  SRPMS
[iyunv@server6 rpmbuild]# cd SPECS/
[iyunv@server6 SPECS]# ls
kernel.spec
[iyunv@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
[iyunv@server6 SPECS]# yum install redhat-rpm-config patchutilsxmlto elfutils-libelf-devel binutils-devel python-devel hmaccalcperl-ExtUtils-Embed -y     #安装所缺少的包
[iyunv@server6 SPECS]# cd /mnt/
[iyunv@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%]
[iyunv@server6 mnt]#cd -
[iyunv@server6 SPECS]# rpmbuild -bp kernel.spec
如果出现这种情况
wKiom1gQcvvA4j21AADROE0_Egg871.jpg 则需:
[iyunv@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
[iyunv@server6 ~]# yum install rng-tools-2-13.el6_2.x86_64 -y     #安装
[iyunv@server6 ~]# rngd -r /dev/urandom                           #输入命令
#查看,运行通过
wKiom1gQc6aBVvetAAEBfZttGrE900.jpg
[iyunv@server6 SPECS]# cd /mnt/
[iyunv@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
[iyunv@server6 mnt]# tar zxf Lvs-fullnat-synproxy.tar.gz      #解压
[iyunv@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
[iyunv@server6 mnt]# cd lvs-fullnat-synproxy/                 #进入解压之后的包
[iyunv@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
[iyunv@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/
[iyunv@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 .                                  #将刚查看的包移动到当前
[iyunv@server6 linux-2.6.32-220.23.1.el6.x86_64]# patch-p1<lvs-2.6.32-220.23.1.el6.patch                                           #打lvs的补丁
[iyunv@server6 linux-2.6.32-220.23.1.el6.x86_64]# vimMakefile #进入,添加版本号,作为区别
   4 EXTRAVERSION =-220.23.1.el6
[iyunv@server6 linux-2.6.32-220.23.1.el6.x86_64]# make   
[iyunv@server6 linux-2.6.32-220.23.1.el6.x86_64]# makemodules_install   #安装内核模块
[iyunv@server6 linux-2.6.32-220.23.1.el6.x86_64]# makeinstall  #安装
#在kernel一行中,添加“nohz=off ”(如果不关闭nohz,大压力下CPU0可能会消耗过高,压力不均匀)
[iyunv@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     
[iyunv@server6 linux-2.6.32-220.23.1.el6.x86_64]# reboot      #重启
[iyunv@server6 ~]# uname -r                                   #查看版本号,编译成功
2.6.32-220.23.1.el6
B)安装keepalived和ipvsadm
[iyunv@server6 ~]# ipvsadm -l                               #查看
IP Virtual Server version 1.2.1 (size=4194304)
Prot LocalAddress:Port Scheduler Flags
  ->RemoteAddress:Port           ForwardWeight ActiveConn InActConn
[iyunv@server6 ipvsadm]# ipvsadm --help | grep fullnat     #查看,fullnat模块并没有
[iyunv@server6 ~]# yum remove ipvsadm -y                   #卸载,重新安装
[iyunv@server6 ~]# cd /mnt/
[iyunv@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
[iyunv@server6 mnt]# cd lvs-fullnat-synproxy/
[iyunv@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
[iyunv@server6 lvs-fullnat-synproxy]# tar zxf lvs-tools.tar.gz  #解压
[iyunv@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
[iyunv@server6 lvs-fullnat-synproxy]# cd tools/
[iyunv@server6 tools]# ls
ipvsadm  keepalived  quagga rpm
[iyunv@server6 tools]# cd keepalived/                           #切换目录
[iyunv@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
[iyunv@server6 keepalived]# ./configure--with-kernel-dir=/lib/modules/2.6.32-220.23.1.el6/build                                             #配置,生成Makfile
如有下面报错:
wKiom1gQcv3wGv7YAAArs1k4-t0432.jpg
则需:
[iyunv@server6 keepalived]# yum install -y openssl-devel
[iyunv@server6 keepalived]# ./configure--with-kernel-dir=/lib/modules/2.6.32-220.23.1.el6/build                                             #重新配置
如下报错:
wKioL1gQcv3j_QH_AAARuGkxfrk308.jpg
则需:
[iyunv@server6 keepalived]# yum install popt-devel -y
[iyunv@server6 keepalived]# ./configure --with-
kernel-dir=/lib/modules/2.6.32-220.23.1.el6/build              #重新配置
结果:
wKiom1gQcv2wEAL9AABzU3eoBzI798.jpg
[iyunv@server6 keepalived]# make                     #编译
[iyunv@server6 keepalived]# make install             #安装
[iyunv@server6 keepalived]# cd ..
[iyunv@server6 tools]# cd ipvsadm/
[iyunv@server6 ipvsadm]# make                        #编译
[iyunv@server6 ipvsadm]# make install                #安装ipvsadm
C)测试
[iyunv@server6 ipvsadm]# ipvsadm --help | grep fullnat  #查看,内核添加fullnat模块成功
  --fullnat      -b                   fullnat mode
[iyunv@server6 ipvsadm]# vim /boot/grub/grub.conf    #将引导文件里的default该回原来的数值
10 default=2


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-291885-1-1.html 上篇帖子: 使用LVS+NAT搭建集群实现负载均衡 下篇帖子: LVS:三种负载均衡方式比较
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表