redhat6.5下RHCS+nginx的高可用集群实现

RHCS(Red Hat Cluster Suite,红帽集群套件)是Red Hat公司开发整合的一套综合集群软件组件,提供了集群系统中三种集群构架,分别是高可用性集群、负载均衡集群、存储集群,可以通过在部署时采用不同的配置,以满足你的对高可用性、负载均衡、可扩展性、文件共享和节约成本的需要。

  • 1.节点(node) 
    运行集群进程的一个独立主机,称为节点,节点是HA的核心组成部分,每个节点上运行着操作系统和集群软件服务,在集群中,节点有主次之分,分别称为主节点和备用/备份节点,每个节点拥有唯一的主机名,并且拥有属于自己的一组资源,例如,磁盘、文件系统、网络地址和应用服务等。主节点上一般运行着一个或多个应用服务。而备用节点一般处于监控状态。

  • 2.资源(resource) 
    资源是一个节点可以控制的实体,并且当节点发生故障时,这些资源能够被其它节点接管

  • 3.事件(event) 
    也就是集群中可能发生的事情,例如节点系统故障、网络连通故障、网卡故障、应用程序故障等。这些事件都会导致节点的资源发生转移,HA的测试也是基于这些事件来进行的。

  • 4.动作(action) 
    事件发生时HA的响应方式,动作是由shell脚步控制的,例如,当某个节点发生故障后,备份节点将通过事先设定好的执行脚本进行服务的关闭或启动。进而接管故障节点的资源

建立一个可以在红帽中免费使用的集群管理RHCS。

VS:server1:172.25.18.1    server4:172.25.18.4  

操作系统:Red Hat 6.5  确保两台VS时间同步

Conga是一种新的基于网络的集群配置工具,Conga是通过web方式来配置和管理集群节点的。Conga有两部分组成,分别是luci和ricci,luci安装在一*立的计算机上,用于配置和管理集群,ricci安装在每个集群节点上,Luci通过ricci和集群中的每个节点进行通信。

(1)下载ricci,另外给server1下载luci

[[email protected] ~]# yum install -y ricci luci

[[email protected] ~]# yum install -y ricii

(2)下载好之后设置开机自启,并且修改ricc密码,开启服务 vs中ricci密码一样

redhat6.5下RHCS+nginx的高可用集群实现

(3)然后在server1上开启luci,设置开机自启

chkconfig luci on      ----设置开机自启

/etc/init.d/luci start    

redhat6.5下RHCS+nginx的高可用集群实现

使用web界面进行登录, https://172.25.18.1:8084 

redhat6.5下RHCS+nginx的高可用集群实现

添加信任进行访问

redhat6.5下RHCS+nginx的高可用集群实现

输入server1的root用户和密码进入图形化界面

redhat6.5下RHCS+nginx的高可用集群实现

进入之后我们点击Manage Clusters发现其中没有集群,点击create创建一个集群名字自定义,密码为ricci的密码,选择好选项之后,点击create cluster 它会自动下载所需要的安装包并且进行重启

redhat6.5下RHCS+nginx的高可用集群实现

集群创建完毕后如下:

redhat6.5下RHCS+nginx的高可用集群实现

待两台VS重启之后,集群创建完毕,为了防止脑裂,我们在物理机上添加fence;

需要给物理机下载三个支持fence的包:

[[email protected] ~]# yum install -y fence-virtd-multicast

[[email protected] ~]# yum install -y fence-virtd-0.3.2-2.el7.x86_64

[[email protected] ~]# yum install -y fence-virtd-libvirt-0.3.2-2.el7.x86_64

安装完成后使用fence_virtd -c 命令使用交互式配置fence文件

redhat6.5下RHCS+nginx的高可用集群实现

然后执行下面的命令,选择相同回车,如果不同,则需要编辑。

redhat6.5下RHCS+nginx的高可用集群实现

redhat6.5下RHCS+nginx的高可用集群实现

redhat6.5下RHCS+nginx的高可用集群实现

重启服务查看状态

redhat6.5下RHCS+nginx的高可用集群实现

fence需要key文件

/etc/cluster/fence_xvm.key需要我们自己建立

然后生成key,key生成好后将它们发送给其余两个VS。

[[email protected] cluster]# scp fence_xvm.key   [email protected]:/etc/cluster/

redhat6.5下RHCS+nginx的高可用集群实现

然后选择添加fence

redhat6.5下RHCS+nginx的高可用集群实现

redhat6.5下RHCS+nginx的高可用集群实现

redhat6.5下RHCS+nginx的高可用集群实现

这里填server1/4的UUID或者虚拟机名字

redhat6.5下RHCS+nginx的高可用集群实现

填加服务   名字自定义

redhat6.5下RHCS+nginx的高可用集群实现

填加完成后再填加VIP

redhat6.5下RHCS+nginx的高可用集群实现

再填加httpd服务

redhat6.5下RHCS+nginx的高可用集群实现

填加web组

redhat6.5下RHCS+nginx的高可用集群实现

然后点进去,点击左下角进行填加服务(填加服务需注意顺序先后,先访问VIP,再开启httpd服务,也注意不要填加成为前一个服务的子服务,两者为同级关系)

填加完成后再进行查看

redhat6.5下RHCS+nginx的高可用集群实现

集群搭建完成,可以在网页上面直接进行管理。

nginx----实现负载均衡

下载解压nginx服务

redhat6.5下RHCS+nginx的高可用集群实现

编译之前编辑两个文件

[[email protected] nginx-1.14.0]# vim src/core/nginx.h  ##删除14行后面的内容,不显示版本号,防止黑客

redhat6.5下RHCS+nginx的高可用集群实现

[[email protected] nginx-1.14.0]# vim auto/cc/gcc     ####注释掉172行内容

redhat6.5下RHCS+nginx的高可用集群实现

下载编译的时候需要的依赖包

[[email protected] nginx-1.14.0]# yum install -y gcc pcre-devel openssl-devel

然后编译三部曲 (编译的时候填加一些nginx的服务)

redhat6.5下RHCS+nginx的高可用集群实现

make && make install

创建软连接,检测是否有错误,没错误后启动服务(nginx服务端口为80,不可与httpd同时启动)

redhat6.5下RHCS+nginx的高可用集群实现

此时访问IP可以直接访问到nginx的网页

server4做同样操作,并且用server4做负载均衡

开启服务:[[email protected] nginx]# nginx

首先创建一个nginx用户,然后编辑文件nginx.conf

redhat6.5下RHCS+nginx的高可用集群实现

配置文件第二行填写自己创建的nginx用户和组,第三行为cpu个数(也可填auto自动匹配),第13行为默认为epoll模块(可写可不写),第14行,为最大连接数,

redhat6.5下RHCS+nginx的高可用集群实现

定义两个RS的httpd网页,如下:

redhat6.5下RHCS+nginx的高可用集群实现

定义完成之后,需要再配置文件的最后进行调用

redhat6.5下RHCS+nginx的高可用集群实现

因为修改了最大连接数,所以应当编辑文件:[[email protected] conf]# vim /etc/security/limits.conf

编辑完成后重新加载nginx   : [[email protected] conf]# nginx -s reload

此时访问网页或者用真机测试,则负载均衡成功

redhat6.5下RHCS+nginx的高可用集群实现

nginx-----RHCS

将ngxin的启动关闭脚本加上执行权限,移动到/etc/init.d/目录下

redhat6.5下RHCS+nginx的高可用集群实现

刚才做的RHCS集群开启状态下,将httpd服务改为nginx服务即可

首先将web集群组状态修改为disable,然后remove掉httpd服务,重新填加为nginx服务即可

redhat6.5下RHCS+nginx的高可用集群实现