目录
第一步:先安装依赖包
第二步:在官网下载安装包:
第三步:把安装包传上服务器,解压。
第四步:编译安装
第五步:make && make install
第六步:创建文件夹
第七步:移动文件
第八步:启动keepalived(重点)
启动:
暂停:
重启:
查看状态 :
也可以使用这个查看keepalived启动进程
如果改了配置
如果起不来
第九步:实现共用同一个虚拟IP
主库:
从库:
脚本:
直接yum安装 yum install keepalived
第一步:先安装依赖包
yum install -y libselinux-devel openssl-devel krb5-devel
第二步:在官网下载安装包:
Keepalived for Linuxhttps://www.keepalived.org/download.html
已经有安装包了,直接用就行了
第三步:把安装包传上服务器,解压。
tar -zxvf keepalived-xxxx.tar.gz
进入解压好的keepalived,使用ls查看
第四步:编译安装
./configure --prefix=/software/keepalived
注意:--prefix=后面的是安装地址
第五步:make && make install
//没有权限的话用sudo或者root,但我在make install 时 在/usr/lib/systemd/system下创建文件时sudo还是不够权限,所以只能用root
第六步:创建文件夹
先cd,到最外层,再创建文件夹mkdir /etc/keepalived
第七步:移动文件
这边是方便或许启动,也可以不完成这一步(建议执行)
cp /software/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/
第八步:启动keepalived(重点)
启动:
systemctl start keepalived.service
暂停:
systemctl stopkeepalived.service
重启:
systemctl restart keepalived.service
查看状态 :
systemctl status keepalived #注意:使用这个退出要用:q
也可以使用这个查看keepalived启动进程
ps -ef | grep keepalived
如果改了配置
先pkill keepalived杀死进程,再重启
如果起不来
检查下网卡名称是否一致,如果不对,请修改一致
修改后重新用命令启动。
至此安装完成
第九步:实现共用同一个虚拟IP
- 从服务器按照上面步骤安装一个
- 两个服务器先弄好主从复制,从MySQL安装文档上面来弄
- 修改配置文件
移动后的即/etc/keepalived
主库:
#master
global_defs {
smtp_server 121.37.235.34 #当前主机IP
smtp_connect_timeout 30
router_id MYSQL-HA #表示运行keepalived服务器的一个标识
}
vrrp_script check_mysql {
script "/usr/local/bin/check_mysql.sh" #这个是检测脚本,当挂了之后做的事情
interval 22
weight 2
}
vrrp_instance VI_1 {
state BACKUP #两台配置此处均是BACKUP,设为BACKUP将根据优先级决定主或从
interface eth0 #绑定的网卡
virtual_router_id 66 #虚拟路由标识,这个标识是一个数字(取值0-255之间)确保和slave相同,同网内不同集群此项必须不同,否则发生冲突。
priority 100 #用来选举master的,(取值0-255之间),此处master上设置为100
advert_int 1 #多久进行一次master选举(可以认为是健康查检时间间隔)
nopreempt #不抢占,即允许一个priority比较低的节点作为master
authentication {
auth_type PASS #认证区域
auth_pass 1111
}
track_script {
check_mysql #指定核对的脚本,check_mysql是上述自定义的
}
virtual_ipaddress {
121.37.1.100 #虚拟ip,如果master宕机,虚拟ip会自动漂移到slave上
}
}
从库:
#slave
global_defs {
smtp_server 121.37.243.209 #当前主机
smtp_connect_timeout 30
router_id MYSQL-HA #表示运行keepalived服务器的一个标识
}
vrrp_script check_mysql {
script "/usr/local/bin/check_mysql.sh" #对应位置创建一个脚本就行
interval 22
weight 2
}
vrrp_instance VI_1 {
state BACKUP #两台配置此处均是BACKUP,设为BACKUP将根据优先级决定主或从
interface eth0 #绑定的网卡
virtual_router_id 66 #虚拟路由标识,这个标识是一个数字(取值0-255之间)确保和master相同,同网内不同集群此项必须不同,否则发生冲突。
priority 90 #用来选举master的,(取值0-255之间),此处salve上设置为90
advert_int 1 #多久进行一次master选举(可以认为是健康查检时间间隔)
nopreempt #不抢占,即允许一个priority比较低的节点作为master
authentication {
auth_type PASS #认证区域
auth_pass 1111
}
track_script {
check_mysql #指定核对的脚本,check_mysql是上述自定义的
}
virtual_ipaddress {
121.37.1.100 #虚拟ip
}
}
脚本:
check_mysql.sh
网上很多,暂时不知道写什么,但是为了测试,就写杀死keepalived进程就行
#!/bin/bash
port_num=$(ss -nltp|grep -wc 3306)
if [ $port_num -eq 0 ];then
pkill keepalived
fi
写完之后给脚本增加执行权限
chmod +x check_mysql.sh
sed -i 's/\r$//' check_mysql.sh
保存退出后重启keepalived服务:
systemctl restart keepalived
- 测试:
都配置完了之后,删除keepalived进程,然后启动keepalived
使用ip addr查看虚拟IP在哪个下面
主服务器:
看上面的2中第三行有inet 121.371.100/32,说明虚拟IP在主库下。现在看从服务器
从服务器:
从服务器中就没得,所以没问题(要检查进程是否启动别报错了还不知道)
异常:两个服务器都有虚拟IP,因为这个keepalived使用的是vrrp选择协议,所以防火墙要把他放开
firewall-cmd --permanent --add-protocol=vrrp
firewall-cmd --reload
之后再访问ip addr就正常了
继续测试:
关闭主服务器的数据库,然后查看keepalived的进程看看是否关闭
很明显使用service mysql stop关闭MySQL之后,keepalived也挂了,
这时候使用ip addr查看虚拟IP已经转移到从服务器上面了
主服务器:
从服务器:
至此完成
- 如果是华为云的服务器
还需要去官网配置一个虚拟IP,这个虚拟IP和上面自己配置的一样就行,绑定主从服务器即可文章来源:https://www.toymoban.com/news/detail-778372.html
防火墙放开112端口文章来源地址https://www.toymoban.com/news/detail-778372.html
到了这里,关于Linux系统部署从无到有---keepalived的安装以及部署的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!