1、实验环境

HA1:192.168.1.17(RHEL5.8_32bit,web server)

HA2:192.168.1.18(RHEL5.8_32bit,web server)

NFS:192.168.1.19(RHEL5.8_32bit,nfs server)

VIP:192.168.1.20

2、准备工作

<1> 配置主机名

节点名称使用/etc/hosts解析;节点名称必须跟uname -n命令的执行结果一致

HA1:

# hostname node1.ikki.com
# vim /etc/sysconfig/network
HOSTNAME=node1.ikki.com

HA2:

# hostname node1.ikki.com
# vim /etc/sysconfig/network
HOSTNAME=node2.ikki.com

<2> 配置节点ssh基于密钥方式互相通信

HA1:

# ssh-keygen -t rsa -f ~/.ssh/id_rsa -P ''
# ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.1.18

HA2:

# ssh-keygen -t rsa -f ~/.ssh/id_rsa -P ''
# ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.1.17

<3> 配置各节点基于主机名互相通信

HA1&HA2:

# vim /etc/hosts
192.168.1.17    node1.ikki.com  node1
192.168.1.18    node2.ikki.com  node2

<4> 配置各节点时间同步

HA1&HA2:

# crontab -e
*/5 * * * *     /sbin/ntpdate 202.120.2.101 &> /dev/null

3、安装Heartbeat v2

# yum --nogpgcheck localinstall perl-MailTools-1.77-1.el5.noarch.rpm
#yum--nogpgchecklocalinstall heartbeat-2.1.4-9.el5.i386.rpm heartbeat-gui-2.1.4-9.el5.i386.rpm heartbeat-pils-2.1.4-10.el5.i386.rpm heartbeat-stonith-2.1.4-10.el5.i386.rpm libnet-1.1.4-3.el5.i386.rpm

4、配置Heartbeat v2(各个节点)

# cd /etc/ha.d/
# cp /usr/share/doc/heartbeat-2.1.4/{authkeys,ha.cf,haresources} ./
# chmod 600 authkeys

<1> 配置authkeys

生成随机数:

# dd if=/dev/random count=1 bs=512 | md5sum
# vim authkeys
auth 1
1 md5 cbe6411e54d9bfbeef9cc1c48c7234fa

<2> 配置ha.cf

# vim ha.cf
keepalive 1                        # 设置1秒检测一次心跳
mcast eth0 225.0.100.19 694 1 0    # 设置心跳信息传递方式为多播
node    node1.ikki.com             # 设置各个节点名称
node    node2.ikki.com
ping 192.168.1.1                   # 使用ping通网关来判断存活状态

<3> 配置haresources(设置VIP和主节点服务)

# vim haresources
node1.ikki.com IPaddr::192.168.1.20/24/eth0 httpd

注意以上资源的顺序排列(当前资源:VIP、httpd)

5、配置WEB服务(各个节点)

# echo "<h1>node1.ikki.com<h1>" >> /var/www/html/index.html
# service httpd stop
# chkconfig httpd off

6、启动Heartbeat v2服务(在主节点HA1上启动服务并远程启动HA2上的服务)

HA1:

# service heartbeat start
# ssh node2 'service heartbeat start'

7、测试

访问http://192.168.1.20/

使用hb_standby将HA1设置为备节点进行调试:

# /usr/lib/heartbeat/hb_standby

8、搭建NFS服务(用于各节点挂载web目录)

NFS:

# vim /etc/exports
/web/htdocs     192.168.1.0/24(ro)
# service nfs start
# showmount -e 192.168.1.19
# mkdir -p /web/htdocs
# echo "<h1>nfs server<h1>" > /web/htdocs/index.html

9、停止Heartbeat v2服务并配置haresources(各个节点)

# service heartbeat stop
# ssh node2 'service heartbeat stop'
# vim /etc/ha.d/haresources
node1.ikki.com IPaddr::192.168.1.20/24/eth0 Filesystem::192.168.1.19:/web/htdocs::/var/www/html::nfs httpd

注意以上资源的顺序排列(当前资源:VIP、Filesystem、httpd)

10、启动Heartbeat v2服务并测试

HA1:

# service heartbeat start
# ssh node2 'service heartbeat start'

访问http://192.168.1.20/

转载于:https://blog.51cto.com/phenixikki/1304459

搭建基于Heartbeat v2+NFS的高可用Web集群相关推荐

  1. 项目 - 基于Docker Swarm的高可用Web集群

    目录 项目名称:基于Docker Swarm的高可用Web集群 项目环境:Docker 20.10.3,CentOS 8.2 (8台 1核1G),Ansible 2.9.17,Keepalived,N ...

  2. 03_项目-基于Docker Swarm的高可用Web集群

    文章目录 项目名称:基于Docker Swarm的高可用Web集群 网络拓扑图 数据流程图 项目环境:Docker 20.10.3,CentOS 8.2(8台 1核1G),Ansible 2.9.17 ...

  3. 项目名称:基于Docker Swarm的高可用Web集群

    文章目录 项目名称:基于Docker Swarm的高可用Web集群 网络拓扑图 数据流程图 项目环境:Docker 20.10.3,CentOS 8.2(8台 1核1G),Ansible 2.9.17 ...

  4. 基于nginx的高可用web集群

    文章目录 一.写在前面 编译下载 nginx.conf文件解析 安装好后的操作 日志问题,不同级别的错误 二.环境搭建学习 web服务器配置 错误页面跳转 IO多路复用 在nginx里部署https服 ...

  5. corosync+pacemaker+crmsh的高可用web集群的实现

    网络规划: node1:eth0:172.16.31.10/16 node2: eth0: 172.16.31.11/16 nfs:   eth0: 172.16.31.12/15 注: nfs在提供 ...

  6. heartbeat v2版CRM的高可用web集群的实现

    接上一篇文章:heartbeat v1版CRM的高可用集群的实现 架构图: 网络地址规划: 一.关闭heartbeat服务 node1和node2都需要关闭: # service heartbeat ...

  7. heartbeat v1版CRM的高可用web集群的实现

    实验环境规划: 实验环境: CentOS release 6.6(Final)  三台 IP地址: Node1: eth0:172.16.31.10/16 Node2:  eth0:172.16.31 ...

  8. 高可用NAS集群技术

    高可用NAS集群技术 目录 高可用NAS集群技术 一.前言 二.集群NAS的介绍 (一)什么是集群NAS (二)集群NAS的主流架构 (三)集群NAS的分类 三.集群存储高可用技术 (一)什么是集群高 ...

  9. 《Kubernetes部署篇:基于docker使用kubespray工具部署高可用K8S集群(国内互联网方案四)》

    文章目录 一.部署背景简介 二.部署工具介绍 三.部署方案介绍 四.部署环境信息 五.部署资源下载 六.部署准备工作 6.1.系统内核升级 6.2.设置主机名 6.3.环境初始化 6.4.ssh多机互 ...

最新文章

  1. python mac地址转换_Python MAC地址 获取,过滤,转换 Python MYSQL 数据获取,比较
  2. 浅析网络推广外包公司如何完成营销型网站建设完成网络推广外包?
  3. vue 给标签添加data属性_vue之data属性
  4. 《算法之道》精华 难解问题部分
  5. Java面向对象和类
  6. (转)关于Android中为什么主线程不会因为Looper.loop()里的死循环卡死?引发的思考,事实可能不是一个 epoll 那么 简单。...
  7. can通道采样频率_CAN波特率计算
  8. 互联网下一个风口 国务院印发《促进大数据发展行动纲要》
  9. Web前端笔试115道题(带答案及解析)
  10. c# socket 服务器端如何判断客户端掉线
  11. ZOJ 3880 Demacia of the Ancients
  12. 华为鸿蒙内涵,“鸿蒙”两个字有何真意,还得让古人来解读
  13. linux 薄膜键盘驱动,一份*级薄膜键盘的简历— HHKB 静电容 键盘
  14. html中的列表、表格、表单
  15. 朋友圈评论、点赞测试点
  16. 阅读书籍:Monte Carlo Methods(第一章 Introduction to Monte CarloMethods)
  17. 隔直电容选取及大小选择
  18. 张浩java成绩大于98分_1028学习
  19. swagger no content
  20. matlab各种潮流计算代码,基于MATLAB的潮流计算源程序代码

热门文章

  1. Halcon资料:image,region,xld三者如何转化和保存
  2. java高效率素数算法_《Core Java》里给出的算法,效率比较高。 统计2000000以内的所有的素数。...
  3. 前后端分离的跨域解决方案
  4. 20以内混合加减法100题_一年级数学20以内加减法混合运算练习题,寒假练习巩固!...
  5. Nodejs的安装及环境配置
  6. 15.基于Hadoop的数据仓库Hive第2部分
  7. 【C++】45.尽量不要在构造函数中调用函数或开启线程
  8. faster rcnn源码解读(五)之layer(网络里的input-data)
  9. error C3861: “setw”: 找不到标识符
  10. pinpoint 安装部署