冰恋 发表于 2015-11-20 03:17:44

keepalived主从备份保活

  1.需要安装openssl_devel包。yum install openssl_devel。
  2../configure; make; make install安装keepalived。
  3.拷贝配置文件,启动程序,使用目录到系统目录下面:
  cp /usr/local/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/
  cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/
  mkdir /etc/keepalived
  cp /usr/local/etc/keepalived/keepalived.conf /etc/keepalived/
  cp /usr/local/sbin/keepalived /usr/sbin
  4.编辑/etc/keepalived/keepalived.conf
  需要记得下面的修改配置:
  vrrp_instance VI_1 {
  state MASTER #设置为主服务器,如果是备服务器,则设置为BACKUP
  interface eth0 #设置keepalived的网卡
  virtual_router_id 51 #设置唯一号,主备都要相同
  priority 100 #优先级,要保证主服务器的优先比备的高,备服务器要低于主服务器,在这里是100
  advert_int 1 #心跳检测的间隔(秒)
  ...
  ...
  }
  在下面的地址上写(若是在三层的检测服务器,就设置这项足够)
  virtual_ipaddress{
  10.0.0.12虚拟ip,主备要一直
  *.*.*.*可以设置多个虚拟ip,通过虚拟ip来达到keepalived
  }
  5.启动keepalived
  service keepalived start
  检查主服务器的状态
  ip a
  可以查看到主服务器里多个个虚拟ip
  但在备服务器上没看到虚拟ip
  这是因为现在默认访问虚拟ip,是对应的主服务器
  一旦主服务器挂掉了,备用服务器马上接管此ip
  测试:
  在主服务器上service keepalived stop
  然后在备服务器上
  ip a
  看到虚拟ip已经显示
  这就证明备服务器已接管虚拟ip。
  
  实验结束
  若要主从互备,则只需要加入另外一个vrrp_instance,命名为vrrp_instance VI_2 {。。。}
  当然,里面的主从要互换位置,优先级也要有高低。。。
  
  题外
  若要只监测80端口或其他端口的网络四层keepalived,则需修改另一个选项,virtual server
  如:
  virtual_server 192.168.1.200 3306 {
  delay_loop 2 #每个2秒检查一次real_server状态
lb_algo wrr#LVS算法
lb_kind DR#LVS模式
persistence_timeout 60#会话保持时间
protocol TCP
real_server 192.168.0.111 80 {真实的ip
weight 3权重3
notify_down /root/httpd.sh #检测到服务down后执行的脚本
TCP_CHECK {
connect_timeout 10#连接超时时间
nb_get_retry 3#重连次数
delay_before_retry 3#重连间隔时间
connect_port 80#健康检查端口
}
}
  
  httpd.sh脚本:
  #vi /root/httpd.sh
  
#!/bin/sh
  pkillkeepalived

#chmod +x /root/httpd.sh
注:此脚本是上面配置文件notify_down选项所用到的,keepalived使用notify_down选项来检查real_server的服务状态,当发现real_server服务故障时,便触发此脚本
  

  下个实验做
页: [1]
查看完整版本: keepalived主从备份保活