高可用的作用
高可用性集群中的节点一般是一主一备,或者一主多备,通过备份提高整个系统可用性。搭建高可用的目的是为了防止单点故障,代主节点的调度器不能正常工作了,就由备节点的调度器顶上完成工作。
搭建步骤
在这次实验我们要用4个虚拟机,我把这4台虚拟机分别命名server1,server2,server3,server4。
首先配置主调度器server1
1.配置yum源
vim /etc/yum.repos.d/rhel-source.repo
[rhel6.5]
name=rhel6.5
baseurl=http://172.25.62.250/rhel6.5
enabled=1
gpgcheck=0
[LoadBalancer]
name=LoadBalancer
baseurl=http://172.25.62.250/rhel6.5/LoadBalancer
enabled=1
gpgcheck=0
[HighAvailability]
name=HighAvailability
baseurl=http://172.25.62.250/rhel6.5/HighAvailability
enabled=1
gpgcheck=0
2.在主调度器server1上用源码包安装keepalived-2.0.6
1.首先要获取包keepalived-2.0.6.tar.gz
解压
tar zxf keepalived-2.0.6.tar.gz
2.安装服务需要的软件
yum install openssl-devel -y
yum install libnl libnl-devel -y
yum install gcc -y
得到libnfnetlink-devel-1.0.0-1.el6.x86_64.rpm资源包,进行安装,如果不安装这个包,编译可能会失败。
yum install libnfnetlink-devel-1.0.0-1.el6.x86_64.rpm -y
安装
3.进入到解压好的目录下,编译,安装
cd keepalived-2.0.6
./configure --with-init=SYSV --prefix=/usr/local/keepalived
make && make install
3将主调度器server1上编译好的keepalived,给备调度器server4发送一份
scp -r /usr/local/keepalived/ root@172.25.62.4:/usr/local/
4.赋予执行权限,添加链接
chmod +x /usr/local/keepalived/etc/rc.d/init.d/keepalived
ln -s /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
ln -s /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
ln -s /usr/local/keepalived/etc/keepalived/ /etc/
ln -s /usr/local/keepalived/sbin/keepalived /sbin/
这一步在两台调度器都需要做。
5.安装调度器
yum install ipvsadm -y
两台调度器server1,server4都需要安装。
6.编辑keepalived配置文件
在主调度器server1:
vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
notification_email {
root@localhost ##设置发邮件的主机为本机
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LVS_DEVEL
vrrp_skip_check_adv_addr
#vrrp_strict
vrrp_garp_interval 0
vrrp_gna_interval 0
}
vrrp_instance VI_1 {
state MASTER ##设置为主调度器
interface eth0
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
172.25.62.100 ##设置虚拟ip,通过虚拟ip进行调度
}
}
virtual_server 172.25.62.100 80 {
delay_loop 3
lb_algo rr
lb_kind DR
#persistence_timeout 50
protocol TCP
real_server 172.25.62.2 80 { ##真实服务器1
TCP_CHECK {
weight 1
connect_timeout 3
retry 3
delay_before_retry 3
}
}
real_server 172.25.62.3 80 { ##真实服务器2
TCP_CHECK {
weight 1
connect_timeout 3
retry 3
delay_before_retry 3
}
}
}
在备调度器也写入一样的内容,只不过, state MASTER改为state BACKUP, priority 100 改为 priority 50就可以了。
7.给服务器server2,server3添加ip,ip和上面的虚拟ip一样
ip addr add 172.25.62.100/32 dev eth0
8.将ldirectord停止,设置开机不自启
/etc/init.d/ldirectord stop
chkconfig ldirectord off
9.开启服务
/etc/init.d/keepalived start
注意这里在server1和server4两台调度器都要开启。
这样服务就基本搭建完成了。
测试
在主调度器server1
/etc/init.d/keepalived stop
关闭服务后依然能正常进行调度
这就表明备调度器server4执行调度功能成功。