介绍
        整合实现高可用性和负责均衡,基于WEB方式管理,可通过web页面方便快捷的配置
 
高可用负载均衡方案
注意:关闭 selinux 和防火墙
 
系统环境:
    服务名
           IP
               描述
LVS-ACTIVE
      192.168.0.10      
piranha/ 主调度服务器真实 IP
LVS-BACKUP
      192.168.0.20      
piranha/ 从调度服务器真实 IP
LVS-VIP
      192.168.0.100      
用来访问的虚拟 IP
RealServer
192.168.0.30/192.168.0.40   
HTTP 服务器真实 IP
 
 
原理结构描述
基于 LVS 基础上设计的一套负载均衡高可用解决方案
Pulse
该进程运行在活动 LVSRouter 和备份 LVSRouter 上,负责心跳( heartbeat )连接
lvsd
该进程调用 ipvsadm 工具配置和维护 IPVS 路由表,并为真实服务器上的虚拟服务启动一个 nanny 进程
nanny
该进程检查真实服务器上的虚拟服务状态,并将故障情况通知 lvs 进程
send_arp
如果备份 LVS 未收到活动 LVS 的响应,将调用 send_arp 将虚拟 IP 地址再分配到备份 LVS 的公网接口上
 
 
 
套件安装
添加一个 yum 下载源下面要装的除 cman 都在光盘 Cluster 目录下
[zzh]
name=zzh
baseurl= file:///mnt
gpgcheck=1
gpgcheck=0
[ kt ]
name= kt
baseurl= file:///mnt/Cluster
gpgcheck=1
gpgcheck=0
 
[root@zzh /]# yum install cman* ipvsadm modcluster piranha system-config-cluster
安装必要软件
 
 
配置文件介绍 :
配置文件
说明
/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
这个文件是他的配置文件可以改用什么端口来管理
 
 
piranha 上配置
[root@zzh /]# vim /etc/sysctl.conf
修改下面字段值为 1 来启用数据转发
net.ipv4.ip_forward = 1
[root@zzh /]# sysctl -p
设置生效
 
[root@zzh /]# /etc/init.d/piranha-gui start
启动 web 页面管理服务
[root@zzh /]# netstat -anp | grep piranha
查看端口 3636 是否开启
[root@zzh /]# /usr/sbin/piranha-passwd
设置 WEB 登陆密码
#http://192.168.0.10: 3636/
输入用户名 piranha 及上面设置的密码登陆
 
 
 
WEB 页面配置部分
注意:设置完按 ACCEPT 按钮保存设置
GLOBAL SETTINGS
  ( 就是双机热备的主服务器配置)
 
Primary server public IP
piranha 服务器真实 IP
Primary server private IP
输入用于心跳检测的网卡 IP ,这里填写了后面从服务器才会有心跳设置框
Use network type
LVS 类型一般连接类型选 Directory Routing (路由直连)就可以了
 
 
REDUNDANCY
(就是双机热备的从服务器配置)
 
Redundant server public IP
piranha 服务器真实 IP
Redundant server private IP
输入用于心跳检测的网卡 IP
Heartbeat interval
心跳检查间隔时间点位秒
Assume dead after
设置多久时间确定死亡切换服务单位秒
Heartbeat runs on port
服务运行端口
 
 
VIRTUAL SERVERS 主标签
(设置 LVS 虚拟服务器和它所包含的真实服务器)
 
ADD
先添加一个虚拟调度服务器
EDIT
编辑添加的虚拟调度服务器
DELETE
删除虚拟服务器
ACTIVATE
激活虚拟服务器
 
 
 
VIRTUAL SERVER 子标签
(设置虚拟调度服务器)
Name
虚拟服务器名可自定义
Application port
访问虚拟服务器的端口
Protocol
协议
Virtual IP Address
虚拟服务器地址
Virtual IP Network Mask
掩码
 
注意:设置完后返回单击 ACTIVATE 激活虚拟服务器
 
 
 
REAL SERVER 子标签
(设置后台真实服务器添加多个)
 
Name
真实服务器名可自定义
Address
真实服务器地址
Port
后台真实服务器端口,不写默认是虚拟服务器的端口
Weight
权重
 
注意:设置完后返回单击 ACTIVATE 激活虚拟服务器
 
 
启动 pulse 服务
[root@zzh /]# /etc/init.d/pulse start
注意:上面的虚拟服务器激活了才可启动
查看服务是否运行
 
 
 
 
Piranha 上配置
Piranha 服务器上和主 Piranha 服务器上做的事情几乎完全一样
1 、安装和主 Piranha 一样的软件
2 、拷贝 web 页面生成的 lvs.cf 配置文件
 
[root@zzh /]# yum install cman* ipvsadm modcluster piranha system-config-cluster
安装必要软件
[root@zzh /]# scp root@ 192.168.0.10 :/etc/sysconfig/ha/lvs.cf /etc/sysconfig/ha/lvs.cf
lvs.cf 文件
[root@zzh /]# chgrp piranha /etc/sysconfig/ha/lvs.cf
改属组
[root@zzh /]# chmod 664 /etc/sysconfig/ha/lvs.cf
改文件权限
 
启动服务
[root@zzh /]# /etc/init.d/piranha-gui start
启动 web 页面管理服务
[root@zzh /]# /usr/sbin/piranha-passwd
设置 WEB 登陆密码
[root@zzh /]# /etc/init.d/pulse start
启动服务
 
 
 
 
后台真实服务器配置
在选择连接类型有 NAT DR( 路由直连)、 Tunneling 三种,选择不同类型真实服务器也要对应不同的设置
 
上面我们选择了 DR 类型,只要把每台真实服务器按着之前做路由直连时( ipvsadm ),设置多台真实服务器就可以了
[root@zzh /]# vim /etc/sysctl.conf
编辑内核运行参数,添加下面字段
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
[root@zzh /]# sysctl -p
使上面的修改立即生效
 
配置 VIP 地址
[root@zzh /]# ifconfig  lo:0   192.168.0. 100   broadcast  192.168.0. 100   netmask 255.255.255.255 up
[root@zzh /]# route  add  -host  192.168.0. 100   dev   lo:0