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
ISCSI目标的连接
首先要安装客户端软件
#yum install iscsi*
安装完成后,使用iscsiadm管理工具进行操作
首先要发现iscsi连接目标
然后进行连接
连接成功后可以使用fdisk-l命令查看 会发现硬盘/dev/sdb1
最后因为本次实验可能会需要多次重启,所以设置一个自动挂载
- 注意两个节点都需要配置,且两个节点分别配置的时候最好先将另外一个关机
- 这里没有格式化磁盘和挂载是因为配置高可用服务后,这些步骤都由配置文件用脚本完成
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
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进行一些基本操作,我这里修改密码并且允许远程连接
每次配置完成后一定要刷新
然后可以用数据库管理工具进行测试
记得进行远程连接时要关闭防火墙
iptables -F
setenforce 0
测试好mysql功能后,把mysql的数据转移到共享磁盘上(即挂载点上)
并且需要给一个限权
cp -R /var/lib/mysql /mnt/iscsi/
chown -R mysql:mysql /mnt/iscsi/mysql
上面这个操作只需要主节点转移就可以了,因为使用的是共享磁盘
然后需要配置/etc/my.cnf,修改数据路径
接着需要创建一个软连接
上面这两步操作两个节点均需要配置
最后只需要在两个节点的/etc/ha.d/haresources资源文件中加入mysqld服务
node1 IPaddr::192.168.116.100/24/eth0:1Filesystem::/dev/sdb1::/mnt/iscsi::ext4 mysqld
配置完成
PS:配置过程中可能会遇到其他问题,还需耐心解决
本人处于学习摸索过程中,如有不足之处,还请指正