Keepalievd的安装配置跟切换模拟

2.1安装环境介绍

目前打算在192.168.6.243和192.168.6.244这两台机器上安装Keepalived(首先需要先安装好MySQL,配置好Master-Master主主复制),虚拟IP(VIP)是192.168.6.252,在一台机器上的MySQL出现故障后,VIP自动地漂移到另外一台机器上。

查看下192.168.6.243的环境:

OS: Linuxmds-Master 2.6.18-238.el5 #1 SMP Sun Dec 19 14:22:44 EST 2010 x86_64 x86_64x86_64 GNU/Linux

CPU:8*Intel(R)Xeon(R) CPU E5506 @ 2.13GHz

Mem:32G

Keepalived的相关信息:

Version:1.2.1(注意:不要使用最新版本1.2.2,编译有错误)

下载地址:

MySQL的相关信息

Version:5.1.47+XtraDB

MySQL_Install_Dictory: /usr/local/mysql

MySQL_Config_File:/home/mysql/mysq/my1.cnf

2.2安装过程

2.1解压keepalived-1.2.1.tar.gz

[mysql@mds-Master tool]$ cd/home/wangwei/tools

[mysql@mds-Master tool]$ tar xvzf keepalived-1.2.1.tar.gz

2.2编译

[wangwei@mds-Masterkeepalived-1.2.1]$./configure–prefix=/usr/local/keepalived–with-kernel-dir=/usr/src/kernels/2.6.18-238.el5-x86_64

编译出错

configure: error:

!!! OpenSSLis not properly installed on your system. !!!

!!! Can notinclude OpenSSL headers files. !!!

说明系统中没有安装OpenSSL

那就安装下OpenSS:L吧,出错

[mysql@mds-Master tool]# yum install openssl-devel

Loaded plugins: rhnplugin, security

This system is not registered with RHN

原因是linux没有在红帽网络上注册,所以无法下载上面的软件包,替代方案可以使用centos(使用中国科技大学的源 ),具体如何配置我就不写了。

配置完毕后,,使用yum安装openssl-devel:

[root@mds-Master tools]# yum install openssl-devel

Dependency Installed:

e2fsprogs-devel.x86_64 0:1.39-23.el5_5.1 keyutils-libs-devel.x86_64 0:1.2-1.el5 krb5-devel.x86_64 0:1.6.1-55.el5_6.2

libselinux-devel.x86_64 0:1.33.4-5.7.el5 libsepol-devel.x86_64 0:1.15.2-3.el5 zlib-devel.x86_64 0:1.2.3-3

Complete

再次编译

[root@mds-Master keepalived-1.2.1]#./configure –prefix=/usr/local/keepalived–with-kernel-dir=/usr/src/kernels/2.6.18-238.el5-x86_64

编译后的信息如下:

Keepalived configuration

————————

Keepalived version : 1.2.1

Compiler : gcc

Compiler flags : -g -O2 -DETHERTYPE_IPV6=0x86dd

Extra Lib : -lpopt -lssl -lcrypto

Use IPVS Framework : Yes

IPVS sync daemon support : Yes

Use VRRP Framework : Yes

Use Debug flags : No

Keepalived的安装路径为:/usr/local/keepalived,–with-kernel-dir表示指定Linux的内核位置,因为Keepalived是建立在LVS之上的(Linux2.4内核以后,已经完全内置了LVS的各个功能模块,无需给内核打任何补丁,可以直接使用LVS提供的各种功能,关于LVS是什么东东?可以百度之,也算是国人对Linux的一大贡献,LVS的作者是毕业国防科技大学的章文嵩博士,现就职于淘宝网)。

2.3执行make 操作

[root@mds-Master keepalived-1.2.1]# make

Make complete

make[1]: Leaving directory`/home/wangwei/tools/keepalived-1.2.1/genhash’

Make complete

2.4执行make install 操作

[root@mds-Masterkeepalived-1.2.1]# make install

make -C keepalived install

。。。。。。。。。。。。。。。。

install -m 644 ../doc/man/man1/genhash.1 /usr/local/keepalived/share/man/man1

make[1]: Leaving directory`/home/wangwei/tools/keepalived-1.2.1/genhash’

这样的话,安装就告一段落了,在192.168.6.243上也安装同样版本的Keepalived。

2.5查看安装路径的文件

[root@mds-Master ~]# ls -lh /usr/local/keepalived/

total 16K

drwxr-xr-x 2 root root 4.0K Jul 5 08:54 bin

drwxr-xr-x 5 root root 4.0K Jul 5 08:54 etc

drwxr-xr-x 2 root root 4.0K Jul 5 08:54 sbin

drwxr-xr-x 3 root root 4.0K Jul 5 08:54 share

2.6查看帮助

[root@mds-Master ~]#/usr/local/keepalived/sbin/keepalived–help

Keepalived v1.2.1 (07/04,2011)

Usage:

/usr/local/keepalived/sbin/keepalived

/usr/local/keepalived/sbin/keepalived -n

/usr/local/keepalived/sbin/keepalived -f keepalived.conf

/usr/local/keepalived/sbin/keepalived -d

/usr/local/keepalived/sbin/keepalived -h

/usr/local/keepalived/sbin/keepalived-v

。。。。。。。。

可见版本是1.2.1,显示也很正常

2.7创建配置文件

[root@mds-Master ~]# more/etc/keepalived/keepalived.conf

! Configuration File for keepalived

global_defs {

notification_email {

wei.wang@99bill.com

}

notification_email_from wei.wang@99bill.com

smtp_server 127.0.0.1

smtp_connect_timeout 30

router_id MySQL-HA

}

vrrp_instance VI_1 {

state Backup#两台配置此处均是Backup

interface eth0#VIP绑定在那块网卡上

smtp_alert#开启邮件报警

virtual_router_id 51

priority 100#优先级,另一台改为90

advert_int1 #发送广播信息的间隔时间,单位秒

preempt #抢占,只在优先级高的机器上设置即可,优先级低的机器不设置

authentication {

auth_typePASS

auth_pass1111

}

virtual_ipaddress {

192.168.6.252#VIP

}

}

virtual_server 192.168.6.252 4321 {

delay_loop 2 #每个2秒检查一次real_server状态

lb_algo wrr #LVS算法

lb_kind DR #LVS模式

persistence_timeout 60 #会话保持时间

protocol TCP

real_server 192.168.6.243 4321 {

weight 3

notify_down"/etc/keepalived/shutdown_keepalived.sh" #检测到服务down后执行的脚本

TCP_CHECK {

connect_timeout 10#连接超时时间

nb_get_retry 3#重连次数

delay_before_retry #重连间隔时间

connect_port 4321#健康检查端口

}

}

}

global_defs :全局定义,

notification_email:指定Keepalived在发生事件(如:自动切换),需要发送Email到的对象,可以为多个地址

notification_email_from:邮件发送者

smtp_server :发送邮件的邮件服务器,如果本地有开启sendmail的话,可以采用127.0.0.1

vrrp_instance VI_1 :VRRP实例配置,包含了主从状态、VIP、权重等

virtual_server: 虚拟主机,包含了虚拟主机的IP+Port,实际主机的IP+Port,以及检查实际主机的IP+Port异常后的操作等

lb_algo:LVS中的负载均衡调度算法

lb_kind:LVS中的负载均衡转发规则,一般包括DR,NAT,TUN3种,DR是效率最好的一种规则,直接路由转发

[root@mds-Master ~]# /etc/init.d/sendmail status

sendmail (pid31476) is running…

You have new mail in /var/spool/mail/root

[mysql@mds-Master tool]$ more/etc/keepalived/shutdown_keepalived.sh

#!/bin/sh

pkill keepalived

就是检查到MySQL宕机后,自动杀死Keepalived进程,那么另外一台机器上的Keepalived进程在接受广播信息超时后,自动接管VIP,进入到Master状态

上图是Keepalived自动发送的邮件,这个很好,可对Keepalived的状态变更自动监控

2.8启动Keepalived

[root@mds-Master ~]#/usr/local/keepalived/sbin/keepalived -D

默认情况下,Keepalived的配置文件是/etc/keepalived/keepalived.conf

查看日志文件,Keepalived默认的日志文件是/var/log/messages

[root@mds-Master ~]# tail -10 /var/log/messages

Jul 11 17:26:10 mds-Master Keepalived_vrrp:Registering Kernel netlink reflector

Jul 11 17:26:10 mds-Master Keepalived_vrrp:Registering Kernel netlink command channel

Jul 11 17:26:10 mds-Master Keepalived_vrrp:Registering gratutious ARP shared channel

Jul 11 17:26:10 mds-Master Keepalived_vrrp: Openingfile ‘/etc/keepalived/keepalived.conf’.

Jul 11 17:26:10 mds-Master Keepalived_vrrp:Configuration is using : 63222 Bytes

Jul 11 17:26:10 mds-Master Keepalived_vrrp: UsingLinkWatch kernel netlink reflector…

Jul 11 17:26:10 mds-Master Keepalived_vrrp:VRRP_Instance(VI_1) Entering Backup STATE

Jul 11 17:26:10 mds-Master Keepalived_vrrp: VRRPsockpool: [ifindex(2), proto(112), fd(11,12)]

Jul 11 17:26:11 mds-Master Keepalived_vrrp:VRRP_Instance(VI_1) forcing a new Master election

Jul 11 17:26:12 mds-Master Keepalived_vrrp:VRRP_Instance(VI_1) Transition to Master STATE

Jul 11 17:26:13 mds-Master Keepalived_vrrp:VRRP_Instance(VI_1) Entering Master STATE

Jul 11 17:26:13 mds-Master Keepalived_vrrp:VRRP_Instance(VI_1) setting protocol VIPs.

Jul 11 17:26:13 mds-Master Keepalived_vrrp:VRRP_Instance(VI_1) Sending gratuitous ARPs on eth0 for 192.168.6.252

至此,Keepalived的安装配置告一段落了。

2.9 Keepalived在RHEL 6.2中的特别之处

Keepalived在RHEL 6.2中,不会自动的加载ipvs模块,可以通过下面命令来确认是否已经加载:

lsmod|grep ip_vs

让我们从自身的禁锢中放心地飞出去,重新审视自己,

Keepalievd的安装配置跟切换模拟

相关文章:

你感兴趣的文章:

标签云: