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密码一样
(3)然后在server1上开启luci,设置开机自启
chkconfig luci on ----设置开机自启
/etc/init.d/luci start
使用web界面进行登录, https://172.25.18.1:8084
添加信任进行访问
输入server1的root用户和密码进入图形化界面
进入之后我们点击Manage Clusters发现其中没有集群,点击create创建一个集群名字自定义,密码为ricci的密码,选择好选项之后,点击create cluster 它会自动下载所需要的安装包并且进行重启
集群创建完毕后如下:
待两台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文件
然后执行下面的命令,选择相同回车,如果不同,则需要编辑。
重启服务查看状态
fence需要key文件
/etc/cluster/fence_xvm.key需要我们自己建立
然后生成key,key生成好后将它们发送给其余两个VS。
[[email protected] cluster]# scp fence_xvm.key [email protected]:/etc/cluster/
然后选择添加fence
这里填server1/4的UUID或者虚拟机名字
填加服务 名字自定义
填加完成后再填加VIP
再填加httpd服务
填加web组
然后点进去,点击左下角进行填加服务(填加服务需注意顺序先后,先访问VIP,再开启httpd服务,也注意不要填加成为前一个服务的子服务,两者为同级关系)
填加完成后再进行查看
集群搭建完成,可以在网页上面直接进行管理。
nginx----实现负载均衡
下载解压nginx服务
编译之前编辑两个文件
[[email protected] nginx-1.14.0]# vim src/core/nginx.h ##删除14行后面的内容,不显示版本号,防止黑客
[[email protected] nginx-1.14.0]# vim auto/cc/gcc ####注释掉172行内容
下载编译的时候需要的依赖包
[[email protected] nginx-1.14.0]# yum install -y gcc pcre-devel openssl-devel
然后编译三部曲 (编译的时候填加一些nginx的服务)
make && make install
创建软连接,检测是否有错误,没错误后启动服务(nginx服务端口为80,不可与httpd同时启动)
此时访问IP可以直接访问到nginx的网页
server4做同样操作,并且用server4做负载均衡
开启服务:[[email protected] nginx]# nginx
首先创建一个nginx用户,然后编辑文件nginx.conf
配置文件第二行填写自己创建的nginx用户和组,第三行为cpu个数(也可填auto自动匹配),第13行为默认为epoll模块(可写可不写),第14行,为最大连接数,
定义两个RS的httpd网页,如下:
定义完成之后,需要再配置文件的最后进行调用
因为修改了最大连接数,所以应当编辑文件:[[email protected] conf]# vim /etc/security/limits.conf
编辑完成后重新加载nginx : [[email protected] conf]# nginx -s reload
此时访问网页或者用真机测试,则负载均衡成功
nginx-----RHCS
将ngxin的启动关闭脚本加上执行权限,移动到/etc/init.d/目录下
刚才做的RHCS集群开启状态下,将httpd服务改为nginx服务即可
首先将web集群组状态修改为disable,然后remove掉httpd服务,重新填加为nginx服务即可