lvs fullnat+ECMPrealserver 安装toa模块

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了lvs fullnat+ECMPrealserver 安装toa模块相关的知识,希望对你有一定的参考价值。

CentOS7

kernel-3.10.0-693.el7.centos.toa.x86_64.rpm
网盘链接:https://pan.baidu.com/s/1cXB_3qPOnTiIGijFlQ_uzw
将文件上传到服务器。
直接rpm安装会报错,如下:

[[email protected] CentOS 7.2 64]# rpm -ivh kernel-3.10.0-693.el7.centos.toa.x86_64.rpm 
error: Failed dependencies:
    dracut >= 033-502 is needed by kernel-3.10.0-693.el7.centos.toa.x86_64
    linux-firmware >= 20170606-55 is needed by kernel-3.10.0-693.el7.centos.toa.x86_64
    xfsprogs < 4.3.0 conflicts with kernel-3.10.0-693.el7.centos.toa.x86_64
    kmod < 20-9 conflicts with kernel-3.10.0-693.el7.centos.toa.x86_64
    kexec-tools < 2.0.14-3 conflicts with kernel-3.10.0-693.el7.centos.toa.x86_64
[[email protected] CentOS 7.2 64]# 

需要先yum安装一些服务,然后再rpm安装。

yum -y install dracut linux-firmware xfsprogs kmod kexec-tools 
rpm -ivh kernel-3.10.0-693.el7.centos.toa.x86_64.rpm

重启后通过uname -r 查看版本,从3.10.0-327.el7.x86_64变成了3.10.0-693.el7.centos.toa.x86_64

执行lsmod | grep toa 检查 toa 模块是否加载,没有加载的话,可通过 modprobe toa命令开启。
正常加载toa模块,回显如下:

[[email protected] ~]# lsmod | grep toa
toa                    12745  0 
[[email protected] ~]# 

可以实行开机自动加载toa模块

vim /etc/rc.d/rc.local
modprobe toa

CentOS6

kernel-2.6.32-220.23.2.ali_github.el6.x86_64.rpm
网盘链接:https://pan.baidu.com/s/12vscGK7xR19HSOjb-StcNw
不管是虚拟机或者是物理机,都有一下报错

  CHK     include/linux/compile.h
  UPD     include/linux/compile.h
  CC      init/version.o
  LD      init/built-in.o
  LD      .tmp_vmlinux1
net/built-in.o: In function `inet6_getname_toa‘:
/home/pukong/rpms/BUILD/kernel-2.6.32-220.23.1.el6/linux-2.6.32-220.23.1.el6.x86_64/net/toa/toa.c:156: undefined reference to `inet6_getname‘
net/built-in.o: In function `tcp_v6_syn_recv_sock_toa‘:
/home/pukong/rpms/BUILD/kernel-2.6.32-220.23.1.el6/linux-2.6.32-220.23.1.el6.x86_64/net/toa/toa.c:221: undefined reference to `tcp_v6_syn_recv_sock‘
net/built-in.o: In function `hook_toa_functions‘:
/home/pukong/rpms/BUILD/kernel-2.6.32-220.23.1.el6/linux-2.6.32-220.23.1.el6.x86_64/net/toa/toa.c:258: undefined reference to `inet6_stream_ops‘
/home/pukong/rpms/BUILD/kernel-2.6.32-220.23.1.el6/linux-2.6.32-220.23.1.el6.x86_64/net/toa/toa.c:259: undefined reference to `inet6_stream_ops‘
/home/pukong/rpms/BUILD/kernel-2.6.32-220.23.1.el6/linux-2.6.32-220.23.1.el6.x86_64/net/toa/toa.c:259: undefined reference to `inet6_getname‘
/home/pukong/rpms/BUILD/kernel-2.6.32-220.23.1.el6/linux-2.6.32-220.23.1.el6.x86_64/net/toa/toa.c:272: undefined reference to `ipv6_specific‘
/home/pukong/rpms/BUILD/kernel-2.6.32-220.23.1.el6/linux-2.6.32-220.23.1.el6.x86_64/net/toa/toa.c:273: undefined reference to `ipv6_specific‘
/home/pukong/rpms/BUILD/kernel-2.6.32-220.23.1.el6/linux-2.6.32-220.23.1.el6.x86_64/net/toa/toa.c:273: undefined reference to `tcp_v6_syn_recv_sock‘
net/built-in.o: In function `unhook_toa_functions‘:
/home/pukong/rpms/BUILD/kernel-2.6.32-220.23.1.el6/linux-2.6.32-220.23.1.el6.x86_64/net/toa/toa.c:297: undefined reference to `inet6_stream_ops‘
/home/pukong/rpms/BUILD/kernel-2.6.32-220.23.1.el6/linux-2.6.32-220.23.1.el6.x86_64/net/toa/toa.c:297: undefined reference to `inet6_getname‘
/home/pukong/rpms/BUILD/kernel-2.6.32-220.23.1.el6/linux-2.6.32-220.23.1.el6.x86_64/net/toa/toa.c:309: undefined reference to `ipv6_specific‘
/home/pukong/rpms/BUILD/kernel-2.6.32-220.23.1.el6/linux-2.6.32-220.23.1.el6.x86_64/net/toa/toa.c:309: undefined reference to `tcp_v6_syn_recv_sock‘
make: *** [.tmp_vmlinux1] Error 1
[[email protected] linux-2.6.32-220.23.1.el6.x86_64]# 

rpm -ivh --oldpackage ‘kernel-2.6.32-220.23.1.el6.toa.x86_64.rpm‘
成功过
注:上述命令只在vm虚拟机上测试成功,在hyper-v和物理机上均失败,hyper-v是在编译成功之后,出现网卡丢失的现象,物理机是无法启动centos6.5。

2018年8月29日:经过测试,在hyper-v中,CentOS6.x的系统,均存在编译完内核后,网卡丢失的问题。

以上是关于lvs fullnat+ECMPrealserver 安装toa模块的主要内容,如果未能解决你的问题,请参考以下文章

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

LVS - FULLNAT内核编译方法

LVS FULLNAT模式

LVS FULLNAT模式

lvs fullnat+ECMP安装keepalived+ipvsadm+quaage

lvs fullnat+ECMPsession同步模型讨论