MySQL高可用集群架构——MHA架构

MHA 简介:

(1)简介

目前在MySQL高可用方面是一个相对成熟的解决方案,它由日本DeNA公司youshimaton(现就职于Facebook公司)开发,是一套优秀的作为MySQL高可用性环境下故障切换和主从提升的高可用软件。在MySQL故障切换过程中,MHA能做到在0~30秒之内自动完成数据库的故障切换操作,并且在进行故障切换的过程中,MHA能在最大程度上保证数据的一致性,以达到真正意义上的高可用。

(2)该软件由两部分组成:

MHA Manager(管理节点)和MHA Node(数据节点)。MHA Manager可以单独部署在一个独立的机器上管理多个master-slave集群,也可以部署在一台slave节点上。MHA Node运行在每台MySQL服务器上,MHA Manager会定时探测集群中的master节点,当master出现故障时,它可以自动将最新数据的slave提升为新的master,然后将所有其他的slave重新指向新的master。整个故障转移过程对应用程序完全透明。

(3)工作原理:

1、在MHA自动故障切换过程中,MHA试图从宕机的主服务器上保存二进制日志,最大程度的保证数据的不丢失,但这并不总是可行的。例如,如果主服务器硬件故障或无法通过ssh访问,MHA没法保存二进制日志,只进行故障转移而丢失了最新的数据。使用MySQL 5.5的半同步复制,可以大大降低数据丢失的风险。MHA可以与半同步复制结合起来。如果只有一个slave已经收到了最新的二进制日志,MHA可以将最新的二进制日志应用于其他所有的slave服务器上,因此可以保证所有节点的数据一致性。

2、顺序:

① 从宕机崩溃的master保存二进制日志事件(binlog events);
② 识别含有最新更新的slave;
③ 应用差异的中继日志(relay log)到其他的slave;
④ 应用从master保存的二进制日志事件(binlog events);
⑤ 提升一个slave为新的master;
⑥ 使其他的slave连接新的master进行复制

实验环境

master(192.168.13.129)   mha4mysql-node|
slave1(192.168.13.130)  mha4mysql-node |
slave2(192.168.13.131)   mha4mysql-node |
manager(192.168.13.128)    mha4mysql-manager、 mha4mysql-node|

1,在三台主从服务器上安装mysql数据库

#安装编译依懒环境
[[email protected] ~] yum -y install gcc gcc-c++ ncurses ncurses-devel bison perl-Module-Install cmake
[[email protected] ~] mount.cifs //192.168.100.3/mha /mnt     ##挂载软件包
Password for [email protected]//192.168.100.3/mha:
[[email protected] ~] cd /mnt
[[email protected] mnt] tar zxvf cmake-2.8.6.tar.gz -C /opt   ##安装cmake编译软件
[[email protected] mnt] cd /opt/cmake-2.8.6/
[[email protected] cmake-2.8.6] ./configure   ##配置
[[email protected] cmake-2.8.6] gmake && gmake install   ##编译安装
#安装mysql数据库
[[email protected] cmake-2.8.6]# cd /mnt
[[email protected] mnt]# tar zxvf mysql-5.6.36.tar.gz -C /opt ##解压MySQL
#编译mysql
[[email protected] mnt]# cd /opt/mysql-5.6.36/
[[email protected] mysql-5.6.36]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DDEFAULT_CHARSET=utf8 \     ##指定字符集
-DDEFAULT_COLLATION=utf8_general_ci \     ##指定字符集默认
-DWITH_EXTRA_CHARSETS=all \  ##关联额外的所有字符集
-DSYSCONFDIR=/etc    ##配置文件目录
#安装
[[email protected] mysql-5.6.36]# make && make install  ##编译安装
#设置环境变量
[[email protected] mysql-5.6.36]# cp support-files/my-default.cnf /etc/my.cnf  ##复制配置文件
[[email protected] mysql-5.6.36]# cp support-files/mysql.server /etc/rc.d/init.d/mysqld
##复制启动脚本
[[email protected] mysql-5.6.36]# chmod +x /etc/rc.d/init.d/mysqld  ##给执行权限
[[email protected] mysql-5.6.36]# chkconfig --add mysqld  ##添加到service管理中
[[email protected] mysql-5.6.36]# echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
##修改环境变量
[[email protected] mysql-5.6.36]# source /etc/profile   ##刷新华宁变量
#创建mysql数据库,并授权
[[email protected] mysql-5.6.36]# groupadd mysql   ##创建组
[[email protected] mysql-5.6.36]# useradd -M -s /sbin/nologin mysql -g mysql
##创建系统用户
[[email protected] mysql-5.6.36]# chown -R mysql.mysql /usr/local/mysql  ##修改属组属主
[[email protected] mysql-5.6.36]# mkdir -p /data/mysql  ##创建数据目录
#初始化数据库
[[email protected] mysql-5.6.36]# /usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql \  ##文件目录
--datadir=/usr/local/mysql/data \  ##数据目录
--user=mysql   ##用户

2,修改 mysql 的主配置文件:/etc/my.cnf ,注意三台服务器的 server-id 不能一样

---配置主服务器:
[[email protected] mysql-5.6.36]# vim /etc/my.cnf
[mysql]
server-id = 1
#开启二进制日志
log_bin = master-bin
#允许从服务器进行同步
log-slave-updates = true

---配置从服务器1:

[[email protected] mysql-5.6.36]# vim /etc/my.cnf
[mysql]
server-id = 2
#开启二进制日志
log_bin = master-bin
 #使用中继日志进行同步
relay-log = relay-log-bin
relay-log-index = slave-relay-bin.index

---配置从服务器2:
[[email protected] mysql-5.6.36]# vim /etc/my.cnf
[mysql]
server-id = 3
log_bin = master-bin
relay-log = relay-log-bin
relay-log-index = slave-relay-bin.index

3,三台服务器启动 mysql 服务

#在三台服务器上分别创建这两个个软链接
[[email protected] mysql-5.6.36]# ln -s /usr/local/mysql/bin/mysql /usr/sbin/
[[email protected] mysql-5.6.36]# ln -s /usr/local/mysql/bin/mysqlbinlog /usr/sbin/

#启动mysql
[[email protected] mysql-5.6.36]# /usr/local/mysql/bin/mysqld_safe --user=mysql &
#关闭防火墙和安全功能
[[email protected] mysql-5.6.36]# systemctl stop firewalld.service
[[email protected] mysql-5.6.36]# setenforce 0

4,配置 Mysql 主从同步(一主两从)在所有数据库节点上授权两个用户

[[email protected] mysql-5.6.36]# mysql -u root -p             //进入数据库
mysql> grant replication slave on *.* to ‘myslave‘@‘192.168.13.%‘ identified by ‘123‘;
##从数据库同步使用用户myslave
mysql> grant all privileges on *.* to ‘mha‘@‘192.168.13.%‘ identified by ‘manager‘;
##manager使用监控用户
mysql> flush privileges;  //刷新数据库
#在数据库上添加下列授权(理论上不需要)以主机名授权(MHA检查时是通过主机名的形式)
mysql> grant all privileges on *.* to ‘mha‘@‘master‘ identified by ‘manager‘;
mysql> grant all privileges on *.* to ‘mha‘@‘slave1‘ identified by ‘manager‘;
mysql> grant all privileges on *.* to ‘mha‘@‘slave2‘ identified by ‘manager‘;

5,在master服务器上查看二进制文件和同步点

mysql> show master status;
+-------------------+----------+--------------+------------------+-------------------+
| File              | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+-------------------+----------+--------------+------------------+-------------------+
| master-bin.000001 |     1213 |              |                  |                   |
+-------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)

6,在两台从服务器上设置同步

#在两台从服务器上都执行下列的命令,同步主服务器的日志
mysql>  change master to master_host=‘192.168.13.129‘,master_user=‘myslave‘,master_password=‘123‘,master_log_file=‘master-bin.000001‘,master_log_pos=1213;
mysql>  start slave;    //开启slave
mysql> show slave status\G;  //查看slave
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
mysql> set global read_only=1;
mysql> flush privileges;   //刷新数据库

7,在所有服务器上安装MHA依懒的环境,首先安装epel源

[[email protected] mysql-5.6.36]# yum install epel-release --nogpgcheck -y  ##安装源
[[email protected] mysql-5.6.36]# yum install -y perl-DBD-MySQL \  ##针对MySQL
perl-Config-Tiny \  ##配置文件
perl-Log-Dispatch \   ##日志
perl-Parallel-ForkManager \  ##多线程管理
perl-ExtUtils-CBuilder \    ##扩展工具
perl-ExtUtils-MakeMaker \
perl-CPAN  ##程序库

8,在所有服务器上安装 node

#解压安装node
[[email protected] ~]# cd ~
[[email protected] ~]# tar zxvf /mnt/mha4mysql-node-0.57.tar.gz
[[email protected] ~]# cd mha4mysql-node-0.57/
[[email protected] mha4mysql-node-0.57]# perl Makefile.PL  ##perl进行编译
[[email protected] mha4mysql-node-0.57]# make && make install  ##编译安装

9,在manger服务器上安装manager(注意:一定要安装node组件才能安装manager组件)

#关闭防火墙
[[email protected] ~]# systemctl stop firewalld.service
[[email protected] ~]# setenforce 0
#解压并安装manager
[[email protected] ~]# cd ~
[[email protected] ~]# tar zxvf /mnt/mha4mysql-manager-0.57.tar.gz
[[email protected] ~]# cd mha4mysql-manager-0.57/
[[email protected] mha4mysql-manager-0.57]# perl Makefile.PL   ##perl编译
[[email protected] mha4mysql-manager-0.57]# make && make install   ##编译安装

manager服务器安装后在 usr/local/bin 目录下面会生成几个工具:

 - masterha_check_repl      检查mysql复制状况
 - masterha_master_monitor       检查master是否宕机
 - masterha_check_ssh   检查MHA的SSH配置情况
 - masterha_master_switch     控制故障转移
 - masterha_check_status         检查当前MHA运行状态
 -  masterha_conf_host        添加或删除配置的server信息
 - masterha_stop                关闭manager
 - masterha_manager                     启动manager的脚本

node安装后在/usr/local/bin下面会生成的几个脚本(通常由MHA Manager的脚本触发,无需人为操作)

 - apply_diff_relay_logs :识别差异的中继日志事件并将其差异的事件应用于其他的 slave;
 - save_binary_logs:保存和复制 master 的二进制日志;
 - filter_mysqlbinlog :去除不必要的 ROLLBACK 事件 (MHA 已不再使用这个工具);
 - purge_relay_logs:清除中继日志(不会阻塞 SQL 线程);

10,配置无密码访问

##在manager配置所有数据库节点的无密码认证
[[email protected] ~]# ssh-keygen -t rsa  ##生成秘钥
Enter file in which to save the key (/root/.ssh/id_rsa):   ##回车
Enter passphrase (empty for no passphrase):   ##回车
Enter same passphrase again:    ##回车
[[email protected] ~]# ssh-copy-id 192.168.13.129  ##上传到其他服务器
Are you sure you want to continue connecting (yes/no)? yes
[email protected]‘s password:    ##输入129服务器的密码
[[email protected] ~]# ssh-copy-id 192.168.13.130
[[email protected] ~]# ssh-copy-id 192.168.13.131
##在master上配置到数据库节点slave1和slave2的无密码认证
[[email protected] ~]# ssh-keygen -t rsa
[[email protected] ~]# ssh-copy-id 192.168.13.130
[[email protected] ~]# ssh-copy-id 192.168.13.131
##在slave1上配置到数据库节点master‘和slave2的无密码认证
[[email protected] ~]# ssh-keygen -t rsa
[[email protected] ~]# ssh-copy-id 192.168.13.129
[[email protected] ~]# ssh-copy-id 192.168.13.131
##在slave2上配置到数据库节点slave1和master的无密码认证
[[email protected] ~]# ssh-keygen -t rsa
[[email protected] ~]# ssh-copy-id 192.168.13.129
[[email protected] ~]# ssh-copy-id 192.168.13.130

11,配置MHA,在manager节点上复制相关脚本到/usr/local目录,并进行配置

[[email protected] ~]# cp -ra /root/mha4mysql-manager-0.57/samples/scripts/ /usr/local/bin/
##复制脚本到/usr/local
[[email protected] ~]# ls mha4mysql-manager-0.57/samples/scripts/
 ##生成四个可执行脚本
 master_ip_failover:自动切换时 VIP 管理的脚本;
 master_ip_online_change:在线切换时 VIP 的管理;
 power_manager:故障发生后关闭主机的脚本;
 send_report:因故障切换后发送报警的脚本;
##将自动切换时 VIP 管理的脚本复制到 /usr/local/bin/目录下:
[[email protected] ~]# cp /usr/local/bin/scripts/master_ip_failover /usr/local/bin/
[[email protected] ~]# vim /usr/local/bin/master_ip_failover
##删除所有内容,重新编写 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.13.100‘;
my $brdc = ‘192.168.13.255‘;
my $ifdev = ‘ens33‘;
my $key = ‘1‘;
my $ssh_start_vip = "/sbin/ifconfig ens33:$key $vip";
my $ssh_stop_vip = "/sbin/ifconfig ens33:$key down";
my $exit_code = 0;
#my $ssh_start_vip = "/usr/sbin/ip addr add $vip/24 brd $brdc dev $ifdev label $ifdev:$key;/usr/sbin/arping -q -A -c 1 -I $ifdev $vip;iptables -F;";
#my $ssh_stop_vip = "/usr/sbin/ip addr del $vip/24 dev $ifdev label $ifdev:$key";
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 ([email protected]) {
warn "Got Error: [email protected]\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 ([email protected]) {
warn [email protected];
exit $exit_code;
}
exit $exit_code;
}
elsif ( $command eq "status" ) {
print "Checking the Status of the script.. OK \n";
exit 0;
}
else {
&usage();
exit 1;
}
}
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() {
`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";
}

12,在manager节点上创建MHA软件目录并拷贝配置文件

[[email protected] ~]# mkdir /etc/masterha
[[email protected] ~]# cp /root/mha4mysql-manager-0.57/samples/conf/app1.cnf /etc/masterha/
#编辑配置文件
[[email protected] ~]# vim /etc/masterha/app1.cnf
[server default]
#manager配置文件
manager_log=/var/log/masterha/app1/manager.log
#manager日志
manager_workdir=/var/log/masterha/app1
#master保存binlog的位置,这里的路径要与master里配置的bilog的相同
master_binlog_dir=/usr/local/mysql/data
#设置自动failover时候的切换脚本。也就是上边的那个脚本
master_ip_failover_script=/usr/local/bin/master_ip_failover
#设置手动切换时候的切换脚本
master_ip_online_change_script=/usr/local/bin/master_ip_online_change
#这个密码是前文中创建监控用户的那个密码
password=manager
remote_workdir=/tmp
#设置复制用户密码
repl_password=123
#设置复制用户的用户
repl_user=myslave
#设置发生切换后发生报警的脚本
secondary_check_script=/usr/local/bin/masterha_secondary_check -s 192.168.13.130 -s 192.168.13.131
#设置故障发生关闭故障脚本主机
shutdown_script=""
#设置ssh的登录用户名
ssh_user=root
#设置监控用户
user=mha

[server1]
hostname=192.168.13.129
port=3306

[server2]
candidate_master=1
#设置为候选master,如果设置该参数以后,发送主从切换以后将会从此从库升级为主库
hostname=192.168.13.130
check_repl_delay=0
port=3306

[server3]
hostname=192.168.13.131
port=3306

13,测试 ssh 无密码认证,如果正常最后都会输出 successful,检查建健康状态

[[email protected] ~]# masterha_check_ssh -conf=/etc/masterha/app1.cnf
....
[[email protected] ~]# masterha_check_repl -conf=/etc/masterha/app1.cnf

14,在master上配置虚拟ip

[[email protected] mha4mysql-node-0.57]# /sbin/ifconfig ens33:1 192.168.13.100/24

15,在manager服务器上启动mha

[[email protected] scripts]# nohup masterha_manager --conf=/etc/masterha/app1.cnf --remove_dead_master_conf --ignore_last_failover < /dev/null > /var/log/masterha/app1/manager.log 2>&1 &
##查看MHA状态,可以看到当前的master是mysql节点
[[email protected] scripts]# masterha_check_status --conf=/etc/masterha/app1.cnf
app1 (pid:43036) is running(0:PING_OK), master:192.168.13.129

16,故障模拟

[[email protected] scripts]# tailf /var/log/masterha/app1/manager.log
##启动监控观察日志记录
##关掉master服务器
[[email protected] mha4mysql-node-0.57]# pkill -9 mysql

可以看到从库的状态,vip会切换到其中之一的从库上:

[[email protected] mha4mysql-node-0.57]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
                inet 192.168.13.130  netmask 255.255.255.0  broadcast 192.168.13.255

ens33:1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
                inet 192.168.13.100  netmask 255.255.255.0  broadcast 192.168.13.255
                ether 00:0c:29:af:94:06  txqueuelen 1000  (Ethernet)

此时,在manager上安装mysql,客户机也可以通过虚拟ip,连接上数据库:

##在vip的数据库服务器上提权
mysql> grant all on *.* to ‘root‘@‘%‘ identified by ‘abc123‘;
Query OK, 0 rows affected (0.00 sec)
##在客户机上用虚拟ip进行登录
[[email protected] ~]# mysql -uroot -h 192.168.13.100 -p  ##指定虚拟ip
Enter password:   ##输入密码

MySQL [(none)]> 

谢谢阅读!

原文地址:https://blog.51cto.com/14080162/2459786

时间: 2024-10-15 13:18:06

MySQL高可用集群架构——MHA架构的相关文章

MySQL高可用集群之MHA

MySQL高可用集群之MHA 一.MHA简介 MHA(Master High Availability)目前在MySQL高可用方面是一个相对成熟的解决方案,它由日本DeNA公司youshimaton(现就职于Facebook公司)开发,是一套优秀的作为MySQL高可用性环境下故障切换和主从提升的高可用软件.在MySQL故障切换过程中,MHA能做到在0~30秒之内自动完成数据库的故障切换操作,并且在进行故障切换的过程中,MHA能在最大程度上保证数据的一致性,以达到真正意义上的高可用. MHA里有两

mysql高可用集群——MHA架构

目录 1.下载 2.搭建mha 2.1 系统配置 2.2 架构 2.3 添加ssh公钥信任 2.4 安装mha节点 2.5 manager配置文件 2.6 检查 2.7 启动manager进程 2.8 碰到的问题 3.测试切换 3.1 正常切换测试 3.2 回切测试 3.3 雪崩测试 3.4 主从不一致切换测试 下载 mha链接地址:http://pan.baidu.com/s/1pJkDGX9#dir/path=%2Fmysql%2FHA%2Fmha 或者:https://code.googl

企业主流MySQL高可用集群架构三部曲之PXC

前段时间,老张给大家介绍了企业中主流MySQL高可用集群架构三部曲中的前两部,有不了解的同学可以去访问我之前的博客内容. 第一部曲直通车>> 企业中MySQL主流高可用架构实战三部曲之MHA 第二部曲直通车>>企业中MySQL高可用集群架构三部曲之MM+keepalived 独家新课程上线>>MySQL体系结构深入剖析及实战DBA视频课程 今儿给大家介绍最后一部曲,是percona公司的percona xtraDB cluster.简称PXC.它是基于GaLera协议的

配置MySQL高可用集群MHA

配置MySQL高可用集群+++++++++++++++++++主机角色 :客户端 client50数据库服务器 mysql51 到 mysql55管理主机 mgm56VIP地址 192.168.4.100拓扑结构: client50 | mysql51主 | | | | | |mysql52 mysql53 mysql54 mysql55 mgm56从 从 从 从 管理集群备用主 备用主+++++++++++++++++++++++++++++++++++++++++++++++++++++++

mysql高可用集群方案

这里有一篇关于Mysql高可用方案的干货文章:[干货分享] 一文了解数据库高可用容灾方案的设计与实现 网友们公司中的使用方案讨论:想问各位大大 MySQL 是怎么做高可用的? 一.Mysql高可用解决方案 方案一:共享存储 一般共享存储采用比较多的是 SAN/NAS 方案. 方案二:操作系统实时数据块复制 这个方案的典型场景是 DRBD,DRBD架构(MySQL+DRBD+Heartbeat) 方案三:主从复制架构 主从复制(一主多从) MMM架构(双主多从) MHA架构(多主多从) 方案四:数

通过MMM构建MYSQL高可用集群系统

本文为南非蚂蚁的书籍<循序渐进linux-第二版>-8.4的读笔记 MMM集群套件(MYSQL主主复制管理器) MMM套件主要的功能是通过下面三个脚本实现的 1)mmm_mond 这是一个监控进程,运行在管理节点上,主要负责都所有数据库的监控工作,同时决定和处理所有节点的角色切换 2)mmm_agentd 这是一个代理进程,运行在每个MYSQL服务器上,主要完成监控的测试工作以及执行简单的远端服务设置 3)mmm_control 简单的管理脚本,用来查看和管理集群运行状态,同事管理mmm_mo

mysql高可用集群——heartbeat+drbd

heartbeat+drbd+mysql是一种早期的mysql高可用技术. 资料来源:http://www.drbd.org DRBD原理:DRBD是对磁盘块操作的复制,可看做网络raid1.不复制磁盘内容,只复制操作.原理可见下图 架构描述 服务器列表 192.168.1.82 192.168.1.1 3306 主 /dev/drbd0 192.168.1.82 192.168.1.2 3306 备 /dev/drbd0 架构图 安装配置: 配置drbd 1.检查机器名解析: 1.查看解析 s

# IT明星不是梦 # MySQL高可用集群之MMM

MySQL高可用集群之MMM 一.MMM简介 MMM即Multi-Master Replication Manager for MySQL(mysql多主复制管理器),基于perl实现,关于mysql主主复制配置的监控.故障转移和管理的一套可伸缩的脚本套件(在任何时候只有一个节点可以被写入),MMM也能对从服务器进行读负载均衡,所以可以用它来在一组用于复制的服务器启动虚拟IP,除此之外,它还有实现数据备份.节点之间重新同步功能的脚本.MySQL本身没有提供replication failover

基于Corosync + Pacemaker+DRBD实现MySQL高可用集群

前言 在众多的高可用集群解决方案中,除了Heartbeat之外,Corosync也能提供类似于Heartbeat一样的功能,而且目前RedHat官方提供的高可用集群解决方案的程序包都以Corosync为主,所以在未来的日子Corosync会逐渐取代Heartbeat.本文带来的是基于Corosync + Pacemaker+DRBD的MySQL高可用集群解决方案. 相关介绍 Corosync Corosync是从OpenAIS中分支出来的一个项目,它在传递信息的时候可以通过一个简单的配置文件来定

heartbeat v2配置高可用web集群和基于nfs搭建MySQL高可用集群

安装环境:Centos 6.4, httpd2.4,mysql5.5,heartbeat v2 提供两台机器node1和node2,在/etc/hosts文件中添加名称解析,并且主机名称要与节点名称要相同,即uname -n的名称要和hosts定义的名称必须一样. #   IP                         HOSTNAME             ALIAS 10.204.80.79     node1.mylinux.com     node1 10.204.80.80