linux环境下ISCSI+Heartbeat+Mysql实现双机高可用

  • 基础配置
  • ISCSI目标的连接
  • heartbeat的安装以及配置
  • Mysql的安装及配置


实验用到两个CentOS(6.10final)作为节点,一个freenas(版本随意,作为ISCSI的服务器),三个虚拟机都需要两张网卡

基础配置

修改hosts文件
vi /etc/hosts

192.168.116.232  node1
10.1.1.1 priv1
192.168.116.233  node2
10.1.1.2 priv2

修改主机名
hostname node*   // 节点1为node1  节点2位node2
vi /etc/sysconfig/network
修改后要使用uname -a命令查看,确保修改成功

freenas提供给对外的接口为192.168.116.131

vcs双机mysql_mysql

ISCSI目标的连接

首先要安装客户端软件
#yum install iscsi*

安装完成后,使用iscsiadm管理工具进行操作

首先要发现iscsi连接目标

vcs双机mysql_mysql_02

然后进行连接

vcs双机mysql_linux_03

连接成功后可以使用fdisk-l命令查看 会发现硬盘/dev/sdb1

最后因为本次实验可能会需要多次重启,所以设置一个自动挂载

vcs双机mysql_vcs双机mysql_04

  • 注意两个节点都需要配置,且两个节点分别配置的时候最好先将另外一个关机
  • 这里没有格式化磁盘和挂载是因为配置高可用服务后,这些步骤都由配置文件用脚本完成

heartbeat的安装以及配置

因为centOS 6.x 无法直接安装heartbeat,需先安装epel源

wget http://mirrors.sohu.com/fedora-epel/6/x86_64/epel-release-6-8.noarch.rpm
rpm -ivh epel-release-6-8.noarch.rpm

接着就可以安装heartbeat

yum -y install heartbeat*

这里由系统下载所有依赖包,所有提示都选择y

安装完成后移动到heartbeat目录下,将配置文件、资源文件、认证文件拷贝到/etc/ha.d目录下

cd /usr/share/doc/heartbeat-3.0.4/
cp ha.cf haresources authkeys /etc/ha.d

接着移动到ha.d目录下修改这三个文件

vi authkeys

vcs双机mysql_linux_05

vi ha.cf

#debugfile /var/log/ha-debug    #用于记录 heartbeat 的调试信息,这里不开启
logfile /var/log/ha-log                #指名heartbeat的日志存放位置。 
logfacility   local0                       #如果未定义上述的日志文件,那么日志信息将送往local0
keepalive 2                                #发送心跳报文的间隔
deadtime 30                              #指定若备用节点在30秒内没有收到主节点的心跳信号,则立即接管主节点的服务资源。 
warntime 10                              #指定心跳延迟的时间为10秒。
initdead 120                            
udpport 694                                #设置广播/单播通信使用的端口,694为默认使用的端口号 
ucast eth0 192.168.116.232        #采用网卡eth0的udp单播来组织心跳,后面跟的IP地址应为双机对方的IP地址。 
auto_failback on                       #用来定义当主节点恢复后,是否将服务自动切回。
node node1                                #主节点主机名,可以通过命令"uanme -n"查看。 
node node2                                #备用节点主机名。 
ping 192.168.116.2                    #选择ping的节点,ping节点选择的越好,HA集群就越强壮,这里选择网关

最后配置资源文件

vi haresources

node1 IPaddr::192.168.116.100/24/eth0:1  Filesystem::/dev/sdb1::/mnt/iscsi::ext4

配置完成后一定要记得给认证文件设置限权

chmod 600 authkeys

然后把这三个文件发送给另外一个节点

scp ha.cf haresources authkeys node2:/etc/ha.d

只需要修改ha.cf下ucast的IP地址即可

这个时候就可以开启heartbeat服务进行测试

service heartbeat start

一定要先开主节点的服务然后开次节点

Mysql的安装及配置

yum -y install mysql*
service mysqld start
mysql -u root mysql

进入mysql后可以对mysql进行一些基本操作,我这里修改密码并且允许远程连接

vcs双机mysql_服务器_06


vcs双机mysql_服务器_07


每次配置完成后一定要刷新

然后可以用数据库管理工具进行测试

vcs双机mysql_服务器_08


记得进行远程连接时要关闭防火墙

iptables -F 
setenforce 0

测试好mysql功能后,把mysql的数据转移到共享磁盘上(即挂载点上)
并且需要给一个限权

cp  -R /var/lib/mysql /mnt/iscsi/
chown -R mysql:mysql /mnt/iscsi/mysql

上面这个操作只需要主节点转移就可以了,因为使用的是共享磁盘

然后需要配置/etc/my.cnf,修改数据路径

vcs双机mysql_linux_09

接着需要创建一个软连接

vcs双机mysql_服务器_10


上面这两步操作两个节点均需要配置

最后只需要在两个节点的/etc/ha.d/haresources资源文件中加入mysqld服务

node1 IPaddr::192.168.116.100/24/eth0:1Filesystem::/dev/sdb1::/mnt/iscsi::ext4 mysqld

配置完成

PS:配置过程中可能会遇到其他问题,还需耐心解决

本人处于学习摸索过程中,如有不足之处,还请指正