LINUX6.3下RHCS的安装文档
LINUX6.3下RHCS的安装及集群的配置文档
环境:
目前要给华为E6000系列的两个刀片安装RHCS,每一块刀片有两个业务网口和一个管理网口,但是看不见不物理网卡,而是连接到刀片自身携带的一个交换机板卡。两台刀片主要是实现服务器地址的漂移,即运行服务的机器出现故障,服务可以顺利切换到另外一台,当然也可以添加其他资源(比如apache,脚本)实现集群功能,不过内容都相同,只是在配置界面的时候添加的资源不一样。
刀片1,2的hosts文件:
172.16.32.1 host1
172.16.32.2 host2
172.16.14.21 hosthb1
172.16.14.22 hosthb2
172.16.14.1 host1_ipmi
172.16.14.2 host2_ipmi
172.16.32.15 service
简单说明一下地址含义,第一组为业务地址,配置在网卡eth0上;第二组为心跳地址,配置在网卡eth1上,这个地址与QDISK有关;第三组为每一块刀片的管理地址,配置在BMC芯片上,这个地址是与fence设备有关的,最后一个地址为服务地址,即在集群中真正提供服务的地址。
解释一下RHCS里的几个重点的关键词,弄明白这些个东西是什么和工作原理很重要。
Fence device:即隔离设备。一个集群中有两台机器,其中占有资源提供服务,当这台机器出现问题,另一台机器就会接管资源与服务,可是如果出问题的设备如果是假死,那么他可能仍然占用着资源(共享存储之类的),这样就可能会造成两台机器同时对存储进行读写而产生错误,学名脑裂现象。这时候就需要fence设备了,当一台设备出现问题,则通过BMC芯片去控制它的电源使它断电、重启,这样资源就会被释放了。隔离设备可以理解为BMC芯片,BMC芯片可以控制服务器电源的开关,重启。之前我们说过每一个刀片都有一个BMC口(管理口),但这个口在操作系统层面上是看不到,不像其他网卡用ifconfig能看到eth0,eth1的详细信息。想要管理这个口可以安装操作系统自带的ipmi相关程序包
freeipmi-0.7.16-3.el6.i686.rpm
freeipmi-0.7.16-3.el6.x86_64.rpm
freeipmi-bmc-watchdog-0.7.16-3.el6.x86_64.rpm
freeipmi-ipmidetectd-0.7.16-3.el6.x86_64.rpm
ipmitool-1.8.11-13.el6.x86_64.rpm
OpenIPMI-2.0.16-12.el6.x86_64.rpm
OpenIPMI-libs-2.0.16-12.el6.x86_64.rpm
64位机器装64位的就好,关于IPMI给的接口的具体用法后面再介绍。程序包安装完了以后就可以通过IPMI这个软件包与BMC芯片联系起来。另外BMC网口对应一个管理地址,这个地址是需要进入到刀片BIOS里的IPMI相关选项里设置的,要设置它的用户名、密码和IP地址,这些信息在配置集群的时候会用到。我们把BMC的地址和eth1的地址设在同一网段,这样系统就可以与BMC芯片进行通讯了,进而控制服务器的启停。
QDISK:俗称仲裁盘,通过心跳地址用来判断集群里的设备状态是否正常。一般1G大小的共享存储即可。
Failover Domain:失败域,即节点切换策略
软件安装之前先把ip地址都配置好,包括修改bios里面的ipmi配置。
RHCS软件安装:
安装RHCS需要用到系统自带光盘中的一些软件包,具体如下:
HighAvailability LoadBalancer Packages ResilientStorage ScalableFileSystem Server
先将这些包(文件夹)拷贝至/mnt目录下,也可以不拷贝,把YUM源设置好就可以了。
Yum源的设置
# vi /etc/yum.repos.d/rhel-source.repo
[root@host1 yum.repos.d]# cat rhel-source.repo
[rhel-source]
name=Red Hat Enterprise Linux $releasever - $basearch - Source
baseurl=file:///mnt/Packages
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
[rhel-source-beta]
name=Red Hat Enterprise Linux $releasever Beta - $basearch - Source
baseurl=file:///mnt/Packages
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-beta,file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
[Server]
name=Server
baseurl=file:///mnt/Server
enabled=1
gpgcheck=0
[HighAvailability]
name=HighAvailability
baseurl=file:///mnt/HighAvailability
enabled=1
gpgcheck=0
[LoadBalancer]
name=LoadBalancer
baseurl=file:///mnt/LoadBalancer
enabled=1
gpgcheck=0
[ScalableFileSystem]
name=ScalableFileSystem
baseurl=file:///mnt/ScalableFileSystem
enabled=1
gpgcheck=0
[ResilientStorage]
name=ResilientStorage
baseurl=file:///mnt/ResilientStorage
enabled=1
gpgcheck=0
保证每个软件包的baseurl路径正确即可。
安装软件:
# yum install cluster-glue resource-agents pacemaker
选Y
# yum install luci ricci cman openais rgmanager lvm2-cluster gfs2-utils
选Y
启动HA服务:
# service luci start
# service ricci start
# service rgmanager start
# service cman start
改变服务的运行级别:
cman 0:off 1:off 2:on 3:on 4:on 5:on 6:off
rgmanager 0:off 1:off 2:on 3:on 4:on 5:on 6:off
luci 0:off 1:off 2:on 3:on 4:on 5:on 6:off
ricci 0:off 1:off 2:on 3:on 4:on 5:on 6:off
修改ricci用户的密码
Passwd ricci,改为root用户密码即可。
创建QDISK盘
用法:mkqdisk -L | -f <label> | -c <device> -l <label>
mkqdisk -c /dev/sdb -l qdisk
这里把一块1G的/dev/qdisk配置成了一块叫qdisk的仲裁盘
Ping一下心跳和BMC口的地址,应该都OK。
看一下host1能否管理host2电源模块
ipmitool -I lan -H 172.16.14.2(第二台机器的BMC口地址) -U root(用户名) -P Aa@123456(密码) power status
[root@host1 ~]# ipmitool -I lan -H 172.16.14.2 -U root -P Aa@123456 power status
Chassis Power is on
集群的创建
在确保主节点的luci,ricci服务起来之后,进入https://172.16.32.1:8084集群配置页面。
用你设置的ricci密码登陆以后开始创建集群:
加节点:
这里的jyapp_01hb,jyapp_02hb就是我们hosthb1,hosthb2。
配置基本默认,没什么好说的。
Fence Devices的添加:
选择IPMI LAN,当然各厂家的FENCE设备不一样根据情况配置。
输入之前配置好的用户名,密码,IP地址
两台设备两个fence 设备。
创建完成之后跟节点关联。
先添加fence method,方法名随便,之后关联起来创建的fence实例。一一对应即可。
FAILOVER DOMAIN配置:
失败域配置,Prioritized即有优先级,Restricetd限定运行服务节点的机器范围,no fackback 不回切,当故障机器恢复可用以后,服务不回切。优先级的值越低,优先级别越高,0不可用。
RESOURCE添加:
资源添加,这里我们只添加一个服务器地址(漂移地址)
Note:后面我们又添加了一个脚本资源,脚本的作用是启动一个中间件然后启动应用,而且必须有先后顺序,这个顺序的实现在脚本中可以实现。而脚本的启用和服务地址的启动也有先后顺序,必须是先让服务地址启用之后应用才可以启动。所以在添加这两个资源的时候就有点不一样了,需要先添加服务地址资源,然后添加服务资源的child resource,先有parent才有child.这样就有先后顺序了。如果在顺序上没有要求,增加两个同级的资源即可。脚本内容及解释见文档末尾。
SERVICE GROUP添加:
服务配置,选择好我们的失败域,自动开始打勾,run exclusive,服务只会在“没有运行其他服务的节点”上运行,可以不选;恢复策略选择重新定位,即切换到另一个节点。
默认的不说了,需要设置的说一下,多播地址最好设置一个,不设置也默认的,但是一个业务系统中如果有多套RHCS,多播地址就要不一样了。
QDISK,用我们设置的label来识别,工作机制是每2秒ping一下网关,ping通得1分,不通不得分,ping 10次,最小得分为1分,则不需要切换。也就是说连续10次ping这个网关只要其中有一次是通的则OK。
ping -c1 -t1 172.16.14.254
到这里就配置完了。
我们可以看一下这个集群的状态。
[root@jyapp_01 ~]# clustat
Cluster Status for jyapp_cluster @ Tue Dec 24 14:25:50 2013
Member Status: Quorate
Member Name ID Status
------ ---- ---- ------
jyapp_01hb 1 Online, Local, rgmanager
jyapp_02hb 2 Online, rgmanager
/dev/block/8:16 0 Online, Quorum Disk
Service Name Owner (Last) State
------- ---- ----- ------ -----
service:jysg jyapp_01hb started
都ONLINE,服务在正常运行。
[root@jyapp_01 ~]# cman_tool status
Version: 6.2.0
Config Version: 19
Cluster Name: jyapp_cluster
Cluster Id: 469
Cluster Member: Yes
Cluster Generation: 28
Membership state: Cluster-Member
Nodes: 2
Expected votes: 3
Quorum device votes: 1
Total votes: 3
Node votes: 1
Quorum: 2
Active subsystems: 11
Flags:
Ports Bound: 0 11 177 178
Node name: jyapp_01hb
Node ID: 1
Multicast addresses: 239.192.14.111
Node addresses: 172.16.14.21
用cman_tool status看到个票数都正常,每个节点一票,QDISK一票,总共3票,期望值是3票。死一个节点,期望值少一票。
最后验证一下切换
[root@jyapp_01 ~]# clusvcadm -r jysg
Trying to relocate service:jysg...Success
service:jysg is now running on jyapp_02hb
节点手动切换成功。经过测试,网卡故障,断电都能正常切换。
脚本:
#!/bin/bash
start() {
su - tuxedo -c "tmboot -y"
RETVAL=$?
su - trade -c "cd /home/trade/app/bin && tmboot -y"
RETVAL=$?
return $RETVAL
}
stop() {
su - trade -c "cd /home/trade/app/bin && tmshutdown -y"
RETVAL=$?
su - tuxedo -c "tmshutdown -y"
RETVAL=$?
return $RETVAL
}
case "$1" in
start)
start
;;
stop)
stop
;;
status)
RETVAL=0
;;
restart)
stop
start
;;
*)
echo $"Usage: tuxedo.sh {start|stop|restart}"
RETVAL=2
esac
exit $RETVAL
该脚本先是定义了两个函数,启动应用,停止应用。每次执行都会有一个返回值。主程序执行的时候就会根据返回值的不同值执行不同的操作,启动,停止,目前状态,重新加载。
from: 周文屿78842844@qq.com
LINUX6.3下RHCS的安装文档的更多相关文章
- Linux rhel7 下MySQL5.7.18详细安装文档
Linux rhel7 下MySQL5.7.18详细安装文档 本文安装MySQL5.7使用的是vm虚拟机rhel7操作系统 ,ftp文件传输是FileZilla3.27,远程连接xssh5.0 1 登 ...
- CentOS6.5下安装JDK1.7+MYSQL5.5+TOMCAT7+nginx1.7.5环境安装文档
----------------CentOS6.5下安装JDK1.7+MYSQL5.5+TOMCAT7+nginx1.7.5环境安装文档----------------------- [JDK1.7安 ...
- ORACLE LINUX 6.3 + ORACLE 11.2.0.3 RAC + VBOX安装文档
ORACLE LINUX 6.3 + ORACLE 11.2.0.3 RAC + VBOX安装文档 2015-10-21 12:51 525人阅读 评论(0) 收藏 举报 分类: Oracle RA ...
- Oracle 11g 单实例安装文档
这里介绍在Red Hat Enterprise Linux Server release 5.7 (Tikanga)下安装ORACLE 11.2.0.1.0的过程,本文仅仅是为了写这样安装指导文档而整 ...
- linkedin开源的kafka-monitor安装文档
linkedin开源的kafka-monitor安装文档 linkedin 开源的kafka-monitor的安装使用可以参考官方的readme:流程介绍的已经比较清楚,但是还是有一些地方需要修正.让 ...
- _00024 尼娜抹微笑伊拉克_云计算ClouderaManager以及CHD5.1.0群集部署安装文档V1.0
笔者博文:妳那伊抹微笑 itdog8 地址链接 : http://www.itdog8.com(个人链接) 博客地址:http://blog.csdn.net/u012185296 博文标题:_000 ...
- oracle database 12c R1 安装文档
INSTALLORACLE DATABASE 12C 完整的安装文档下载地址: http://download.csdn.net/detail/royjj/5665869 OS:ORALCE LINU ...
- HAProxy安装文档
HAProxy安装文档 [toc][TOC] 一.环境说明 系统环境:CentOS Linux release 7.2.1511 (Core) 系统内核:3.10.0-327.el7.x86_64 软 ...
- Oracle 12c RAC 静默安装文档
参考文档: https://docs.oracle.com/en/database/oracle/oracle-database/12.2/cwlin/index.html https://docs. ...
随机推荐
- ASP.NET中常用方法
身份证号检测: /// <summary> /// 检验身份证号是否正确 /// </summary> /// <param name="Id"> ...
- ( 转 )Github配置
以下转自 http://liuzhijun.iteye.com/blog/1457207 有问题请联系我删除. -----———————————————————————— 如果你的代码不知道放哪里好, ...
- PHP ajax实现数组返回
首先,我想要实这样一个功能, 当选择一个下拉框时,让其它三个文本框得到从服务器上返回的值!也就把返回的值,赋给那三个文本框! 我用的是jquery+php!! 由于我前台,后台,js,数据库采用的都是 ...
- (转)META http-equiv="refresh" 实现网页自动跳转
***.html自动跳转文件代码如下: <HTML> <HEAD><META http-equiv="Refresh" content="5 ...
- oracle数据库导入导出命令!(转)
oracle数据库导入导出命令! Oracle数据导入导出imp/exp 功能:Oracle数据导入导出imp/exp就相当与oracle数据还原与备份. 大多情况都可以用Oracle数据导入导出完成 ...
- C#获取数组的行和列数程序代码
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Cons ...
- [Neural Networks] Dropout阅读笔记
多伦多大学Hinton组 http://www.cs.toronto.edu/~rsalakhu/papers/srivastava14a.pdf 一.目的 降低overfitting的风险 二.原理 ...
- 练习SignalR使用
前言 随着Ajax越来越普遍的使用,前端页面跟后台服务也越来越密切的进行交互,实现前后端进行实时的消息传递尤为重要,一文件上传为例,现在普遍使用ajax上传然后通过flash进行文件进度的显示,这是目 ...
- HttpRequest 和HttpWebRequest的区别
[1]问题: asp.NET C# 中HttpRequest 和HttpWebRequest的区别 HttpRequest 与HttpWebRequest 有什么区别? 网上中文的帖子很多,但是答案 ...
- ES5中数组新增的方法说明
一.前言-索引 ES5中新增的不少东西,了解之对我们写JavaScript会有不少帮助,比如数组这块,我们可能就不需要去有板有眼地for循环了. ES5中新增了写数组方法,如forEach (js v ...