设为首页 收藏本站
查看: 1044|回复: 0

[经验分享] (十六)企业部分之lvs

[复制链接]

尚未签到

发表于 2019-1-5 07:15:19 | 显示全部楼层 |阅读模式
  增加两台纯净的虚拟机server3server4,共4台虚拟机
  两台虚拟机最好1G内存
  
  【server1/server2
/etc/init.d/heartbeat stop
chkconfig heartbeat off
/etc/init.d/iptables stop  

  【server2
ip addr add 172.25.45.100/24 dev eth0
ip addr show  

  

ipvsadm -l

  

ipvsadm -C
ipvsadm -A -t 172.25.45.100:80 -s rr
ipvsadm -a -t 172.25.45.100:80 -r 172.25.45.3:80 -g
ipvsadm -a -t 172.25.45.100:80 -r 172.25.45.4:80 -g
/etc/init.d/ipvsadm saveipvsadm -l  

  
  【server3/server4
yum install -y httpd
/etc/init.d/httpd start
echo server3.example.com > /var/www/html/index.html    ##server4改为4ip addr add 172.25.45.100/32 dev eth0
ip addr show

  

yum install -y arptables_jf
arptables -L

  

arptables -A IN -d 172.25.45.100 -j DROP
arptables -A OUT -s 172.25.45.100 -j mangle --mangle-ip-s 172.25.45.3##server4改为4
/etc/init.d/arptables_jf savearptables -L

  


  
  http://172.25.45.100     ##server3和server4可以切换
  
  【物理机】
arp -an    ##可以看到虚拟IP在哪

  
  【server2
ipvsadm -l

  
  2.
  【server2
cd /usr/share/doc/ldirectord-3.9.5/
cp ldirectord.cf /etc/ha.d/
vim /etc/ha.d/ldirectord.c  修改2539行内容为以下:
  virtual=172.25.45.100:80
          real=172.25.45.3:80 gate
          real=172.25.45.4:80 gate
          fallback=127.0.0.1:80 gate
          service=http
          scheduler=rr
          #persistent=600
          #netmask=255.255.255.255
          protocol=tcp
          checktype=negotiate
          checkport=80
          request="index.html"
  #       receive="Test Page"
  #       virtualhost=www.x.y.z
  

  
ipvsadm -l
ipvsadm -C
ipvsadm -l

  
/etc/init.d/ldirectord start
ipvsadm -l

  

/etc/init.d/ldirectord stop
ipvsadm -l

  

/etc/init.d/ldirectord start
/etc/init.d/httpd startecho server2.example.com > /var/www/html/index.html  http://172.25.45.100     ##server3和server4可以切换
  
  测试:
  
  关闭server3server4其中一个的http服务,显示的会是对方的首页;若是全部关闭,则显示server2的首页,但只要server3\server4有一个服务存在,就会回切,就不会在server2
  关闭server4http服务
  网页显示server3.example.com
  

  再关闭server3http服务
  网页显示本地首页,server2.example.com
  

  开启server3http服务
  网页显示server3.example.com
  

  开启server4http服务
  

  网页在server3server4切换

  

  【server2
scp ldirectord.cf 172.25.45.1:/etc/ha.d//etc/init.d/ldirectord stop
/etc/init.d/httpd stop
ipvsadm -l

  

ip addr del 172.25.45.100/24 dev eth0  
  【server1
yum install -y httpdvim /etc/ha.d/haresources  将最后一行修改为以下:
  server1.example.com IPaddr::172.25.45.100/24/eth0 httpd ldirectord
  
scp haresources 172.25.45.2:/etc/ha.d/
/etc/init.d/heartbeat start
tail -f /var/log/messages    ##无报错将server2的heartbeat服务打开ip addr show    ##有虚拟IP

  

netstat -antlpe    ##httpd端口打开

  

ipvsadm -l    ##规则出现

  
  网页上server3server4可以切换
  
  测试:
  【server1
/etc/init.d/heartbeat stop  虚拟IP会切换到server2
/etc/init.d/heartbeat start  虚拟IP会切回到server1
  
  关闭server3http服务,网页显示server4.example.com
  再关闭server4http服务,网页显示本地首页,server1.example.com
  开启server3http服务,网页显示server3.example.com
  开启server4http服务,网页在server3server4切换
  

  后端调度
  健康检查
  
  所需软件包:keepalived-1.2.20.tar.gz libnfnetlink-devel-1.0.0-1.el6.x86_64.rpm
  
  【server1
/etc/init.d/heartbeat stop
tar zxf keepalived-1.2.20.tar.gzcd keepalived-1.2.20/
./configure --prefix=/usr/local/keepalived  需要解决的依赖性:openssl-devel libnl-devel
rpm -ivh libnfnetlink-devel-1.0.0-1.el6.x86_64.rpm
yum install -y net-snmp-devel
yum install -y libiptcdata.x86_64  
make & make installscp -r /usr/local/keepalived/ root@172.25.45.2:/usr/local/  

  【server1/server2
ln -s /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
ln -s /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
ln -s /usr/local/keepalived/etc/keepalived/ /etc/
ln -s /usr/local/keepalived/sbin/keepalived /sbin/
ln -s /usr/local/keepalived/bin/genhash /bin/  

  【server1
cd /etc/keepalived/
vim keepalived.conf  修改内容为以下;
  ! Configuration File for keepalived
  
  global_defs {
     notification_email {
          root@localhost
     }
     notification_email_from keepalive@server1.example.com
     smtp_server 127.0.0.1
     smtp_connect_timeout 30
     router_id LVS_DEVEL
     vrrp_skip_check_adv_addr
     vrrp_strict
  }
  
  vrrp_instance VI_1 {
      state MASTER
      interface eth0
      virtual_router_id 51
      priority 100
      advert_int 1
      authentication {
          auth_type PASS
          auth_pass 1111
      }
      virtual_ipaddress {
          172.25.45.100
      }
  }
  
  virtual_server 172.25.45.100 80 {
      delay_loop 6
      lb_algo rr
      lb_kind DR
  #   persistence_timeout 50
      protocol TCP
  
      real_server 172.25.45.3 80 {
          weight 1
          TCP_CHECK {
                  connect_timeout 3
                  nb_get_retry 3
                  delay_before_retry 3
              }
          }
      real_server 172.25.45.4 80 {
          weight 1
          TCP_CHECK {
                  connect_timeout 3
                  nb_get_retry 3
                  delay_before_retry 3
              }
          }
  }
  
scp keepalived.conf 172.25.45.2:/etc/keepalived/  

  【server2
cd /etc/keepalived/
vim keepalived.conf  将第7行的sverver1.example.com改为server2.example.com
  将第16行的MASTER改为BACKUP
  将第45行的100改为50
  
  【server1
/etc/init.d/keepalived start
tail -f /var/log/messages  
  【server2
/etc/init.d/keepalived start  
  【server1
ip addr show

  
ipvsadm -l

  
  网页在server3server4切换
/etc/init.d/keepalived stop    ##虚拟IP会切换到server2上,网页依然在server3和server4切换  
  
  关闭server3http服务,网页显示server4.example.com
  再关闭server4http服务,网页显示本地首页,server1.example.com
  开启server3http服务,网页显示server3.example.com
  开启server4http服务,网页在server3server4切换
  
  【server1
arp -a  
  
  【server3/server4
yum install -y vsftpd
/etc/init.d/vsftpd start  
cd /var/ftp/
touch server3    ##server4主机touch server4vim /etc/sysconfig/arptables  添加以下内容:
  [0:0] -A IN -d 172.25.45.101 -j DROP
  [0:0] -A OUT -s 172.25.45.101 -j mangle --mangle-ip-s 172.25.45.3##server4为172.25.45.4

  
ip addr add 172.25.45.101/32 dev eth0
/etc/init.d/arptables_jf restartarptables -nL

  
  【server1
vim  keepalived.conf  在virtual_ipaddress下面添加一个虚拟IP172.25.45.101
  在最后添加以下内容:
  virtual_server 172.25.45.101 21 {
      delay_loop 6
      lb_algo wlc
      lb_kind DR
      persistence_timeout 60
      protocol TCP
  
      real_server 172.25.45.3 21 {
          weight 1
          TCP_CHECK {
                  connect_timeout 3
                  nb_get_retry 3
                  delay_before_retry 3
              }
          }
      real_server 172.25.45.4 21 {
          weight 1
          TCP_CHECK {
                  connect_timeout 3
                  nb_get_retry 3
                  delay_before_retry 3
              }
          }
  }
  
  【server2
vim  keepalived.conf  在virtual_ipaddress下面添加一个虚拟IP172.25.45.101
  将virtual_server 172.25.45.100 80 修改为以下:
  virtual_server 172.25.45.101 21 {
      delay_loop 6
      lb_algo wlc
      lb_kind DR
      persistence_timeout 60
      protocol TCP
  
      real_server 172.25.45.3 21 {
          weight 1
          TCP_CHECK {
                  connect_timeout 3
                  nb_get_retry 3
                  delay_before_retry 3
              }
          }
      real_server 172.25.45.4 21 {
          weight 1
          TCP_CHECK {
                  connect_timeout 3
                  nb_get_retry 3
                  delay_before_retry 3
              }
          }
  }
  
  【server1/server2
/etc/init.d/keepalived reloadipvsadm -l

  


  
  【server3
lftp 172.25.45.101

  
  【server2
lftp 172.25.45.101

  
  

  ##fullnat模式##
  需要编译内核

  所需软件包:kernel-2.6.32-220.23.1.el6.src.rpm  asciidoc-8.4.5-4.1.el6.noarch.rpm newt-devel-0.52.11-3.el6.x86_64.rpm slang-devel-2.2.1-1.el6.x86_64.rpm
  
uname -r  
  

cd rpmbuild/SPECS/
rpmbuild -bp kernel.spec  缺少依赖性

  
  ##所需解决的依赖性##
yum install -y gcc redhat-rpm-config patchutils xmlto asciidoc elfutils-libelf-devel zlib-devel binutils-devel newt-devel python-devel perl-ExtUtils-Embed hmaccalc
cd
yum install asciidoc-8.4.5-4.1.el6.noarch.rpm newt-devel-0.52.11-3.el6.x86_64.rpm slang-devel-2.2.1-1.el6.x86_64.rpm -y  
rpmbuild -bp kerbel.spec
##这里会很久,可以通过再开一个窗口,进行rngd -r /dev/urando(此命令可在过程中找到)可以快速结束(没有rngd命令可以安装 rng-tools)  

cd /root/rpmbuild/BUILD/kernel-2.6.32-220.23.1.el6/
tar zxf Lvs-fullnat-synproxy.tar.gz
cd lvs-fullnat-synproxy/
cp lvs-2.6.32-220.23.1.el6.patch /root/rpmbuild/BUILD/kernel-2.6.32-220.23.1.el6/linux-2.6.32-220.23.1.el6.x86_64cd ..
cd linux-2.6.32-220.23.1.el6.x86_64/
yum install -y patch
patch -p1 < lvs-2.6.32-220.23.1.el6.patch
vim Makefile  

  在第四行 EXTRAVERSION 的后面加上 -220.23.1.el6        ##内核的版本号
  
cd configs/
diff kernel-2.6.32-x86_64.config ../.config

  
  增加一个20G的虚拟硬盘,CPU改为4
fdisk -cu /dev/vdb
pvcreate /dev/vdb1
vgextend VolGroup /dev/vdb1
lvextend -L +20G /dev/VolGroup/lv_root
lvextend -l +5119 /dev/VolGroup/lv_root
resize2fs  /dev/VolGroup/lv_root
df -h  
cd /root/rpmbuild/BUILD/kernel-2.6.32-220.23.1.el6/linux-2.6.32-220.23.1.el6.x86_64
make -j4
make modules_install
make installcd /boot/grub/
vim grub.conf  将第10行的default的值改为0

  

  可以看到2.6.32-220.23.1.el6的内核在上面,默认启动这个
reboot  

uname -r  
  
cd rpmbuild/BUILD/kernel-2.6.32-220.23.1.el6/lvs-fullnat-synproxy/
cp lvs-tools.tar.gz  ~
cd
tar zxf lvs-tools.tar.gz
cd tools/keepalived/
yum install openssl-devel popt-devel -y./configure --with-kernel-dir="/lib/modules/`uname -r`/build"
make
make install
which keepalived

  
cd ..
cd ipvsadm/
yum install -y ipvsadm
make
make install
ipvsadm --help
ipvsadm -l  




运维网声明 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-659444-1-1.html 上篇帖子: LVS调度方法及NAT模型 下篇帖子: lvs集群原理及部署实例
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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