一.RHCS

        RHCS(Red Hat Cluster Suite红帽集群套件),是多组合的软件套件,在部署时采用不同的配置,以满足对高可用性,负载均衡,可扩展性,文件共享的需求。

ricci:安装在集群的节点的接收来自 luci 管理请求的代理,端口=11111

luci:提供了管理 rhcs 集群的 图形 界面, luci 管理集群主要是通过跟 ricci 通信来完成的,端口=8084

二.nginx集群的部署

实验环境:node1:server1_IP:172.25.78.1 node2:server_IP:172.25.78.4

1.ricci和luci的安装以及配置

(1)在node1和node2安装ricci并且开启服务

redhat6.5-RHCS-ricci+luci+shared storage

(2)在node1上安装luci集群的图形管理界面

redhat6.5-RHCS-ricci+luci+shared storage

(3)ricci需要设置节点的密码

redhat6.5-RHCS-ricci+luci+shared storage

(4)在node1开启luci(可以通过节点1的8084端口访问,但要注意是https加密)

redhat6.5-RHCS-ricci+luci+shared storage

(5)在node1和node2上把luci以及ricci开机自启(防止后面做fence的时候,节点不能启动)

redhat6.5-RHCS-ricci+luci+shared storage

redhat6.5-RHCS-ricci+luci+shared storage

2.测试node1节点上的luci(https是加密的要获取证书https://172.25.78.1:8084)

(1)登陆luci

redhat6.5-RHCS-ricci+luci+shared storage

(2)以超级用户root登陆,密码是node1的root用户密码

redhat6.5-RHCS-ricci+luci+shared storage

3.配置集群的节点和fence设备

(1)创建集群(密码是之前设定的ricci的密码)

cluster name               ##集群的名称

download packages   ##下载所需的软件包并且安装

reboot node before joining cluster  ##节点加入集群后重启

enable shared storage support       ##支持存储共享(后面要做mysql的存储共享)

redhat6.5-RHCS-ricci+luci+shared storage

(2)添加节点server1和server4(节点之后会重启再次加入集群)

redhat6.5-RHCS-ricci+luci+shared storage

(3)添加fence设备(虚拟机做节点,选择多播模式,设置fence名称xvmfence)

redhat6.5-RHCS-ricci+luci+shared storage

(4)点击Nodes把server1和server4加入fence设备

redhat6.5-RHCS-ricci+luci+shared storage

redhat6.5-RHCS-ricci+luci+shared storage

cman:分布式集群管理

rgmanager:资料组管理器

clvmd:集群化的lvm逻辑卷

(5)用kvm来做fence设备(fence能防止脑裂,也就是两个节点争夺资源,其中一个节点损坏直接切断电源)

libvirtd服务一定要开启

redhat6.5-RHCS-ricci+luci+shared storage

物理机安装:fence-virtd-multicast fence-virtd-libvirt fence-virt

redhat6.5-RHCS-ricci+luci+shared storage

fence_virtd -c  ##创建隔离设备

redhat6.5-RHCS-ricci+luci+shared storage

redhat6.5-RHCS-ricci+luci+shared storage

interface  ##虚拟机和物理机的通信接口是br0

/etc/cluster/fence_xvm.key     ##生成**的位置

redhat6.5-RHCS-ricci+luci+shared storage

redhat6.5-RHCS-ricci+luci+shared storage

把**发送给两个节点和物理机建立连接

redhat6.5-RHCS-ricci+luci+shared storage

重启fence_virtd服务

redhat6.5-RHCS-ricci+luci+shared storage

(6)clustat  ##查看当前节点的状态(两个节点都在线而且正常)

redhat6.5-RHCS-ricci+luci+shared storage

cat /etc/cluster/cluster.conf      ##集群的配置文件

redhat6.5-RHCS-ricci+luci+shared storage

(7)fence隔离设备的测试(在节点server1上fence掉server4,fence设置成功)

redhat6.5-RHCS-ricci+luci+shared storage

4.配置集群的失效域(也就是节点的优先级等详细信息)

redhat6.5-RHCS-ricci+luci+shared storage

prioritized   ##一个节点失效另一个接管

restricted    ##服务只能在特定的节点上运行

NO Faliback   ##节点接管服务后一直接管,即使之前的节点恢复正常

priority   ##优先级,数字越小,优先级越大

5.配置集群的资源

(1)添加虚拟IP

redhat6.5-RHCS-ricci+luci+shared storage

(2)添加集群索控制的服务脚本(服务名称,服务在节点上的绝对路径,只要在/etc/init.d/目录下有的服务几乎都可以搭建集群,如果是自己写的脚本记得加执行权限,否则集群不能开启)

redhat6.5-RHCS-ricci+luci+shared storage

redhat6.5-RHCS-ricci+luci+shared storage

6.把资源添加进集群(没有存储时,资源的添加顺序:服务——>VIP——>服务脚本;有共享存储先加存储,再挂VIP)

Recovery  policy    Relocate          ##恢复的方式,重新添加

redhat6.5-RHCS-ricci+luci+shared storage

三.测试web集群

(1)节点正常在线,web服务已经运行在server4上(不用添加VIP,集群开启后自己添加)

clusvcadm -d  web  ##关闭web集群

clusvcadm -e  web   ##开启web集群

redhat6.5-RHCS-ricci+luci+shared storage

本来server1的优先级高,在server4开启集群web后,server1上的vip就会漂移到server4

redhat6.5-RHCS-ricci+luci+shared storage

redhat6.5-RHCS-ricci+luci+shared storage

(2)通过/proc/sysrq-trigger 控制主机

echo "b" > /proc/sysrq-trigger   # 立即重新启动计算机

echo "o" > /proc/sysrq-trigger  # 立即关闭计算机

echo "m" > /proc/sysrq-trigger  # 导出内存分配的信息 (可以用/var/log/message 查看)

echo "p" > /proc/sysrq-trigger  # 导出当前CPU寄存器信息和标志位的信息

echo "t" > /proc/sysrq-trigger  # 导出线程状态信息

echo "c" > /proc/sysrq-trigger  # 故意让系统崩溃

echo "s" > /proc/sysrq-trigger  # 立即重新挂载所有的文件系统

echo "u" > /proc/sysrq-trigger  # 立即重新挂载所有的文件系统为只读


(3)echo "c" > /proc/sysrq-trigger  # 故意让系统崩溃,节点通过fence设备正常恢复

redhat6.5-RHCS-ricci+luci+shared storage

四.nginx的7层负载(实现负载均衡)

(1)vim /usr/local/nginx/conf/nginx.conf

后端apache服务器serevr2和server3,本机的回环接口也开8080的apache端口做为报错页面,当两台后端服务都挂掉,本机接管

默认算法轮询

redhat6.5-RHCS-ricci+luci+shared storage

server name  维护的域名

redhat6.5-RHCS-ricci+luci+shared storage

(2)测试

在物理机作本地解析

redhat6.5-RHCS-ricci+luci+shared storage

轮询访问

redhat6.5-RHCS-ricci+luci+shared storage

五.基于mysql的存储共享(iscsi)

1.iscsi和mysql的安装以及部署

(1)安装iscsi在存储使用端server1和server4

redhat6.5-RHCS-ricci+luci+shared storage

redhat6.5-RHCS-ricci+luci+shared storage

(2)安装scsi的服务端在server2,提供存储

redhat6.5-RHCS-ricci+luci+shared storage

(3)安装mysql在server1和server4

redhat6.5-RHCS-ricci+luci+shared storage

redhat6.5-RHCS-ricci+luci+shared storage

(4)server2磁盘服务端开启tgtd服务

redhat6.5-RHCS-ricci+luci+shared storage

 vim /etc/tgt/targets.conf     ###tgtd的配置文件,指定磁盘使用者IP

redhat6.5-RHCS-ricci+luci+shared storage

(5)tgt-admin  -s      ##查看分享的磁盘详情

redhat6.5-RHCS-ricci+luci+shared storage

redhat6.5-RHCS-ricci+luci+shared storage

redhat6.5-RHCS-ricci+luci+shared storage

格式化未ext4文件格式
redhat6.5-RHCS-ricci+luci+shared storage

(6)登陆共享磁盘

redhat6.5-RHCS-ricci+luci+shared storage

redhat6.5-RHCS-ricci+luci+shared storage

查看 cd /var/lib/iscsi/nodes/ 有没有分享的节点

redhat6.5-RHCS-ricci+luci+shared storage

(7)测试磁盘共享是否成功

server1挂载分享的磁盘sda1 到/mnt,并且创建文件

redhat6.5-RHCS-ricci+luci+shared storage

redhat6.5-RHCS-ricci+luci+shared storage

server4也挂载共享磁盘能查看文件,磁盘共享成功

redhat6.5-RHCS-ricci+luci+shared storage

(8)mysql的数据路径在/var/lib/mysql,把/dev/sda1挂载到/var/lib/mysql,并且修改所属用户和组,这样mysql才能读写

redhat6.5-RHCS-ricci+luci+shared storage

(9)在luci图形界面添加存储共享

redhat6.5-RHCS-ricci+luci+shared storage

添加mysql的脚本资源

redhat6.5-RHCS-ricci+luci+shared storage

(10)mysql集群成功创建

VIP和磁盘资源都会在集群启动后自动添加,挂载

redhat6.5-RHCS-ricci+luci+shared storage

(11)可以挂载逻辑卷,这样可以在磁盘不够用时,拉伸磁盘

redhat6.5-RHCS-ricci+luci+shared storage

模拟环境:之前创建了2G的磁盘空间,现在不够用了

redhat6.5-RHCS-ricci+luci+shared storage

redhat6.5-RHCS-ricci+luci+shared storage

拉伸逻辑卷空间(vg不够用了,只能再次创建pv)

redhat6.5-RHCS-ricci+luci+shared storage

redhat6.5-RHCS-ricci+luci+shared storage

拉伸逻辑卷后,拉伸设备

redhat6.5-RHCS-ricci+luci+shared storage

六.也能采用GFS2共享存储

gfs2:GFS是Red Hat开发的一套集群文件系统,GFS文件系统允许多个服务同时读写一个磁盘分区,通过GFS可以实现数据的集中管理,免去了数据同步和复制的麻烦,但GFS并不能孤立的存在,安装GFS需要RHCS的底层组件支持。

mkfs.gfs2 -j 3 -p lock_dlm 集群名称:当前集群唯一  /dev/sda1          ##格式化未gfs2格式

-j:  指定日志区域的个数,有几个就能够被几个几点挂载

redhat6.5-RHCS-ricci+luci+shared storage

gfs2_tool journals /mnt           查看节点日志信息

共享存储----->VIP----->script (一定先添加存储)

redhat6.5-RHCS-ricci+luci+shared storage

redhat6.5-RHCS-ricci+luci+shared storage

redhat6.5-RHCS-ricci+luci+shared storage

写在/etc/fstab中开机自动挂载(gfs2是通过网络来读写,要设置_netdev,提示系统先开启网络在挂存储,否则主机不能开启)

redhat6.5-RHCS-ricci+luci+shared storage

相关文章: