设为首页 收藏本站
查看: 1264|回复: 0

[经验分享] MySQL的Keepalived安装、配置、启动

[复制链接]

尚未签到

发表于 2015-11-20 08:50:00 | 显示全部楼层 |阅读模式
keepalived是什么
keepalived是集群管理中保证集群高可用的一个服务软件,对内解决单点故障,对外提供唯一入口。

keepalived工作原理

keepalived是一个类似于layer3, 4 & 7交换机制的软件,也就是我们平时说的第3层、第4层和第7层交换。
第3层:Keepalived使用Layer3的方式工作式时,Keepalived会定期向服务器群中的服务器发送一个ICMP的数据包(既我们平时用的Ping程序),如果发现某台服务的IP地址没有激活,Keepalived便报告这台服务器失效,并将它从服务器群中剔除,这种情况的典型例子是某台服务器被非法关机。Layer3的方式是以服务器的IP地址是否有效作为服务器工作正常与否的标准。在本文中将采用这种方式。
第4层:Layer4主要以TCP端口的状态来决定服务器工作正常与否。如web server的服务端口一般是80,如果Keepalived检测到80端口没有启动,则Keepalived将把这台服务器从服务器群中剔除。
第7层:Layer7就是工作在具体的应用层了,比Layer3,Layer4要复杂一点,在网络上占用的带宽也要大一些。Keepalived将根据用户的设定检查服务器程序的运行是否正常,如果与用户的设定不相符,则Keepalived将把服务器从服务器群中剔除。

Keepalived的作用是检测web服务器的状态,如果有一台web服务器死机,或工作出现故障,Keepalived将检测到,并将有故障的web服务器从系统中剔除,当web服务器工作正常后Keepalived自动将web服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的web服务器。
  

  keepalived安装、启动
wget http://www.keepalived.org/software/keepalived-1.2.6.tar.gz
tar zxvf keepalived-1.2.6.tar.gz
cd keepalived-1.2.6
./configure
make
make install

添加Keepalived为系统服务
cp /usr/local/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/
cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/
cp /usr/local/sbin/keepalived /usr/sbin/
mkdir /etc/keepalived
添加keepalived的配置项
vi /etc/keepalived/keepalived.conf

启动
service keepalived start

设置开启启动
chkconfig --add keepalived
chkconfig keepalived on

  

keepalived配置文件
keepalived.conf配置分为3部分,global_defs,vrrp_instance VI_1,virtual_server。
注:下面蓝色文字是可有可无,红色文字就是需要修改的部分,如果只是测试用,写入virtual_ipaddress,virtual_server,state,priority这四个就可以了。而当主修改好文件后,在从只用修改state,priority,priority不能高于在主设置的值。
  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_DEVEL
}


  •   notification_email            故障发生时给谁发邮件通知。
  •   notification_email_from   通知邮件从哪个地址发出。
  •   smpt_server                   通知邮件的smtp地址。
  •   smtp_connect_timeout   连接smtp服务器的超时时间。
  •   router_id                        标识本节点的字条串,通常为hostname,但不一定非得是hostname。故障发生时,邮件通知会用到。
  vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 51
    priority 100
    advert_int 1
    nopreempt
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.200.100
    }
}


  •   state                        可以是MASTER或BACKUP,不过当其他节点keepalived启动时会将priority比较大的节点选举为MASTER,因此该项其实没有实质用途。
  •   interface                   节点固有IP(非VIP)的网卡,用来发VRRP包。
  •   virtual_router_id         取值在0-255之间,用来区分多个instance的VRRP组播。
  •   priority                      用来选举master的,要成为master,这个选项的值要高于其他机器的值,该项取值范围是1-255(在此范围之外会被识别成默认值100)。
  •   advert_int                  监测间隔(秒)
  • nopreempt                防止抢占资源

  •   authentication           认证区域,认证类型有PASS和HA(IPSEC),推荐使用PASS(密码只识别前8位)。
  •   virtual_ipaddress vip   虚拟IP,可以多个
  •   authentication            认证区域,认证类型有PASS和HA(IPSEC),推荐使用PASS(密码只识别前8位)。

  •   virtual_ipaddress vip   虚拟IP,可以多个
  virtual_server 192.168.200.1003306{
    delay_loop 6
     lb_algo rr
    lb_kind NAT
    nat_mask 255.255.255.0
    persistence_timeout 50

    protocol TCP
    real_server 192.168.201.10 3306{
         weight 1
            notify_down  /usr/local/MySQL/bin/MySQL.sh
         TCP_CHECK {
            connect_port 3306
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
            }
   }
}



  •   delay_loop                      每隔N秒查询realserver状态。
  •   lb_algo                           后端调试算法(load balancing algorithm)。

  •   lb_kind                           LVS调度类型NAT/DR/TUN。
  •   nat_mask                       网关。
  •   persistence_timeout       会话保持时间。

  •   real_server                     真正提供服务的服务器IP。
  •   weight                           权重。
  • notify_down                  检测到服务down后执行的脚本

  •   connect_port                 连接端口。
  •   connect_timeout            超时时长。
  •   nb_get_retry                  重试次数
  •   delay_before_retry         下次重试的时间延迟。
  
注:notify_down的作用是在mysql停止后,关闭本机的keepalived进程,避免冲突。

#vi /usr/local/MySQL/bin/MySQL.sh  

#!/bin/sh  

pkill keepalived  

#chmod +x /usr/local/MySQL/bin/MySQL.sh

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-141345-1-1.html 上篇帖子: 手把手教程: CentOS 6.5 LVS + KeepAlived 搭建 负载均衡 高可用 集群 下篇帖子: Linux-HA 高可用开源方案 Keepalived VS Heartbeat 的选择
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表