一、RHCS简介
RHCS是Red Hat Cluster Suite的缩写,也就是红帽集群套件,RHCS是一个能够提供高可用性、高可靠性、负载均衡、存储共享且经济廉价的集群工具集合,它将集群系统中三大集群架构融合一体,可以给web应用、数据库应用等提供安全、稳定的运行环境。
更确切的说,RHCS是一个功能完备的集群应用解决方案,它从应用的前端访问到后端的数据存储都提供了一个行之有效的集群架构实现,通过RHCS提供的这种解决方案,不但能保证前端应用持久、稳定的提供服务,同时也保证了后端数据存储的安全。
RHCS提供了集群系统中三种集群构架,分别是高可用性集群、负载均衡集群、存储集群。
二、RHCS集群的功能和组成
(一).功能
RHCS的核心功能就是提供高可用集群,当其中的节点出现故障的时候,RHCS可以通过高可用性服务管理组件自动、快速从一个节点切换到另一个节点,从而保证应用持续、不间断的对外提供服务,从而实现RHCS高可用集群实现的功能。
RHCS通过LVS来提供负载均衡集群,当一个请求进来时,LVS通过负载均衡调度算法将请求进行分配,来达到负载均衡,而当一个节点出现故障的时候,LVS通过服务节点的故障转移功能自动屏蔽此节点,并其故障节点踢出去,同时将此节点的服务转移给其他节点。然后当此节点重新恢复服务后LVS会自动把其加到服务中来,从而来保证服务的稳定运行!
RHCS通过GFS(Global File System)文件系统来提供存储集群功能,GFS是集群文件系统,它允许多个服务器同时读写同一个共享存储文件系统,存储集群通过将数据放在一个共享存储上来保证数据的一致性,同时GFS通过锁管理机制来实现对数据读写的隔离,从而来保证了数据的安全性!
(二)组成
RHCS是一个集群套件,其主要包括以下几部分:
1、集群构架管理器:RHCS的基础套件,提供集群的基本功能,主要包括布式集群管理器(CMAN)、锁管理(DLM)、配置文件管理(CCS)、栅设备(FENCE)
2、rgmanager高可用服务管理器
提供节点服务监控和服务故障转移功能,当一个节点服务出现故障时,将服务转移到另一个健康节点。
3、集群管理工具
RHCS通过system-config-cluster来进行配置,这是一个基于图形界面的工具,可以很简单、明了的进行配置
4、负载均衡工具
RHCS通过LVS实现服务之间的负载均衡,LVS是系统内核中的套件,所有性能比较好。
5、GFS
集群文件系统,这是由RedHat公司开发的,GFS文件系统允许多个服务同时读写一个磁盘分区,通过GFS可以实现数据的集中管理,免去了数据同步和拷贝的麻烦,但GFS并不能孤立的存在,安装GFS需要RHCS的底层组件支持。
GFS2 文件系统不提供对上下文关联路径名的支持,上下文关联路径名允许您生成指向各种目的地文件或者目录的符号链接。在 GFS2 中,您可以使用 mount命令的 bind选项来实现这个功能创建一个集群 GFS2 文件系统
使用 GFS 文件系统的内核模块是 gfs.ko GFS2 文件系统在以下方面提供改进的文件系统性能: •在大量使用单一目录时有较好的性能。 •更快的同步 I/O 操作 •更快的缓存读取(无锁定消耗) •对预先分配的文件有更快的直接 I/O (提供合理的较大 I/O 值,比如 4M 大的块) •普遍更快的 I/O 操作 •执行 df命令的速度更快,因为 statfs调用的速度更快。 •与 GFS 相比,我们改进了 atime模式以减少 atime生成的写入 I/O 操作数量。 GFS2 文件系统在以下方面提供更广泛和主流的支持: •GFS2 是上游内核(整合到 2.6.19)的一部分。 •GFS2 支持以下特性: •SELinux 扩展的属性。 •lsattr() 和 chattr() 属性是通过标准 ioctl() 调用设置的。 •纳秒时间戳 GFS2 为文件系统的内在效率提供以下改进。 •GFS2 使用更少的内核内存 •GFS2 需要非元数据生成数 分配 GFS2 元数据不需要读取。多日志中的元数据块副本是由从锁定释放前的日志中调用的块管理的。 •GFS2 的日志管理程序更为简单,它对未链接的内节点或者配额修改一无所知 •gfs2_grow和 gfs2_j
6、Cluster Logical Volume Manager
Cluster逻辑卷管理,即CLVM,是LVM的扩展,这种扩展允许cluster中的机器使用LVM来管理共享存储,但是配置之前需要开启lvm支持集群功能。
7、ISCSI
iSCSI是一种在Internet协议上,利用tcp/ip机制对fc、fc-xx等进行封装后在网络中进行传输。isici是基于C/S架构的,数据首先被封装成scsi报文,再封装成iscsi报文,最后封装tcp/ip报文进行传输!iscsi是基于tcp的,监听在3260上,通过3260端口向外提供tcp/ip的服务的,isisc的会话是一直保存建立的,直到会话介绍再断开。RHCS可以通过ISCSI技术来导出和分配共享存储的使用。
三、RHCS的架构环境和架构图
RedHat Enterprise Linux 6.5
资源分配:
1
2 3
4
|
node1:
172.25
.
50.1
<--->RS-web1<--->hostname server1
node2:
172.25
.
50.2
<--->RS-web2<--->hostname server2
node4:
172.25
.
50.4
<--->Target+scis<--->hostname server4
VIP :
172.25.50.100
|
架构图如下:
四.实现存储资源的添加
生产环境下,存储都不在结点机上,而是一台数据库服务器其他的服务器上,现在使用server2作为存储服务器,做一个iscsi网络分享存储。
server2添加8G硬盘
(一)配置server2(存储设备)
yum install -y scsi-*
vim /etc/tgt/targets.conf
backing-store /dev/vdb 设置分享的区
initiator-address 172.25.50.1 设置可以连接的设备
initiator-address 172.25.50.4 这里可以设置多个设备,此次实验设置两个集群节点即可
/etc/init.d/tgtd start开启服务
(二)配置server1和server4(集群节点)
yum install -y iscsi-*
iscsiadm -m discovery -t st -p 172.25.50.2 告诉本机存储模块的位置
iscsiadm -m node -l 登陆模块
进行分区:
fdisk -cu /dev/sda n-p-t-p-w #对共享存储做分区 (分出一个8G的 LVM 的分区)
pvcreate /dev/sda1
vgcreate clustervg /dev/sda1
lvcreate -L +4G -n demo cluster_vg
mkfs.ext4 /dev/cluster_vg/demo 格式化为ext4文件系统
(三)gfs2文件类型创建(两个后端资源可同步)
iscsiadm -m discovery -t st -p 172.25.50.2
iscsiadm -m node -l 登入
mkfs.gfs2 -j 3 -p lock_dlm -t wrh_ha:mygfs2 /dev/clustervg/demo 格式化/dev/clustervg/demo为gfs2类型
vim /etc/fstab 编写开机自动挂载文件(注意:gfs2 是网络类型,要添加 _netdev )
UUID="7333efbc-c142-7824-e8a4-6e8cce95fd8b" /usr/local/nginx/html/ gfs2 _netdev,defaults 0 0