作者:苏阳 (Jade Show)
Keepalived是一个高度模块化设计的软件,源代码的结构似乎也很容易看出这一点,里面只有check core  libipfwc libipvs-2.4 libipvs-2.6 vrrp 这么一些目录.其结构可以用下图表示:
wps_clip_p_w_picpath-165
Core keepalived的核心程序,比如全局配置的解析,进程的启动等等;
Vrrp keepalived的vrrpd子进程以及相关的代码。
Check keepalived的healthcheck子进程的目录,包括了所有的健康检测方式以及对应配置的解析,lvs的配置解析也在这个里面。
Libipfwc iptables库,主要用来配置LVS中的firewall-mak。
Libipvs* 也是试用LVS需要使用到的。
  • 多进程模式
Keepalived采用多进程的设计模式,每个进程负责不同的功能,我们在使用lvs的机器上通常可以看到如下进程:
111Keepalived< 父进程:内存管理,监控子进程
112\_Keepalived<VRRPf子进程
113\_Keepalived<healthchecker子进程
可以通过某些命令行参数来控制u开启某些进程,比如不运行LVS的机器上,只开启vrrp就可以的话,可以试用-P参数,如果只运行了healthcheck子进程可以试用-C参数来实现。
配置文件
对配置文件的编译和解析是通过一个叫做控制面的东西来完成的。Keepalived的配置文件比较另类,并非一次解析所有的配置,只在用到某个模块的时候才解析相应的配置。
  • Keepalived的安装
安装keepalived就像安装其他开源软件一样简单。Configure,make,make install就可以搞定,尽管如此,还是来说一下这个操作过程:
[root@ha1 ~]# ls
anaconda-ks.cfg  install.log  install.log.syslog  keepalived-1.1.15.tar.gz
[root@ha1 ~]# tar -xzvf keepalived-1.1.15.tar.gz
keepalived-1.1.15/
    。。。。
。。。。
[root@ha1 ~]# cd keepalived-1.1.15
[root@ha1 keepalived-1.1.15]# ./configure --prefix=/ --mandir=/usr/local/share/man/ --with-kernel-dir=/usr/src/kernels/2.6.18-164.el5-i686/           // --prefix 将编译的输出文件放到根目录,;--mandir 指定man文档存放的位置 ; --with-kernel-dir 引用内核文件的库以及头文件//
checking for gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
config.status: creating keepalived/libipvs-2.6/Makefile
Keepalived configuration
------------------------
Keepalived version       : 1.1.15
Compiler                 : gcc
Compiler flags           : -g -O2
Extra Lib                : -lpopt -lssl -lcrypto
Use IPVS Framework       : Yes
IPVS sync daemon support : Yes
Use VRRP Framework       : Yes
Use LinkWatch            : No
Use Debug flags          : No
[root@ha1 keepalived-1.1.15]# make ;make install
make -C lib || exit 1;
make[1]: Entering directory `/root/keepalived-1.1.15/lib
。install -d /usr/local/share/man//man1
install -m 644 ../doc/man/man1/genhash.1 /usr/local/share/man//man1
make[1]: Leaving directory `/root/keepalived-1.1.15/genhash'
[root@ha1 keepalived-1.1.15]#

在另外一台机器上重复以上操作,就可以完成主机和备机的安装工作。到这里,安装就已经结束了,下面要做的就是修改配置文件,已经调试了。
  • Keepalived配置详解
Keepalived配置文件可以分为全剧配置区域,VRRP配置区域,以及LVS配置区域详情如下
! Configuration File for keepalived
global_defs {
   notification_email {
//当IP发生迁移等事件的时候发送邮件到指定邮箱
   }
   notification_email_from server.keepalived.com//邮件发送方
   smtp_server 127.0.0.1 //邮件外发服务器地址
   smtp_connect_timeout 30//邮件超时时间为30秒
   router_id LVS_DEVEL  //router 一个实例的标识
}               //全局配置文件结束
vrrp_instance VI_1 {  //一个vrrp实例
    State BACKUP //设置服务器模式,注要大写
    interface eth0     //实例网卡,也就是提供服务的网卡
    virtual_router_id 51 //幸运51哈
    priority 100        //设定权值为100 主备之间的权值插最好大于50  权值范围为0~255
    advert_int 1        //检查时间为1秒
    authentication {        //认证方式为密码认证
        auth_type PASS
        auth_pass 1111
}
    virtual_ipaddress {
    }
    nopreempt      //当主机上线之后,vip不回滚,节省资源
}
重启服务,加入chkconfig管理,就差不多了!
ps:关闭一些不相关的服务,有些服务会和keepalived冲突!
ps:附上keepalived的中文权威指南!见附件!
(菜鸟写博,老鸟飞过。欢迎拍砖,深入交流!)

多吃东西多喝水, 

少玩游戏少睡觉! -------珏石头