Keepalived现实Web双机热备(高可用)

        通过在两台主、备调度器上实现Keepalived高可用解决调度器单点失败问题

        主、备调度器上配置LVS,正常情况下主调度器工作

        主调度器异常时,Keepalived启用备用调度器,保证了调度器的高可用

        调度器保证了后台服务的高可用

        Keepalived机制把同一个IP一直分配在同一个Web服务器

 

如下实现web服务器的高可用:

web1 :  192.168.10.20     

web2:   192.168.10.22     

虚拟IP:  192.168.10.100

client :  192.168.10.40

 

一、在两台web服务器上安装keepalived

# yum  install -y  gcc  gcc-c++ kernel-devel  openssl-devel  popt-devel

# tar  xvzf keepalived-1.2.7.tar.gz  -C  /usr/src/

# cd  /usr/src/keepalived-1.2.7/

# uname -r

2.6.32-358.el6.x86_64

#./configure  --sysconf=/etc --with-kernel-dir=/usr/src/kernels/2.6.32-358.el6.x86_64/  && make  && make install

注:

--sysconf  // keepalived的主配置文件存放位置/etc/keepalived/keepalived.conf

--with-kernel-dir    //指定本服务器正在使用的内核文件的存放位置

#ln  -s /usr/local/sbin/keepalived  /sbin/

# chkconfig  keepalived on


二、Keepalived配置说明

web1服务器:

vim/etc/keepalived/keepalived.conf

设置报警邮件

global_defs {

  notification_email {

     root@localhost     //发件人邮箱

  }

  notification_email_from  root@192.168.10.40    //收件人邮箱 ,此处设置成发给自己

  smtp_server192.168.10.40    //给谁发邮件

  smtp_connect_timeout 30

  router_id LVS_devel

}

 

VRRP实例设置

vrrp_instanceVI_1 {

  state MASTER    //主服务器就写MASTER,辅助备份就写SLAVE

  interface eth0

  virtual_router_id 51

  priority 100    //主服务器优先级要比备份的高例子:主是100  那么备用就是60

  advert_int 1     //主备服务器多长时间互相检测  这里是1

  authentication {

    auth_type pass

    auth_pass redhat   //主辅服务器密码必须一致

  }

  virtual_ipaddress {  192.168.10.100  }    //指定调度器上的VIP虚拟IP

}

 

注:只要以上内容,其它的都删除。

 

web2服务器:备

vim/etc/keepalived/keepalived.conf

设置报警邮件

global_defs {

  notification_email {

     root@localhost     //发件人邮箱

  }

  notification_email_from  root@192.168.10.40    //收件人邮箱 ,此处设置成发给自己

  smtp_server192.168.10.40    //给谁发邮件

  smtp_connect_timeout 30

  router_id LVS_devel

}

 

VRRP实例设置

vrrp_instanceVI_1 {

  stateSLAVE    //主服务器就写MASTER,辅助备份就写SLAVE

  interface eth0

  virtual_router_id 51

  priority 80    //主服务器优先级要比备份的高例子:主是100  那么备用就是60

  advert_int 1     //主备服务器多长时间互相检测  这里是1

  authentication {

    auth_type pass

    auth_pass redhat   //主辅服务器密码必须一致

  }

  virtual_ipaddress {  192.168.10.100  }    //指定调度器上的VIP虚拟IP

}

 

三、在两台web服务器上启动keepalived服务

# service keepalived start

四、在两台web服务器上分别查看ip

# ip addr show eth0

web1上能看到虚拟IP 192.168.10.100

web2上不能看到虚拟IP

 

五、客户端访问

http://192.168.10.100     此时能访问到web1上的内容

 

六、测试其高可用性

web1 关闭;再看到web1web2上的IP

web2上能看到虚拟IP 192.168.10.100

web1上不能看到虚拟IP

客户端刷新页面:此时能访问到web2上的内容。

 

说明备份服务器web2起作用了。

 

可用:# tail  -f  /var/log/messages   实时查看