1、安装
1.1准备
转到待下载目录
cd /usr/local/src
下载安装包
- Centos6.8 x86_64已测试支持1.2.24
- Redhat6.4 x86_64已测试支持1.2.20,1.2.24编译报错
- 1.3.*版本暂不知如何安装
下载对应版本
wget http://www.keepalived.org/software/keepalived-1.2.24.tar.gz
解压
tar -zxvf keepalived-1.2.24.tar.gz
1.2安装依赖包
查看系统内核版本
Uname –a
建立内核链接,下面的内核版本参照上面的命令输出
ln -s /usr/src/kernels/2.6.32-642.el6.x86_64 /usr/src/linux
安装依赖包gcc、openssl、openssl-devel
在联网情况下直接运行
yum install gcc
yum install openssl
yum install openssl-devel
Redhat6.4 x86_64在非联网情况下使用”依赖包\Redhat6.4 x86_64”目录下的rpm包
依次cd到gcc、openssl、openssl-devel的目录内,运行
yum install *
1.3安装Keepalived
配置并检查,设置安装位置为/usr/local/keepalived,不指定prefix,则可执行文件默认放在/usr /local/bin,库文件默认放在/usr/local/lib,配置文件默认放在/usr/local/etc
./configure --prefix=/usr/local/keepalived
安装
make && make install
1.2.24下拷贝文件
mkdir /etc/keepalived
cd /etc/keepalived
cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf
cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/keepalived
cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/keepalived
1.2.20下拷贝文件
mkdir /etc/keepalived
cd /etc/keepalived
cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf
cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/keepalived
cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/keepalived
cp /usr/local/sbin/keepalived /usr/sbin/keepalived
1.4服务设置
设置keepalived服务开机启动:
shell> chkconfig keepalived on
启动服务
shell> service keepalived start
如果出现权限拒绝错误执行下列语句
chmod +x /etc/rc.d/init.d/keepalived
1.5运行
启动服务
service keepalived start
停止服务
service keepalived stop
重启服务
service keepalived restart
重新读取配置文件
service keepalived reload
keepalived正常运行后,会启动3个进程,其中一个是父进程,负责监控其子进程。一个是vrrp子进程,另外一个是checkers子进程
shell> ps -ef | grep keepalived
root 831 1 0 11:22 ? 00:00:00 keepalived -D
root 840 831 0 11:22 ? 00:00:00 keepalived -D
root 841 831 0 11:22 ? 00:00:00 keepalived –D
默认日志存放在系统日志:/var/log/messages下
2、主从高可用配置
- 主服务器:IP 192.168.234.101,部署有绑定在80端口的HTTP服务器
- 备服务器:IP 192.168.234.102,部署有绑定在80端口的HTTP服务器
- VIP:192.168.234.100
2.1主服务器配置
配置文件位于/etc/keepalived/keepalived.conf
! Configuration File for keepalived
#全局定义块
global_defs {
# 邮件通知配置
notification_email {
#acassen@firewall.loc
#failover@firewall.loc
#sysadmin@firewall.loc
}
#notification_email_from Alexandre.Cassen@firewall.loc
#smtp_server 192.168.200.1
#smtp_connect_timeout 30
router_id LVS_DEVEL101 #用户标识本节点的名称,通常为hostname
#vrrp_skip_check_adv_addr
#vrrp_strict
#vrrp_garp_interval 0
#vrrp_gna_interval 0
}
vrrp_script chk_http_port { #检查脚本
script "/usr/local/keepalived/check_nginx"
interval 1 #每隔一秒执行一次
weight -10 #失败时优先级priority减少值,只会减少一次
}
vrrp_instance VI_1 {
state MASTER #实例状态,只有MASTER 和 BACKUP两种状态,并且需要全部大写。抢占模式下,其中MASTER为工作状态,BACKUP为备用状态。当MASTER所在的服务器失效时,BACKUP所在的服务会自动把它的状态由BACKUP切换到MASTER状态。当失效的MASTER所在的服务恢复时,BACKUP从MASTER恢复到BACKUP状态。
interface eth1 #对外提供服务的网卡接口,即VIP绑定的网卡接口。如:eth0,eth1。
virtual_router_id 100 #虚拟路由的ID号,每个节点设置必须一样,可选择IP最后一段使用,相同的 VRID 为一个组,他将决定多播的 MAC 地址。
priority 100 #节点优先级,取值范围0~254,MASTER要比BACKUP高,且MASTER-BACKUP<weight,否则即使MASTER Down,也不会发生切换
advert_int 1 #MASTER与BACKUP节点间同步检查的时间间隔,单位为秒
authentication {
auth_type PASS #验证类型。类型主要有 PASS、AH 两种,通常使用PASS类型,据说AH使用时有问题。验证密码为明文,同一vrrp 实例MASTER与BACKUP使用相同的密码才能正常通信。
auth_pass 1111 #验证密码。
}
track_script {
chk_http_port #执行监控的服务
}
virtual_ipaddress {
192.168.234.100 #/24 brd 192.168.234.255 dev eth1 label eth1:1 #虚拟IP地址池,可以有多个IP,每个IP占一行,不需要指定子网掩码。注意:这个IP必须与我们的设定的vip保持一致。
#通过ip addr命令可以查看VIP绑定情况
}
}
2.2从服务器配置
配置文件位于/etc/keepalived/keepalived.conf
! Configuration File for keepalived
#全局定义块
global_defs {
# 邮件通知配置
notification_email {
#acassen@firewall.loc
#failover@firewall.loc
#sysadmin@firewall.loc
}
#notification_email_from Alexandre.Cassen@firewall.loc
#smtp_server 192.168.200.1
#smtp_connect_timeout 30
router_id LVS_DEVEL102 #用户标识本节点的名称,通常为hostname
#vrrp_skip_check_adv_addr
#vrrp_strict
#vrrp_garp_interval 0
#vrrp_gna_interval 0
}
vrrp_script chk_http_port { #检查脚本
script "/usr/local/keepalived/check_nginx"
interval 1 #每隔一秒执行一次
weight -10 #失败时优先级priority减少值,只会减少一次
}
vrrp_instance VI_1 {
state BACKUP #实例状态,只有MASTER 和 BACKUP两种状态,并且需要全部大写。抢占模式下,其中MASTER为工作状态,BACKUP为备用状态。当MASTER所在的服务器失效时,BACKUP所在的服务会自动把它的状态由BACKUP切换到MASTER状态。当失效的MASTER所在的服务恢复时,BACKUP从MASTER恢复到BACKUP状态。
interface eth2 #对外提供服务的网卡接口,即VIP绑定的网卡接口。如:eth0,eth1。
virtual_router_id 100 #虚拟路由的ID号,每个节点设置必须一样,可选择IP最后一段使用,相同的 VRID 为一个组,他将决定多播的 MAC 地址。
priority 95 #节点优先级,取值范围0~254,MASTER要比BACKUP高,且MASTER-BACKUP<weight,否则即使MASTER Down,也不会发生切换
advert_int 1 #MASTER与BACKUP节点间同步检查的时间间隔,单位为秒
authentication {
auth_type PASS #验证类型。类型主要有 PASS、AH 两种,通常使用PASS类型,据说AH使用时有问题。验证密码为明文,同一vrrp 实例MASTER与BACKUP使用相同的密码才能正常通信。
auth_pass 1111 #验证密码。
}
track_script {
chk_http_port #执行监控的服务
}
virtual_ipaddress {
192.168.234.100 #/24 brd 192.168.234.255 dev eth2 label eth2:2 #虚拟IP地址池,可以有多个IP,每个IP占一行,不需要指定子网掩码。注意:这个IP必须与我们的设定的vip保持一致。
#通过ip addr命令可以查看VIP绑定情况
}
}
2.3HTTP检查脚本check_nginx
#!/bin/bash
# curl -IL http://localhost/member/login.htm
# curl --data "memberName=fengkan&password=22" http://localhost/member/login.htm
count=0
for (( k=0; k<2; k++ ))
do
check_code=$( curl --connect-timeout 3 -sL -w "%{http_code}\\n" http://127.0.0.1/ -o /dev/null )
if [ "$check_code" != "200" -a "$check_code" != "304" ]; then
count=count+1
continue
else
count=0
break
fi
done
if [ "$count" != "0" ]; then
# /etc/init.d/keepalived stop
exit 1
else
exit 0
fi
本文详细介绍Keepalived在CentOS 6.8 x86_64平台上的安装步骤及主从高可用配置方法。包括环境搭建、依赖包安装、服务启动与管理等关键环节。
3万+

被折叠的 条评论
为什么被折叠?



