RHCS红帽集群系统配置详细

简 单的说,集群(cluster)就是一组计算机,它们作为一个整体向用户提供一组网络资源。这些单个的计算机系统就是集群的节点(node)。一个理想的 集群是,用户从来不会意识到集群系统底层的节点,在他/她们看来,集群是一个系统,而非多个计算机系统。并且集群系统的管理员可以随意增加和删改集群系统 的节点。

通 过特殊的软件将若干服务器连接在一起并提供故障切换功能的实体我们称之为高可用集群。可用性是指系统的uptime,在7x24x365的工作环境 中,99%的可用性指在一年中可以有87小时36分钟的DOWN机时间,通常在关键服务中这种一天多的故障时间是无法接受的,所以提出了前面提到的错误恢 复概念,以满足99.999%的高可用性需求。

这里我们先说一下几个概念:

1、服务(Service),是HA集群中提供的资源,包括Float IP,共享的存储,apache等等。

2、成员服务器(Member Server) 也叫节点(Node),是HA中实际运行服务提供资源的服务器。

3、失效域(Failover Domain),是HA中提供资源的服务器的集合,当内部某个成员出现故障时,可以将服务切换到其他正常的成员服务器上。在HA中一个失效域一般包含2台成员服务器(未应用虚拟技术)。

4、心跳(HeartBeat)是HA中监控成员服务器状态的方法,一般心跳是通过网线和串口线来传输的。

5、单一故障点(Single Point Of Failuer,SPOF)是指一个系统的这样的一个部件,当它失效或者停止运行,将导致整个系统不能工作。在HA中通常使用双电源,多网卡,双交换机等来避免SPOF。

6、 仲裁(Quorum)是HA中为了准确的判断服务器及其提供的服务是否正常而采用的在共享磁盘中保存成员服务器信息的方法。共享的状态信息包括群集是否活 跃。服务状态信息包括服务是否在运行以及哪个成员正在运行该服务。每个成员都检查这些信息来保证其它成员处于最新状态。在一个只有两个成员的群集中,每个 成员都定期把一个时间戳和群集状态信息写入位于共享磁盘贮存区的两个共享群集分区上。要保证正确的群集操作,如果某成员无法在启动时写入主共享群集分区和 屏蔽共享群集分区,它将不会被允许加入群集。此外,如果某群集成员不更新其时间戳,或者到系统的'heartbeats'(心跳)失败了,该成员就会从群 集中删除。

7、 Fence设备,Fence设备的作用时在一个节点出现问题时,另一个节点通过fence设备把出现问题的节点重新启动,这样做到了非人工的干预和防止出 现问题的节点访问共享存储,造成文件系统的冲突,关于Fence 设备,有外置的比如APC的电源管理器.很多服务器都是内置的,只不过不同厂家的叫法不 同而已。比如HP的称为iLo,IBM的称为BMC,Dell的称为DRAC。

LUCI——RHCS(RedHat Cluster Suite) 提供了多种集群配置和管理工具,常用的有基于GUI的system-config-cluster、Conga等,也提供了基于命令行的管理工具。 system-config-cluster是一个用于创建集群和配置集群节点的图形化管理工具,它有集群节点配置和集群管理两个部分组成,分别用于创建 集群节点配置文件和维护节点运行状态。一般用在RHCS早期的版本中。 Conga是一种新的基于网络的集群配置工具,与system-config- cluster不同的是,Conga是通过web方式来配置和管理集群节点的。Conga有两部分组成,分别是luci和ricci,luci安装在一独 立的计算机上(即服务器),用于配置和管理集群,ricci安装在每个集群节点上,Luci通过ricci和集群中的每个节点进行通信。

一、HA的搭建

实验环境:RHEL6.5    iptables    and    selinux        disabled

三台主机:                IP                                          hostname

192.168.2.60(服务器)          server60.example.com

192.168.2.167(node1)             server67.example.com

192.168.2.168(node2)             server68.example.com

分别修改两节点的/etc/hosts

192.168.2.167            server67.example.com

192.168.2.168            server68.example.com

关闭火墙#iptables    -F

#service iptables save

关闭selinux    #setenforce 0

同步两台主机的系统时间

#yum install ntpdate

#ntpdate 192.168.2.60

在两台节点主机上分别安装ricci

#yum install ricci

启动ricci服务

#service    ricci    start

设置为开机自启动

#chkconfig ricci on

为ricci设置密码

#passwd ricci

重启服务器的luci

#service luci restart

Stop luci...                                               [  OK  ]
Start luci...                                              [  OK  ]
Point your web browser to (or equivalent) to access luci
web访问/cluster/

进入网页编辑

先用root登录

再用本地用户登录

再用root登录时点击右上角Admin,为普通用户lee授权

这时候就可以创建集群

这时,两节点主机将会重启。这就是为什么把ricci服务设置为开机自启动且将iptables关闭的原因。

创建完成会自动在节点上写入文件/etc/cluster/cluster.conf

<?xml version='2.0'?>
<cluster config_version='1' name='leeypp'>
        <clusternodes>
                <clusternode name='server67.example.com' nodeid='1'/>
                <clusternode name='server68.example.com' nodeid='2'/>
        </clusternodes>
        <cman expected_votes='1' two_node='1'/>
        <fencedevices/>
        <rm/>
</cluster>

二、fence device 隔离设备 

用kvm虚拟机来做这个隔离设备

实验环境:RHEL6 selinux and iptables disabled

主机:KVM虚拟机

hostname            ip                         kvm domain name

node1         192.168.2.137                     vm1

node2         192.168.2.138                     vm2

192.168.2.60    服务器

#yum install fence-virt fence-virtd fence-virtd-libvirt fence-virtd-multicast -y

# fence_virtd -c        设置隔离设备

Module search path [/usr/lib64/fence-virt]:

Available backends:

libvirt 0.1

Available listeners:

multicast 1.0

Listener modules are responsible for accepting requests

from fencing clients.

Listener module [multicast]:

The multicast listener module is designed for use environments

where the guests and hosts may communicate over a network using

multicast.

The multicast address is the address that a client will use to

send fencing requests to fence_virtd.

Multicast IP Address [225.0.0.12]:

Using ipv4 as family.

Multicast IP Port [1229]:

Setting a preferred interface causes fence_virtd to listen only

on that interface. Normally, it listens on all interfaces.

In environments where the virtual machines are using the host

machine as a gateway, this *must* be set (typically to virbr0).

Set to 'none' for no interface.

Interface [none]: br0

The key file is the shared key information which is used to

authenticate fencing requests. The contents of this file must

be distributed to each physical host and virtual machine within

a cluster.

Key File [/etc/cluster/fence_xvm.key]:

Backend modules are responsible for routing requests to

the appropriate hypervisor or management layer.

Backend module [libvirt]:

The libvirt backend module is designed for single desktops or

servers. Do not use in environments where virtual machines

may be migrated between hosts.

Libvirt URI [qemu:///system]:

Configuration complete.

=== Begin Configuration ===

backends {

libvirt {

uri = 'qemu:///system';

}

}

listeners {

multicast {

key_file = '/etc/cluster/fence_xvm.key';

interface = 'br0';

port = '1229';

address = '225.0.0.12';

family = 'ipv4';

}

}

fence_virtd {

backend = 'libvirt';

listener = 'multicast';

module_path = '/usr/lib64/fence-virt';

}

=== End Configuration ===

Replace /etc/fence_virt.conf with the above [y/N]? y

注:以上设置除“Interface”处填写虚拟机通信接口外,其他选项均可回车保持默认。

#dd if=/dev/urandom of=/etc/cluster/fence_xvm.key bs=128 count=1

#scp /etc/cluster/fence_xvm.key 192.168.2.138:/etc/cluster(该目录默认是不存在的,可用mkdir来创建)

#scp /etc/cluster/fence_xvm.key 192.168.2.137:/etc/cluster

#service fence_virtd start

#chkconfig fence_virtd on

# netstat -anulp |grep fence

udp 0 0 0.0.0.0:1229 0.0.0.0:* 7519/fence_virtd

#cd /etc/cluster

查看是否存在fence_virtd文件

现在在网页管理上添加隔离设备

在domain后添加server37主机的uuid

在domain后添加server38主机的uuid

#fence_xvm    -H    vm1    看看是否可以操作你的虚拟机,如果成功,vm1将会重启。

且另一个节点会热接管

设置两节点的下列服务为开机自启动:

#chkconfig cman on

#chkconfig rgmanager on

#chkconfig modclusterd on

#chkconfig clvmd on

设置故障转移域(failover domains)

添加资源(resourses)

(该IP不为其他主机所用)

添加成功之后

添加服务组(Server Groups)

在节点上执行的命令

#clusvcadm -d www   关闭此服务组
#clustat  查看节点和服务的状态
#clusvcadm -e www 开启此服务组

刚刚添加了apache服务,所以要在每个节点上安装apache服务

#yum install -y httpd

为了区分两台内容可以重新编辑一下默认访问主页

#cd /var/www/html/

#echo `hostname` > index.html

ok现在可以在web网页上访问

就有主机名

刚刚添加的那个ip服务,它是一个浮动ip

192.168.2.111就可以看到你做的那个优先级高的再接管服务

如果将这个节点上的http关掉,那么那个优先级低的候补立马接管

如果ifconfig eth0 down 是这个节点的网可关掉,它会尝试恢复,如果恢复不了,就会被集群forceoff,然后重启当替补,如果优先级高的话,那么它就会立即接管给集群管理加存储服务

三、给集群管理加存储服务

1.ext4文件系统

192.168.0.237(节点)server67.example.com

192.168.0.248(节点)server68.example.com

192.168.0.60(服务器)server60.example.com

在一个存储服务器上共享一块硬盘,作为存储(在实验中,就直接在集群管理的那台服务器上共享一块硬盘)

#yum install scsi-*

#vgs

#lvcreate -L 1G -n iscsi cinder-volumes

#lvs

#vim /etc/tgt/targets.conf

#/etc/init.d/tgtd start

#chkconfig tgtd on

#tgt-admin -s

#在节点上要可以发现这个共享的存储设备 ,在两个节点上都执行

#yum install iscsi-initiator-utils

#iscsiadm -m discovery -t st -p 192.168.0.60

#iscsiadm -m node -l   激活设备
#fdisk -l /dev/sda

现在在两个节点上给此设备做 分区和格式化 (做本地文件系统 ext4)

#fdisk -cu /dev/sda

#mkfs.ext4 /dev/sda1

在web管理界面上添加存储设备资源和资源组

再去资源组(Server Groups)添加此资源

ok现在操作服务组

#clustat

#clusvcadm -d www

现在将此设备先挂载到/var/www/html下

启动服务

#clusvcadm -e www

#clustat     查看服务是否启动成功

#clusvcadm -r www -m server38.example.com

#clustat    这是会发现www运行在server38主机上

2.设备的分区和格式化 (即网络文件系统 gfs2)

clusvcadm -d www   先停掉服务组 

删掉服务组里(servies groups)的文件系统(filesystem)资源,再到资源里删掉(delete)存储设备资源

fdisk -cu /dev/sda  把它做成LVM形式

这时在另一节点主机上运行pvs就可以看到刚创建的

pvcreate /dev/sda1

lvmconf --enble-cluster 在 /etc/lvm/lvm.conf做更改,使它可以支持集群

重启服务  /etc/init.d/clvmd restart

在另一节点主机上运行lvs,可以看见同步到的gfs2demo 格式化为gfs2的格式 -t跟更集群的名字:后是标签 两节点主机都进行挂载 # mount /dev/clustervg/gfs2demo /var/www/html 设置为开机自动挂载 直接写入/etc/fstab文件, 在所有节点都做这个操作 查看系统设备信息 vim /etc/fstab 现在mount -a 刷此文件,同时挂载 cd /var/www/html vim index.html  写东西来进行web测试  web访问集群 192.168.0.111可以看到index.html文件里写入的内容 ok现在开启服务组 clusvcadm -e www clusvcadm -d www  先停掉服务组 在web管理上面添加  在/etc/fstab中注释掉gfs2设备的挂载  ,解挂 现在在资源加存储设备资源,集群管控添加服务组 ok现在开启服务组 clusvcadm -e www 现在哪个节点工作,那个节点挂载 前提:clusvcadm -d www 删掉原来的存储设备    lvs    vgs    vgremove clustervg    lvs    pvs    pvremove /dev/sda1    iscsiadm -m node -u    iscsiadm -m node -o delete

(0)

相关推荐

  • D 的个人博客

    集群概述 通过 Erlang 的分布式特性(通过 magic cookie 认证节点)进行 RabbitMQ 集群,各 RabbitMQ 服务为对等节点,即每个节点都提供服务给客户端连接,进行消息发送 ...

  • Rabbitmq集群高可用部署详细

    序言 清风万里的季节,周末本该和亲人朋友一起消遣这烂漫的花花草草,或是懒洋洋的晒个太阳听听风声鸟鸣.无奈工作使然,理想使然,我回到啦公司,敲起啦键盘,撸起啦代码,程序狗的世界一片黯然,一片黯然,愿天下 ...

  • 中国400个产业集群详细名单!

    温馨提示来源:VC/PE/MA金融圈 导言:产业集群是指在特定区域中,具有竞争与合作关系,且在地理上集中,有交互关联性的企业.专业化供应商.服务供应商.金融机构.相关产业的厂商及其他相关机构等组成的群 ...

  • 404个国内顶尖产业集群详细名单,收藏!

    先进制造业·导读 01 国家发展改革委:66个战略性新兴产业集群名单 02 科技部:国内108个顶尖产业集群详细名单 科技部官方发布的创新型产业集群试点名单(61个) 序号 产业集群名称 1 北京中关 ...

  • 谷歌超大规模集群管理系统Borg详细解读

    0. 前言 文本根据谷歌15年发表的论文整理得到,论文连接:http://research.google.com/pubs/pub43438.html Borg是谷歌内部的大规模集群管理系统,在谷歌内 ...

  • 大英:全力打造高端化学新材料产业集群

    近年来,大英全面贯彻落实全省关于加快构建"5 1"现代产业体系决策部署,推动培育万亿级能源化工产业集群,坚持产业链招商,特色化.产业化发展,化学新材料产业初具规模,形成了以石墨烯. ...

  • 为什么Redis集群要使用反向代理?

    为什么要使用反向代理? 如果没有反向代理,一台Redis可能需要跟很多个客户端连接: 看着是不是很慌?看没关系,主要是连接需要消耗线程资源,没有代理的话,Redis要将很大一部分的资源用在与客户端建立 ...

  • 山西日报关注我县打造培育产业集群新动能

    金晖兆隆高新科技股份有限公司生产的生物降解塑料PBAT. 太钢不锈钢精密带钢有限公司生产车间. 中国电科(山西)碳化硅材料产业基地生产车间. 华阳新材料科技集团气凝胶生产线. 新材料与人们的生活息息相 ...

  • 北京市首个集群注册平台正式落地海淀创业园

    北京市首个集群注册平台 正式落地海淀创业园 5月13日,"中关村科技园区海淀园创业服务中心--海淀区集群注册平台"在海淀创业园举行了揭牌仪式.海淀园服务体系建设处副处长刘钊,海淀园 ...

  • 集群无人机探测及对抗措施综述

    作者:王奇珍    来源:无人机 摘要:集群无人机可能会改变未来的作战态势,无人机集群技术成为各国研究人员不断探索的新领域.首先阐释分析了无人机集群的预警探测方式,然后对无人机集群的反制措施进行了详细 ...