双机热备heartbeat和keepalived
一、heartbeat安装配置
用heartbet搭建nginx服务高可用
环境:两台Centos6.5_x64系统下的高可用,每一台都需要两块网卡。
两台机器上都需要安装 nginx
主服务器 master
ip(可以访问外网)172.18.9.89 ip(用于心跳检测):192.168.8.200
从服务器 slave
ip(可以访问外网)172.18.9.99 ip(用于心跳检测):192.168.8.100
分别在两个机器上的hosts文件中加入两行:master 172.18.9.89
slave 172.18.9.99
1.安装heartbeat(同时也需要安装libnet,因为需要libnet的支持
主、从服务器上都运行 yum install -y heartbeat libnet
2.复制配置文件
cd /usr/share/doc/heartbeat-3.04/
cp authkeys ha.cf haresources /etc/ha.d/
3.配置authkeys(该文件是权限级别的控制)
配置如下: auth3
3 ma5 Hello
设置authkeys的读写权限 chmod 600 authkeys
4.配置haresources
只需要在该配置文件中加入一行即可:
master 172.18.9.250/24/eth0:0 nginx
//意思是使用虚拟250这个ip做代理nginx服务,外部访问nginx服务只能访问到172.18.9.250这个ip;
5.配置ha.cf(这个配置文件配置的最多)
配置如下: debugfile /var/log/ha-debug
logfile /var/log/ha-log
logfacility local0
keepalive 2
deadtime 30
warntime 10
initdead 60
udpport 694
ucast eth0 192.168.8.100(用于心跳检测)
auto failback on
node master
node slave
ping 172.18.2.2 (检测网络是否有问题,最好找一个稳定的ip)
respawn hacluster /usr/lib64/heartbeat/ipfail(若是32位系统需要把lib64改成lib
6.拷贝
cd /etc/ha.d
scp authkeys ha.cf haresources slave:/etc/ha.d/
7.修改从服务器上的配置文件
vim /etc/ha.d/ha.cf //从服务上只需要修改此处一个地方即可
把ucast eth0 192.168.8.100 改为 ucast eth0 192.168.8.200
8.启动服务
先主后从 service heartbeat start
服务的日志是在/var/log/ha-log
9.测试
把主服务器上的网卡禁用或者heartbeat服务关闭
查看172.18.9.250是否在从服务器上。
日志路径:/var/log/ha-log
二、keepalived安装和配置
两台Centos6.4_X64系统下的高可用
主ip: 172.18.9.99
备ip: 172.18.9.89
vip(虚拟):172.18.9.250
1.安装
在主备上分别执行: yum install keepalived
2.配置
vim /etc/keepalived/keepalived.conf
state MASTER #设置主备
interface eth0 #提供服务的网卡名
priority 100 #优先级别,数值大的优先级别高,是主
virtual_ipaddress{
172.18.9.250 } #设置提供web服务的虚拟ip,用户最终访问到的是此ip
备上配置:
state BACKUP #设置主备
interface eth0 #服务的网卡名
priority 90 #备上的优先级别要小于主
virtual ipaddress{
172.18.9.250} #虚拟ip(vip)
3.启动
先主后备运行: /etc/init.d/keepalived start
4.测试
禁用主上的网上或者关闭keepalived
查看备服务器上是否增加172.18.9.250这个ip.
三、源码安装keepalived
从 www.keepalived.org 官网下载keepalived-1.2.7版本的源码包
在主备上操作如下:
1.解压
tar zxvf keepalived-1.2.7.tar.gz
cd keepalived-1.2.7.tar.gz
2.编译安装
./configure --prefix=/usr/local/keepalived
make && make install (中间可能出现缺少依赖包,可根据报错提示安装)
3.配置
cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/rc.d/init.d
cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig
mkdir /etc/keepalived
cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/
cp /usr/local/keepalived/sbin/keepalived /usr/sbin
vim /etc/keepalived/keepalived.conf
state MASTER #设置主备
interface eth0 #提供服务的网卡名
priority 100 #优先级别,数值大的优先级别高,是主
virtual_ipaddress{
172.18.9.250 } #设置提供web服务的虚拟ip,用户最终访问到的是此ip
备上配置:
state BACKUP #设置主备
interface eth0 #服务的网卡名
priority 90 #备上的优先级别要小于主
virtual ipaddress{
172.18.9.250} #虚拟ip(vip)
4.启动
先主后备运行: /etc/init.d/keepalived start
5.测试
禁用主上的网上或者关闭keepalived
查看备服务器上是否增加172.18.9.250这个ip.