redhat中的RHCS双机配置
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双机配置的更多相关文章
- Linux中KVM桥接的配置
Linux中KVM桥接的配置 1. 原理 1.1 说明 在安装一个拥有虚拟化功能的Linux操作系统(此处以CentOS为例),一般我们有两种方法: .在光盘安装的时候安装好虚拟化包或者PXE服务器上 ...
- Nginx安装与使用 及在redhat 中的简单安装方式
首先说下在redhat中的安装方法, 正常安装nginx 需要安装很多的依赖,最后再安装nginx,而且很容易出错. 在nginx官方上有这么一段描述: Pre-Built Packages for ...
- f5双机配置
1.1)要确认2 台设备的型号及版本完全一致! 2)2台设备分别取名f5_4.com 和f5_3.com,并将时区修改成上海时区 注:设备的hostname不能随便修改. 3)VLAN配置 由于当前环 ...
- Redhat中网络启动错误解决办法( Failed to start LSB: Bring up/down networking RTNETLINK answers: File exists)
关于Redhat系列中网络启动失败的解决办法 报错: Failed to start LSB: Bring up/down networking. RTNETLINK answ ...
- Ubuntu 14.04中Elasticsearch集群配置
Ubuntu 14.04中Elasticsearch集群配置 前言:本文可用于elasticsearch集群搭建参考.细分为elasticsearch.yml配置和系统配置 达到的目的:各台机器配置成 ...
- angularjs中的directive scope配置
angularjs中的directive scope配置 定义directive其中重要的一环就是定义scope,scope有三种形式: 默认的scope,DOM元素上原有的scope scope: ...
- Production环境中iptables常用参数配置
production环境中iptables常用参数配置 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 我相信在实际生产环境中有很多运维的兄弟跟我一样,很少用到iptables的这个 ...
- apache中虚拟主机的配置
一.两种方式:基于域名的虚拟主机和基于IP地址的的虚拟主机 (这里基于前者) 二.作用:实现在同一个web服务器下,同时运行很多个站点(项目) 三.虚拟主机的配置 1.在核心配置文件中加载虚拟主机配置 ...
- Linux中vim的简单配置
本文主要分享Linux中vim的简单配置 ★配置文件的位置 在目录/etc.下面,有个名为vimrc的文件,这就是系统中公共的vim配置文件,对所有用户都开放.而在每个用户的主目录下,都可以自 ...
随机推荐
- Mybatis-09-缓存
缓存 什么是缓存[Cache]? 存在内存中的临时数据 提高查询效率,解决高并发的性能问题 为什么使用缓存? 减少和数据库的交互次数,减少系统开销,提高系统效率 什么样的数据能使用缓存? 经常查询且不 ...
- Python+Pytest+Allure+Git+Jenkins接口自动化框架
Python+Pytest+Allure+Git+Jenkins接口自动化框架 一.接口基础 接口测试是对系统和组件之间的接口进行测试,主要是效验数据的交换,传递和控制管理过程,以及相互逻辑依赖关系. ...
- c/c++ 感悟 2008-10-03 02:08
许久没有坐在电脑前写东西了.除了密密麻麻的英文小虫子,还是英文小虫子.今天不是解决bug,明天就是在创造bug,一句话不在bug中沉默就在bug中爆发.或许喜欢小宇宙爆发的样子吧,那样的感觉总是让人热 ...
- Java成员变量和局部变量的区别
定义位置不同: 成员变量:类中方法外 分为类变量(static修饰).实例变量(没有使用static修饰) 局部变量:方法内.代码块内 默认值不同: 成员变量:有默认初始化值 局部变量:没有默认初始化 ...
- 使用disk-image-builder(DIB)制作Ironic 裸金属镜像
export DIB_DEV_USER_USERNAME=centos export DIB_DEV_USER_PASSWORD= export DIB_DEV_USER_PWDLESS_SUDO=Y ...
- ubuntu 构建 deb 安装包
源码包下载:http://mirrors.163.com/ubuntu/ 编译工具安装: apt-get install dpkg-dev 以openvswitch为例: wget http://mi ...
- latex:公式中的文字
公式环境中的说明文字应置于\mbox命令中.如果已经调用了数学工具宏包或者公式宏包,可改为选用一下3条功能更强的文本命令将简短文字插入公式中. \intertext{文本} 由amsmath宏包提供, ...
- DOM 事件机制&事件委托
一.事件机制 事件是在编程时系统内发生的动作或者发生的事情,系统会在事件出现的时候触发某种信号并且会提供一个自动加载某种动作的机制(来自MDN).每个事件都有事件处理器(有时也叫事件监听器),也就是触 ...
- ASP.NET Core3.1使用IdentityServer4中间件系列随笔(二):创建API项目,配置IdentityServer保护API资源
配套源码:https://gitee.com/jardeng/IdentitySolution 接上一篇<ASP.NET Core3.1使用IdentityServer4中间件系列随笔(一):搭 ...
- JavaScript对象原型链的学习
1.构造函数和原型 1.1对象的三种创建方式 字面量方式 var obj = {}; new关键字 var obj = new Object(); 构造函数方式 function Person(nam ...