RHCS原理及操作
RHCS原理及操作
RHCS组件介绍:1.1 分布式集群管理器(CMAN)
Cluster Manager,简称CMAN,是一个分布式集群管理工具,它运行在集群的各个节点上,为RHCS提供集群管理任务。CMAN用于管理集群成员、消息和通 知。它通过监控每个节点的运行状态来了解节点成员之间的关系,当集群中某个节点出现故障,节点成员关系将发生改变,CMAN及时将这种改变通知底层,进而做出相应的调整。
1.2 锁管理(DLM)
Distributed Lock Manager,简称DLM,表示一个分布式锁管理器,它是RHCS的一个底层基础构件,同时也为集群提供了一个公用的锁运行机制,在RHCS集群系统中,DLM运行在集群的每个节点上,GFS通过锁管理器的锁机制来同步访问文件系统元数据。CLVM通过锁管理器来同步更新数据到LVM卷和卷组。DLM不需要设定锁管理服务器,它采用对等的锁管理方式,大大的提高了处理性能。同时,DLM避免了当单个节点失败需要整体恢复的性能瓶颈,另 外,DLM的请求都是本地的,不需要网络请求,因而请求会立即生效。最后,DLM通过分层机制,可以实现多个锁空间的并行锁模式。
1.3 配置文件管理(CCS)
Cluster Configuration System,简称CCS,主要用于集群配置文件管理和配置文件在节点之间的同步。CCS运行在集群的每个节点上,监控每个集群节点上的单一配置文件 /etc/cluster/cluster.conf的状态,当这个文件发生任何变化时,都将此变化更新到集群中的每个节点,时刻保持每个节点的配置文件 同步。例如,管理员在节点A上更新了集群配置文件,CCS发现A节点的配置文件发生变化后,马上将此变化传播到其它节点上去。RHCS的配置文件是 cluster.conf,它是一个xml文件,具体包含集群名称、集群节点信息、集群资源和服务信息、fence设备等。
1.4 栅设备(FENCE)
FENCE设备是RHCS集群中必不可少的一个组成部分,通过FENCE设备可以避免因出现不可预知的情况而造成的“脑裂”现象,FENCE设备的出 现,就是为了解决类似这些问题,Fence设备主要就是通过服务器或存储本身的硬件管理接口,或者外部电源管理设备,来对服务器或存储直接发出硬件管理指 令,将服务器重启或关机,或者与网络断开连接。FENCE的工作原理是:当意外原因导致主机异常或者宕机时,备机会首先调用FENCE设备,然后通过 FENCE设备将异常主机重启或者从网络隔离,当FENCE操作成功执行后,返回信息给备机,备机在接到FENCE成功的信息后,开始接管主机的服务和资 源。这样通过FENCE设备,将异常节点占据的资源进行了释放,保证了资源和服务始终运行在一个节点上。RHCS的FENCE设备可以分为两种:内部 FENCE和外部FENCE,常用的内部FENCE有IBM RSAII卡,HP的iLO卡,还有IPMI的设备等,外部fence设备有UPS、SAN SWITCH、NETWORK SWITCH等
RHCS操作:
一、启动RHCS集群
RHCS集群的核心进程有cman和rgmanager,要启动集群,依次在集群的每个节点执行如下命令即可:
service cman start
service rgmanager start
需要注意的是,执行这两个命令是有先后顺序的,需要首先启动cman,然后在启动rgmanager。在集群所有节点成功启动cman服务后,然后继续依次在每个节点启动rgmanager服务。
二、关闭RHCS集群
与启动集群服务刚好相反,关闭RHCS集群的命令为:
service rgmanager stop
service cman stop
首先在集群的每个节点依次关闭rgmanager服务,等待所有节点的rgmanager服务成功关闭后,再依次关闭每个节点的cman服务即可完成真个集群服务的关闭。
有时在关闭cman服务时,可能会提示关闭失败,此时可以检查本机的共享存储GFS2文件系统是否已经卸载,还可以检查其它节点的rgmanager服务是否都已经正常关闭。
三、管理应用服务
集群系统启动后,默认是自动启动应用服务的,但是如果某个应用服务没有自动启动,就需要通过手工方式来启动。管理应用服务的命令是clusvcadm,通过这个命令可以启动、关闭、重启、切换集群中的应用服务。
1. 启动某个应用服务
可以通过如下方式启动某个节点的应用服务:
clusvcadm -e -m
其中:
? Service:表示集群中创建的应用服务名称。
? Node:表示集群节点名称。
例如,要启动节点web1上的webserver服务,操作如下:
[root@web1 ~]# clusvcadm -e webserver -m web1
Member web1 trying to enable service:webserver...Success
service:webserver is now running on web1
可以通过/var/log/messages文件查看启动应用服务的详细信息。当webserver启动后,与服务相关的集群资源:如虚拟IP、应用程序服务脚本也随之启动,可以通过如下命令查看集群资源是否已经正常加载:
2. 关闭某个应用服务
可以通过如下方式关闭某个节点的应用服务:
clusvcadm -s -m
例如,要关闭节点Mysql1上的mysqlserver服务,操作如下:
[root@Mysql1 ~]# clusvcadm -s mysqlserver -m Mysql1
Member Mysql1 stopping service:mysqlserver...Success
可以通过/var/log/messages文件查看关闭应用服务的详细信息。当mysqlserver关闭后,与服务相关的集群资源:如虚拟IP、应用程序服务脚本也随之释放。
3. 重启某个应用服务
可以通过如下方式重启某个节点的应用服务:
clusvcadm -R -m
例如,要重启节点web1上的webserver服务,操作如下:
[root@web2 ~]# clusvcadm -R webserver -m web1
Member web1 trying to restart service:webserver...Success
这个命令是在web2节点上执行的,但是也能成功将web1节点上的webserver进行重启,由此可知,clusvcadm命令在集群任意节点执行都是可以的。
4. 切换某个服务
可以通过如下方式将一个应用服务从一个节点切换到另一个节点:
clusvcadm -r -m
例如,要将节点web1的服务切换到节点web2上,操作如下:
[root@web1 ~]# clusvcadm -r webserver -m web2
Trying to relocate service:webserver to web2...Success
service:webserver is now running on web2
四、监控RHCS集群状态
通过对RHCS的监控,有助于了解集群每个节点的健康状况,并能发现问题,及时解决问题,RHCS集群提供了丰富的状态查看命令,这里主要介绍下cman_tool、clustat、ccs_tool的使用方法。
1. cman_tool命令
cman_tool的参数比较多,但是用法比较简单,基本用法格式为:
cman_tool [options]
下面列举几个简单的使用例子:
[root@web1 ~]# cman_tool nodes -a
Node Sts Inc Joined Name
0 M 0 2010-08-23 01:24:00 /dev/sdb7
1 M 2492 2010-08-23 01:22:43 web2
Addresses: 192.168.12.240
2 M 2492 2010-08-23 01:22:43 Mysql1
Addresses: 192.168.12.231
3 M 2492 2010-08-23 01:22:43 Mysql2
Addresses: 192.168.12.232
4 M 2488 2010-08-23 01:22:43 web1
Addresses: 192.168.12.230
此命令显示了节点名称,以及对应的节点IP地址和加入集群的时间。
如果要了解更多集群节点信息,可以通过如下命令:
[root@web1 ~]# cman_tool status
Version: 6.2.0
Config Version: 35 #集群配置文件版本号
Cluster Name: mycluster #集群名称
Cluster Id: 56756
Cluster Member: Yes
Cluster Generation: 2764
Membership state: Cluster-Member
Nodes: 4 #集群节点数
Expected votes: 6 #期望的投票数
Quorum device votes: 2 #表决磁盘投票值
Total votes: 6 #集群中所有投票值大小
Quorum: 4 #集群法定投票值,低于这个值,集群将停止服务
Active subsystems: 9
Flags: Dirty
Ports Bound: 0 177
Node name: web1
Node ID: 4 #本节点在集群中的ID号
Multicast addresses: 239.192.221.146 #集群广播地址
Node addresses: 192.168.12.230 #本节点对应的IP地址
2. clustat命令
clustat命令使用非常简单,详细的使用方法可以通过“clustat -h”获取帮助信息,这里仅仅列举几个例子。
[root@web1 ~]#clustat -i 3
Cluster Status for mycluster @ Mon Aug 23 18:54:15 2010
Member Status: Quorate
Member Name ID Status
------ ---- ---- ------
web2 1 Online, rgmanager
Mysql1 2 Online, rgmanager
Mysql2 3 Online, rgmanager
web1 4 Online, Local, rgmanager
/dev/sdb7 0 Online, Quorum Disk
Service Name Owner (Last) State
------- ---- ----- ------ --------
service:mysqlserver Mysql1 started
service:webserver web1 started
对输出内容含义如下:
clustat的“-i”参数可以实时的显示集群系统中每个节点以及服务的运行状态,“-i 3”表示每三秒刷新一次集群状态。
在这个输出中,可以看到每个节点都处于“Online”状态,表明每个节点都运行正常,如果某个节点退出了集群,对应的状态应该是“Offline”,同时还可以看到,集群的两个服务也处于“started”状态,分别运行在Mysql1节点和web1节点。
另外,通过“ID”一列可以知道集群节点的对应关系,例如,web2在此集群中对应的就是“Node 1”节点,同理,web1对应的是“Node 4”节点。了解集群节点顺序有助于对集群日志的解读。
3. ccs_tool命令
ccs_tool主要用来管理集群配置文件cluster.conf,通过ccs_tool可以在集群中增加/删除节点、增加/删除fence设备、更新集群配置文件等操作。
下面是ccs_tool的几个应用实例:
当在一个节点修改完配置文件后,可以执行“ccs_tool update”指令将配置文件在所有节点进行更新,例如:
[root@web1 cluster]# ccs_tool update /etc/cluster/cluster.conf
Proposed updated config file does not have greater version number.
Current config_version :: 35
Proposed config_version:: 35
Failed to update config file.
ccs_tool是根据cluster.conf中的“config_version”值来决定是否进行更新的,因此在修改完cluster.conf文件后,一定要将cluster.conf的config_version值进行更新,这样执行ccs_tool时才能更新配置文件。
[root@web1 cluster]# ccs_tool update /etc/cluster/cluster.conf
Config file updated from version 35 to 36
Update complete.
五、管理和维护GFS2文件系统
GFS2文件系统提供了很多管理和维护工具,常用的有gfs2_fsck、gfs2_tool、gfs2_jadd、gfs2_quota、gfs2_convert等,这里重点介绍前三个命令的用法。
1. gfs2_fsck命令
类似与ext3文件系统下的fsck.ext3命令,主要用于检测和修复文件系统错误。其实GFS2还有一个fsck.gfs2命令,此命令与gfs2_fsck命令完全一致。
gfs2_fsck的用法如下:
gfs2_fsck [-afhnpqvVy]
下面列举几个使用例子:
[root@Mysql1 ~]# gfs2_fsck -y /dev/sdb5
Initializing fsck
Validating Resource Group index.
Level 1 RG check.
(level 1 passed)
Starting pass1
Starting pass1c
Pass1c complete
…………
Pass5 complete
gfs2_fsck complete
2. gfs2_tool命令
gfs2_tool命令参数较多,但使用并不复杂,它主要用来查看、修改GFS2文件系统的相关参数信息。
下面列举几个使用例子:
1)查看GFS2文件系统挂载信息
[root@web1 ~]# gfs2_tool df /gfs2
/gfs2:
SB lock proto = "lock_dlm"
SB lock table = "mycluster:my-gfs2"
SB ondisk format = 1801
SB multihost format = 1900
Block size = 4096
Journals = 4
Resource Groups = 19
Mounted lock proto = "lock_dlm"
Mounted lock table = "mycluster:my-gfs2"
Mounted host data = "jid=2:id=65539:first=0"
Journal number = 2
Lock module flags = 0
Local flocks = FALSE
Local caching = FALSE
Type Total Blocks Used Blocks Free Blocks use%
--------------- ----------------- ------------- ---------------- -----------
data 1220724 136578 1084146 11%
inodes 1084263 117 1084146 0%
(2)gfs2_tool命令
2)锁定与解锁GFS2文件系统:
[root@node1 gfs2]# gfs2_tool freeze /gfs2
[root@node1 gfs2]# gfs2_tool unfreeze /gfs2
GFS2文件系统被锁定后,无法进行读写操作,直到被解锁。
3)查询GFS2可挂载的接点数
[root@web1 ~]# gfs2_tool journals /gfs2
journal2 - 128MB
journal3 - 128MB
journal1 - 128MB
journal0 - 128MB
4 journal(s) found.
这里显示了可挂载节点数为4,并且每个journal的大小为128M。
4)显示GFS2的版本信息:
[root@web1 ~]# gfs2_tool version
gfs2_tool 0.1.62 (built Mar 31 2010 07:34:25)
Copyright (C) Red Hat, Inc. 2004-2006 All rights reserved
(3)gfs2-jadd命令
gfs2-jadd主要用来配置GFS2的Journals数量和大小,用法非常简单:
gfs2_jadd [-cDhJjqV] /path/to/filesystem
下面列举几个用例:
设置Journals的大小为64M
[root@Mysql1 ~]# gfs2_jadd -J 64M
将GFS2可同时挂载的节点数目增加到5个
[root@Mysql1 ~]# gfs2_jadd -j 5 /gfs2
另外,另外gfs2_quota用于GFS2文件系统磁盘配额管理,gfs2_convert是一个数据转换应用程序,它可以对GFS文件系统的元数据进行更新,把它转换为一个GFS2文件系统。要深入了解它们的使用,请参考帮助信息,这里不在进行讲述。

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

최근 아이스 유니버스는 삼성의 차기 플래그십 스마트폰으로 널리 알려진 갤럭시 S25 울트라에 대한 세부 정보를 꾸준히 공개해 왔습니다. 무엇보다도 유출자는 삼성이 카메라 업그레이드를 하나만 가져올 계획이라고 주장했습니다.

OnLeaks는 이제 Android Headlines와 제휴하여 X(이전 Twitter) 팔로어로부터 4,000달러 이상의 수익을 창출하려는 시도가 실패한 지 며칠 후 Galaxy S25 Ultra에 대한 첫 번째 모습을 제공합니다. 맥락에 따라 h 아래에 포함된 렌더링 이미지

TCL은 두 가지 새로운 스마트폰을 발표하는 것과 함께 NXTPAPER 14라는 새로운 Android 태블릿도 발표했는데, TCL의 거대한 화면 크기는 판매 포인트 중 하나입니다. NXTPAPER 14는 TCL의 시그니처 브랜드인 무광택 LCD 패널 버전 3.0을 갖추고 있습니다.

Vivo Y300 Pro는 방금 완전히 공개되었으며 대용량 배터리를 갖춘 가장 얇은 중급 Android 휴대폰 중 하나입니다. 정확히 말하면 스마트폰의 두께는 7.69mm에 불과하지만 배터리 용량은 6,500mAh입니다. 최근 출시된 것과 동일한 용량이다.

삼성전자는 팬에디션(FE) 스마트폰 시리즈를 언제 업데이트할지 아직 힌트를 주지 않았다. 현재 상태로 Galaxy S23 FE는 2023년 10월 초에 출시된 회사의 최신 버전으로 남아 있습니다.

모토로라는 올해 셀 수 없이 많은 기기를 출시했지만 그 중 폴더블 기기는 2개뿐이었습니다. 맥락에 따라 전 세계 대부분이 Razr 50 및 Razr 50 Ultra로 쌍을 받았지만 Motorola는 북미에서 Razr 2024 및 Razr 2로 제공합니다.

최근 아이스 유니버스는 삼성의 차기 플래그십 스마트폰으로 널리 알려진 갤럭시 S25 울트라에 대한 세부 정보를 꾸준히 공개해 왔습니다. 무엇보다도 유출자는 삼성이 카메라 업그레이드를 하나만 가져올 계획이라고 주장했습니다.

Redmi Note 14 Pro Plus는 이제 작년 Redmi Note 13 Pro Plus(Amazon에서 현재 $375)의 직접적인 후속 제품으로 공식화되었습니다. 예상대로 Redmi Note 14 Pro Plus는 Redmi Note 14 및 Redmi Note 14 Pro와 함께 Redmi Note 14 시리즈를 주도합니다. 리
