keepalived双机热备

1:keepalived双机热备,主要是用来提供故障切换,和对节点服务器的健康检查。当故障主机回复之后加入群集

2keepalived是基于vrrp协议的方式进行热备方式,除了一个主服务器之外可以有多个从服务器,而且每一台从服务器的优先级等级各不相同。

3:工作的时候只有主服务器在工作其他服务器处于冗余状态,只要主服务器一旦发生宕机,从服务器,优先级最高的将接任主服务器的位置,以此类推。当主服务器故障排除之后,将重新夺得控制权

                            VIP 地址为192.168.1.254

 

 

 

 主调度器       从调度器      web1服务器      web2服务器      nfs服务器

 192.168.1.1     192.168.1.2     192.168.1.3       192.168.1.4       192.168.1.5

 

 

keepalived的安装与服务控制

在编译安装keepalived之前首先解决安装内核的开发包kernel-developenssl-develpopt-devel以及ipvsadm等支持库,当然ipvsadm是在后续的lvs群集中使用

1)安装支持软件

#yum  -y  install  kernel-devel  openssl-devel  popt-devel

#yum  -y install  ipvsadm

 

2)编译安装keepalived

#tar zxf  /mnt/keepalived-1.2.13.tar.gz  -C  /usr/src

# cd  /usr/src/keepalived-1.2.13/

[[email protected]]#./configure --prefix=/ --with-kernel-dir=/usr/src/kernels/2.6.32-431.el6.x86_64/    安装到/”目录和指定内核路径

#make && make install

 

3)使用keepalived服务

#chkconfig  --add   keepalived

#chkconfig   keepalived  on

 

2.主服务器的配置

#cd  /etc/keepalived

 

#cp  keepalived.conf  keepalived.conf.back

 

#vim  keepalived.conf

global_defs {

        router_id LVS_HA_R1  //主调度器的名称

}

vrrp_instance VI_1 {          //定义VRRP热备实例

    state MASTER           //主调度器的热备状态

    interface eth0  //承载VIP地址的物理接口

    virtual_router_id 1  //虚拟路由器的ID号,每个热备组保持一致

    priority 100  //优先级,数值越大优先级越高

    advert_int 1  //通告间隔秒数(心跳频率)

    authentication {  //认证信息,每个热备组保持一致

        auth_type PASS  //认证类型

        auth_pass 123456  //密码字串

    }

    virtual_ipaddress {

        192.168.1.254  //指定漂移地址(vip),可以多个

    }

}

 

3.启动keepalived服务

#service  keepalived  start

 

4.备用服务器的配置

1)路由器的名称和优先级不同,其他都一样

5.测试双击热备功能

1)查看ip地址,发现在主服务器上出现VIP

[root@centos1 keepalived]# ip add show dev eth0  或者  ip a

    inet 192.168.1.1/24 brd 192.168.1.255 scope global eth0

    inet 192.168.1.254/32 scope global eth0  //自动设置的VIP地址

 

从服务器的vip查看

wKiom1j6AVGTVFJHAAAW3w0dCew793.png-wh_50 

1ping测试。在客户机上ping  -t  192.168.1.254,然后禁用主服务器eth0网卡,发现中断了12个包即恢复正常,说明,其他服务器已经接替了VIP的地址

 

2)访问web,主服务器正常的情况下,看到是主服务器的网页,主服务器down掉后就是从服务器的内容,主服务器恢复后看到的还是主服务器的内容

 

3)查看/var/log/messages日志

从服务器查看将看到:VRRP_Instance(VI_1) Entering BACKUP STATE

 

主服务器查看将看到:VRRP_Instance(VI_1) Entering MASTER STATE

 

二、LVS+keepalived高可用群集

1.配置主调度器(lvs负载调度器这一部分可以省略了,完全由keepalived配置完成)

1)全局配置,热备配置(此部分略,保留之前的配置就可以了)

#vim  /etc/keepalived/keepalived.conf

2)web服务器池的配置

#vim  /etc/keepalived/keepalived.conf

virtual_server  192.168.1.254 80 {//虚拟服务器地址(vip)、端口

delay_loop  6//健康检查的间隔时间(秒)

lb_algo  rr//轮询(rr)调度算法

lb_kind  DR//直接路由(DR)群集工作模式

   ! persistence  60//连接保持时间(秒),若启用请去掉!号

protocol  TCP//应用服务采用的是tcp协议

real_server  192.168.1.3 80 {//第一个web节点的地址和端口

wright  1//节点的权重

TCP_CHECK  {//健康检查方式(手工添加)

connect_port  80 //检查的目标端口

connect_timeout 3  //连接超时(秒)

nb_get_retry   3   //重试次数

delay_before_retry   4  //重试间隔(秒)

}

}

   rel_server  192.168.1.4 80 {  //第二个web节点的地址和端口

........

}

 

3)重启keepalived服务

#service  keepalived  restart

wKiom1j6AdSynvHcAAAGSEdxsD4849.png-wh_50 

2.配置从调度器(同主服务器,只需将web服务器池的配置添到/etc/keepalived/keepalived.conf中即可

3.配置web节点服务器(这部分和lvsDR模式一样了)

(1)配置虚拟ip地址

#cd  /etc/sysconfig/network-scripts/

#cp  ifcfg-lo   ifcfg-lo:0

 

#vim  ifcfg-lo:0

DEVICE=lo:0

IPADDR=192.168.1.254

NETMASK=255.255.255.255

ONBOOT=yes

 

#ifup  lo:0

 

(2)为本机添加一条路由,将访问vip的数据波限制在本地

#route  add -host 192.168.2.254  dev  lo:0

 

(3)调整/proc响应参数

#vim  /etc/sysctl.conf


net.ipv4.conf.all.arp_ignore  =  1

net.ipv4.conf.all.arp_announce  =  2

net.ipv4.conf.default.arp_ignore  =  1

net.ipv4.conf.default.arp_announce = 2

net.ipv4.conf.lo.arp_ignore  =  1

net.ipv4.conf.lo.arp_announce  = 2

 

#sysctl  -p    重启 /etc/sysctl.conf 配置文件

另一台web服务器相同的配置

4.测试LVS+keepalived高可用群集+lvs

在客户机上访问web

http://192.168.1.254

①首先验证lvs,多次刷新页面认真观察

 

②再将主服务器的eth0网卡down掉,看看还能不能访问

 

查看是否可以访问的到节点服务器网页内容

 

5:nfs共享存储服务器的内容都挂载到web服务器中,保证服务对外的统一性

首先对nfsweb网页进行编辑

wKiom1j6AvuTyb-oAAAEmfykj_s185.png-wh_50 

然后在/etc/exports文件中设置共享资源,另外为root用户分配权限控制

 

之后重新启动nfs服务和rpcbind两个服务

 

通过客户端网页进行测试

 

说明调度器的HA群集是成功的

补充内容:启用邮件通知功能,以便及时了解各web节点的健康状况

1.修改主配置文件

global_defs {

        router_id LVS_HA_R1

        notification_email {

        root

        }

    notification_email_from  root root

    smtp_server 127.0.0.1

    smtp_connect_timeout 30

    router_id LVS_HA_R1

}

2.然后,重启keepalived服务

#service  keepalived  restart

3.查看邮件,downweb2

#tail  /var/spool/mail/root

[root@centos1 ~]# tail /var/spool/mail/root

Date: Sun, 16 Apr 2017 09:32:45 +0000

From: [email protected]

Subject: [LVS_HA_R1] Realserver [192.168.2.4]:80 - DOWN

X-Mailer: Keepalived

To: [email protected]

Message-Id: <[email protected]>

 

=> TCP CHECK failed on service <=