1.介绍
Redhat中的集群提供数据与服务的高可用性,可以使用盘柜,进行电源的管理,也可以进行Server之间的failover的切换,可以满足一些企业的需求。集群可以就用在数据库服务,文件服务器,WWW服务器等应用服务器上,可以实现负载均衡。他是基于Linux的LVS的基础上开发而来,同时又增加了数据的可靠性和服务的可用性,还有负载均衡。
2.特点:
(1)将形成没有单点硬件故障的系统
集群将利用独立的服务器,形成一个具体彼此互连的整体,可以避免的因为一台机器down掉而造成数据丢失,服务停止。同时是低成本,高可用性的集群服务。
(2)服务的高可用性
集群可以让管理员轻松地将独立的服务联合起来,保证数据的安全性和服务的可用性。为了搭建一个服务,管理员必须此服务的资源与一些必要的属性,如服务的名字,启动停止的脚本,硬盘的分区等。
(3)数据的高可靠性
(4)提供简捷的用户管理接口
(5)多集群互通(这个功能没有研究过)
(6)服务的Failover切换
当集群中提供服务的一台服务器出了问题的时候,在集群中会自动将用户过来访问的请求发到集群中其他的机器上来处理。当这个服务器的系统起来后,可以读写有关集群的Quotum(裸设备)的时候,将自动读取有关集群的相应信息,自动加入到本集群中。
(7)可以同时提供多种服务
(8)事件日志功能
(9)应用服务的监测功能
(10)状态的监测功能
3.最小的硬件环境:
2台Server(原则上需要两块网卡)
以太网连接,心跳监测
共享storage,来共享信息
4.建立cluster server
(1)安装基本的系统,主要是包括硬件的驱动
(2)确认网络,包括交换机的部分,网卡的使用,用来进行心跳监测
(3)cluster的安装步骤:
A.在两台机器上安装Redhat Advance Server 2.1,记得在安装的时候要选择kernel source和cluster system 两个部分
B.重启编辑一下/etc/hosts,将所有加入到集群中的机器写到里面,包括主机和IP地址的对应关系。
C.确认每个系统都已经认出了所需要的硬件环境,如网卡等
D.对于内核的一些要求:
IP
ALIAS的支持
(CONFIG_IP_ALIAS)
E.由于有一些cluster可能会用的storage(盘柜)一类的设备,同时系统在启动的时候,内核也会对cluster在时间有一定的限制,所以这个时候建议更改lilo.conf将里面:
TIMEOUT=30
(4)创建裸设备:
/dev/raw/下的设备文件,配置文件则去更改/etc/sysconfig/rawdevices这个文件,在集群中首先需要一个Quorum Partition。这些分区和一些数据库的应用必须要求有裸设备,因为他们需要满足自己的buffer cache,而不是系统的,所以他们不包括文件系统。
一个/etc/sysconfig/devices的样式文件:
/dev/raw/raw1 /dev/sdb1
/dev/raw/raw2 /dev/sdb2
这个可以根据自己的需要来进行相应的更改,因为对应的设备可能会有所不同,这事前必要要用fdisk来为Quorum Partition来提定两个分区,不用太大,100M就足够用了。
在机器查看裸设备可以用raw –aq的命令,更多的信息可以用man raw。
(5)确认机器上是否安装clumanager-xxx.rpm(rpm –qa |grep clumanager)。如果没有安装的话,可以找到这个文件后,rpm –ivh clumanager-xxx.rpm
(6)确认裸设备建立无误后,那么如何来测试Quorum Partition是否正常的工作,可以用如下的命令来进行测试:
cludiskutil –p,列出的信息里,不同服务器上相同的裸设备,如(/dev/raw/raw1)的Magic和Version的值应该是一样的。这一点还请大家多多注意。
然后再来运行cluconfig进行cluster server的配置,会问一些相关的信息,正确的回答给他,会自动的更新cluster的一个信息文件,以备为cluster的运行使用。
这其中会问到一个关于IP adderss for cluster alias的地方,就是指这个集群建立起来后,客户用来访问的一个总的地址。
(7)用cludiskutil –t来检查Quorum Partition,假如用了Power switch的话,可以用clustonith来进行检查。
(最后就可以用命令来启动cluster了,命令方式如下:services cluster start。当cluster运行的时候,系统会有几个进程起动,下面将这几个进程都是作什么,给大家说一些:
cluquorumd Quorum deamon(裸设备的守护进程)
clusvcmgrd Service manager daemon(管理服务的守护)
clupowerd Power daemon
(电源管理的守护)
cluhbd Heartbeat daemon
(心跳的守护)
clumibd Administrative system monitoring daemon
(监测守护)
5.Cluster的管理:
可能这个东东相对来说要比较简单一些,因为目前在Redhat Advance Server 2.1上的已经用clumanager这样的管理包,将cluster的管理功能利用TUI的方式来管理的很好,下面主要给大家介绍一下相关的命令的使用,希望能对大家有所帮助。
一个管理的命令就是cluadmin,这个命令可以提供如下的功能:
A.增加,删除和修改cluster里的服务
B.启动和停止cluster
C.显示cluster和里面所跑服务的状态
D.修改cluster日志级别
E.备份和恢复cluster的数据
当cluadmin命令执行后,如果你对网络有一定了解的话,他的接口就像是cisco设备的字符管理界面一样的,主要是来使用一些命令来控制,这里你可以用help来列出所有的可用命令和一些简单的帮助信息,对你的使用可能会比较有帮助的,这个功能就在这里不给大家详细的讲解了,如果有什么问题,最好还是在这里直接去help来看一下他的帮助信息。
----------------------------------------------------------------------------------------------------------------------
在此作一个小结,以上的工作如果顺利作完的话,那就说明你的cluster已经正常的运转起来报,但是我们的最后的目的是什么,不是只让cluster跑起来,而是要在这个cluster的基本来跑我们的应用服务,让cluster来对我们所应用的服务起到一个很好的保护作用。
----------------------------------------------------------------------------------------------------------------------
6.Cluster里服务的建立:
(1)所必要的几个条件:
A.所保护服务必须要有一个可能控制启动和停止的脚本,安装了clumanage-xxx.rpm后,这个包里面自带了一些常用服务的控制脚本,这个很方便的,省着自己去动手写这样的一个东东,具体的位置放在/usr/share/cluster/doc/services/examples
B.确认所要运行的服务在每一台cluster server的机器上都能正常的运行
(2)务份一下/etc/cluster.conf,以备如果出错后,可以恢复到原始的状态,以免以前的工作都浪费了
(3)运行如下的命令:
/sbin/cluadmin
cluadmin>service add这样就可以来增加服务了,这个过程中同样会问你许多有关此项服务的信息,所以需要你对这个服务有一些了解,如他的启动停止控制脚本在哪?所必要的配置文件在哪里等这样的问题。不是很难的,如果不能确认,可以先到服务器看去转一转,了解一下所要的信息。
对于cluster里面服务的一些管理,以及一些系统状态的监测,可以直接用cluadmin里面提供的一些命令去跟踪,这些就不详细地讲解了,有空的大家可以去看命令的帮助信息,也可以去www.redhat.com网站去查看官方的doc。
7.Cluster数据的备份与恢复
/sbin/cluadmin
cluadmin>cluster backup [filename] 这里的filename可以不指定
cluadmin>cluster restore [filename] 同上
然后要将cluster重新启动一下,才会生效
大概就写这些东东,希望对各位有需要的网友带来一些帮助的说,结合最近所作的一个项目,同时翻译了redhat官方doc里的内容形成了此篇文章,今天早上终于在被窝里抱着笔记本把这个东东写完了!希望能给大家带来一些启示。
Wind521
2003-5-18 早10:08
参考资料:
redhat.com上官方资料中有关Advance Server 2.1 Cluster的内容,作了不少的翻译
一些有用的网站:
www.linux-ha.org/stonith