古城堡 发表于 2019-1-7 09:28:33

HeartBeat v2实现高可用LAMP

案例:基于heartbeatv2 crm实现HA LAMP组合;要求:部署wordpress,用于编辑的文章中的任何数据在节点切换后都能正常访问;


配置HA集群的前提:

(1)先搭建需要用到的环境:
#yum install net-snmp-libs libnet PyXML
# yum install libnet
#rpm -ivh heartbeat-2.1.4-12.el6.x86_64.rpmheartbeat-pils-2.1.4-12.el6.x86_64.rpmheartbeat-stonith-2.1.4-12.el6.x86_64.rpm
这里的heartbeat已经做出了rpm包,libnet包在eprl源中,请确保安装epel源,网上可以下到源码包直接编译安装

node1.com IP为172.16.37.20
node2.com IP为172.16.37.21
(2)建立各节点之间的root用户能够基于密钥认证
1.Client建立公钥和私钥
# ssh-keygen -t rsa -f /root/.ssh/id_rsa -P''
2.把Client的公钥发给Server
# ssh-copy-id -i/root/.ssh/id_rsa.pub root@172.16.37.21
(3)修改hosts文件,把node1.com和node2.com加入
节点间需要通过主机名互相通信,必须解析主机至IP地址;
(a) 建议名称解析功能使用hosts文件来实现;
(b) 通信中使用的名字与节点名字必须保持一致:“uname -n”命令,或“hostname”展示出的名字保持一致;
(4)修改主机名
# vim/etc/sysconfig/network
(5)节点间时间必须同步:使用ntp协议实现;
# ntpdatetime.windows.com;ssh 172.16.37.21 'ntpdate time.windows.com'
(6)开启多播模式
#ip link set eth0 multicast on|off
http://s3.运维网.com/wyfs02/M02/6D/98/wKioL1VnSrGjYeypAAFxgIs7loU708.jpg
(7)注意:定义成为集群服务中的资源,一定不能开机自动启动;因为它们将由crm管理;
#chkconfig httpd off
# chkconfig mysqldoff
(8) 考虑仲裁设备是否会用到;

修改配置文件
/etc/ha.d目录下:
# cp/usr/share/doc/heartbeat-2.1.4/ha.cf authkeys /etc/ha.d/

ha.cf: 主配置文件,定义各节点上的heartbeat HA集群的基本属性;
authkeys:集群内节点间彼此传递消息时使用加密算法及密钥;
haresources: 为heartbeat v1提供资源管理器配置接口;v1版本专用的配置接口;
(1)编辑authkey文件
先用openssl生成一个随机数 # openssl rand -base64 16
#vim /etc/ha.d/authkeys
auth 2
#1crc
2 sha1 Td3P98V5kyv4+OtidCxQ2A
#3md5 Hello!
#chmod 600 authkeys
#chmod 600 /etc/ha.d/authkeys
(2)编辑ha.cf文件
#debugfile /var/log/ha-debug 是否开启调试功能,已经调试功能的文件位置
logfile       /var/log/ha-log 日志文件的保存位置
#keepalive 1每个多长时间发送一次心跳信息,默认单位为s,也支持以ms为单位
#deadtime 10在检测不到对方心跳,替换的时间
#warntime 8   警告时间
#initdead 120启动heartbeat后多长时间开始检查心跳
udpport 694基于那个端口检测心跳信息
#bcast eth0            # Linuxlinux广播的端口
mcast eth0 225.0.10.1 694 1 0 多播的地址
#ucast eth0 192.168.1.2 组播的地址
#compression    bz2 压缩传输算法         on 主节点启动是否自动切换回主节点
ping 172.16.0.1 仲裁设备,可以指向网关
#ping_group group1 10.10.10.25410.10.10.253仲裁设备组
#debug 1debug的级别
#compression_threshold 2压缩的最低大小,单位为kb
node node1.com node节点,切记,本处不能使用ip地址
node node2.com node节点,切记,本处不能使用ip地址
crm on 以crm的模块开启

为用户hacluster创建密码,在安装heartbeat-gui时,会自动安装此用户
echo 123456 |passwd --stdinhacluster

将配置好的配置文件拷到node2一份
#scp /etc/ha.d/ha.cf /etc/ha.d/authkeys node2.com:/etc/ha.d

准备nfs服务器,并使apache用户对其有读写执行的权限,并准备主页
# vim /etc/exports
/var/www/html   172.16.0.0/16(rw)
/data/database   172.16.0.0/16(rw)

用service nfsstart启动NFS服务

添加mysql用户,注意要一致
# groupadd -g 306 mysql
# useradd -g 306 -u 306 mysql

通过图形界面配置相关信息
#service heartbeat start;ssh node2.com 'service heartbeat start'
# hb_gui &



http://s3.运维网.com/wyfs02/M00/6D/98/wKioL1VnSxOAwR09AAGHs1N1I7Y514.jpg
http://s3.运维网.com/wyfs02/M00/6D/9C/wKiom1VnSYGgvjJfAALzJ6SALsE335.jpg
http://s3.运维网.com/wyfs02/M01/6D/98/wKioL1VnSxWDPowdAAKYz-qeDmc367.jpg
http://s3.运维网.com/wyfs02/M01/6D/9C/wKiom1VnSYOx8RBnAAK7Fk6RpH0957.jpg
http://s3.运维网.com/wyfs02/M02/6D/98/wKioL1VnSxfzPUJdAAJzCSHxJhY364.jpg
http://s3.运维网.com/wyfs02/M02/6D/9C/wKiom1VnSYfydO9cAAJSm-4Je28895.jpg
http://s3.运维网.com/wyfs02/M00/6D/98/wKioL1VnSxvyCAKlAAKGwok7ExU329.jpg











  




页: [1]
查看完整版本: HeartBeat v2实现高可用LAMP