Keepalived双机热备:
介绍:
Keeplived软件起初是专门为LVS负载均衡软件设计的,用来管理并监控LVS群集中各节点的状态,后来又加入了可以实施高可用的VRRP功能。因此keepalived除了能够管理LVS软件外,还可以作为其他服务(例如:Nginx Haproxy MySQL等)的高可用解决方案软件。
Keepalived软件主要是通过VRRP协议实现高可用功能的,VRRP(Virtual Router Redundancy Protocol虚拟路由器沉余协议)的缩写,VRRP出现的目的就是为了解决静态路由单点故障问题的,它能够保证当个别节点瘫痪时,任然保持整个网络可以不断运行。
所以keepalived一方面具有配置管理LVS的功能,同时还具有对LVS下面节点进行健康检查的功能,另一方面也可以实现系统网络服务的高可用功能。
Keepalived服务的三个重要功能:
管理LVS负载均衡软件。
实现LVS群集节点的健康检查
作为系统网络的高可用性(failover)
Keepalived高可用故障切换转移原理:
Keepalived高可用服务之间的故障切换转移是通过VRRP来实现的。
在keepalived服务正常工作时,主master节点会不断地向备份节点发送(多播方式)
心跳消息,用以告诉backup节点自己还活着;当主master节点发生故障时,就无法发送心跳消息,备份节点也因此无法继续监测来自自主master节点的心跳了,于是调用自身的接管程序,接管主master节点的IP资源及服务。而当主master节点恢复时,backup节点又会释放主节点故障自身管理的IP资源及服务,恢复到原来的备用角色。
Keepalived工作原理
Keepalived高可用对之间是通过VRRP通信的。VRRP是竞选机制来确定主备的,主的优先级高于备,因此,工作时主会优先获得所有的资源,备节点处于等待状态,当主报废了之后,备节点就会接管主节点的资源,然后顶替主节点对外提供服务。
在keepalived服务之间,只有作为主的服务器会一直发送VRRP广播包,告诉备节点它还活着,此时备节点不会抢占主节点,当主节点不可用时,则不再发送广播包,这时候备节点没有收到主节点的广播包,就知道主节点挂了,然后备节点就会马上顶上去,接管主节点的资源及服务。为了保证业务的连续性,接管速度最快可以小于1秒。
项目案列:
公司现在要做一个keepalived+LVS的高可用群集项目,调度器两台,web站点采用Nginx搭建,共有两台web节点,web站点的网页数据和资源都存放在公司内部的一台独立服务器上面,使用NFS共享技术,共享web站点需要的资源。
首先把公司的web服务搭建起来:
这里使用编译安装Nginx服务:
安装Nginx服务之前需要先安装Nginx服务的依赖软件包:
创建Nginx服务的运行用户:
考虑到安全方面,最好创建一个专门的用户进行管理服务。为了方便记忆这里我就把用户名和服务名设置为一样。
编译安装Nginx:
安装完之后做优化链接,以便启动Nginx服务。
配置Nginx的虚拟主机:
编辑配置文件,添加虚拟主机:
以上修改只是一点简单的优化配置。
修改完毕之后启动Nginx服务即可。
安装keepalived,这里使用yum安装这样的好处是可以解决keepalived服务
所需的一些依赖软件包
安装完毕之后设置开机自启动keepalived服务。
修改keepalived的配置文件:
Keepalived的主配置文件目录位于:/etc/keepalived/目录下。其中使用global_defs{…}区段指定全局参数;使用vrrp_instance{…}区段指定VRRP热备参数。
注意:这里面的“!”为注释字段。
为了安全起见,这里我们先备份一下keepalived的主配置文件,也是为了以后需要从新配置或修改而做。
主keepalived服务器配置项:
备keepalived服务器配置项:
修改完配置文件重启服务:
部署NFS共享存储。
在Linux中NFS服务的实现依赖于RPC(Remote Process Call远程过度调用)机制、以往成远程本地的映射过程。
Rpcbind软件包提供的服务为RPC支持,nfs-utils提供的服务为NFS共享服务。
设置共享目录:
NFS的配置文件路径为/etc/exports,文件内容默认是空的(无任何共享)、所以这里我们需要根据需要创建共享目录。
配置共享存储的基本语法为:“目录位置 客户机地址(权限选项)”;其中客户机地址可以为客户机主机名、IP地址、网段地址,允许使用“* ?”这类通配符;权限选项中的rw表示允许读写,ro为只读,sync表示同步写入,no_root_squash表示当客户机以root身份访问时赋予本地root权限。
注:默认是root_squash,如果前面不加no选项,则视为普通用户对待。
启动NFS服务程序并查看本机发布的NFS共享目录:
Showmount -e 命令就可以查看自己共享的目录:
配置完成NFS服务之后就是挂载共享目录了。
挂载方式有两种:1手动挂载;2修改fstab配置文件,开机自动挂载。
手动挂载演示:
修改配置文件挂载演示: