实验准备
1.下面的实验使用的是rhel6系列(rhel6.5)的虚拟机,因此你需要有对应的镜像和yum源
2.准备三台虚拟机,为了区分主机名与IP分别为
server1 172.25.6.1
server2 172.25.6.2
server3 172.25.6.3
3.我们将server1(172.25.6.1)作为调度器,server2、server3作为后端服务器,物理机作为客户端
1.为什么要进行健康检查?
像前面配置好了,整个集群开始工作,但如果某些Real Server出现问题,不能正常访问,但依旧会执行调度。因此我们就要使Director的ipvs配置做出相应改变,删除出问题的Real Server;当Real Server又能正常访问时,也要把其添加回ipvs的调度列表,这就需要实时检查各Real Server的健康状态,以此来保证整个集群能够提供稳定可用的服务。
2.配置过程(在调度器server1上进行)
1)修改yum源(使其获得高可用源)
vim /etc/yum.repos.d/rhel-source.repo
[LoadBalancer]
name=Red Hat Enterprise Linux $releasever - $basearch - Source
baseurl=http://172.25.8.250/rhel6.5/HighAvailability
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
2)获得ldirectord-3.9.5-3.1.x86_64.rpm软件包,并进行安装
yum install ldirectord-3.9.5-3.1.x86_64.rpm -y
rpm -qpl ldirectord-3.9.5-3.1.x86_64.rpm
3)将模板文件进行复制,进行编写
cp /usr/share/doc/ldirectord-3.9.5/ldirectord.cf /etc/ha.d/
vim /etc/ha.d/ldirectord.cf
11 # Global Directives #“ 全局 ” 设置
12 checktimeout=3 #指定定real server出错的时间间隔
13 checkinterval=1 #指定ldirectord在两次检查之间的时间间隔
16 autoreload=yes #自动重载配置文件,选yes时,当配置文件发生变化,自动载入配置信息
22 quiescent=no #当一个节点在 checktimeout 设置的时间周期内没有响应时它是 “ 静止的 ” (它的权重为0),当你设置了这个选项后,ldirectord 将 会从 IPVS 表中移除真实服务器而不是 “ 停止 ” 它,从 IPVS 表移除节点将中断现有的客户端连接,并使 LVS 丢掉所有的连接跟踪记录和持续连接模板,如果 你不将这个选项设置为 no,当某个节点崩溃时,对某些客户端计算机而言可能会显示为集群关闭了,因为在这个节点崩溃前这些客户端计算机被分配给它了,而连接跟踪记录和程序连接模板仍然保留在Director上。
logfile="/var/log/ldirectord.log" #设定ldirectord日志输出文件路径
# Sample for an http virtual service
virtual=172.25.6.100:80 #VIP 地址和端口号
real=172.25.6.2:80 gate #指定RealServer地址和端口,同时设定LVS工作模式,gate表示DR模式,ipip表示TUNL模式,masq表示NAT模式。
real=172.25.6.3:80 gate #当所有的real server节点不能工作时,web服务重定向的