lichaoyue888 发表于 2019-1-6 09:47:50

基于lvs的piranha负载均衡高可用集群

      基于lvs的piranha负载均衡高可用集群
  一.Piranha方案基本简绍.

  1.Piranha方案优点:

  配置简洁高效:

  配置一个lvs.conf配置文件即可搞定(类keepalived方案.)

  WEB配置界面:

  WEB配置对于那些不懂LVS配置的人员来说非常简单,你简单几步就可以配置好一个完美的负载均衡及高可用性方案.

  完整的功能:

  主备LVS (Load Balancer)的Heartbeat和HA (pulse,send_arp)

  LoadBalancer和Real Server间进程服务的Heartbeat (nanny)

  IPVS功能 (lvsd)

  IPVS的管理 (ipvsadm)

  2.Piranha方案原理结构描述:

  Piranha方案是基于LVS基础上设计的一套负载均衡高可用解决方案.

  LVS运行在一对有相似配置的计算机上:

  一个作为活动LVS Router(Active LVS Router),一个作为备份LVS Router(Backup LVS Router)。

  活动LVS Router服务有两个角色:

  均衡负载到真实服务器上。

  检查真实服务器提供的服务是否正常。

  备份LVS Router用来监控活动的LVS Router,以备活动的LVS Router失败时由备份LVS Router接管。
  Pulse:Pulse进程运行在活动LVS Router和备份LVS Router上。在备份LVS Router上,pulse发送一个心跳(heartbeat)到活动LVS Router的公网接口上以检查活动LVS Router是否正常。在活动LVS Router上,pulse启动lvs进程并响应来自于备份LVS Router的心跳。
  lvsd:lvs进程调用ipvsadm工具去配置和维护IPVS路由表,并为每一个在真实服务器上的虚拟服务启动一个nanny进程。

  nanny:每一个nanny进程去检查真实服务器上的虚拟服务状态,并将故障情况通知lvs进程。假如一个故障被发现,lvs进程通知ipvsadm在IPVS路由表中将此节点删除。

  send_arp:如果备份LVS Router未收到来自于活动LVS Router的响应,它将调用send_arp将虚拟IP地址再分配到备份LVS Router的公网接口上。并在公网接口和局域网接口上分别发送一个命令去关掉活动LVS Router上的lvs进程。同时启动自己的lvs进程来调度客户端请求。
  配置如下:

  ipvsadm的配置详见:http://cuanlf.blog.运维网.com/8241982/1416957
  # yum install piranha -y
# yum install piranha -y
# piranha-passwd
# /etc/init.d/piranha-gui start
http://192.168.2.138:3636

  在web网页中,用piranha工具配置LVS的配置文件lvs.cf中操作如下:

[*]  Primary server public IP:输入你公网的IP,此实验的公网IP为192.168.2.138
  Primary server private IP:输入私网IP,可以不输入

     Use network type:此实验选用直连方式
     点击accept就ok
  

  2.Redundant server public IP:备份的IP,此实验为192.168.2.135
  Heartbeat interval (seconds):心跳间隔
  Assume dead after (seconds):多长时间确定死亡转移
  Heartbeat runs on port:heartbeat运行的端口
  

  

  3.添加服务
  

  

  4.添加real server:192.168.2.116
                          192.168.2.160

  直接点击ACCEPT
  

  

  

  

  5.激活
  

  

  # scp lvs.cf 192.168.2.135:/etc/sysconfig/ha/

# yum install arptables_jf
# arptables -A IN -d 192.168.2.252 -j DROP
# arptables -A OUT -s 192.168.2.252 -j mangle --mangle-ip-s 192.168.0.116
# /etc/init.d/arptables_jf save
# ifconfig eth0:1 192.168.2.252 netmask 255.255.255.255 up
# echo server16.example.com >/var/www/html/index.html
# /etc/init.d/httpd start

#yum install arptables_jf -y
# arptables -A IN -d 192.168.2.252 -j DROP
# arptables -A OUT -s 192.168.2.252 -j mangle --mangle-ip-s 192.168.0.160
# /etc/init.d/arptables_jf save
# ifconfigeth0:1 192.168.2.252 netmask 255.255.255.255 up(此处的子网掩码表示不对外开放)
# echo server60.example.com >/var/www/html/index.html
# /etc/init.d/httpd start

# /etc/init.d/pulse start
# /etc/init.d/pulse start
  # ipvsadm -L
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port         Forward Weight ActiveConn InActConn
TCP192.168.2.252:http rr
-> 192.168.2.116:http         Route   1      0          3         
-> 192.168.2.160:http         Route   1      0          3   
http://192.168.2.252刷新看到页面变化则正确
  

  测试:先后当掉运行在real server上的http服务,以及主Load Balancer的pulse,观察有什么变化?

  




页: [1]
查看完整版本: 基于lvs的piranha负载均衡高可用集群