赞
踩
Keepalived 是一款用于实现高可用性和负载均衡的开源软件,它运行在 Linux 系统上,可以将多个服务器节点组合成一个虚拟服务器,通过 IP 地址漂移技术实现故障转移和负载均衡。
Keepalived 支持 VRRP(虚拟路由冗余协议)和 LVS(Linux 虚拟服务器)两种模式,可以根据实际需求选择使用。VRRP 模式可以实现在多个节点之间自动切换 VIP(虚拟 IP)地址,确保在某个节点故障时,其他节点可以接管服务并保证服务的连续性。而 LVS 模式则可以在多个节点之间分配流量,实现负载均衡。
除了实现高可用性和负载均衡外,Keepalived 还提供了丰富的配置选项和插件机制,可以通过插件实现对各种服务的监控和管理,例如对 MySQL、Nginx、Apache 等服务的监控和自动重启。同时,Keepalived 还支持邮件和 SNMP 报警机制,可以及时通知管理员服务的状态和异常。
总的来说,Keepalived 是一款功能强大的高可用性和负载均衡软件,它简单易用,支持定制化配置,可以帮助企业提高服务的可用性和稳定性。
mysql版本:5.7.27
系统:centos7
主从架构:一主两从
192.168.2.31主库
192.168.2.32从库
192.168.2.33从库
CPU:1核
内存:1G
软件包:keepalived-1.4.5.tar.gz
keepalived下载地址:https://www.keepalived.org/download.html
找到对应的版本下载完了,上传到机器上
yum install -y openssl-devel #在Linux系统上安装OpenSSL开发库,用于支持keepalived的加密功能。
tar xf keepalived-1.4.5.tar.gz #解压缩keepalived-1.4.5.tar.gz文件
cd keepalived-1.4.5 #进入解压缩后的keepalived-1.4.5目录
我这里之前安装过openssl-devel,所以会出现 Nothing to do
./configure --prefix=/usr/local/keepalived #运行configure脚本来配置keepalived的编译和安装选项。其中,--prefix选项指定keepalived的安装路径为/usr/local/keepalived。
make -j 12 && make install #编译和安装keepalived。其中,-j 12选项指定同时运行12个编译任务,以加快编译速度。
这些报no的不用管,继续往下执行就可以
cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/ #将keepalived的默认配置文件复制到/etc/sysconfig/目录下,以便对其进行修改。
cp -r /usr/local/keepalived/etc/keepalived /etc/ #将keepalived的默认配置文件目录复制到/etc/目录下,以便对其进行修改。
ln -sv /usr/local/keepalived/sbin/keepalived /usr/sbin/ #创建一个指向/usr/local/keepalived/sbin/keepalived可执行文件的符号链接,链接到/usr/sbin/目录下。这样,就可以在任何位置使用keepalived命令。
ln -sv /usr/local/keepalived/bin/genhash /usr/bin/ #创建一个指向/usr/local/keepalived/bin/genhash可执行文件的符号链接,链接到/usr/bin/目录下。这个命令是为了方便生成密码文件。
cp keepalived/etc/init.d/keepalived /etc/init.d/ #将keepalived的启动脚本复制到/etc/init.d/目录下,并可通过service命令来启动、停止和重启keepalived服务。
注意,三台mysql实例机器都需要安装keepalived。
这个时候keepalived就安装完成了,可以看到/etc/keepalived/这个目录下面keepalived.conf这个配置文件,接下面就需要把这个配置文件里面的内容进行更改
vim /etc/keepalived/keepalived.conf ! Configuration File for keepalived global_defs { notification_email { acassen@firewall.loc failover@firewall.loc sysadmin@firewall.loc } notification_email_from Alexandre.Cassen@firewall.loc smtp_server 192.168.200.1 smtp_connect_timeout 30 router_id LVS_DEVEL } vrrp_instance VI_1 { state MASTER interface ens33 #指定此实例使用的网络接口名称 virtual_router_id 51 priority 100 #(权重值)指定此节点的优先级值,该值决定了节点在VRRP组中的角色,数字越大,节点的优先级越高,成为MASTER节点的可能性就越大。 advert_int 1 authentication { auth_type PASS auth_pass ceshi #指定用于认证VRRP消息的密码 } unicast_src_ip 192.168.2.31 #主库 unicast_peer { 192.168.2.32 #从库 192.168.2.33 #从库 } virtual_ipaddress { 192.168.2.34 #VIP(虚拟ip) } }
这里要注意一点就是priority=100这个值,三台机器要配置的不一样,主库最大,剩下的两台机器哪个配置好哪个就配置的大点,好在主库宕机后接替主库
192.168.2.32 priority 98
192.168.2.33 priority 95
配置文档直接复制就可以用,之前默认的配置文件里面的内容可以删掉。
/etc/init.d/keepalived start
hostname -I
ip a
三台实例机器的keepalived都得启动
切换思路:先把主库192.168.2.31上的keepalived停掉,看看vip会不会切换
然后发现vip切换到了192.168.2.32上,因为192.168.2.32的权重值配的是98,比192.168.2.33配的95高,所以VIP会飘移到192.168.2.32
当在192.168.2.31上再启动动keepalived,然后会发现vip又漂移了回来,因为192.168.2.31上的权重值是100,是最高的
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。