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

简介:

集群架构图 :

                                    主节点(172.16.31.10)

客户端(172.16.31.12) Vitual IP(172.16.31.166)                            NFS IP(172.16.31.12)

                                    从节点(172.16.31.11)


注:心跳信息传递借助eth0网卡实现



网络以及IP地址规划如下所示:

节点类型     IP地址规划          主机名      类型

主用节点     eth0:172.16.31.10     node1       Public IP

          eth0:0 :172.16.31.180  Virtual IP

备用节点     eth0:172.16.31.11     node2       Public IP

存储节点     eth0:172.16.31.12     nfs




一.关闭heartbeat服务

node1和node2都需要关闭:

# service heartbeat stop

Stopping High-Availability services:

Done.

 

 

二.正式开始配置heartbeat v2 版本的CRM

开启heartbeat v2版本的CRM,只需要在ha.cf主配置文件末尾加入“crm  on”即可,而且haresources文件设置的资源就会失效。

[root@node1 ~]# cat /etc/ha.d/ha.cf |grep-v ^#

logfacility     local0

mcast eth0  225.131.31.23 694 1 0

auto_failback on

node   node1.stu31.com

node   node2.stu31.com

ping  172.16.0.1

crm on

 

 

三.集群配置

1.由于我们需要使用图形化界面配置heartbeatv2集群,而安装heartbeat后会生成一个hacluster用户,我们需要设置密码,可以让我们来访问图形化界面:

node1和node2主机都要配置:

# echo oracle |passwd --stdin hacluster

 

2.使用Linux的GNONE桌面进入heartbeatv2 版本的图形化CRM配置:

首先开启heartbeat服务:

[root@node1 ~]# /etc/init.d/heartbeat  start ; ssh node2 'service heartbeat start'

logd is already running

Starting High-Availability services:

Done.

  

logd is already running

Starting High-Availability services:

Done.

 

由于无资源配置文件,启动非常快速。

 

查看监听端口:

[root@node1 ~]# ss -tunl |grep 5560

tcp   LISTEN     0      10                     *:5560                  *:*

 


3.图形化配置

登录GUI界面

wKiom1SnrwmT6jn-AACMIuAJanM601.jpg

输入用户名密码登录:

wKioL1Snr-CiK_-iAAEGsXYueDU052.jpg

4.新建资源类型webip:定义VIP

wKioL1SnsBTT5J33AAGuavXTP0o894.jpg

wKiom1Snr0PjphoQAAK0S6Wh4ow659.jpg

 

wKiom1Snr26DCuEPAALC4x4Id5o058.jpg

 


添加完成后就点击Add即可:

wKioL1SnsD3CECI6AALhr0466eY211.jpg

 

5.新建资源类型webserver,定义httpd服务

wKiom1Snr5Sw8blIAAJaZDEs-88387.jpg

 

完成后启动资源测试:启动webip和webserver即可

wKiom1Snr-ayjFVTAAJs51UTcEk768.jpg

 

启动完成,但是资源未一起在同一节点启动,符合公平分配原则,我们需要使用排列约束,分组,顺序约束实现资源的启动节点。

 wKioL1SnsMmBOdPkAAIUrSd6Mx4563.jpg

6.协同限制配置

wKiom1SnsErCpgZdAAGukN7u4Ic579.jpg

 

设置成webip所在节点,webserver也会在那个节点启动:

wKioL1SnsSCgJu2EAAHDeanCzZ8262.jpg

效果出现,因为开始webipnode2节点启动,所以配置协同约束后,webserver自动就切换到node2启动:

wKiom1SnsIHCXPtDAALQ_-93EDY433.jpg

7.顺序约束配置:

wKioL1SnsWGhzmxSAAG357nt45Q774.jpg

 

设置先启动webip资源,然后再启动webserver资源:

wKiom1SnsL6CJ6DiAALmOs9ouR0686.jpg

 

8.位置约束:让资源偏向运行于某个节点

wKioL1SnsY6yO8lMAAHJ8hY7LAI282.jpg

wKiom1SnsOSAJof4AAHjB_XHQ4g311.jpg

表达式判断:uname  eq  node1.stu31.com ,偏向于node1节点:

wKioL1Snsa7zEJ5eAAMcjN6h9gI335.jpg

wKiom1SnsQuzztHIAALq9iKij7s747.jpg

  

9.配置NFS服务器

配置nfs服务器

[root@nfs ~]# mkdir /www/htdocs -pv

[root@nfs ~]# vim /etc/exports

www/htdocs  172.16.31.0/16(rw,no_root_squash)

 

[root@nfs ~]# service nfs start

[root@nfs ~]# showmount -e172.16.31.12                              

Export list for 172.16.31.12:

/www/htdocs 172.16.31.0/16


创建一个测试网页:

[root@nfs ~]# echo "page from nfsfilesystem" > /www/htdocs/index.html

 

客户端node1挂载nfs文件系统:

[root@node1 ~]# mount -t nfs 172.16.31.12:/www/htdocs/var/www/html/

[root@node1 ~]# ls /var/www/html/

index.html

 

访问测试:

[root@nfs ~]# curl http://172.16.31.166

page from nfs filesystem

 

卸载nfs:

[root@node1 ~]# umount /var/www/html/

 

10.使用集群图形化客户端配置添加存储资源

添加存储:

wKiom1SnsWSAFodqAAILkKc37VE566.jpg

wKioL1Snsg-RyypXAAKol5Ps5s8759.jpg


 

启动存储

 

11.协同约束配置

wKioL1SnsqaQuRdSAAOMxbch058881.jpg

 

 

顺序约束配置:

先启动webip,然后启动webstore,最后启动webserver

wKiom1SnskSTFfcxAANVM6PerXk239.jpg



查看节点IP地址:主节点在node1上

[root@node1 ~]# ip addr show

1: lo: <LOOPBACK,UP,LOWER_UP> mtu65536 qdisc noqueue state UNKNOWN

   link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

   inet 127.0.0.1/8 scope host lo

   inet6 ::1/128 scope host

      valid_lft forever preferred_lft forever

2: eth0:<BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen1000

   link/ether 08:00:27:db:35:e6 brd ff:ff:ff:ff:ff:ff

   inet 172.16.31.10/16 brd 172.16.255.255 scope global eth0

   inet 172.16.31.166/16 brd 172.16.31.255 scope global secondary eth0:0

   inet6 fe80::a00:27ff:fedb:35e6/64 scope link

      valid_lft forever preferred_lft forever

 

网页访问:

[root@nfs ~]# curl http://172.16.31.166

page from nfs filesystem

由于使用的是共享文件系统,所以访问的网页是文件系统中的资源!



本文转自 dengaosky 51CTO博客,原文链接:http://blog.51cto.com/dengaosky/1964581,如需转载请自行联系原作者

相关文章
|
关系型数据库 MySQL Go
Golang 语言 Web 框架 beego v2 之读操作(上)
Golang 语言 Web 框架 beego v2 之读操作
64 0
|
存储 关系型数据库 MySQL
Golang 语言 Web 框架 beego v2 之写操作
Golang 语言 Web 框架 beego v2 之写操作
129 0
|
JSON 缓存 Go
Golang 语言 Web 框架 beego v2 之控制器方法和输入输出数据
Golang 语言 Web 框架 beego v2 之控制器方法和输入输出数据
105 0
|
3月前
|
Java 应用服务中间件 Shell
Nginx+Keepalived+Tomcat 实现Web高可用集群
Nginx+Keepalived+Tomcat 实现Web高可用集群
105 0
|
3月前
|
负载均衡 算法 应用服务中间件
负载均衡技术在Web服务器集群中的应用
【8月更文第28天】随着互联网的发展和用户对Web服务需求的增长,单台服务器很难满足大规模访问的需求。为了提高系统的稳定性和扩展性,通常会采用Web服务器集群的方式。在这种架构中,负载均衡器扮演着至关重要的角色,它能够合理地分配客户端请求到不同的后端服务器上,从而实现资源的最优利用。
123 2
|
3月前
|
运维 Serverless API
Serverless痛点解决问题之编写并部署一个弹性高可用的 Web API如何解决
Serverless痛点解决问题之编写并部署一个弹性高可用的 Web API如何解决
52 0
|
SQL Go
Golang 语言 Web 框架 beego v2 之读操作(下)
Golang 语言 Web 框架 beego v2 之读操作(下)
84 0
|
前端开发 算法 JavaScript
Golang 语言 Web 框架 beego v2 之模板(下)
Golang 语言 Web 框架 beego v2 之模板(下)
116 0
|
SQL 缓存 开发框架
Golang 语言 Web 框架 beego v2 之模板(上)
Golang 语言 Web 框架 beego v2 之模板
75 0
|
负载均衡 监控 算法
百度搜索:蓝易云【HAProxy搭建web集群教程。】
这是一个简单的HAProxy搭建Web集群的教程。在实际应用中,还可以进行更多的配置和优化,以满足你的需求。建议在搭建之前查阅官方文档或参考其他详细的教程以获取更全面的指导。
115 3
百度搜索:蓝易云【HAProxy搭建web集群教程。】