KeepAlived实现高可用(suse)
来源:互联网 发布:网络摄像机哪个好 编辑:程序博客网 时间:2024/06/06 04:19
一、简介
Keepalived的作用是检测服务器的状态,如果有一台web服务器宕机,或工作出现故障,Keepalived将检测到,并将有故障的服务器从系统中剔除,同时使用其他服务器代替该服务器的工作,当服务器工作正常后Keepalived自动将服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的服务器
二、安装前的环境配置
本文档介绍的是keepAlived源码编译安装,需要为编译安装配置一些必须的环境,gcc是编译最基础的需要的环境,另外,下载ipvsadm-1.29-lp150.2.1.x86_64.rpm,kernel-devel-4.4.85-22.1.noarch.rpm,libopenssl-devel-1.0.2j-13.1.x86_64.rpm,zlib-devel-1.2.8-10.1.x86_64.rpm,然后使用rpm-ivh xxxx.xxx.rpm –nodeps
三、机器情况
IP地址
Hostname
服务
操作系统
172.20.43.21
HD-BATCH-NN-01
Ldap/mysql
Suse12
172.20.43.35
HD-BATCH-NN-02
Ldap/mysql
Suse12
虚拟IP:172.20.43.143/144
四、安装
1.下载软件:去官方网站下载keepAlived稳定版本,地址:http://www.keepalived.org/download.html,本文档使用的是目前最新版本:Keepalived for Linux - Version 1.3.9 - October 21, 2017。
2.解压文件:tar -zxvf keepalived-1.3.9.tar.gz
3.进入解压后的目录:cd keepalived-1.3.9
4.编译安装:# ./configure --prefix=/usr/local/keepalived
# make
# make install
说明:如果编译安装过程中报错,应该是缺少相对应的包,下载对应的rpm包安装好即可。
五、配置
1. 注册为系统服务:
# cp /usr/local/keepalived/sbin/keepalived /usr/sbin/
# cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/# touch /etc/init.d/keepalived# chmod +x /etc/init.d/keepalived
# vim /etc/init.d/keepalived
/etc/init.d/keepalived 的文件内容:
#!/bin/sh
#
# Startup script for the Keepalived daemon
#
# processname: keepalived
# pidfile: /var/run/keepalived.pid
# config: /etc/keepalived/keepalived.conf
# chkconfig: - 21 79
# description: Start and stop Keepalived
# Source function library
. /etc/rc.d/init.d/functions
# Source configuration file (we set KEEPALIVED_OPTIONS there)
. /etc/sysconfig/keepalived
RETVAL=0
prog="keepalived"
start() {
echo -n $"Starting $prog: "
daemon keepalived ${KEEPALIVED_OPTIONS}
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/$prog
}
stop() {
echo -n $"Stopping $prog: "
killproc keepalived
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$prog
}
reload() {
echo -n $"Reloading $prog: "
killproc keepalived -1
RETVAL=$?
echo
}
# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
reload)
reload
;;
restart)
stop
start
;;
condrestart)
if [ -f /var/lock/subsys/$prog ]; then
stop
start
fi
;;
status)
status keepalived
RETVAL=$?
;;
*)
echo "Usage: $0 {start|stop|reload|restart|condrestart|status}"
RETVAL=1
esac
exit $RETVAL
2. 编辑keepalived.conf配置文件
# mkdir /etc/keepalived/
# cp /usr/local/keepalived/etc/keepalived/keepalived.conf/etc/keepalived/
# vim /etc/keepalived/keepalived.conf
说明:keepalived.conf内容
global_defs {
router_id LVS_A #虚拟路由名称
}
vrrp_script chkHealth { #脚本,可以用作安全检查或者脑裂处理等,可有可无
……
……
}
vrrp_instance VI_1 { #实例1,可配置多个实例,此处1个即可。
state MASTER #A服务主机作为MASTER(主),另外的作为BACKUP(备)
interface bond0 #此处要注意,redhat,centos为eth0,但是suse为bond0
virtual_router_id 51 #为当前实例命名ID
priority 150 #MASTER的值应该大于BACKUP
advert_int 1
authentication { #默认配置,不用修改
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
172.20.54.143 #给定的虚拟IP,请勿与同网段的主机发生IP冲突
}
track_script { #需要执行的脚本或这函数(非必需)
chkHealth
}
}
3. 启动KeepAlived服务以及重启、停止相关命令:
servicekeepalived start
servicekeepalived stop
service keepalived restart
六、测试
1. 查看进程是否已经正常启动:
# ps-ef|grep keepalived |grep -v grep
root 139077 1 0 16:38? 00:00:00 /usr/local/keepalived/sbin/keepalived-D
root 139078139077 0 16:38 ? 00:00:00 /usr/local/keepalived/sbin/keepalived-D
root 139079139077 0 16:38 ? 00:00:00 /usr/local/keepalived/sbin/keepalived-D
2. 查看虚拟 IP 持有者
#ip add | grep “虚拟ip”
持有者返回的信息: inet172.20.43.143/32 scope global bond0
未持有者不返回信息
七、实现LDAP高可用。
Ldap服务器的主机不用做任何修改,需要修改客户端的配置,把客户端设置的ip地址把172.20.43.21改为虚拟IP即可。(需要实现LDAP主从复制:请参考后期:《广西五象O域批处理集群平台Ldap主从复制方案》)
八、实现MYSQL高可用
Mysql服务器不用做任何的修改,连接mysql的时候把IP地址172.20.43.21改为虚拟ip地址即可。(需要实现MYSQL主从复制,请参考:《广西五象O域批处理集群平台Mysql主从集群升级文档(suse12).docx》)
九、阻止“脑裂“
后期需要写脚本检查两边主机的虚拟IP情况,确保虚拟IP只同一时间存在一台主机智商,不允许存在两台主机之上(俗称“脑裂“)。
十、后续
如果不正确或者不明白之处,请提出和修正。
- KeepAlived实现高可用(suse)
- keepalived实现高可用
- redis + keepalived 实现高可用
- nginx+keepalived实现高可用
- haproxy+keepalived实现高可用
- Keepalived+Nginx实现高可用
- nginx+keepalived实现高可用
- keepalived实现服务高可用
- LVS + Keepalived 实现高可用负载均衡
- LVS+Keepalived实现高可用集群
- LVS+Keepalived实现高可用集群
- 采用Keepalived实现Redis双机高可用
- LVS+Keepalived实现高可用集群
- 采用Keepalived实现Redis双机高可用
- LVS+Keepalived实现高可用集群
- LVS+Keepalived实现高可用集群
- Keepalived+Tengine实现高可用集群
- nginx+keepalived实现高可用负载均衡
- 浅析LinkedList
- 安卓调用系统相机拍照的几个步骤,同时解决版本兼容问题
- maven添加远程仓库以及导出依赖的jar包以及常用操作收集
- IT风投:狂袭之风
- sed之妙用
- KeepAlived实现高可用(suse)
- 浅析HashMap
- 浅析ArrayList
- SSM项目从零开始到入门009-使用mybatis提供的动态代理
- Java多线程原理及使用探讨
- webstrom识别 React语法
- 平衡二叉树(AVL树)
- 文档处理Spire 热门控件介绍
- TCP缓冲区