首页 > 编程知识 正文

web服务器安装与配置步骤,keepalived安装与配置

时间:2023-05-05 08:53:47 阅读:129379 作者:2583

0、Keepalived介绍Keepalived是基于VRRP协议实现的服务高可用性方案,可用于避免IP单点故障。 类似的工具包括健康beat、酷睿同步和打包器。 但是,它通常不单独使用,而是与其他负载平衡技术(如lvs、haproxy和nginx )配合使用以实现群集的高可用性。

关键权限的作用是检测服务器的状态。 如果一台web服务器冻结或运行故障,Keepalived会检测到它,从系统中删除故障服务器,同时用其他服务器替换该服务器的运行。 如果服务器正常运行,Keepalived会自动将服务器添加到服务器群中。 所有这些工作都是自动完成的,无需手动干扰。 只需要手动修复出现故障的服务器。

体检与失败的切换是关键的两个主要功能。 运行状况检查是指采用tcp的3次握手、icmp请求、http请求、udp echo请求等方式,保证负载平衡器后的实际服务(通常是承载实际业务的服务)的一种方式故障切换交换机主要应用于配置主模式的负载平衡器,并利用VRRP (可参见虚拟路由冗馀协议,RFC文档http://tools.IETF.org/html/RFC 5798 ) 如果主负载平衡器出现问题,则备份负载平衡器将提供相应的业务,从而最大限度地减少流量损失

1、VRRP协议VRRP全名virtualrouterredundancyprotocol,虚拟路由冗馀协议。 它被认为是实现路由器高可用性的容错协议。 也就是说,提供n个相同功能的路由器构成了一个路由器组。 这个组包含主机和多个backup,但从外部看起来像一台。 配置虚拟路由器,并具有一个虚拟IP ) VIP (路由器所在局域网中其他计算机的默认路由)。 master发送多播消息,如果backup在超时时间内无法接收vrrp包,则认为master已停机。 在这种情况下,必须根据vrrp的优先级选择backup作为主节点,以确保路由器的高可用性。

在VRRP协议实现中,虚拟路由器使用00-00-5E-00-01-XX作为虚拟MAC地址。 XX是唯一的虚拟路由器(vrid ),该地址在同一时间仅由一个物理路由器占用。 在虚拟路由器内的物理路由器组中定时发送通过多播IP地址224.0.0.18的通知消息。 每个路由器都有1-255之间的优先级级别,最高级别的“高优先级”(highest priority )将成为“主”(master )路由器。 通过降低主路由器的优先级,可以抢占(预占)处于backup状态的路由器的主路由器状态,两个backup的优先级相同的IP地址较大的路由器为主路由器,以继承虚拟IP

2、与heartbeat/corosync等比较Heartbeat、Corosync和Keepalived这三个群集组件中,首先要说明的是Heartbeat和Corosync应该选择哪一个Keepalived和Heartbeat属于同一类型: Keepalived使用的vrrp协议方式、虚拟路由冗馀协议(virtualrouterredundancyprotocol,简称vrrp ); Heartbeat或Corosync是基于主机或网络服务的高可用性方法。 简而言之,Keepalived的目的是模拟路由器的高可用性,而Heartbeat或Corosync的目的是实现服务的高可用性。

因此,常见的关键点是前端高可用性,而常见的前端高可用性组合是我们常见的LVS关键点、nginx关键点、ha代理关键点Heartbeat或Corosync提供服务的高可用性,而Heartbeat(Corosync ) Pacemaker NFS Httpd通常提供Web服务器的高可用性。 heartbeatV3 ) corosync ) Pacemaker NFS MySQL概括地说,Keepalived通常用于轻量级、高可用性、前端高可用性、不需要共享存储以及两个节点的高可用性。 Heartbeat (或酷睿同步)通常用于服务的高可用性,需要共享存储,通常用于多节点的高可用性。 这个问题我们解释得很清楚。

博友会还询问了heartbeat和corosync应该选择哪一个。 我想说我们一般使用酷睿同步。 这是因为酷睿同步的结构比健康beat更好。 甚至从heartbeat中分离出的pacemaker也表示,在今后的开发中酷睿同步更好。

3、Keepalived + nginxkeepalived可以被认为是VR

RP协议在Linux上的实现,主要有三个模块,分别是core、check和vrrp。core模块为keepalived的核心,负责主进程的启动、维护以及全局配置文件的加载和解析。check负责健康检查,包括常见的各种检查方式。vrrp模块是来实现VRRP协议的。

一、安装 1、首先安装依赖包 [root@bogon /]# yum install -y libnl*[root@bogon /]# yum install -y libnfnetlink-devel zlib zlib-devel gcc gcc-c++ openssl openssl-devel openssh 2、下载并解压Keepalived [root@bogon src]# pwd/usr/local/src[root@bogon src]# wget http://www.keepalived.org/software/keepalived-1.3.5.tar.gz[root@bogon src]# tar xvf keepalived-1.3.5.tar.gz 3、编译安装 [root@bogon src]# cd keepalived-1.3.5[root@bogon keepalived-1.3.5]# ./configure --prefix=/usr/local/keepalived[root@bogon keepalived-1.3.5]# make[root@bogon keepalived-1.3.5]# make install 二、配置

keepalived安装完成后默认不会注册为系统服务,所以需要手工添加系统服务脚本。在/etc/init.d目录下新建keepalived文件,并更改权限其即可。

1、去 keepalived 源码目录下拷贝启动脚本到/etc/init.d/下 [root@bogon keepalived-1.3.5]# pwd/usr/local/src/keepalived-1.3.5[root@bogon keepalived-1.3.5]# cp /usr/local/src/keepalived-1.3.5/keepalived/etc/init.d/keepalived /etc/init.d/keepalived[root@bogon keepalived-1.3.5]# ll /etc/init.d/ | grep keepalived-rwxr-xr-x 1 root root 1308 8月 2 14:15 keepalived 2、修改/etc/init.d/keepalived启动脚本

需要修改的数据有以下几项:

# config: /etc/keepalived/keepalived.conf 文件的位置;# Source configuration file (we set KEEPALIVED_OPTIONS there) 文件的位置。. /etc/sysconfig/keepalived

修改为实际安装的文件路径,我的安装路径如下:

# config: /usr/local/keepalived/etc/keepalived/keepalived.conf. /usr/local/keepalived/etc/sysconfig/keepalived

另外添加如下变量,并修改文件中相应的部分:

keepalived=/usr/local/keepalived/s深情的绿草/keepalivedkeepalived_config=/usr/local/keepalived/etc/keepalived/keepalived.confkeepalived_pid=/usr/local/keepalived/run/keepalived.pid [root@bogon keepalived-1.3.5]# vim /etc/init.d/keepalived#!/深情的绿草/sh## Startup script for the Keepalived daemon## processname: keepalived# pidfile: /usr/local/keepalived/run/keepalived.pid# config: /usr/local/keepalived/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). /usr/local/keepalived/etc/sysconfig/keepalivedkeepalived=/usr/local/keepalived/s深情的绿草/keepalivedkeepalived_config=/usr/local/keepalived/etc/keepalived/keepalived.confkeepalived_pid=/usr/local/keepalived/run/keepalived.pidRETVAL=0prog="keepalived"start() { echo -n $"Starting $prog: " daemon $keepalived -f ${keepalived_config} ${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=1esacexit $RETVAL 2、修改其权限并开机启动 修改权限:chmod 755 /etc/init.d/keepalived加为系统服务:chkconfig –add keepalived开机启动:chkconfig keepalived on查看开机启动的服务:chkconfig –list 3、备注:keepalived服务控制 systemctl enable keepalived.service #设置开机自动启动systemctl disable keepalived.service #取消开机自动启动systemctl start keepalived.service #启动服务systemctl restart keepalived.service #重启服务systemctl stop keepalived.service #停止服务systemctl status keepalived.service #查看服务状态 附:另一种添加为系统服务的方式 1、复制相应文件到相应目录下 # keepalived启动脚本变量引用文件,默认文件路径是/etc/sysconfig/,也可以不做软链接,直接修改启动脚本中文件路径即可(安装目录下)[root@bogon /]# cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/keepalived # 将keepalived主程序加入到环境变量(安装目录下)[root@bogon /]# cp /usr/local/keepalived/s深情的绿草/keepalived /usr/s深情的绿草/keepalived# keepalived启动脚本(源码目录下),放到/etc/init.d/目录下就可以使用service命令便捷调用[root@bogon /]# cp /usr/local/src/keepalived-1.3.5/keepalived/etc/init.d/keepalived /etc/init.d/keepalived# 将配置文件放到默认路径下[root@bogon /]# mkdir /etc/keepalived[root@bogon /]# cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf 2、设置开机启动 # 设置开机启动[root@bogon /]# chkconfig keepalived on[root@bogon /]# service keepalived start|stop|restart 附、安装过程中的问题 1、修改启动脚本 /etc/init.d/keepalived 后,未生效

对于此问题一般的解决方法是执行如下命令,重新加载脚本。

[root@bogon s深情的绿草]# systemctl daemon-reload

以上方法大多时候会生效,但也有例外。此时,可以试试如下方法:

删除路径 /usr/lib/systemd/system/ 下相应的启动脚本

[root@bogon /]# chkconfig --del keepalived[root@bogon /]# cd /usr/lib/systemd/system/[root@bogon system]# ls | grep keepalivedkeepalived.service[root@bogon system]# rm keepalived.servicerm:是否删除普通文件 "keepalived.service"?y

然后重新注册为系统服务:

[root@bogon system]# chkconfig --add keepalived

重新注册后,修改后的配置文件就会生效。

2、a configured resource limit was exceeded.

执行 systemctl start keepalived.service 后出现如下错误:

[root@bogon s深情的绿草]# systemctl start keepalived.serviceJob for keepalived.service failed because a configured resource limit was exceeded. See "systemctl status keepalived.service" and "journalctl -xe" for details.

这个问题在网上找了半天也没找可以解决的方法,但是把 问题1 解决之后 问题2 就没再出现

3、安装时出现如下问题

缺少依赖包,安装一下就好:

[root@bogon /]# yum install -y libnfnetlink-devel

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。