2015/04/01 RHCS
一、RHCS简介
RHCS是Red Hat Cluster Suite的缩写, 也就是红帽子集群套件. RHCS是一个能够提供高可用性、高可靠性、负载均衡、存储共享且经济廉价的集群工具集合, 它将集群系统中散打集群架构融合一体, 可以给web应用、数据库应用等提供安全、稳定的运行环境。
二、RHCS集群的功能和组成
RHCS的核心功能就是提供高可用性集群, 当其中的节点出现故障的时候, RHCS可以通过高可用性服务管理组建自动、快速从一个节点切换到另一个节点, 从而保证应用持续、不间断的对外提供服务, 从而实现RHCS高可用集群实现的功能.
RHCS是一个集群套件, 其主要包括如下及部分:
1. 集群架构管理器: RHCS的基础套件, 提供集群的基本功能, 主要包括分布式集群管理器(CMAN)、锁管理(DLM)、配置文件管理(CSS)、栅设备(FENCE);
2. ramanager高可用服务管理: 提供节点服务监控和服务故障移动功能, 当一个节点服务出现故障时, 将服务转移到另一个健康节点;
3. 集群管理工具: RHCS通过system-config-cluster来进行配置, 这是一个基于图形界面的工具, 可以很简单、明了的进行配置;
4. 负载均衡工具: RHCS通过LVS实现服务之间的负载均衡, LVS是系统内核中的套件, 所有性能比较好;
5. GFS: 集群文件系统, 这是由RedHat公司开发的, GFS文件系统允许多个服务同时读写一个磁盘分区, 通过GFS可以实现数据的集中管理, 免去了数据同步和拷贝的麻烦, 但GFS并不能孤立的存在, 安装GFS需要RHCS的底层组建支持;
6. Cluster Logical Volume Manager: Cluster逻辑卷管理, 即CLVM, 是LVM的扩展, 这种扩展允许Cluster中的机器使用LVM来管理共享存储, 但是配置之前需要开启LVM支持集群功能;
7. iscsi: iscsi是一种在Internet协议上, 利用TCP/IP机制对fc、fc-xx等进行封装后在网络中进行传输. iscsi是基于C/S架构的, 数据首先被封装成scsi报文, 在封装成iscsi报文, 最后封装tcp/ip报文进行传输. iscsi是基于tcp的, 通过监听端口3260向外提供tcp/ip服务, iscsi的会话是一直保存监利的, 知道会话介绍在端口. RHCS可以通过ISCSI技术来导出和分配共享存储的使用.
四、搭建RHCS高可用集群
主 机 名: 192.168.15.21(rhel1服务端、客户端) 192.168.15.22(rhel2客户端)
操作系统: Red Hat 6.4 2.6.32-358.el6.x86_64 Red Hat 6.4 2.6.32-358.el6.x86_64
1. 配置本地hosts; (rhel1、rhel2都做如下配置)
[root@rhel1 ~]# cat /etc/hosts ………………/省略 192.168.15.21 rhel1.rhcs.com rhel1 192.168.15.22 rhel2.rhcs.com rhel2 [root@rhel1 ~]# scp /etc/hosts root@192.168.15.22:/etc/hosts
2. 配置主机ssh秘钥登录; (rhel1、rhel2都做如下配置)
[root@rhel1 ~]# ssh-keygen -t rsa #出现提示按enter; [root@rhel1 ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub root@rhel2
3. 同步系统时间; (rhel1、rhel2都做如下配置)
[root@rhel1 ~]# date -s "20150328 14:59:00"
4. 配置本地yum源; (rhel1、rhel2都做如下配置)
[root@rhel1 ~]# mount /dev/cdrom /media #挂载系统光盘 [root@rhel1 .ssh]# cd /etc/yum.repos.d/ [root@rhel1 yum.repos.d]# mv rhel-source.repo rhel-source.repo.bak [root@rhel1 yum.repos.d]# vim rhel-debuginfo.repo [Server] baseurl=file:///media enabled=1 gpgcheck=0 gpgkey=file:///media/RPM-GPG-KEY-redhat-release [root@rhel1 ~]# yum -y install httpd #安装http服务; [root@rhel1 ~]# service httpd start #开启httpd服务; [root@rhel1 ~]# chkconfig httpd on #将httpd服务加入到开机启动; [root@rhel1 ~]# vim yum.sh #如下是一个将本地光盘内容全部提取出来的脚本;
#!/bin/bash #desc: get file from directory #example: sh getfilefromdir.sh A B INIT_PATH=${1%/} SAVE_PATH=${2%/} function checksavepath() {if [ -d $SAVE_PATH ]thenrm -rf $SAVE_PATHfimkdir ${SAVE_PATH}touch $SAVE_PATH".log" } function getfilefromdir(){for file in ` ls $1`doif [ -d $1"/"$file ]thengetfilefromdir $1"/"$fileelselocal path="$1/$file"local name=$fileif [ ! -f $SAVE_PATH"/"$name ]thenecho "cp ${path} to ${SAVE_PATH}/${name}"cp ${path} "${SAVE_PATH}/${name}"elseecho "${path} file already exists"echo "${path}" >> $SAVE_PATH".log" 2>&1fifidone } checksavepath for sfol in ${INIT_PATH} dogetfilefromdir ${sfol} done
[root@rhel1 ~]# chmod +x yum.sh #给脚本添加可执行权限; [root@rhel1 ~]# mkdir /var/www/html/yum [root@rhel1 ~]# ./yum.sh /media /var/www/html/yum [root@rhel1 ~]# yum install createrepo #安装组装依赖包所需用到的软件; [root@rhel1 ~]# cd /var/www/html/yum [root@rhel1 yum]# createrepo ./ #重建依赖包关系; [root@rhel1 yum]# sed -i s@baseurl=file:///media@baseurl=http://192.168.15.21/yum@g /etc/yum.repos.d/rhel-debuginfo.repo [root@rhel1 yum.repos.d]# scp /etc/yum.repos.d/rhel-debuginfo.repo root@rhel2:/etc/yum.repos.d/ [root@rhel2 ~]# cd /etc/yum.repos.d/ [root@rhel2 yum.repos.d]# mv rhel-source.repo rhel-source.repo.bak [root@rhel1 yum.repos.d]# vim rhel-debuginfo.repo [Server] baseurl=http://192.168.15.21/yum enabled=1 gpgcheck=0 gpgkey=file:///media/RPM-GPG-KEY-redhat-release
5. 安装RHCS服务端和客户端
[root@rhel1 ~]# yum clean all #清除缓存 [root@rhel1 ~]# yum install luci #安装服务端工具; [root@rhel1 ~]# chkconfig luci on #将luci设置为开机启动;PS: 如下操作需要在rhel1、rhel2主机执行 ============================================================================ [root@rhel1 ~]# yum clean all #清除缓存 [root@rhel1 ~]# yum install ricci #安装客户端工具; [root@rhel1 ~]# chkconfig ricci on #将ricci设置为开机启动; [root@rhel1 ~]# service ricci start #启动ricci服务; [root@rhel1 ~]# service luci start #启动luci服务;
[root@rhel1 ~]# passwd ricci #安装完ricci客户端会生成一个ricci系统用户, 现在给ricci设置密码;
[root@rhel1 ~]# service NetworkManager stop [root@rhel1 ~]# chkconfig NetworkManager off [root@rhel1 ~]# service iptables stop [root@rhel1 ~]#chkconfig iptables off3 ============================================================================
五、web配置
1. 登录到web端;
PS: 关于用户授权, 登录进入后点击Admin
2. 创建集群组;
点击"Manage Clusters ->Create"
Cluster Name: 集群名;
Node Name : 主机名称或者IP地址;
Passwd : 为ricci用户密码;
Downlocad Packages: 下载rhcs集群所需软件包;
Reboot Nodes Before Joining Cluster: 下载完后自动重启;
Enable Shaerd Storage Support: 是否连接存储;
PS: 如果创建集群失败, 错误信息如:"is already a member of a cluster named RHCS", 到cluster下查看配置文件, [root@rhel1 ~]# cd /etc/cluster/ [root@rhel1 cluster]# cat cluster.conf [root@rhel1 cluster]# mv cluster.conf cluster.conf.bak
ps: 两个节点在安装包时, 错误提示如:"the node may be temporaruily unreachable"
检查iptables、selinux是否关闭, 检查ricci服务是否关闭.
所需的包安装完后, 系统会重新启动. 系统启动成功后, 需要讲cman、rgmanager服务开启。
[root@rhel1 ~]# service cman start #开启cman服务; [root@rhel2 ~]# service cman start [root@rhel1 ~]# service rgmanager start #开启rgmanager服务; [root@rhel2 ~]# service rgmanager start [root@rhel1 ~]# chkconfig cman on #将cman服务设置为开机自启动; [root@rhel1 ~]# chkconfig rgmanager on
3. 创建失败转移域;
Prioritized: 优先处理;
Resticted : 服务是否只能运行在指定节点;
Priority : 优先级。 数字越大优先级越低;
4. 创建资源组;
这里选择的是Scipt(脚本), 意思是当机器故障后通过Scipt开启服务.
IP Address这里指的是浮动IP地址, 子网掩码不能用255.255.0.0、255.255.255.0等表示, 只能用16、24等表示.
5. 创建服务组;
点击Add Resource -> 把刚才创建的http、IP Address两个资源组添加进去. (如果不添加不, HA不会成功)
六、验证
1. 检测rhel1所需服务状态,如果未启动, 请启动该服务;
[root@rhel1 ~]# service httpd status [root@rhel1 ~]# service cman status [root@rhel1 ~]# service luci status [root@rhel1 ~]# service rgmanager status
2. 检测rhel2所需服务状态, 如果未启动, 请启动该服务(除httpd服务不启动);
3. clustat查看节点位置;
[root@rhel1 ~]# clustat
[root@rhel1 ~]# ip addr list #查看浮动IP地址;
我们可以看到, 现在主节点是rhel1,浮动地址是192.168.15.30, 打开IE浏览器, 输入浮动地址会见到Apche默认页面, 如下:
4. 现在将rhel1的httpd服务停止后, HA会不会自启动rhel2的httpd服务;
[root@rhel1 ~]# service httpd stop [root@rhel1 ~]# clustat
可以看到, 主节点已经成为rhel2了, 检查rhel2的httpd服务是否是否启动成功;
[root@rhel2 ~]# service httpd status
[root@rhel2 ~]# ip addr list
可以清楚的看到, 当rhel1的httpd服务停掉后, HA会自动在rhel2启动httpd服务, 并且浮动地址也会移动到rhel2. 为了进一步验证, 打开IE浏览器输入浮动地址
如有不对地方, 请及时提醒.
转载于:https://blog.51cto.com/chenxiaojian/1627494
2015/04/01 RHCS相关推荐
- 点点软件园 2015.04.01 最新更新的软件
1.[网络工具] wifi共享专家 V4.6.0.8 官方免费版 2.[网络工具] 迅雷极速版 v1.0.24.254 3.[网络工具] 百度云管家 v5.2.1 官方版 4.[手机软件] 百 ...
- 移植u-boot.2012.04.01
/*************************************************** *u-boot版本:u-boot2012.04.01 *gcc版本:arm-linux-gcc ...
- ok6410 u-boot-2012.04.01移植六完善MLC NAND支持
继ok6410 u-boot-2012.04.01移植四.五后,开发板基本已支持MLC NAND,支持DM9000.但是通过NAND命令更新u-boot到NAND,还存在问题,需要根据u-boot的n ...
- 移植u-boot-2012.04.01到jz2440开发板
今天我给大家分享一下如何移植一个纯净的uboot到jz2440开发大版,通过记录学习分享,与大家一起进步!!! 1.首先我们在uboot官网下载u-boot-2012.04.01.tar.bz2,建立 ...
- 面试题 04.01. 节点间通路
面试题 04.01. 节点间通路 注意是有向图,用邻接表代替图,dfs或者bfs都可 class Solution { public:bool findWhetherExistsPath(int n, ...
- 【420天】跃迁之路——程序员高效学习方法论探索系列(实验阶段177-2018.04.01)...
@(跃迁之路)专栏 专栏调整通知(2018.3.13) 由于SegmentFault对专栏文章内容和格式有一定要求,个人时间精力有限,每天更新的<我爱刷题系列>和<每日项目总结系列& ...
- u-boot-2012.04.01移植到TQ2440
u-boot-2012.04.01移植到TQ2440(一):建立自己的开发板 到官网http://ftp.denx.de/pub/u-boot/下载u-boot-2012.04.01.tar.bz2 ...
- u-boot-2012.04.01移植到TQ2440(八):支持烧写yaffs文件系统
一.支持yaffs烧写文件系统 先直接烧写试一下 TQ2440 # nand write.yaffs32000000 rootfs $filesize NAND write: device 0 off ...
- u-boot-2012.04.01移植到TQ2440(七):添加分区信息并启动jffs2文件系统
一.添加分区信息并启动jffs2文件系统 烧写之前的内核看输出分区信息 TQ2440 # tftp 32000000uImage dm9000 i/o: 0x20000000, id:0x90000a ...
最新文章
- python3 os模块
- Mysql(2)——mysql的配置文件信息(基本信息)
- 算法 --- 插入排序的JS实现
- Java 8的装饰器模式
- tomcat关闭后线程依然运行解决办法
- 【JavaScript】appendChild一个的注意点之会删除原dom树节点
- 算法之排序算法-shell排序(移位法)
- 网关gateway解决跨域问题
- Your shell has not been properly configured to use ‘conda activate‘. If your shell is Bash or a Bour
- Eclipse3.2安装简介
- 哈希查找 C语言版
- 离散数学——自动生成真值表、主合取范式
- 锐起无盘服务器内存盘,关于锐起无盘的缓存原理以及使用方法
- class0:计算机的潜意识——机器学习
- 这是最好的时光,这是最坏的时光 SNAPSHOT
- WTS_ERAL_年假生成规则
- 计算机专业课堂教学,计算机专业网络与课堂教学整合
- Python_day04
- UNITY个人版设置深色主题
- 《正则表达式深入浅出》开放下载,快快收藏!
热门文章
- Nunit中如何进行事务性单元测试
- 5分钟学会使用gitlab
- C标准I/O建立一个文件仓库
- 中国招商银行设计严重缺陷
- ★★★【庖丁解牛:纵向切入Asp.net 3.5控件和组件开发技术系列—(1)读者序】★★★...
- Django 数据库建表的时候 No migrations to apply原因出现和解决
- Python学习笔记之类(一)
- Python学习笔记之元组
- java异步线程池同时请求多个接口数据
- java生成图片验证码