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

[经验分享] LVS+keepalived构建高可用负载均衡群集(DR)

[复制链接]

尚未签到

发表于 2018-12-31 11:43:45 | 显示全部楼层 |阅读模式
  名称
  角色
  IP地址
  Load Balancer
  (RHEL5)
  均衡器
  (LVS-Master)
  eth0:0(Vip):192.168.1.198
  eth0:192.168.1.196
  Load Balancer
  (RHEL5)
  均衡器
  (LVS-Slave)
  eth0:0(Vip):192.168.1.198
  eth0:192.168.1.197
  RealServer1
  (RHEL5)
  服务器群集节点1
  (Web服务器)
  lo:0(Vip):192.168.1.198
  eth0:192.168.1.191
  RealServer2
  (RHEL5)
  服务器群集节点2
  (Web服务器)
  lo:0(Vip):192.168.1.198
  eth0:192.168.1.192
  实验步骤:
  一、Load Balancer1(LVS-Master)配置 (RHEL6)
  1) 设置网卡IP地址
  [root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
  # Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE]
  DEVICE=eth0
  BOOTPROTO=static
  HWADDR=00:0C:29:4C:BD:42
  ONBOOT=yes
  IPADDR=192.168.1.196
  NETMASK=255.255.255.0
  GATEWAY=192.168.1.1
  2)安装支持软件
  [root@localhost ~]# mount /dev/cdrom /media/
  mount: block device /dev/sr0 is write-protected, mounting read-only
  [root@localhost media]# vim /etc/yum.repos.d/rhel-source.repo
  [rhel-source]
  name=Red Hat Enterprise Linux $releasever - $basearch - Source
  baseurl=file:///media/Server
  enabled=1
  gpgcheck=0
  [root@localhost media]# yum -y install kernel-devel openssl-devel popt-devel ipvsadm
  3) 安装keepalived所需软件
  [root@localhost ~]# tar zxf keepalived-1.2.2.tar.gz
  [root@localhost ~]# cd keepalived-1.2.2
  [root@localhost keepalived-1.2.2]# ./configure --prefix=/ --with-kernel-dir=/usr/src/kernels/2.6.18-194.el5-i686 ;make ;make install //此内核是RHEL6上的,若使用其它RHEL版本则会报错
  4)使用keepalived服务
  [root@localhost ~]# ls -l /etc/init.d/keepalived
  -rwxr-xr-x. 1 root root 1288 5月 10 14:27 /etc/init.d/keepalived
  [root@localhost ~]# chkconfig --add keepalived
  [root@localhost ~]# chkconfig keepalived
  5)配置/etc/keepalived/keepalived.conf主配置文档
  [root@localhost ~]# cd /etc/keepalived/
  [root@localhost keepalived]# cp keepalived.conf keepalived.conf.bak
  [root@localhost keepalived]# vi keepalived.conf
  global_defs {
  router_id LVS_DEVEL_1   //本路由器(服务器)的名称
  }
  vrrp_instance VI_1 {      //定义vrrp热备实例
  state MASTER       //热本状态,MASTER表示主服务器
  interface eth0       //承载vip的物理端口
  virtual_router_id 51   //虚拟路由器的ID号,每个热备组保持一致
  priority 150         //优先级,数值越大优先级越高,这里应该主服务器高于辅助的
  advert_int 1         //通告间隔秒数(心跳频率)
  authentication {      //认证信息,每个热备组保持一致
  auth_type PASS   //认证类型
  auth_pass 1111   //认证密码
  }
  virtual_ipaddress {     //指定漂移地址(vip),可以有多个
  192.168.1.198
  }
  }
  virtual_server 192.168.1.198 80 {    //虚拟服务器地址(vip)、端口
  delay_loop 6                 //健康检查间隔时间
  lb_algo rr                     //轮询(rr)调度算法
  lb_kind DR                   //直接路由模式(DR)
  protocol TCP                  //应用服务采用的模式是TCP模式
  real_server 192.168.1.191 80 {     //第一个Web节点的地址、端口
  weight 1                    //节点的权重
  TCP_CHECK {                 //健康检查方式
  connect_timeout 3        //连接超时(秒)
  nb_get_retry 3            //重试次数
  delay_before_retry 3       //重试间隔(秒)
  connect_port 80          //检查的目标端口
  }
  }
  real_server 192.168.1.192 80 {       //第二个Web节点
  weight 1
  TCP_CHECK {
  connect_timeout 3
  nb_get_retry 3
  delay_before_retry 3
  connect_port 80
  }
  }
  }
  6)重新启动keepalived服务
  [root@localhost keepalived]# service keepalived restart
  停止 keepalived:                                          [失败]
  正在启动 keepalived:                                      [确定]
  [root@localhost keepalived]#ip add show dev eth0
  二、Load Balancer2(LVS-Slave)配置(RHEL6)
  1) 设置网卡IP地址
  [root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
  # Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE]
  DEVICE=eth0
  BOOTPROTO=static
  HWADDR=00:0C:29:AB:B0:02
  ONBOOT=yes
  IPADDR=192.168.1.197
  NETMASK=255.255.255.0
  GATEWAY=192.168.1.1
  2)安装支持软件
  [root@localhost ~]# mount /dev/cdrom /media/
  mount: block device /dev/sr0 is write-protected, mounting read-only
  [root@localhost media]# vim /etc/yum.repos.d/rhel-source.repo
  [rhel-source]
  name=Red Hat Enterprise Linux $releasever - $basearch - Source
  baseurl=file:///media/Server
  enabled=1
  gpgcheck=0
  [root@localhost media]# yum -y install kernel-devel openssl-devel popt-devel ipvsadm
  3) 安装keepalived所需软件
  [root@localhost ~]# tar zxf keepalived-1.2.2.tar.gz
  [root@localhost ~]# cd keepalived-1.2.2
  [root@localhost keepalived-1.2.2]# ./configure --prefix=/ --with-kernel-dir=/usr/src/kernels/2.6.18-194.el5-i686 ;make ;make install //此内核是RHEL6上的,若使用其它RHEL版本则会报错
  4)使用keepalived服务
  [root@localhost ~]# ls -l /etc/init.d/keepalived
  -rwxr-xr-x. 1 root root 1288 5月 10 14:27 /etc/init.d/keepalived
  [root@localhost ~]# chkconfig --add keepalived
  [root@localhost ~]# chkconfig keepalived
  5)配置/etc/keepalived/keepalived.conf主配置文档,将LVS-Master上的配置文件拷过来修改如下三个参数即可
  [root@localhost keepalived]# scp keepalived.conf root@192.168.1.197:/etc/keepalived/此步骤在LVS-Master上做,向197辅助服务器拷贝 //
  [root@localhost ~]# cd /etc/keepalived/  //回到LVS-Slave上编辑
  [root@localhost keepalived]# cp keepalived.conf keepalived.conf.bak
  [root@localhost keepalived]# vi keepalived.conf
  global_defs {
  router_id LVS_DEVEL_2 //本路由器(服务器)的名称
  }
  vrrp_instance VI_1 {      //定义vrrp热备实例
  state SLAVE       //热本状态,MASTER表示主服务器
  interface eth0       //承载vip的物理端口
  virtual_router_id 51   //虚拟路由器的ID号,每个热备组保持一致
  priority 100          //优先级,数值越大优先级越高,这里应该主服务器高于辅助的
  advert_int 1         //通告间隔秒数(心跳频率)
  authentication {      //认证信息,每个热备组保持一致
  auth_type PASS   //认证类型
  auth_pass 1111   //认证密码
  }
  virtual_ipaddress {     //指定漂移地址(vip),可以有多个
  192.168.1.198
  }
  }
  virtual_server 192.168.1.198 80 {    //虚拟服务器地址(vip)、端口
  delay_loop 6                 //健康检查间隔时间
  lb_algo rr                     //轮询(rr)调度算法
  lb_kind DR                   //直接路由模式(DR)
  protocol TCP                  //应用服务采用的模式是TCP模式
  real_server 192.168.1.191 80 {     //第一个Web节点的地址、端口
  weight 1                    //节点的权重
  TCP_CHECK {                 //健康检查方式
  connect_timeout 3        //连接超时(秒)
  nb_get_retry 3            //重试次数
  delay_before_retry 3       //重试间隔(秒)
  connect_port 80          //检查的目标端口
  }
  }
  real_server 192.168.1.192 80 {       //第二个Web节点
  weight 1
  TCP_CHECK {
  connect_timeout 3
  nb_get_retry 3
  delay_before_retry 3
  connect_port 80
  }
  }
  }
  6)重新启动keepalived服务
  [root@localhost keepalived]# service keepalived restart
  停止 keepalived:                                          [失败]
  正在启动 keepalived:                                      [确定]
  [root@localhost keepalived]#ip add show dev eth0
  三、Realserver服务器上的配置 (RHEL5)
  提供服务的RealServer1和RealServer2不需要安装任何IPVS软件,只需要设置在开机后自动执行以下脚本:
  1)在RealServer1上的设置
  [root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
  # Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE]
  DEVICE=eth0
  BOOTPROTO=static
  HWADDR=00:0C:29:AB:B0:02
  ONBOOT=yes
  IPADDR=192.168.1.191
  NETMASK=255.255.255.0
  GATEWAY=192.168.1.1
  2)编写lvs-dr脚本
  [root@localhost ~]# vim /opt/lvs-dr
  #!/bin/bash
  vip="192.168.1.198"
  /sbin/ifconfig lo:0 $vip broadcast $vip netmask 255.255.255.255 up
  /sbin/route add -host $vip dev lo:0
  echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore
  echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce
  echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore
  echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce
  [root@localhost ~]# chmod +x /opt/lvs-dr   //添加脚本lvs-dr的执行权限
  [root@localhost ~]# echo "/opt/lvs-dr" >> /etc/rc.local //让脚本lvs-dr随机开机启动
  [root@localhost ~]# /opt/lvs-dr   //执行lvs-dr脚本
  3)挂载光盘,YUM安装apache服务
  [root@localhost ~]# mount /dev/cdrom /media/
  mount: block device /dev/cdrom is write-protected, mounting read-only
  [root@localhost ~]# vim /etc/yum.repos.d/rhel-debuginfo.repo
  [rhel-debuginfo]
  name=Red Hat Enterprise Linux $releasever - $basearch - Debug
  baseurl=file:///media/Server
  enabled=1
  gpgcheck=0
  [root@localhost ~]# yum -y install http*
  [root@localhost opt]# echo "1111" > /var/www/html/index.html //在RealServer1添加测试页
  [root@localhost opt]# service httpd restart
  停止 httpd:                                               [确定]
  启动 httpd:                                               [确定]
  1)在RealServer2上的设置
  [root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
  # Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE]
  DEVICE=eth0
  BOOTPROTO=static
  HWADDR=00:0C:29:AB:B0:02
  ONBOOT=yes
  IPADDR=192.168.1.192
  NETMASK=255.255.255.0
  GATEWAY=192.168.1.1
  2)编写lvs-dr脚本,将RealServer1节点上的lvs-dr拷贝到/opt下
  [root@localhost ~]# cd /opt/ //节点一上
  [root@localhost opt]# scp lvs-dr root@192.168.1.192:/opt/在节点一做,将节点一上/opt/lvs-dr文件拷贝到192的/opt目录下即可,省去下面的在节点二上编辑/opt/lvs-dr   //
  [root@localhost ~]# vim /opt/lvs-dr    //或者直接在节点二上进行此步骤
  #!/bin/bash
  vip="192.168.1.198"
  /sbin/ifconfig lo:0 $vip broadcast $vip netmask 255.255.255.255 up
  /sbin/route add -host $vip dev lo:0
  echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore
  echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce
  echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore
  echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce
  [root@localhost ~]# chmod +x /opt/lvs-dr   //添加脚本lvs-dr的执行权限
  [root@localhost ~]# echo "/opt/lvs-dr" >> /etc/rc.local //让脚本lvs-dr随机开机启动
  [root@localhost ~]# /opt/lvs-dr   //执行lvs-dr脚本
  3)挂载光盘,YUM安装apache服务
  [root@localhost ~]# mount /dev/cdrom /media/
  mount: block device /dev/cdrom is write-protected, mounting read-only
  [root@localhost ~]# vim /etc/yum.repos.d/rhel-debuginfo.repo
  [rhel-debuginfo]
  name=Red Hat Enterprise Linux $releasever - $basearch - Debug
  baseurl=file:///media/Server
  enabled=1
  gpgcheck=0
  [root@localhost ~]# yum -y install http*
  [root@localhost opt]# echo "1111" > /var/www/html/index.html //在RealServer1添加测试页
  [root@localhost opt]# service httpd restart
  停止 httpd:                                               [确定]
  启动 httpd:                                               [确定]
  四、测试
  1)启动keepalived服务
  分别在主、副均衡服务器上启动keepalived服务,启动命令为:
  [root@localhost ~]# service keepalived start
  启动 keepalived:                                           [确定]




运维网声明 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-657932-1-1.html 上篇帖子: LVS+Keepalived 实现高性能高可用负载均衡服务器 下篇帖子: 18.1 集群介绍;18.2 keepalived介绍;18.3,18.4,18.5 用keepalived配置高可用集群(上,中,下);
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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