实验环境: 虚拟机ha1:192.168.61.130 虚拟机ha2:192.168.61.132 虚拟机nfsserver:192.168.61.136 vip:192.168.61.100 目的: 使用heartbeat V2 crm(hb_gui)实现lamp+nfs+wordpress的高可用. 为了实验简便,lamp环境直接用yum配置,配置好的mysql数据库存放位置再重新挂载到nfs 注意事项: (a) .节点间时间必须同步:使用ntp协议实现;
服务端/etc/ntp.conf供参考:
driftfile /var/lib/ntp/drift restrict-6 default kod nomodify notrap nopeer noquery restrict 127.0.0.1 restrict -6 ::1 restrict 192.168.61.0 mask 255.255.255.0 nomodify restrict 0.0.0.0 mask 0.0.0.0 nomodify notrap noquery notrust server 127.127.1.0 fudge 127.127.1.0 stratum 8 server 220.130.158.71 prefer server 220.130.158.51 includefile /etc/ntp/crypto/pw keys /etc/ntp/keys
注意:设置重启服务后一定要等10-15分钟再尝试同步,命令:ntpdata 主机名,对比两
机时间是否同步命令:data;ssh 192.168.61.130 ‘data’
(b) .节点间需要通过主机名互相通信,必须解析主机至IP地址;
(1) 建议名称解析功能使用hosts文件来实现;
(2) 通信中使用的名字与节点名字必须保持一致:“uname -n”命令,或“hostname”展示出的名字
保持一致;
(c) .建立各节点之间的root用户能够基于密钥认证;
# ssh-keygen -t rsa -P ''
#ssh-copy-id -i /root/.ssh/id_rsa.pub root@HOSTNAME
(d) .一定要确保SELINUX关闭,iptables清空
注意:定义成为集群服务中的资源,一定不能开机自动启动;因为它们将由crm管理; nfsserver设置共享存储 1. 建立mysql数据库存储目录: mkdir /mysqldata mkdir /wordpress 2. 发布: vim /etc/exports添加 /mysqldata192.168.61.0/24(rw,no_root_sqlash) /wordpress192.168.61.0/24(rw,no_root_sqlash) 3. 启动nfs: service nfs start ha1配置 1. yum -y install php php-mysqlmysql-server mysql 安装后的php配置文件(yum 安装的php默认用插件模式): /etc/httpd/conf.d/php.conf 安装后的mysql: /var/lib/mysql/ 默认的数据库文件存放位置 servicemysqld start servicehttpd start 2.测试php: (a). vim/var/www/html/index.php 添加一下内容: <?phpphpinfo(); ?> (b). 浏览网页http://localhost/index.php 显示php状态信息即为成功安装 3.测试mysql 输入mysql -u root登陆,顺便修改密码,这里为123456 SET PASSWORDFOR 'root'@'localhost'=PASSWORD('123456'); 4.转移mysql数据库到nfs (a).先停止数据库服务 servicemysqld stop (b).复制原有数据库信息到nfs scp -r/var/lib/mysql/* 192.168.61.136:/mysqldata (c).删除原有数据库信息 rm -rf/var/lib/mysql/* (d).挂载nfs mount -tnfs 192.168.61.136:/mysqldata /var/lib/mysql/ (e).修改权限 chown -Rmysql:mysql /var/lib/mysql/* (f).重新启动mysql服务测试 servicemysqld start 5.安装wordpress (a).先挂载mount -t nfs 192.168.61.136:/wordpress/var/www/html/ (b).下载wordpress-4.3.1-zh_CN.tar解压到/var/www/html (c).登陆mysql增加wordpress数据库和用户wordpress,密码123456 mysql -uroot -p createdatabase wordpress; GRANTALL ON *.* TO wordpress@'127.0.0.1' IDENTIFIED BY '123456'; (d).浏览器运行http://localhost/wp-admin/install.php安装 可能会提示以下错误 把内容复制下来,手动创建wp-config.php就可以了 再按要求填写一些信息, 安装成功 6.安装heartbeat V2 (a).先安装epel源,系统源没有libnet rpm -ivh epel-release-6-5.noarch.rpm (b).安装依赖包: yuminstall net-snmp-libs libnet PyXML rpm-ivh heartbeat-2.1.4-12.el6.x86_64.rpm heartbeat-pils-2.1.4-12.el6.x86_64.rpm heartbeat-stonith-2.1.4-12.el6.x86_64.rpm heartbeat-gui-2.1.4-12.el6.x86_64.rpm (c).编辑ha.cf 文件 vim /etc/ha.cf内容如下: crm on #开启crm,同时会自动禁用haresources logfacility local0#日志使用rsyslog中local0设定 keepalive 1 #监听频率,每1秒 deadtime 3 #死亡判断时间 warntime 2 #异常警告时间 mcast eth0 225.0.0.1 694 1 0 #组播地址设定 auto_failback on #修复后自动上线 node ha1 #节点设置 node ha2#节点设置 ping 192.168.61.2 #第三方仲裁设定 (d).编辑authkeys文件 auth 2 #1 crc 2 sha1HI! #密钥短语越长越随机越好 #3 md5Hello! ha2配置 1.安装heartbeat V2 (a).先安装epel源,系统源没有libnet rpm -ivh epel-release-6-5.noarch.rpm (b).安装依赖包: yuminstall net-snmp-libs libnet PyXML rpm-ivh heartbeat-2.1.4-12.el6.x86_64.rpm heartbeat-pils-2.1.4-12.el6.x86_64.rpm heartbeat-stonith-2.1.4-12.el6.x86_64.rpm heartbeat-gui-2.1.4-12.el6.x86_64.rpm (c).编辑ha.cf 文件 vim /etc/ha.cf内容如下: crm on #开启crm,同时会自动禁用haresources logfacility local0 #日志使用rsyslog中local0设定 keepalive1 #监听频率,每1秒 deadtime3 #死亡判断时间 warntime2 #异常警告时间 mcasteth0 225.0.0.1 694 1 0 #组播地址设定 auto_failbackon #修复后自动上线 node ha1 #节点设置 node ha2 #节点设置 ping192.168.61.2 #第三方仲裁设定 (d).编辑authkeys文件 auth 2 #1 crc 2 sha1HI! #密钥短语越长越随机越好 #3 md5Hello! 2. yum -y installphp php-mysql mysql-server mysql 安装后的php配置文件(yum 安装的php默认用插件模式): /etc/httpd/conf.d/php.conf 里面有 /usr/lib64/httpd/modules/libphp5.so 模块文件 安装后的mysql: /var/lib/mysql/ 默认的数据库文件存放位置 servicemysqld start mysql -uroot -p 登陆一次,查看数据库是否正确 servicehttpd start 3.测试php: 浏览网页http://localhost/index.php 显示wordpress,可以登陆留言即正常 4. 运行hb_gui设置资源 hb_gui需要一个特定用户登录到hb_gui上操作,/etc/passwd下的hacluster,我们必须为它添加密码, 因为它不允许空密码登录。 echo "123456" |passwd --stdinhacluster 每个需要运行hb_gui的节点都需要设置。 输入 hb_gui & 运行 添加资源: 先添加一个组webservice,按顺序把vip,nfs,mysqld,httpd添加进去 然后分别启动ha1和ha2的heartbeat: serviceheartbeat start 在其中一台启动hb_gui就可以看到当前的节点和资源的分配。其中一台故障,资源都会自动切换到另一台,wordpress访问实现高可用
|