一、Heartbeat网络架构

二、准备工作

1、操作系统

CentOS 6.4 X86-64 最小化安装
由于用源码编译安装heartbeat一直没有通过,所以没办法只能采用yum安装。
heartbeat v3这里需要强调的就是博文中:
# 表示是在node1、node2上都要执行的命令
而
[root@node1 ~]# 表示仅在node1节点上执行的命令
[root@node2 ~]# 表示仅在node2节点上执行的命令
[root@node3 ~]# 表示仅在node3节点上执行的命令新遇到的问题,本来这边博文准备把Heartbeat的资源管理器由haresources换成crm,但是在配置crm的时候,总是不成功,如果朋友有crm成功的案例,希望能指导指导。谢谢

2、地址规划

node1 192.168.1.196 255.255.255.0 192.168.0.1 node1.test.com eth1 Active
node2 192.168.1.197 255.255.255.0 192.168.0.1 node2.test.com eth1 Passive
node3 192.168.1.198 255.255.255.0 192.168.0.1 node3.test.com eth1 nfs
vip   192.168.1.223 255.255.255.0

3、主机名解析

[root@node1 ~]# uname -n
node1.test.com
[root@node1 ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.1.196 node1.test.com node1
192.168.1.197 node2.test.com node2
192.168.1.198 node3.test.com node3
[root@node2 ~]# uname -n
node2.test.com
[root@node2 ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.1.196 node1.test.com node1
192.168.1.197 node2.test.com node2
192.168.1.198 node3.test.com node3

4、双机互信

[root@node1 ~]# ssh-keygen -t rsa -f ~/.ssh/id_rsa -P ''
Generating public/private rsa key pair.
Created directory '/root/.ssh'.
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
ce:f3:d7:63:10:9b:d2:86:f8:8a:5a:ee:41:d8:d2:01 root@node1.test.com
The key's randomart p_w_picpath is:
+--[ RSA 2048]----+
|    E            |
|     .           |
|      .          |
|     + .    .    |
|    o + S. o +   |
|     o o. o *    |
|      o +. o o   |
|     o o o. . +  |
|    .o+ .... . . |
+-----------------+
[root@node1 ~]# ssh-copy-id -i .ssh/id_rsa.pub root@node2.test.com
The authenticity of host 'node2.test.com (192.168.0.102)' can't be established.
RSA key fingerprint is 46:b9:7c:11:db:75:93:ad:f1:26:f0:a7:4d:00:40:20.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'node2.test.com,192.168.0.102' (RSA) to the list of known hosts.
root@node2.test.com's password:
Now try logging into the machine, with "ssh 'root@node2.test.com'", and check in:.ssh/authorized_keysto make sure we haven't added extra keys that you weren't expecting.
[root@node2 ~]# ssh-keygen -t rsa -f ~/.ssh/id_rsa -P ''
Generating public/private rsa key pair.
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
c4:e3:71:f8:82:09:f0:42:9c:e7:20:db:db:ce:dc:0b root@node2.test.com
The key's randomart p_w_picpath is:
+--[ RSA 2048]----+
| .o.             |
|..+o.  . .       |
| +.+o   * .      |
|. .... = =       |
|   o  o S .      |
|  . .    .       |
|   +E.           |
|    +..          |
|      ..         |
+-----------------+
[root@node2 ~]# ssh-copy-id -i .ssh/id_rsa.pub root@node1.test.com
The authenticity of host 'node1.test.com (192.168.0.101)' can't be established.
RSA key fingerprint is 46:b9:7c:11:db:75:93:ad:f1:26:f0:a7:4d:00:40:20.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'node1.test.com,192.168.0.101' (RSA) to the list of known hosts.
root@node1.test.com's password:
Now try logging into the machine, with "ssh 'root@node1.test.com'", and check in:.ssh/authorized_keysto make sure we haven't added extra keys that you weren't expecting.

5、时间同步

# yum -y install ntpdate
# ntpdate asia.pool.ntp.org

6、关闭防火墙

# getenforce
Disabled
# /etc/init.d/iptables status
iptables:未运行防火墙。

三、安装heartbeat包

1、安装epel源

# wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
# wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
# rpm -Uvh remi-release-6*.rpm epel-release-6*.rpm

2、修改epel源的配置文件

# sed -i 's/#baseurl/baseurl/g' /etc/yum.repos.d/epel.repo
# sed -i 's/mirrorlist/#mirrorlist/' /etc/yum.repos.d/epel.repo

3、安装heartbeat包

# yum install heartbeat heartbeat-libs

4、查看heartbeat所依赖的包

四、配置Heartbeat服务

1、heartbeat配置文件的介绍

heartbeat3个配置文件authkeys   #节点之间认证的秘钥key文件,权限为600ha.cf      #heartbeat服务核心配置文件haresources   #集群资源管理器(haresource | crm)

2、拷贝heartbeat初始配置文件

[root@node1 ~]# cp /usr/share/doc/heartbeat-3.0.4/{ha.cf,authkeys,haresources} /etc/ha.d/

3、编辑authkeys文件

[root@node1 ~]# dd if=/dev/random bs=512 count=1 | openssl md5 #生成密钥随机数
记录了0+1 的读入
记录了0+1 的写出
72字节(72 B)已复制,4.8467e-05 秒,1.5 MB/秒
(stdin)= acf7401e6b20d4cec482ba1160eb8efe
[root@node1 ~]# vim /etc/ha.d/authkeys
#注释:末尾添加以下两行
auth 1
1 md5 acf7401e6b20d4cec482ba1160eb8efe
[root@node1 ~]# chmod 600 /etc/ha.d/authkeys

4、编辑ha.cf主配置文件

[root@node1 ha.d]# grep -v '^#' ha.cf |sed '/^$/d'
注释:主要修改两处,其它的都可以默认
logfacility local0
mcast eth1 225.100.100.100 694 1 0      #修改心跳信息的传播方式|组播
auto_failback on
node node1.test.com #配置集群中的节点数
node node2.test.com #配置集群中的节点数

5、编辑haresources配置文件

[root@node1 ha.d]# grep -v '^#' /etc/ha.d/haresources
node1.test.com  IPaddr::192.168.1.223 Filesystem::192.168.1.198:/mydata::/mydata::nfs mysqld

6、拷贝配置文件到node2节点

[root@node1 ~]# scp /etc/ha.d/{ha.cf,haresources,authkeys} root@node2.test.com:/etc/ha.d/

五、创建lvm逻辑卷

1、node3主机增加一块10G的新硬盘

2、node3节点硬盘分区,标记为lvm卷

[root@node3 ~]# fdisk /dev/sdb
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0xc42dce64.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)WARNING: DOS-compatible mode is deprecated. It's strongly recommended toswitch off the mode (command 'c') and change display units tosectors (command 'u').Command (m for help): n
Command actione   extendedp   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-1305, default 1): 1
Last cylinder, +cylinders or +size{K,M,G} (1-1305, default 1305):
Using default value 1305Command (m for help): pDisk /dev/sdb: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xc42dce64Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1        1305    10482381   83  LinuxCommand (m for help): t
Selected partition 1
Hex code (type L to list codes): 8e
Changed system type of partition 1 to 8e (Linux LVM)Command (m for help): pDisk /dev/sdb: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xc42dce64Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1        1305    10482381   8e  Linux LVMCommand (m for help): w
The partition table has been altered!Calling ioctl() to re-read partition table.
Syncing disks.

3、创建lvm逻辑卷

[root@node3 ~]# yum -y install lvm2
[root@node3 ~]# pvcreate /dev/sdb1Physical volume "/dev/sdb1" successfully created
[root@node3 ~]# vgcreate myvg /dev/sdb1Volume group "myvg" successfully created
[root@node3 ~]# lvcreate -L 9G -n mydata myvgLogical volume "mydata" created
[root@node3 ~]# lvs |grep mydatamydata  myvg     -wi-a-----  9.00g

4、格式化lvm逻辑卷

[root@node3 ~]# mkfs.ext4 /dev/myvg/mydata
mke2fs 1.41.12 (17-May-2010)
文件系统标签=
操作系统:Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
589824 inodes, 2359296 blocks
117964 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=2415919104
72 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632正在写入inode表: 完成
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成This filesystem will be automatically checked every 23 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.

六、安装配置NFS

1、安装nfs服务

[root@node3 ~]# yum -y install nfs-utils rpcbind

2、配置nfs共享存储目录

[root@node3 ~]# mkdir /mydata
[root@node3 ~]# echo "/mydata     192.168.1.0/24(rw,all_squash,anonuid=3306,anongid=3306)" > /etc/exports

3、查看nfs的共享目录

[root@node3 ~]# showmount -e 192.168.1.198
clnt_create: RPC: Port mapper failure - Unable to receive: errno 111 (Connection refused)
[root@node3 ~]# service nfs start
启动 NFS 服务:                                            [确定]
启动 NFS mountd:                                          [失败]
启动 NFS 守护进程:rpc.nfsd: writing fd to kernel failed: errno 111 (Connection refused)
rpc.nfsd: unable to set any sockets for nfsd[失败]
[root@node3 ~]# service rpcbind start
正在启动 rpcbind:                                         [确定]
[root@node3 ~]# service nfs start
启动 NFS 服务:                                            [确定]
启动 NFS mountd:                                          [确定]
启动 NFS 守护进程:                                        [确定]
正在启动 RPC idmapd:                                      [确定]
[root@node3 ~]# showmount -e 192.168.1.198
Export list for 192.168.1.198:
/mydata 192.168.1.0/24

4、本地挂载lvm逻辑卷

[root@node3 ~]# mount /dev/myvg/mydata /mydata/
[root@node3 ~]# ll /mydata/
总用量 16
drwx------ 2 root root 16384 12月 31 09:02 lost+found

如果以上都没有问题的话,接下来我们就为安装配置mysql做准备!!!

七、安装配置MySQL

1、node3节点上创建用户

[root@node3 ~]# useradd -g mysql -u 3306 -s /sbin/nologin -M mysql
[root@node3 ~]# id mysql
uid=3306(mysql) gid=3306(mysql) 组=3306(mysql)

2、赋予挂载的lvm逻辑卷的宿主和组为mysql

[root@node3 ~]# chown -R mysql.mysql /mydata/
[root@node3 ~]# ll -d /mydata/
drwxr-xr-x 3 mysql mysql 4096 12月 31 09:02 /mydata/

到了这里NFS的配置基本就差不多了。接下来我们在node1节点上安装配置mysql服务

node1:

1、创建用户
[root@node1 ~]# groupadd -g 3306 mysql
[root@node1 ~]# useradd -g mysql -u 3306 -s /sbin/nologin -M mysql
[root@node1 ~]# id mysql
uid=3306(mysql) gid=3306(mysql) 组=3306(mysql)2、解压MySQL安装包
[root@node1 ~]# tar xf mysql-5.6.12-linux-glibc2.5-x86_64.tar.gz -C /usr/local/
[root@node1 ~]# ln -sv /usr/local/mysql-5.6.12-linux-glibc2.5-x86_64 /usr/local/mysql
"/usr/local/mysql" -> "/usr/local/mysql-5.6.12-linux-glibc2.5-x86_64"3、赋予MySQL安装包权限
[root@node1 ~]# chown -R root.mysql /usr/local/mysql/
[root@node1 ~]# ll /usr/local/mysql/
总用量 76
drwxr-xr-x  2 root mysql  4096 12月 31 09:15 bin
-rw-r--r--  1 root mysql 17987 6月  20 2013 COPYING
drwxr-xr-x  3 root mysql  4096 12月 31 09:16 data
drwxr-xr-x  2 root mysql  4096 12月 31 09:16 docs
drwxr-xr-x  3 root mysql  4096 12月 31 09:16 include
-rw-r--r--  1 root mysql  7469 6月  20 2013 INSTALL-BINARY
drwxr-xr-x  3 root mysql  4096 12月 31 09:16 lib
drwxr-xr-x  4 root mysql  4096 12月 31 09:15 man
drwxr-xr-x 10 root mysql  4096 12月 31 09:16 mysql-test
-rw-r--r--  1 root mysql  2496 6月  20 2013 README
drwxr-xr-x  2 root mysql  4096 12月 31 09:16 scripts
drwxr-xr-x 28 root mysql  4096 12月 31 09:15 share
drwxr-xr-x  4 root mysql  4096 12月 31 09:16 sql-bench
drwxr-xr-x  3 root mysql  4096 12月 31 09:16 support-files4、挂载NFS的共享目录并创建MySQL数据存放目录
[root@node1 ~]# mkdir /mydata
[root@node1 ~]# mount -t nfs4 192.168.1.198:/mydata /mydata
[root@node1 ~]# ll /mydata/
总用量 16
drwx------ 2 mysql mysql 16384 12月 31 09:02 lost+found
[root@node1 ~]# mkdir /mydata/data
[root@node1 ~]# ll /mydata/
总用量 20
drwxr-xr-x 2 mysql mysql  4096 12月 31 09:24 data
drwx------ 2 mysql mysql 16384 12月 31 09:02 lost+found5、初始化数据库
[root@node1 ~]# yum -y install libaio
[root@node1 ~]# /usr/local/mysql/scripts/mysql_install_db --user=mysql --datadir=/mydata/data/ --basedir=/usr/local/mysql/6、拷贝配置文件、服务启动脚本文件
[root@node1 ~]# cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf
cp:是否覆盖"/etc/my.cnf"? yes
[root@node1 ~]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld7、修改MySQL配置文件
[root@node1 ~]# vim /etc/my.cnf
datadir = /mydata/data
innodb_file_per_table = 18、启动服务并登陆测试
[root@node1 ~]# service mysqld start
Starting MySQL.. SUCCESS!
[root@node1 ~]# /usr/local/mysql/bin/mysql -e "show databases;"
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
+--------------------+9、拷贝MySQL配置文件、启动服务脚本文件到node2节点上
[root@node1 ~]# scp /etc/init.d/mysqld /etc/init.d/mysqld
[root@node1 ~]# scp /etc/init.d/mysqld node2:/etc/init.d/mysqld10、停止MySQL服务
[root@node1 ~]# service mysqld stop
Shutting down MySQL.. SUCCESS!

node2:

1、创建用户
[root@node2 ~]# groupadd -g 3306 mysql
[root@node2 ~]# useradd -g mysql -u 3306 -s /sbin/nologin -M mysql
[root@node2 ~]# id mysql
uid=3306(mysql) gid=3306(mysql) 组=3306(mysql)2、解压MySQL安装包
[root@node2 ~]# tar xf mysql-5.6.12-linux-glibc2.5-x86_64.tar.gz -C /usr/local/
[root@node2 ~]# ln -sv /usr/local/mysql-5.6.12-linux-glibc2.5-x86_64 /usr/local/mysql
"/usr/local/mysql" -> "/usr/local/mysql-5.6.12-linux-glibc2.5-x86_64"3、赋予MySQL安装包权限
[root@node2 ~]# chown -R root.mysql /usr/local/mysql/
[root@node2 ~]# ll /usr/local/mysql/
总用量 76
drwxr-xr-x  2 root mysql  4096 12月 31 09:15 bin
-rw-r--r--  1 root mysql 17987 6月  20 2013 COPYING
drwxr-xr-x  3 root mysql  4096 12月 31 09:16 data
drwxr-xr-x  2 root mysql  4096 12月 31 09:16 docs
drwxr-xr-x  3 root mysql  4096 12月 31 09:16 include
-rw-r--r--  1 root mysql  7469 6月  20 2013 INSTALL-BINARY
drwxr-xr-x  3 root mysql  4096 12月 31 09:16 lib
drwxr-xr-x  4 root mysql  4096 12月 31 09:15 man
drwxr-xr-x 10 root mysql  4096 12月 31 09:16 mysql-test
-rw-r--r--  1 root mysql  2496 6月  20 2013 README
drwxr-xr-x  2 root mysql  4096 12月 31 09:16 scripts
drwxr-xr-x 28 root mysql  4096 12月 31 09:15 share
drwxr-xr-x  4 root mysql  4096 12月 31 09:16 sql-bench
drwxr-xr-x  3 root mysql  4096 12月 31 09:16 support-files4、挂载NFS的共享目录
[root@node2 ~]# mkdir /mydata
[root@node2 ~]# mount -t nfs4 192.168.1.198:/mydata /mydata
[root@node2 ~]# ll /mydata/
总用量 20
drwxr-xr-x 5 mysql mysql  4096 12月 31 09:28 data
drwx------ 2 mysql mysql 16384 12月 31 09:02 lost+found5、启动MySQL服务
[root@node2 ~]# service mysqld start
Starting MySQL. ERROR! The server quit without updating PID file (/mydata/data/node2.test.com.pid).6、查看日志
[root@node2 data]# tail -f node2.test.com.err
141231 09:39:10 mysqld_safe Starting mysqld daemon with databases from /mydata/data
/usr/local/mysql/bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
141231 09:39:10 mysqld_safe mysqld from pid file /mydata/data/node2.test.com.pid ended哦!原来是没有安装libaio包
[root@node2 ~]# yum -y install libaio再次启动MySQL服务
[root@node2 ~]# service mysqld start
Starting MySQL.. SUCCESS!

八、启动Heartbeat服务

1、在node1和node2上启动hearbeat服务

[root@node1 ~]# service heartbeat start
Starting High-Availability services: INFO:  Resource is stopped
Done.[root@node1 ~]# ssh node2 "service heartbeat start"
Starting High-Availability services: 2014/12/31_09:50:20 INFO:  Resource is stopped
Done.

2、查看vip、共享挂载、MySQL服务

[root@node1 ~]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host loinet6 ::1/128 scope host valid_lft forever preferred_lft forever
2: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000link/ether 00:0c:29:c7:14:97 brd ff:ff:ff:ff:ff:ffinet 192.168.1.196/24 brd 255.255.255.255 scope global eth1inet 192.168.1.223/24 brd 255.255.255.255 scope global secondary eth1inet6 fe80::20c:29ff:fec7:1497/64 scope link valid_lft forever preferred_lft forever
[root@node1 ~]# df -h
文件系统          容量  已用  可用 已用%% 挂载点
/dev/mapper/VolGroup-lv_root16G  2.7G   12G  19% /
tmpfs                 495M     0  495M   0% /dev/shm
/dev/sda1             485M   32M  428M   7% /boot
192.168.1.198:/mydata8.9G  259M  8.2G   4% /mydata
[root@node1 ~]# service mysqld statusSUCCESS! MySQL running (3650)

3、赋予授权用户权限

因为涉及到MySQL的高可用,那么客户端肯定要远程登录MySQL,所以首先赋予远程登录的权限。

[root@node1 ~]# /usr/local/mysql/bin/mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.6.12 MySQL Community Server (GPL)Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql> grant all privileges on *.* to root@'%';
Query OK, 0 rows affected (0.05 sec)mysql> flush privileges;
Query OK, 0 rows affected (0.03 sec)mysql> \q
Bye

九、测试MySQL服务的高可用

1、测试前的准备工作

注释:卸载node1和node2节点的挂载共享目录、停止MySQL服务并开机不自启动

node1:

[root@node1 ~]# df
文件系统             1K-块      已用      可用 已用% 挂载点
/dev/mapper/VolGroup-lv_root16134560   2786364  12528588  19% /
tmpfs                   506272         0    506272   0% /dev/shm
/dev/sda1               495844     32418    437826   7% /boot
[root@node1 ~]# chkconfig mysqld off
[root@node1 ~]# chkconfig --list mysqld
mysqld          0:关闭    1:关闭    2:关闭    3:关闭    4:关闭    5:关闭    6:关闭
[root@node1 ~]# service mysqld statusERROR! MySQL is not running

node2:

[root@node2 ~]# df
文件系统             1K-块      已用      可用 已用% 挂载点
/dev/mapper/VolGroup-lv_root16134560   2786256  12528696  19% /
tmpfs                   506272         0    506272   0% /dev/shm
/dev/sda1               495844     32418    437826   7% /boot
[root@node2 ~]# chkconfig mysqld off
[root@node2 ~]# chkconfig --list mysqld
mysqld          0:关闭    1:关闭    2:关闭    3:关闭    4:关闭    5:关闭    6:关闭
[root@node2 ~]# service mysqld statusERROR! MySQL is not running

2、启动node1和node2节点的hearbeat服务并查看相关信息

[root@node1 ~]# ssh node2 "service heartbeat restart"
Stopping High-Availability services: Done.Waiting to allow resource takeover to complete:Done.Starting High-Availability services: 2014/12/31_10:27:01 INFO:  Resource is stopped
Done.[root@node1 ~]# service heartbeat restart
Stopping High-Availability services: Done.Waiting to allow resource takeover to complete:Done.Starting High-Availability services: INFO:  Resource is stopped
Done.[root@node1 ~]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host loinet6 ::1/128 scope host valid_lft forever preferred_lft forever
2: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000link/ether 00:0c:29:c7:14:97 brd ff:ff:ff:ff:ff:ffinet 192.168.1.196/24 brd 255.255.255.255 scope global eth1inet 192.168.1.223/24 brd 255.255.255.255 scope global secondary eth1inet6 fe80::20c:29ff:fec7:1497/64 scope link valid_lft forever preferred_lft forever
[root@node1 ~]# df -H
文件系统          容量  已用  可用 已用%% 挂载点
/dev/mapper/VolGroup-lv_root17G   2.9G    13G  19% /
tmpfs                  519M      0   519M   0% /dev/shm
/dev/sda1              508M    34M   449M   7% /boot
192.168.1.198:/mydata9.6G   272M   8.8G   4% /mydata
[root@node1 ~]# service mysqld statusSUCCESS! MySQL running (4853)

3、客户端连接测试

首先:当vip在node1上的时候,登录测试

其次:停止node1上的heartbeat服务,或者直接关机,客户端登录验证

[root@node1 ~]# init 0

node2

[root@node2 ha.d]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host loinet6 ::1/128 scope host valid_lft forever preferred_lft forever
2: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000link/ether 00:0c:29:ad:9f:36 brd ff:ff:ff:ff:ff:ffinet 192.168.1.197/24 brd 255.255.255.255 scope global eth1inet 192.168.1.223/24 brd 255.255.255.255 scope global secondary eth1inet6 fe80::20c:29ff:fead:9f36/64 scope link valid_lft forever preferred_lft forever
[root@node2 ha.d]# df
文件系统             1K-块      已用      可用 已用% 挂载点
/dev/mapper/VolGroup-lv_root16134560   2786276  12528676  19% /
tmpfs                   506272         0    506272   0% /dev/shm
/dev/sda1               495844     32418    437826   7% /boot
192.168.1.198:/mydata9289088    264704   8552512   4% /mydata
[root@node2 ha.d]# service mysqld statusSUCCESS! MySQL running (6494)

这个模拟测试的意思就是:

无论你在node1节点上是关闭hearbeat服务还是直接关闭主机电源都不影响客户端正常的使用数据库系统;

反过来也就是说:

无论你在node2节点上是关闭hearbeat服务还是直接关闭电源也都不会影响客户端正常的使用数据库系统。

不足之处,虽然通过Hearbeat对MySQl服务做了高可用,无论是对node1节点进行操作还是对node2节点进行操作,都不会影响数据库系统的使用,但是如果node3节点出现了故障,那么我们的数据库系统就无法使用了。所以,我就想起了之前在网上看了一篇技术性文章MFS,似乎是NFS的升级版,可以解决NFS的单点故障,这也很大程度上的弥补了架构的不足,我也会在后续章节中介绍MFS的使用。

这里有一点十分重要,也就是这一点困扰了我很长一段时间:

NFS有四个版本 V1版本是sun公司内部使用的,V2是第一个公开使用的版本,V3是目前主流的版本也是RedHat 5.x自带的默认版本,但是在RedHat 6.x上NFS的版本却变成了V4版本,V4版本在前版本的基础上做了很大的补充,如果你还是用V3的方式去挂载NFS共享目录,那么你就会走到一个误区,导致后续的实验无法进行,至于NFS V4的介绍可以参考链接的相关资料

http://www.cyberciti.biz/faq/centos-fedora-rhel-nfs-v4-configuration/

如有不足之处,希望朋友指出。谢谢

转载于:https://blog.51cto.com/467754239/1597624

CentOS 6.4 Heartbeat+mysql+nfs实现高可用的mysql集群相关推荐

  1. MyCAT+MySQL 搭建高可用企业级数据库集群

    第1章 课程介绍 课程介绍 1-1 MyCAT导学 试看 1-2 课程介绍 第2章 MyCAT入门 这一章中,我们将回顾了垂直切分,水平切分,分库分表等基础概念,然后快速回如何安装和启动MyCAT的, ...

  2. 轻松实现基于Heartbeat的高可用web服务集群

    高可用集群就是为了保证某项服务能够时时在线,我们可以通过几个9来衡量一个高可用集群提供服务的稳定性,例如5个9的高可用集群必须保证服务一年在线的时间占99.999%,也就是说一年的时间中仅允许服务电线 ...

  3. win2012故障转移mysql集群_Windows 2012 系统搭建高可用故障转移集群

    Windows 2012 系统搭建高可用故障转移集群 一.故障转移集群介绍 1.1系统介绍 故障转移群集是针对具有长期运行的内存中状态或具有大型的.频繁更新的数据状态的应用程序而设计.这些应用程序称为 ...

  4. 汇总-13台虚拟机搭建一个高可用负载均衡集群架构

    要求 用13台虚拟机搭建一个高可用负载均衡集群架构出来,并运行三个站点,具体需求如下. 设计你认为合理的架构,用visio把架构图画出来 搭建lnmp.tomcat+jdk环境 三个站点分别为:dis ...

  5. RHCS套件实现高可用负载均衡集群(三)——共享存储

    注:此博文在博文"RHCS套件实现高可用负载均衡集群(二)"的基础上完成 实验开始前设置实验环境 target端配置--server3 [root@server3 ~]# yum ...

  6. Keepalived+Nginx实现高可用负载均衡集群

    转载自 https://www.cnblogs.com/mrlapulga/p/6857294.html 一 环境介绍 1.操作系统 CentOS Linux release 7.2.1511 (Co ...

  7. 总结 Underlay 和 Overlay 网络,在k8s集群实现underlay网络,网络组件flannel vxlan/ calico IPIP模式的网络通信流程,基于二进制实现高可用的K8S集群

    1.总结Underlay和Overlay网络的的区别及优缺点 Overlay网络:  Overlay 叫叠加网络也叫覆盖网络,指的是在物理网络的 基础之上叠加实现新的虚拟网络,即可使网络的中的容器可 ...

  8. Kubeadm安装高可用的K8S集群--多master单node

    Kubeadm安装高可用的K8S集群–多master单node master1 IP 192.168.1.180/24 OS Centos7.6 master2 IP 192.168.1.181/24 ...

  9. 高可用的MongoDB集群-实战篇

    1.概述 最近有同学和网友私信我,问我MongoDB方面的问题:这里我整理一篇博客来赘述下MongoDB供大家学习参考,博客的目录内容如下: 基本操作 CRUD MapReduce 本篇文章是基于Mo ...

最新文章

  1. 最小二乘法MSE 梯度下降法
  2. cin.get()和cin.getline()之间的区别
  3. java类加载器_类加载器
  4. jsp快到截止日期字体颜色变色_jsp页面中字体变色问题 - Java / Web 开发
  5. 11选5下期算法_双色球 133期预测 132中奖5+1
  6. 屏幕元素创建的基本语法
  7. c语言fread malloc,流操作之读写(fread、fwrite、fopen、malloc)
  8. 微信小程序生成分享图片踩坑大计划
  9. Apache的多处理模块MPM
  10. linux系统下Opencv4.1.1编译安装,以及增加子函数和python中调用
  11. 如何测试前台获得的数据
  12. 面试问题——fread和read的区别
  13. Atitit 获取SqlSessionFactory的三种方式 目录 第一节 DataSource 方式 1 第二节 读取sprbt Url方式 ByteArrayInputStream 1 第三节
  14. 浅谈-国标GB28181协议上下级对接国标编码要求(四)
  15. php文件如何转为ppt,pdf文件转换成ppt文件 pdf如何转为ppt
  16. 创业维艰:为啥大多数创业者都不开心?
  17. 关于es8316的音频爆破音的解决
  18. 产品推广都有哪些方法可以用?
  19. Recover a secret string from random triplets
  20. 索引的数据结构--MySQL

热门文章

  1. sublime 解决中文乱码
  2. Oracle表空间创建的sql
  3. msp430入门学习30
  4. 根据ip地址获得天气预报
  5. 股权分配中的三种定时炸弹
  6. 70%的付费率 手游还在愁什么?
  7. ADO.NET 基础学习笔记1
  8. pt-table-sync常用参考
  9. 【python基础】用字典做一个小型的查询数据库
  10. 常用binlog日志操作命令