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都做如下配置)

[[email protected] ~]# cat /etc/hosts
………………/省略
192.168.15.21   rhel1.rhcs.com  rhel1
192.168.15.22   rhel2.rhcs.com  rhel2
[[email protected] ~]# scp /etc/hosts [email protected]:/etc/hosts

2. 配置主机ssh秘钥登录; (rhel1、rhel2都做如下配置)

[[email protected] ~]# ssh-keygen -t rsa                    #出现提示按enter;
[[email protected] ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]

3. 同步系统时间; (rhel1、rhel2都做如下配置)

[[email protected] ~]# date -s "20150328 14:59:00"

4. 配置本地yum源; (rhel1、rhel2都做如下配置)

[[email protected] ~]# mount /dev/cdrom /media                        #挂载系统光盘
[[email protected] .ssh]# cd /etc/yum.repos.d/
[[email protected] yum.repos.d]# mv rhel-source.repo rhel-source.repo.bak 
[[email protected] yum.repos.d]# vim rhel-debuginfo.repo
[Server]
baseurl=file:///media
enabled=1
gpgcheck=0
gpgkey=file:///media/RPM-GPG-KEY-redhat-release
[[email protected] ~]# yum -y install httpd      #安装http服务;
[[email protected] ~]# service httpd start       #开启httpd服务;
[[email protected] ~]# chkconfig httpd on        #将httpd服务加入到开机启动;
[[email protected] ~]# 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 ]
    then
        rm -rf $SAVE_PATH
    fi
    mkdir ${SAVE_PATH}
    touch $SAVE_PATH".log"
}
function getfilefromdir(){
    for file in ` ls $1`
    do
        if [ -d $1"/"$file ]
        then
            getfilefromdir $1"/"$file
        else
            local path="$1/$file"
            local name=$file
            if [ ! -f $SAVE_PATH"/"$name ]
            then
                echo "cp ${path} to ${SAVE_PATH}/${name}"
                cp ${path} "${SAVE_PATH}/${name}"
            else
                echo "${path} file already exists"
                echo "${path}" >> $SAVE_PATH".log" 2>&1
            fi
        fi
    done
}
checksavepath
for sfol in ${INIT_PATH}
do
    getfilefromdir ${sfol}
done
[[email protected] ~]# chmod +x yum.sh                 #给脚本添加可执行权限;
[[email protected] ~]# mkdir /var/www/html/yum      
[[email protected] ~]# ./yum.sh /media /var/www/html/yum              
[[email protected] ~]# yum install createrepo          #安装组装依赖包所需用到的软件;    
[[email protected] ~]# cd /var/www/html/yum     
[[email protected] yum]# createrepo ./                 #重建依赖包关系;
[[email protected] yum]# sed -i [email protected]=file:///[email protected]=http://192.168.15.21/[email protected] /etc/yum.repos.d/rhel-debuginfo.repo                    
[[email protected] yum.repos.d]# scp /etc/yum.repos.d/rhel-debuginfo.repo [email protected]:/etc/yum.repos.d/    
[[email protected] ~]# cd /etc/yum.repos.d/
[[email protected] yum.repos.d]# mv rhel-source.repo rhel-source.repo.bak
[[email protected] 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服务端和客户端

[[email protected] ~]# yum clean all                          #清除缓存
[[email protected] ~]# yum install luci                       #安装服务端工具;
[[email protected] ~]# chkconfig luci on                      #将luci设置为开机启动;
                         PS: 如下操作需要在rhel1、rhel2主机执行
============================================================================
[[email protected] ~]# yum clean all                           #清除缓存
[[email protected] ~]# yum install ricci                       #安装客户端工具;
[[email protected] ~]# chkconfig ricci on                      #将ricci设置为开机启动;
[[email protected] ~]#  service ricci start                    #启动ricci服务;
[[email protected] ~]#  service luci start                     #启动luci服务;

[[email protected] ~]# passwd ricci        #安装完ricci客户端会生成一个ricci系统用户, 现在给ricci设置密码;

[[email protected] ~]# service NetworkManager stop
[[email protected] ~]# chkconfig NetworkManager off
[[email protected] ~]# service iptables stop
[[email protected] ~]#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下查看配置文件,
[[email protected] ~]# cd /etc/cluster/
[[email protected] cluster]# cat cluster.conf
[[email protected] cluster]# mv cluster.conf cluster.conf.bak

ps: 两个节点在安装包时, 错误提示如:"the node may be temporaruily unreachable"

检查iptables、selinux是否关闭,  检查ricci服务是否关闭.

所需的包安装完后, 系统会重新启动.  系统启动成功后, 需要讲cman、rgmanager服务开启。

[[email protected] ~]# service cman start                           #开启cman服务;
[[email protected] ~]# service cman start                                   
[[email protected] ~]# service rgmanager start                      #开启rgmanager服务;
[[email protected] ~]# service rgmanager start
[[email protected] ~]# chkconfig cman on                            #将cman服务设置为开机自启动;
[[email protected] ~]# 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所需服务状态,如果未启动, 请启动该服务;

[[email protected] ~]# service httpd status
[[email protected] ~]# service cman status
[[email protected] ~]# service luci status
[[email protected] ~]# service rgmanager status

2. 检测rhel2所需服务状态, 如果未启动, 请启动该服务(除httpd服务不启动);

3. clustat查看节点位置;

[[email protected] ~]# clustat

[[email protected] ~]# ip addr list                              #查看浮动IP地址;

我们可以看到, 现在主节点是rhel1,浮动地址是192.168.15.30, 打开IE浏览器, 输入浮动地址会见到Apche默认页面, 如下:

4. 现在将rhel1的httpd服务停止后, HA会不会自启动rhel2的httpd服务;

[[email protected] ~]# service httpd stop
[[email protected] ~]# clustat

可以看到, 主节点已经成为rhel2了, 检查rhel2的httpd服务是否是否启动成功;

[[email protected] ~]# service httpd status

[[email protected] ~]# ip addr list

可以清楚的看到, 当rhel1的httpd服务停掉后, HA会自动在rhel2启动httpd服务, 并且浮动地址也会移动到rhel2.  为了进一步验证, 打开IE浏览器输入浮动地址

如有不对地方, 请及时提醒.

时间: 2024-08-21 15:33:41

2015/04/01     RHCS的相关文章

2015.04.01 Leetcode Insert interval

Insert Interval解法: 先用start,end两个变量来定位 newinterval可能要插入的起始点和结束点. 分三种情况来看是否需要调整或合并(merge). case1: 在start 之前直接copy 到结果res: case2: 在end之后也是直接copy到res中; case3: 需要合并的就是newInterval.start, newInterval.end, 和任选的一个interval 的interval.start , interval.end 四个边界的比

Cheatsheet: 2015 04.01 ~ 04.30

Other CentOS 7.1 Released: Installation Guide with Screenshots A Git Style Guide Recommender System with Mahout and ElasticSearch Best Practices for High Performing and Efficient Flash Video Start contributing to Docker in 5 easy steps Web More Optim

2015.04.01 Leetcode Generate Parentheses

Given n pairs of parentheses, write a function to generate all combinations of well-formed parentheses. For example, given n = 3, a solution set is: "((()))", "(()())", "(())()", "()(())", "()()()" 题解: 需要用

2015科研 01. 计划

还什么都不会就报名了科研 试试看吧!今年结尾能不能做出成果来   l 主要研究内容: 1)Android应用程序UI设计. 2)基于Android平台的提醒服用药物软件的实现. 3)软件的基本功能: 1. 用户可以自主添加药物,输入药物名称,选择药物形状.颜色.用量等药物基本信息. 2. 用户可以输入药物的使用频率,并且设置药物的使用时间提醒. 3. 用户可以查看个人所需的所有药物. 4. 用户可以查看个人当天需要使用的药物及记录. 5. 用户可以备份资料,导入资料. l 研究的难点和创新点:

移植 uboot2012.04.01 到tq2440(1)--建立自己的开发板

首先: 先到官网上下载uboot源码:ftp://ftp.denx.de/pub/u-boot/,使用arm-linux-交叉工具链采用4.4.3版本: 一. 首先建立自己的开发板 拷贝board/samsung/smdk2410/目录到board/tq2440(这个文件夹是自己建立的) [email protected]:~/bootloader/uboot-2012.04.01/u-boot-2012.04.01/board$ cp -a samsung/smdk2410/* ./tq244

Javascript DOM 编程艺术读书笔记16/04/01

愚人节快乐 开始用webstorm了,随着学习深入,代码越来越长,因为不借助ide还真是挺难的 今天发现了一个严重的误区,text和textNode是完全不同的两个概念,之前没有特别注意,写代码很容易跳过createTextNode直接用parentNode.appendChild(text) 单独拎出来晒一晒,以后引以为戒 Javascript DOM 编程艺术读书笔记16/04/01

Bentley.STAAD.RCDC.V8i.04.01.01.03 1CD

1.Bentley Multiframe Advanced V8i SS3 17.00.02.10 Win32_64 1CDBentley Multiframe Advanced V8i SS3 17.00.02.10 Win32_64 1CD Multiframe的分析和设计工具给你一个非常强大和灵活的创建.分析和研究结果的结构的手段.Multiframe唯一的一款功能之间使用VBA自动化的结构分析程序.使用自动化,你可... 2.Bentley Utilities Designer V8i

第一金早评 - 2015年01月07日-晨早快訊

每日金市速遞 (2015年01月07日) 谢权东 先生 上日9999 金粒賣出價每両 HKD 12590 金粒賣出價資料參考周生生,周大福 即日投資策略: 黃金日線圖上分析,日線收3連陽,K線沿布林帶中軌和上軌之間運行,金價日內大漲,布林帶有向上開口跡象,布林中軌向上翹頭,短週期均線指標金叉向上,MACD快慢線死叉於0軸下方金叉,有上穿0軸趨勢,紅柱放量. 從4小時來看,布林帶向上開口,金價處於布林上軌1220與MA5-1215之間震盪往上,短週期均線指標金叉向上,MACD快慢線於0軸附近形成金

u-boot-2012.04.01移植到Tiny6410!

1.下载u-boot-2012.04.01 http://ftp.denx.de/pub/u-boot/ 2.解压文件 # tar zxvf u-boot-2012.04.01.tar.bz 3.进入uboot根目录.新建一个单板 //Uboot里面没有6410单板只有6400单板的文件用6400的文件创建一个6410单板: # cd /borad/samsung # mkdir smdk6410  //创建6410单板文件夹 4.复制smdk6400文件到创建的文件目录 # cp smdk64