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

[经验分享] 搭建高可用的负载均衡 Piranha+LVS

[复制链接]

尚未签到

发表于 2019-1-5 10:22:10 | 显示全部楼层 |阅读模式
  使用LVS+Piranha 图形化设置

  lvs+piranha整合实现高可用的负载均衡集群,基于web方式管理 相比lvs+keepalived方式,该实验需要前端服务器具有双网卡
  1.系统环境 RHEL6.3 X86_64 VMware9.0 清空防火墙 关闭SElinux
  服务器名Public IP地址Private IP网关虚拟设备名虚拟IP
  Director Server192.168.1.100172.16.1.1192.168.1.1eth0:0192.168.1.135
  Backup Server192.168.1.200172.16.1.2192.168.1.1eth0:0192.168.1.135
  Real Server1192.168.1.210        192.168.1.1lo:0192.168.1.135
  Real Server2192.168.1.220        192.168.1.1lo:0192.168.1.135
  

  2.原理结构描述 基于LVS基础上设计的一套负载均衡高可用解决方案
  Pulse
  该进程运行在活动LVSRouter和备份LVSRouter上,负责心跳(heartbeat)连接
  lvsd该进程调用ipvsadm工具配置和维护IPVS路由表,并为真实服务器上的虚拟服务启动一个nanny进程
  nanny该进程检查真实服务器上的虚拟服务状态,并将故障情况通知lvs进程
  send_arp如果备份LVS未收到活动LVS的响应,将调用send_arp将虚拟IP地址再分配到备份LVS的公网接口上
  

  3.搭建网络环境:
  3.1根据系统环境列表设置:
  Director  Server   eth0  192.168.1.100          eth1  172.16.1.1
  Backup    Server   eth0  192.168.1.200          eth1  172.16.1.2
  Real     Server1  ech0  192.168.1.210
  Real     Server2  ech0  192.168.1.220
  需要注意的是:所有的eth0都是直接连接到路由器的,可以直接到达外网,(DR模式)。
  所有的eth1都是在内网中,用于心跳检测。实验中需将其放置到一个纯净网络中,不被干扰
  3.2清空iptables  关闭 SElinux
  

  4.配置YUM 源
  [extras-163] name=163-extras baseurl=http://mirrors.163.com/centos/6.3/extras/x86_64/ enabled=1 gpgcheck=0
  [update-163] name=163-update baseurl=http://mirrors.163.com/centos/6.3/updates/x86_64/ enabled=1 gpgcheck=0
  [os-163] name=163-os baseurl=http://mirrors.163.com/centos/6.3/os/x86_64/ enabled=1 gpgcheck=0
  [fasttrack-163] name=163-fasttrack baseurl=http://mirrors.163.com/centos/6.3/fasttrack/x86_64/ enabled=1 gpgcheck=0
  [plus-163] name=163-plus baseurl=http://mirrors.163.com/centos/6.3/centosplus/x86_64/ enabled=1 gpgcheck=0
  EPEL
  YUM源需要安装。
  [root@localhost ~]# rpm  -ivh  epel-release-6-5.noarch.rpm
  5.软件的安装
  [root@localhost ~]# yum install -y  cman*  ipvsadm  modcluster  piranha
  配置文件介绍:
  配置文件说明
  /etc/sysconfig/ha/lvs.cf由web界面生成的配置写入这个文件中
  /etc/init.d/piranha-gui start启动piranha服务的WEB配置界面
  /etc/init.d/pulse启动piranha服务读取的就是/etc/sysconfig/ha/lvs.cf文件
  /etc/sysconfig/ha/conf/httpd.conf
  这个文件是他的配置文件可以改用什么端口来管理
  

  6.主piranha服务器配置
  6.1开启内核的ip包转发 [root@localhost ~]# vim  /etc/sysctl.conf           修改下面字段值为1
  net.ipv4.ip_forward = 1 [root@localhost ~]# sysctl -p
  6.2开启web管理服务
  [root@localhost init.d]# service  piranha-gui  start启动web页面管理服务
  [root@localhost init.d]# netstat  -tunapl  | grep :3636
  查看3636端口是否开启
  [root@localhost init.d]# piranha-passwd
  设置web登录密码
  #http://192.168.1.100:3636用户名piranha
  [root@localhost ha]chkconfig   piranha-gui  on
  6.2.1开启piranha-gui web管理服务,执行进程是httpd。但是http服务不用开启。
  [root@localhost init.d]# service  httpd  status
  httpd is stopped
  6.2.2对登录web管理界面的网段进行限制
  [root@localhost init.d]# vim  /etc/sysconfig/ha/conf/httpd.conf
  6.3web页面配置部分(设置完成 点击  ACCEPT)
  6.3.1GLOBAL SETTINGS (就是双机热备的主服务器配置)
  Primary server public IP主piranha服务器真实IP
  Primary server private IP输入用于心跳检测的网卡IP,这里填写了后面从服务器才会有心跳设置框
  Use network typeLVS类型一般连接类型选Directory Routing(路由直连)就可以了
  6.3.2REDUNDANCY (就是双机热备的从服务器设置)
  Redundant server public IP
  从piranha服务器真实IP
  Redundant server private IP输入用于心跳检测的网卡IP
  Heartbeat interval心跳检查间隔时间点位秒
  Assume dead after
  设置多久时间确定死亡切换服务单位秒
  Heartbeat runs on port服务运行端口
  6.3.3VIRTUAL  SERVER (虚拟服务器及real server的设置)
  ADD先添加一个虚拟调度服务器
  EDIT编辑添加的虚拟调度服务器
  DELETE删除虚拟服务器
  ACTIVATE激活虚拟服务器
  首先:添加一台虚拟服务器并设置(ADD --- EDIT)  选项说明:
  Service timeout: 表示real server 失效后,从lvs路由表中移除所要经过的时间,S Re-entry Time :  表示某个real server被移除后,重新加入路由表必须经过的时间
  Load monitoring tool :用于监视各个real server上的负载状态
  rup         :  要求real server 启动 rstatd  服务 ruptime :  要求real server 启动 rwhod 服务
  Quiesce server :“yes” 表示当有新的节点加入集群时,最少链接数会被清零,此时lvs会发送大量的请求到这个新的服务节点,造成新节点的服务阻塞。建议是 "no"
  Scheduling :  使用的调度算法   默认是:wlc  加权最小链接 为了实验便于查看结果,此处使用了   rr 轮询算法
  Persistence : 在应用服务器上持续的时间。单位为秒   其次:激活 VIRTUAL SERVERS
  6.3.4添加并设置激活 real server
  设置:名称、真实IP、端口、权值      激活添加的real server
  

  7.启动pulse服务
  [root@localhost init.d]# service  pulse start
  Starting pulse: [  OK  ]
  [root@localhost init.d]#chkconfig  pules on
  

  8.从Piranha服务器设置(与主Piranha大致相同) 添加网卡eth1 并设置IP 设置YUM源 清空防火墙 关闭SElinux
  8.1 安装套件 [root@localhost ~]# yum install cman* ipvsadm modcluster piranha
  8.2生成配置文件 [root@localhost ~]# scp -rpv root@192.168.1.100:/etc/sysconfig/ha/lvs.cf  /etc/sysconfig/ha/lvs.cf
  8.3启动服务 [root@localhost ha]# service  piranha-gui  start
  [root@localhost ha]chkconfig   piranha-gui  on
  8.4设置web登录密码 [root@localhost ha]# piranha-passwd
  New Password:
  Verify:
  Adding password for user piranha
  8.5启动pulse服务 [root@localhost ha]# service   pulse start
  Starting pulse: [  OK  ]
  [root@localhost ha]#chkconfig   pulse  on
  

  9.REAL SERVER 配置
  (所有的real server都要设置,且设置完全相同) 在选择连接类型有NAT、DR(路由直连)、Tunneling三种,选择不同类型真实服务器也要对应不同的设置
  设置原理:
  9.1  编辑内核运行参数     (使本地不知ARP的解析,防止用户不经过前端服务器转发就直接访问到real server上绑定的VIP) 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
  9.2绑定VIP地址   [root@localhost /]# ifconfig lo:0 192.168.0.135 broadcast 192.168.0.135   netmask 255.255.255.255 up [root@localhost /]# route add -host 192.168.0.135 dev lo:0
  9.3编辑配置脚本 ----由于9.1  和  9.2 设置都是设置后立即生效,但是重启后失效。
  编辑脚本如下:
  [root@localhost ~]# cat  real-server-bat.sh
  #!/bin/bash
  VIP=192.168.1.135
  /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
  /usr/sbin/setenforce  0
  /sbin/iptables  -F
  /sbin/iptables  -Z
  service  iptables   save
  ###############
  /bin/cat   > /etc/rc.d/rc.local /sbin/lvs.sh
  EOF
  /bin/cat  >
  /sbin/lvs.sh
  #!/bin/bash
  VIP=192.168.1.135
  /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
  /usr/sbin/setenforce  0
  EOF
  /bin/chmod    a+x    /sbin/lvs.sh
  9.4启动http服务 本实验是对http服务做负载均衡
  [root@localhost Desktop]# echo "this is real server 3" >> /var/www/html/index.html
  [root@localhost Desktop]# service  httpd  start
  [root@localhost Desktop]# chkconfig  httpd  on
  至此:高可用的负载均衡集群搭建完毕。
  测试:
  1.LVS高可用测试:  关闭 Director Server ,运行Backup Server 在备用服务器查看:
  2.LVS负载均衡测试:
  3.故障转移 分别停掉 real server 3和4  的http服务,在启动http服务。
  查看日志:
  至此使用Piranha+LVS图形化搭建  高可用负载均衡集群 成功实现
  





运维网声明 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-659567-1-1.html 上篇帖子: RHEL5下构建LVS负载均衡系统详解(一) 下篇帖子: 使用lvs搭建负载均衡集群
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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