1. 主机概述

主机名 主机IP 备注
node1 192.168.1.101 模拟fence设备
node2 192.168.1.102 rhcs双机节点
node3 192.168.1.103 rhcs双机节点

修改三台主机的hosts文件,内容如下

[root@node1 ~]# vim /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.1.101 node1
192.168.1.102 node2
192.168.1.103 node3

2. 配置ntp

(1) 修改ntp.conf文件vim /etc/ntp.conf

增加如下配置

#Hosts on local network are less restricted.
restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
#Use public servers from the pool.ntp.org project.
#Please consider joining the pool (http://www.pool.ntp.org/join.html).(ntp服务器可自行选择合适的,这里我用的是1.cn.pool.ntp.org)
server 1.cn.pool.ntp.org prefer

(2)启动ntpd服务

service ntpd start

3. 安装luci

(1) 登陆node1服务器,配置yum源,安装luci服务yum install luci

(2) 启动luci服务service luci start

(3) 浏览器访问https://192.168.1.101:8084/



(4) 输入用户和密码(用户名root,密码是root的口令),登陆到主页

4. 配置RHCS

4.1 在node2和node3主机上,安装ricci、cman和rgmanager

yum install ricci cman rgmanager -y

4.2 修改ricci用户密码,否则创建集群时会出现节点认证失败的错误

passwd ricci

启动ricci服务service ricci start

4.3 创建集群

点击Create



配置集群参数

1). 在Cluster Name 文本框中输入集群名称,不能超过15个字符

2). 如果集群中每个节点都有相同的ricci密码,则选择"Use the same password for all nodes",以便在添加节点中自动填写ricci用户口令

3). 在Node Name栏中输入集群中各节点的主机名,并填入ricci用户口令

4). 点击Add Another Node添加集群节点

5). 如果不想在创建集群的时候升级已经在节点中安装的集群软件包,则必须选择"Download Packages",特别的,如果缺少任意基本集群组件(cman,rgmanager及其所依赖软件包),无论是否选择哪个,都会安装他们,否则节点创建失败

6). 如果需要集群的存储,则选择"Enable share storage support"来启动共享存储支持

参数配置完成后,点击"Create Cluster"创建集群。

集群创建完成后,如果出现下面的情形,节点Status为"Not a cluster member"



原因是cman和rgmanager服务未启动,启动这两个服务即可,注意启动顺序,先启动cman,然后再启动rgmanager。

另外启动cman时,要关闭NetworkManager服务(service NetworkManager stop),同时关闭该服务的开启启动chkconfig NetworkManager off

cman和rgmanager服务开启后,点击"Nodes"



可以看到,node2和node3节点已经加入集群

4.4 添加Fence Devices设备

点击"Fence Devices",添加Fence Devices设备



点击add,选择IPMI Lan

1). Name:填入对应主机fene设备的名字

2). IP address or hostname:fence设备主机IP或主机名

3). Login:管理端口用户名

4). Password:管理端口口令

参数配置完成后,点击"Submit"

4.5 为集群成员配置fence

给节点配置对应的fence设备,点击常规选项栏的"Nodes"



选择node2节点,点击进入配置界面



点击Add Fence Method,设置方法名



接下来点击Add Fence Instance



选择fence_ha



接下来为node3节点添加fence设备,过程同node2相似

4.6 配置Failover Domains

点击常规选择中的"Failover Domains"



设置"Failover Domains"的参数配置

1). 输入故障切换域的名字

2). Prioritized:是否启用故障切换域成员间设置故障切换优先权,如果启用了,则可以为每个节点配置优先级

3). Restricted:是否在失败转移域成员中启用服务故障切换限制

4). No Failback:当最高优先级恢复时,不自动回切服务到最高优先级节点

5). Member: 勾选,则表示节点属于本故障切换域

6). Priority:指定优先级,priority值越小,表示优先级越高,为了以后添加节点方便,建议节点间优先级最好相差5左右

配置完Failover Domains相关参数后,点击create创建

4.7 配置Resource

点击常规选择中的"Resources"



点击Add,创建IP Address资源

IP address:浮动IP地址

Netmask Bits:输入掩码设置

配置完成后,点击"Submit"



继续点击Add,创建Filesystem资源

Name:指定filesystem资源名称

Filesystem Type:指定文件系统类型

Mount Point:指定文件系统挂载点

Device, FS Label, or UUID:指定逻辑卷设备路径

配置完成后,点击"Submit"

4.8 创建集群服务

点击常规选择中的"Service Group"



点击Add,添加服务组

Service Name:指定服务组名

Automatically Start This Service:指定是否在启动集群时自动启动集群服务

Run Exclusive:指定是否选择只在没有服务运行的节点中运行

Failover Domain:指定服务组的故障切换域

Recovery Policy:指定恢复策略,RHCS提供的始终恢复策略:Relocate(表示服务失败时切换到别的节点)、Restart(表示重新定位该服务前尝试重启失败的服务)、Restart-Disable(表示系统应在服务失败的位置尝试重启该服务,但如果重启失败,则禁用该服务而不是移动到集群中的其它几点)、Disable(表示服务失败时关闭此服务)

配置完成后,点击"Submit"创建服务组

4.9 为已创建的集群服务添加资源

点击刚才创建的服务组ha_service



服务组中的资源不用配置依赖关系,直接点击Add Resource添加相应资源

首先添加我们刚才创建的IP address资源



继续添加Filesystem资源



最后点击"Submit",提交服务

4.10 查看集群状态

在node2和node3上,执行clustat命令查看集群状态

[root@node2 ~]# clustat
Cluster Status for test @ Mon May 28 20:52:19 2018
Member Status: Quorate Member Name ID Status
------ ---- ---- ------
node2 1 Online, Local, rgmanager
node3 2 Online, rgmanager Service Name Owner (Last) State
------- ---- ----- ------ -----
service:ha_service node2 started
[root@node3 ~]# clustat
Cluster Status for test @ Mon May 28 20:52:44 2018
Member Status: Quorate Member Name ID Status
------ ---- ---- ------
node2 1 Online, rgmanager
node3 2 Online, Local, rgmanager Service Name Owner (Last) State
------- ---- ----- ------ -----
service:ha_service node2 started

因为服务运行在node2节点上,所以ip和filesystem资源都在node2上

[root@node2 ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:d0:a4:dd brd ff:ff:ff:ff:ff:ff
inet 192.168.1.102/24 brd 192.168.1.255 scope global eth0
inet 192.168.1.100/24 scope global secondary eth0
inet6 fe80::20c:29ff:fed0:a4dd/64 scope link
valid_lft forever preferred_lft forever [root@node2 ~]# df -h /ha
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_ha-lvha 981M 18M 915M 2% /ha

5 RHCS集群管理

5.1 启动RHCS集群

RHCS集群的核心进程有cman、rgmanager,依次在集群的每个节点执行如下命令

service cman start
service rgmanager start

注意:cman和rgmanager的启动是有顺序的,先启动cman,再启动rgmanager

5.2 停止RHCS集群

和启动命令相反,先停止rgmanager、再停cman服务

service rgmanager stop
service cman stop

注意:RHCS双机打印日志默认在/var/log/message中,可通过/var/log/message查看进程的启动和停止信息

5.3 设置集群服务开机自启

为了方便集群的运行,建议设置luci、ricci、cman和rgmanager服务开机自启

chkconfig luci on
chkconfig ricci on
chkconfig cman on
chkconfig rgmanager on

5.4 管理RHCS集群

使用clusvcadm命令可以disable、enable、切换(relocate)、重启(restart)RHCS服务。

(1) disable的命令格式clusvcadm –d <group>(比如clusvcadm -d ha_service)

(2) enable的命令格式clusvcadm –e <group> -m <member> (比如clusvcadm -e ha_service -m node2),如果未指定member,将会在当前节点启动服务

(3) relocate的命令格式clusvcadm –r <group> -m <member>(比如clusvcadm –r ha_service -m node3>)

(4) restart的命令格式clusvcadm –R <group> -m <member>(比如clusvcadm –R ha_service -m node3>)

6. RHCS测试

我们关机node2节点,等待几分钟,观察服务是否转移到node3上

[root@node3 ~]# clustat
Cluster Status for test @ Mon May 28 21:39:30 2018
Member Status: Quorate Member Name ID Status
------ ---- ---- ------
node2 1 Online
node3 2 Online, Local, rgmanager Service Name Owner (Last) State
------- ---- ----- ------ -----
service:ha_service node3 started
[root@node3 ~]#
[root@node3 ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:34:be:b3 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.103/24 brd 192.168.1.255 scope global eth0
inet 192.168.1.100/24 scope global secondary eth0
inet6 fe80::20c:29ff:fe34:beb3/64 scope link
valid_lft forever preferred_lft forever
[root@node3 ~]#
[root@node3 ~]# df -h /ha
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_ha-lvha 981M 18M 915M 2% /ha

可以看到资源已经成功转移到node3节点上。

重启node2节点,查看集群状态。

redhat中的RHCS双机配置的更多相关文章

  1. Linux中KVM桥接的配置

    Linux中KVM桥接的配置 1. 原理 1.1 说明 在安装一个拥有虚拟化功能的Linux操作系统(此处以CentOS为例),一般我们有两种方法: .在光盘安装的时候安装好虚拟化包或者PXE服务器上 ...

  2. Nginx安装与使用 及在redhat 中的简单安装方式

    首先说下在redhat中的安装方法, 正常安装nginx 需要安装很多的依赖,最后再安装nginx,而且很容易出错. 在nginx官方上有这么一段描述: Pre-Built Packages for ...

  3. f5双机配置

    1.1)要确认2 台设备的型号及版本完全一致! 2)2台设备分别取名f5_4.com 和f5_3.com,并将时区修改成上海时区 注:设备的hostname不能随便修改. 3)VLAN配置 由于当前环 ...

  4. Redhat中网络启动错误解决办法( Failed to start LSB: Bring up/down networking RTNETLINK answers: File exists)

    关于Redhat系列中网络启动失败的解决办法 报错: Failed to start LSB: Bring up/down networking.             RTNETLINK answ ...

  5. Ubuntu 14.04中Elasticsearch集群配置

    Ubuntu 14.04中Elasticsearch集群配置 前言:本文可用于elasticsearch集群搭建参考.细分为elasticsearch.yml配置和系统配置 达到的目的:各台机器配置成 ...

  6. angularjs中的directive scope配置

    angularjs中的directive scope配置 定义directive其中重要的一环就是定义scope,scope有三种形式: 默认的scope,DOM元素上原有的scope scope: ...

  7. Production环境中iptables常用参数配置

    production环境中iptables常用参数配置 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 我相信在实际生产环境中有很多运维的兄弟跟我一样,很少用到iptables的这个 ...

  8. apache中虚拟主机的配置

    一.两种方式:基于域名的虚拟主机和基于IP地址的的虚拟主机 (这里基于前者) 二.作用:实现在同一个web服务器下,同时运行很多个站点(项目) 三.虚拟主机的配置 1.在核心配置文件中加载虚拟主机配置 ...

  9. Linux中vim的简单配置

    本文主要分享Linux中vim的简单配置 ★配置文件的位置     在目录/etc.下面,有个名为vimrc的文件,这就是系统中公共的vim配置文件,对所有用户都开放.而在每个用户的主目录下,都可以自 ...

随机推荐

  1. 【Azure DevOps系列】什么是Azure DevOps

    DevOps DevOps是一种重视"软件开发人员(Dev)"和"IT运维技术人员(Ops)"之间沟通合作的文化,它促进开发和运营团队之间的协作,以自动化和可重 ...

  2. Spring Boot系列(四):Spring Boot源码解析

    一.自动装配原理 之前博文已经讲过,@SpringBootApplication继承了@EnableAutoConfiguration,该注解导入了AutoConfigurationImport Se ...

  3. Vue生命周期,我奶奶看了都懂了

    最近一直在学习Vue,而vue生命周期是我们不可能绕开的一个很核心的知识点,今天来简单的梳理一下大概的内容. 一.钩子函数 在一开始学习的时候,总有钩子函数这个名词冒出来,而且在vue官网文档中也频繁 ...

  4. 计算机网络-网络层(3)DHCP协议

    主机获得IP地址,除了可以通过静态配置,还可以通过动态主机配置协议DHCP: Dynamic Host Configuration Protocol从服务器动态获取IP地址.子网掩码.默认网关地址.D ...

  5. 手写迷你Tomcat

    手写迷你Tomcat手写迷你Tomcat手写迷你Tomcat手写迷你Tomcat手写迷你Tomcat手写迷你Tomcat手写迷你Tomcat手写迷你Tomcat手写迷你Tomcat手写迷你Tomcat ...

  6. Spark Java创建DataFrame

    以前用Python和Scala操作Spark的时候比较多,毕竟Python和Scala代码写起来要简洁很多. 今天一起来看看Java版本怎么创建DataFrame,代码写起来其实差不多,毕竟公用同一套 ...

  7. RabbitMQ入门指南

    消息队列(Message Queue,以下简称MQ)常用于异步系统的数据传递.若不用MQ,我们只能[在应用层]使用轮询或接口回调等方式处理,这在效率或耦合度上是难以让人满意的.当然我们也可以在系统间保 ...

  8. 前端模块化IIFE,commonjs,AMD,UMD,ES6 Module规范超详细讲解

    目录 为什么前端需要模块化 什么是模块 是什么IIFE 举个栗子 模块化标准 Commonjs 特征 IIFE中的例子用commonjs实现 AMD和RequireJS 如何定义一个模块 如何在入口文 ...

  9. wampserver64 apache2.4版本局域网互相访问总结

    wampserver64  apache2.4版本局域网互相访问总结 背景:在我的电脑上给算法组开发了一个工具,需要在局域网环境下其他同事都能访问到,搞了一下午终于搞定,于是整理了这篇文档,给其他同行 ...

  10. Android开发工具资料Android Manifest 权限描述大全 随时随地查询权限描述。

    作者:程序员小冰,CSDN博客:http://blog.csdn.net/qq_21376985转载请说明出处. 在文章最后面赠送了markdown格式的此文章内容下载.(不要再问问什么用markdo ...