linux下keepalived 安装配置
keepalived是一个类似于layer3, 4 & 7交换机制的软件,也就是我们平时说的第3层、第4层和第7层交换。Keepalived的作用是检测web服务器的状态,如果有一台web服务器死机,或工作出现故障,
keepalived将检测到,并将有故障的web服务器从系统中剔除,当web服务器工作正常后keepalived自动将web服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的web服务器。
下面讲解如何在linux安装keepalived并搭建高可用的web服务器。
首先是keepalived 的安装。keepalived是需要即时编译的,这里使用的是keepalived-1.2.2.tar.gz,这里假设把压缩文件上传到了/usr下。
首先登录到root用户下,并定位到/usr下。
#编译安装keepalived
unzip keepalived-1.2.2.tar.gz #或者使用“tar zxvf keepalived-1.2.2.tar.gz”命令来解压
cd keepalived-1.2.2
./configure --prefix=/usr/local/keepalived
make && make install #编译keepalived源码
#设定keepalived的配置文件并将keepalived注册为服务然后设定为开机启动(开机启动前面有讲)
mkdir /etc/keepalived
cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf
cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
cp /usr/local/keepalived/sbin/keepalived /usr/sbin/
chkconfig --level 2345 keepalived on #注册开机启动
说明一下,这里keepalived的本身安装在了/usr/local下,keepalived的配置文件keepalived.conf放在了/etc/keepalived下。
至此keepalived已经安装完成并添加到了开机启动下,先不要着急启动keepalived,我们还要配置一下它的配置文件。
先说一下我们要达到的要求:
1.当其中一台机器或者keepalived挂掉之后,虚拟ip自动飘移到另外一台机器上,从而实现高可用。当作为主的机器恢复后,虚拟ip会自动漂移回来。
2.当keepalived切换时,需要执行指定的脚本,在脚本中我们可以执行一些其他操作(例如启动或停止数据库)。
这里首先介绍一下虚拟ip(VIP)。
VIP是一个不与特定计算机或一个计算机中的网络接口卡(NIC)相连的IP地址。数据包被发送到这个VIP地址,但是所有的数据还是进过真实的网络接口。
它IP技术的一种,增强网络管理,发挥出VLAN的优势,改变了网络结构,合理分配网络资源,均衡网络负载,有效降低网上广播信息,方便对用户的分组管理。
用白话说VIP就是一个IP地址,但并不是分配给特定网卡的。这样的话,多个网卡之间可以轮流与这个VIP进行绑定,从而在不需要改变web服务地址的情况下,实现程序的高可用。
VIP简单介绍完了,下面讲解如何配置keepalived的,从而实现高可用。
这里我用一句话来概括keepalived实现高可用的原理:两台机器之间(也可以多台)之间轮流提供VIP,从而让web服务不间断。
当一台服务器挂掉之后,VIP进行漂移,而这个过程是自动由keepalived帮我们完成的,我们要做的就是维护出问题的web服务器。
这里假设有两台机器A和B,他们的ip地址分别为192.168.1.8和192.168.1.9,而VIP我们设定为192.168.1.10。
先来配置机器A,我的目的是尽可能直白简单的介绍配置,从而让大家更容易理解。。。。
先vi /etc/keepalived/keepalived.conf这个文件
! Configuration File for keepalived
global_defs {
router_id LVS_DEVEL
}
vrrp_instance VI_1 { #一个keepalived实例
state MASTER #表明这是主机
interface eth0 #绑定的网卡
virtual_router_id 51 #两台机器要一致,表明他们是同一组
mcast_src_ip 192.168.1.8 #发送多播包的地址,就是本机的ip地址(如果本机有多个ip地址的话,这个很有用)
priority 200 #本机的竞争优先级,一般主的比从的高
advert_int 1
authentication {
auth_type PASS #认证类型
auth_pass 1111 #认证密码
}
virtual_ipaddress {
192.168.1.10 #提供的虚拟ip地址
}
notify_master "/1.sh" #在keepalived切换到本机时会执行此脚本
notify_backup "/2.sh" #在keepalived从本机切换走时会执行此脚本
notify_fault "/2.sh" #在keepalived停止时会执行此脚本
#注意下notify_backup和notify_fault的区别,比如从机,当VIP从从机切换到主机时,从机上的notify_backup脚本会执行;当从机的keepalived服务停止时(不仅仅是VIP漂移走了,而是keepalived的进程停止了),notify_fault的脚本会执行。
}
机器B
! Configuration File for keepalived
global_defs {
router_id LVS_DEVEL
}
vrrp_instance VI_1 {
state BACKUP #表明是从机
interface eth0
virtual_router_id 51
mcast_src_ip 192.168.1.9
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.1.10
}
}
ok,配置完成。在两台机器的root用户下分别执行:
service keepalived start
然后ping一下VIP:
ping 192.168.1.10
发现有返回。
然后我们关掉A机器或者停止A机器的keepalived(service keepalived stop),然后ping一下VIP,发现有返回,这是VIP已经票已到B机器了。
最后我们恢复A机器上的keepalived服务,然后ping一下VIP,也有返回,其实这时VIP已经漂移到机器A了。
大家可以在两台机器上安装一个web服务器或者直接使用linux的apache服务器,然后在浏览器里测试一下。
至于两个启动/停止脚本,大家有兴趣的可以自己测试下。
linux下keepalived 安装配置的更多相关文章
- Linux下PHP安装配置MongoDB数据库连接扩展
Web服务器: IP地址:192.168.21.127 PHP安装路径:/usr/local/php 实现目的: 安装PHP的MongoDB数据库扩展,通过PHP程序连接MongoDB数据库 具体操作 ...
- VMware Linux 下 Nginx 安装配置 - nginx.conf 配置 [负载两个 Tomcat] (三)
首先启动Nginx 1. 相关浏览 两个 Tomcat 配置: VMware Linux 下 Nginx 安装配置 - Tomcat 配置 (二) Nginx 安装配置启动: VMware Linu ...
- VMware Linux 下 Nginx 安装配置 - Tomcat 配置 (二)
准备工作 相关浏览: VMware Linux 下 Nginx 安装配置 (一) 1. 选在 /usr/local/ 下创建 softs 文件夹,通过 ftp 命令 把 apache-tomcat-7 ...
- Linux下git安装配置
一.Linux下git安装配置 2013-07-28 20:32:10| 分类: 默认分类 | 标签:linux git server |举报|字号 订阅 http://abomby ...
- JDK1.6在LINUX下的安装配置[转]
JDK1.6在LINUX下的安装是如何进行的呢,让我们开始我们的演示: Ubuntu Linux下jdk的安装与配置 1.JDK1.6安装准备 从sun公司网站www.sun.com下载linux版本 ...
- Linux下Keepalived 安装与配置
Keepalived 安装与配置 一.环境说明 1.操作系统内核版本:2.6.9-78.ELsmp 2.Keepalived软件版本:keepalived-1.1.20.tar.gz 二.环境配置 1 ...
- (实用)Linux下Eclipse安装配置PyDev
记录备忘. PyDev是Eclipse下支持Python开发的IDE插件,本文介绍安装和配置PyDev插件的过程. 一.安装PyDev插件两种安装方法: 1.在eclipse的Help->Ins ...
- Linux下Tomcat安装配置
买了台阿里云服务器,因为配置比较低,所以用Linux系统,这里记录一下我在Linux系统中Tomcat的安装配置. 前提JDK已经安装好. 安装 首先在/usr/local/下建立一个tomcat的文 ...
- Linux下,安装配置Weblogic
环境说明 系统 -- Linux RHEL5 32bit 环境 -- 局域网中在192.168.0.140(windows)通过xshell连接服务器 软件 -- 1.JDK:1.5.0_15 2. ...
随机推荐
- Vue 响应式总结
有些时候,不得不想添加.修改数组和对象的值,但是直接添加.修改后getter.setter又失去了. 由于 JavaScript 的限制, Vue 不能检测以下变动的数组: 当你利用索引直接设置一个项 ...
- Emmet插件详解
http://www.ithao123.cn/content-10512551.html (webstorm的css编写插件)Emmet:HTML/CSS代码快速编写神器 [摘要:Emmet的前身 ...
- Angular - - ngApp、ngBind、ngBindHtml、ngNonBindable
对于ng-系列的指令,每篇文章写2-5个吧,不然显得文章好短.... ngApp 使用这个指令自动启动一个AngularJS应用.ngApp指令指定了应用程序的根节点,通常会将ngApp放置在网页的根 ...
- KERNEL32相关函数
CALL DWord Ptr [<&KERNEL32.WriteFile>] kernel32.WriteFile 将数据写入一个文件,也可将这个函数应用于对通信设备.管道.套接字 ...
- MariaDB与MySQL在一台服务器同时运行
[root@HE3 ~]#groupadd mariadb -g 513 [root@HE3 ~]#useradd-u 513 -gmariadb -s /sbin/nologin -d /home/ ...
- CentOS7 部署 tomcat
1. 准备tomcat账号 本着最小权限原则,新建账号来安装tomcat. 命令:useradd , passwd 2. 配置防火墙 2.1. tomcat.xml 在/etc/firewalld/s ...
- jquery $.getJSON()跨域请求
以前总是没搞明白是怎么回事,现在是迫不得已,就仔细看了看说明文档,终于测试成功了,记下 1,同一域名下和其他的请求可以是一样的 js: 代码如下: var url="http://loc ...
- #图# #最大生成树# #kruskal# ----- OpenJudge 799:Heavy Transportation
OpenJudge 799:Heavy Transportation 总时间限制: 3000ms 内存限制: 65536kB 描述BackgroundHugo Heavy is happy. Afte ...
- Spring aop:decare-parent 为类增加新的方法
Spring aop:decare-parent 为类增加新的方法: 使用XML配置的方式: XML: <?xml version="1.0" encoding=" ...
- 深入了解Android中的AsyncTask
AsyncTask,即异步任务,是Android给我们提供的一个处理异步任务的类.通过此类,可以实现UI线程和后台线程进行通讯,后台线程执行异步任务,并把结果返回给UI线程. 我们知道,Androi ...