我的编程空间,编程开发者的网络收藏夹
学习永远不晚

MHA之虚拟IP

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

MHA之虚拟IP

在MySQL高可用之MHA部署这篇博文中,已经将MHA的基础架构部署完成,但是并没有解决一个虚拟IP的问题,因为当master宕机后,新的master顶上来,这时前端APP要连接的数据库IP已经发生了变化,为了解决这个问题,必然要引入虚拟IP,谈起虚拟IP,首先想到的应该是keepalived这个工具,但这个工具有个弊端,就是有一个脑裂的问题,所以更建议在生产中使用脚本的方式来控制这个VIP。

1、在manager节点写入此脚本

[root@manager scripts]# cat /scripts/master_ip_failover 
#!/usr/bin/env perl
use strict;
use warnings FATAL => 'all';
use Getopt::Long;
my (
 $command,$ssh_user,$orig_master_host,$orig_master_ip,$orig_master_port,
$new_master_host,$new_master_ip,$new_master_port
);
my $vip = '192.168.20.100';         #这里指定VIP地址
my $key = '0';
my $ssh_start_vip = "/sbin/ifconfig ens33:$key $vip";         #这条指令是启动VIP
my $ssh_stop_vip = "/sbin/ifconfig ens33:$key down";       #这条指令是停止VIP
GetOptions(
 'command=s' => \$command,
 'ssh_user=s' => \$ssh_user,
 'orig_master_host=s' => \$orig_master_host,
 'orig_master_ip=s' => \$orig_master_ip,
 'orig_master_port=i' => \$orig_master_port,
 'new_master_host=s' => \$new_master_host,
 'new_master_ip=s' => \$new_master_ip,
 'new_master_port=i' => \$new_master_port,
);
exit &main();
sub main {
 print "\n\nIN SCRIPT TEST====$ssh_stop_vip==$ssh_start_vip===\n\n";
 if ( $command eq "stop" || $command eq "stopssh" ) {
 my $exit_code = 1;
 eval {
 print "Disabling the VIP on old master: $orig_master_host \n";
 &stop_vip();
 $exit_code = 0;
 };
 if ($@) {
 warn "Got Error: $@\n";
 exit $exit_code;
 }
 exit $exit_code;
 }
 elsif ( $command eq "start" ) {
 my $exit_code = 10;
 eval {
 print "Enabling the VIP - $vip on the new master - $new_master_host
\n";
 &start_vip();
 $exit_code = 0;
 };
 if ($@) {
 warn $@;
 exit $exit_code;
 }
 exit $exit_code;
 }
 elsif ( $command eq "status" ) {
 print "Checking the Status of the script.. OK \n";
 #`ssh $ssh_user\@cluster1 \" $ssh_start_vip \"`;
 exit 0;
 }
 else {
 &usage();
 exit 1;
 }
}
# A simple system call that enable the VIP on the new master
sub start_vip() {
 `ssh $ssh_user\@$new_master_host \" $ssh_start_vip \"`;
}
# A simple system call that disable the VIP on the old_master
sub stop_vip() {
 return 0 unless ($ssh_user);
 `ssh $ssh_user\@$orig_master_host \" $ssh_stop_vip \"`;
}
sub usage {
 print
 "Usage: master_ip_failover --command=start|stop|stopssh|status --
orig_master_host=host --orig_master_ip=ip --orig_master_port=port --
new_master_host=host --new_master_ip=ip --new_master_port=port\n";
}

[root@manager ~]# ll /scripts/master_ip_failover             #需要保证脚本有可执行权限
-rwxr-xr-x 1 root root 2006 2月  24 16:32 /scripts/master_ip_failover

2、修改manager配置文件

[root@manager ~]# cat /etc/masterha/app1.cnf           #配置文件指定脚本的位置
[server default]
manager_workdir=/var/log/masterha/app1
manager_log=/var/log/masterha/app1/manager.log
user=manager
password=123.com
ssh_user=root
repl_user=mharep
repl_password=123.com
ping_interval=1
master_ip_failover_script=/scripts/master_ip_failover     #增加改行,指定脚本的位置即可。

[server1]
hostname=192.168.20.2
port=3306
master_binlog_dir=/usr/local/mysql/data
candidate_master=1

[server2]
hostname=192.168.20.3
port=3306
master_binlog_dir=/usr/local/mysql/data
candidate_master=1

[server3]
hostname=192.168.20.4
port=3306
master_binlog_dir=/usr/local/mysql/data
no_master=1

做到这里,就可以保证在切换master时,VIP地址也会随之切换到新的master主机上。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

MHA之虚拟IP

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

2024-04-02

漫画说 “虚拟IP”

虚拟IP是实现高可用服务的基本手段之一,比如流行的 LVS 就是使用 虚拟IP 来实现高可用。当然,本文只是简单介绍了 虚拟IP 的原理,要在生产上使用的话还需要很多工具配合,比如 Keeplived 等。

虚拟ip如何实现

小编给大家分享一下虚拟ip如何实现,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!当需要建立局域网并连接多台计算机时。我会重新设置电脑的IP地址,这样电脑就可以上网
2023-06-20

云服务器虚拟ip

云服务器虚拟ip是一种常见的网络管理技术,可以帮助服务器管理员在不同的云服务器之间实现安全通信。以下是如何使用云服务器虚拟ip技术实现的一般步骤:确定您的云服务器使用的网络适配器。这可以是公共云,私有云或者虚拟私有云。您需要确定适当的网络适配器,以便您能够与您的云服务器集成,并在不同的云服务器之间实现安全通信。选择适当的云服务器虚拟ip选项。您可以选择将云服务器虚拟至多个公共云上,也可以
2023-10-26

KVM虚拟化之KVM虚拟机克隆

kvm虚拟机的克隆分为两种情况,本文也就通过以下两种情况进行克隆,克隆虚拟机为OEL5.8X64。本文到此通过两种方式进行kvm虚拟机克隆,其实各有用处。

虚拟主机ip如何查询

要查询一个虚拟主机的IP地址,可以按照以下步骤进行:1. 打开命令行终端(Windows用户可以按下Windows键+R,然后输入"cmd",然后按下Enter键,Mac用户可以打开"终端"应用程序)。2. 在命令行终端中,输入以下命令:`
2023-08-25

虚拟主机云服务器ip

首先,虚拟主机通常是基于Web服务器技术的,这意味着您需要购买一个服务器空间来托管您的网站和应用程序。这是因为虚拟主机可以提供比物理主机更多的虚拟服务器资源,例如内存、CPU、磁盘空间、网络带宽等。此外,虚拟主机还可以根据用户的需求提供不同的功能,例如Web服务器、负载均衡器和数据库。云服务器则是将计算资源集中管理和托
虚拟主机云服务器ip
2023-10-28

云服务器虚拟ip技术

云服务器虚拟ip技术可以实现以下几个方面的功能:安全性:云服务器虚拟IP技术可以保证在同一台云服务器上,用户使用同一IP段和用户身份验证等机制,确保用户的数据只被允许使用给指定的人或组织,从而防止数据被窃取和非法使用。稳定性:云服务器虚拟IP技术可以保障云服务器的安全稳定运行。如果某个云服务器遭受攻击或者宕机,用户将无法访问和使用云服务器。性能:云服务器虚拟IP技术可以提高服务器在不同地
2023-10-26

虚拟主机怎么屏蔽ip

要屏蔽IP地址,您可以通过以下方法来实现:1. 使用防火墙:通过配置防火墙规则,将要屏蔽的IP地址加入到黑名单中。这样可以阻止该IP地址与服务器之间的通信。2. 使用网站服务器的配置文件:对于使用Apache或Nginx等网站服务器的虚拟主
2023-09-07

Linux虚拟化KVM-Qemu分析之中断虚拟化

本文会将ARM GICv2中断虚拟化的总体框架和流程讲清楚,这个曾经困扰我好几天的问题在被捋清的那一刻,让我有点每有会意,欣然忘食的感觉。

Linux虚拟ip地址如何设置

要在Linux系统上设置虚拟IP地址,可以使用以下步骤:打开终端并以root用户登录。使用以下命令查看当前系统网卡接口:ifconfig使用以下命令创建虚拟IP地址(假设要创建的虚拟IP地址为192.168.1.100,网卡接口为eth0)
Linux虚拟ip地址如何设置
2024-03-15

虚拟主机能用独立IP吗

虚拟主机能用独立IP吗?虚拟主机可以选择使用独立IP地址。通常虚拟主机默认的是共享IP的,在开通虚拟主机时,可以根据需求选择共享IP,还是独立IP。比如在西部数码网站开通虚拟主机时,在确定配置信息页面,在IP地址栏提供共享IP、独立IP及不同IP选项,确定使用独立IP就勾选即可。
虚拟主机能用独立IP吗
2024-05-09

虚拟主机的ip怎么配置

配置虚拟主机的IP地址需要进行以下步骤:1. 首先,在虚拟主机所在的操作系统中配置IP地址。这可以通过打开网络设置或者使用命令行工具进行配置。具体的配置方法会根据操作系统的不同而有所差异。2. 在网络配置中,为虚拟主机分配一个唯一的IP地址
2023-08-29

带独立IP的云虚拟空间

随着科技的不断进步,云计算已成为当今信息时代的核心驱动力之一。云虚拟空间作为云计算的重要组成部分,为用户提供了强大的计算和存储能力,使得数据的管理变得更加高效、灵活和安全。而带独立IP的云虚拟空间更是在这个领域中取得了一席之地,为用户带来了更多的优势和便利。
带独立IP的云虚拟空间
2024-01-24

编程热搜

目录