开发者学堂课程【全面讲解开源数据库中间件MyCat使用及原理(三):MyCat-集群-keepalived 安装配置 】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/757/detail/13291
MyCat-集群-keepalived 安装配置
要将 keepalived 的安装包上传到服务器上,在 159 和 160 两台服务器上面都需要上传 keepalived。159 和 160 上面的安装步骤是完全一致的。
1. 上传安装包到 159 服务器上
alt+p--------> put D:/tmp/keepalived-1.4.5.tar.gz
上传后 ll,可以看到 keepalived 的安装包,结尾是 tar.ge 的安装包,就需要进行解压。
2. 解压安装包到目录 /user/local/src
tar -zxvf keepalived-1.4.5.tar.gz-c/usr/local/src
解压完后解压到 user/local/src/keepalived-1.4.5 目录得到解压后的源码包。
Keepalived 是 c 源开发的,那么接下来就要对 c 源的源码进行编译。在编译的时候需要用到一些第三方的插件,通过 yam 指令在线安装。
3.安装依赖插件
yum install -y gcc openssl-devel popt-devel
在使用 yam 指令在线安装的时候一定要记得连接外网!!
4.进入解压后的目录,进行配置,进行编译。
cd /usr/local/src/keepalived-1.4.5
./configure--prefix=/usr/local/keepalived
先执行此条指令,指的是configure,要对 keepalived 的安装路径进行配置,所以在此添加这条指令。执行完此条指令后,会出现 Makefile 文件。
有了这个文件就可以编译 c 源的源码。
5. 进行编译,完成后进行安装
make &&make install 编译安装过程大概需要几十秒的时间,大家稍作等待。
6. 编译安装之后,进行运行前配置。
运行前的配置作用是将 keepalived 注册为系统服务。
cp/usr/local/src/keepalived-1.4.5/keepalived/etc/init.d/keepalived /etc/init.d/
mkdir /etc/keepalived
cp/usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived
cp/usr/local/src/keepalived-1.4.5/keepalived/etc/sysconfig/keepalivedetc/sysconfig/
cp/usr/local/keepalived/sbin/keepalived/usr/sbin/
将运行前的配置进行运行即可,创建目录。还需要将 keepalived 的配置文件拷贝到 etc 文件目录下,还需拷贝 keepalived 的指令,最后要将这个指令拷贝到 sbin目录下。
7. 修改配置文件 /etc/keepalived/keepalived.conf
进入此目录,看到原有的配置文件,是我们完全不需要的,可以直接全部删掉。将我们准备好的配置文件拷贝进去即可。
router_id 是一个标识,叫做 haproxy01,以上为脚本,等下详细介绍。
在这里面配置了 vrrp,就是 keepalived 中用到的协议。
state Master 当前是主,对于 keepalived 来说,就是一主一备。
Interface eth1 就是网卡的名字。
对于 keepalived 来说是需要通过 vrrp 虚拟出一个虚拟的 ip 地址,并且将此 ip 与当前服务器进行绑定。所以要指定当前服务器用的哪一块网卡。
如何查看当前服务器是使用的哪一块网卡?输入 if config 则显示当前服务的网卡。
router_id 网段信息。
数值越大优先级越高。 priority 120 指的是主和备要去抢占 ip,优先级越高,抢占的概率越大。
8.重点介绍
虚拟 IP vip 则为:virtual_ipaddress
示意图顶端的虚拟 IP,是在 keepalived 文件中配置的,两个 keepalived 虚拟出的 Ip 必须是同一个。
上方的配置也是需要添加的,以上是关于配置的说明,拷贝到 159 服务器即可。
当前节点 Master,网卡 eth1,优先级 120,虚拟 IP192.200
由于刚才关联了外部脚本,叫 haproxy_check.sh,关联的是 share 脚本。
9.简单了解一下 shell 脚本
检测 haproxy 是否存活
Shell 脚本的作用就是示意图中 check 的作用,如果 haproxy 挂掉,keepalived 还活着,虚拟的 IP 地址,和当前的网卡绑定,并不会解绑,而 haproxy 已经挂掉的情况下,再不解绑就没有任何意义,所以 share 脚本就要去检测,haproxy 是否还存活着。
如果 haproxy 还活着就正常,如果已经挂掉了就会尝试重启他,如果不能重启成功,那就会使当前的 keepalived 挂掉,而主节点 master 的 keepalived 挂掉的话,备用的节点的 keepalived 就会检测到主节点挂掉,那么此时备用节点就会升级为主节点,并且将 vip 与当前服务网卡进行绑定,从而对外进行服务。
Shell 脚本存放目录 etc/keepalived 脚本名称:
haproxy_check.sh
将脚本拷贝即可。
脚本解读:首先通过 ps-c haproxy 查看 haproxy 的信息,第二行的作用是拿到 haproxy 到底有没有该进程,
运行一下,ps-c 查看 haproxy 进程,no-header 将进程中的头信息干掉,如果输入 ps-C haproxy 直接执行,则会有头部信息出现。加上 no-header 则没有头部信息。
Wc-L 取得行数显示有一行,则说明 haproxy 是存活的,进程正常。
设置变量 A ,如果变量 A 为 0,那么就执行,下面这句指令,意思为重启 haproxy/usr/local/haproxy/sbin/haproxyf/usr/local/haproxy/haproxy.conf
Sleep1 休眠一秒
执行第二行的内容:ps -C haproxy --no-header|wc-l
如果 -eq 为 0,则视为重启失败,则 etc/init.d/keepalived stop 停止keepalived ,备用节点生效。
所以 shell 脚本就是去检测 haproxy 的状态。
脚本有了之后要赋予权限,chamod 777 haproxy_check.sh 绿了则有执行权限。
159 服务中的配置至此基本配置完毕。
对于 160 服务的配置与 159 服务中的配置基本一致。在 keepalived 的 backup 备用节点配置不一样,router_ id 标识要修改,master 要改为 backup ,优先级要改成 100,其他内容不需要。