必威体育Betway必威体育官网
当前位置:首页 > IT技术

rhcs实现服务级别的高可用(httpd为例)和fence的原理及实现

时间:2019-07-22 07:12:15来源:IT技术作者:seo实验室小编阅读:90次「手机版」
 

fence

rhcs实现服务级别的高可用

rhcs是用来实现高可用的一个红帽套件。

下来我将介绍如何安装配置rhcs和用rhcs实现httpd的高可用。

操作系统版本:redhat6.5

master:server1

slave:server2

在server1上搭建web管理界面

实验之前给两台节点上安装httpd

rhcs的安装

1.配置yum源,安装相应的软件

#ricci是master和slave都要安装

#配置yum源

[root@server1 ~]# vim /etc/yum.repos.d/rhel-source.repo

[rhel-source]
name=Red Hat Enterprise linux $releasever - $basearch - Source
baseurl=http://172.25.60.250/rhel6.5
enabled=1
igpgcheck=0

[HighAvailability]
name=HighAvailability
baseurl=http://172.25.60.250/rhel6.5/HighAvailability
gpgcheck=0

[LoadBalancer]
name=LoadBalancer
baseurl=http://172.25.60.250/rhel6.5/LoadBalancer
gpgcheck=0


[ResilientStorage]
name=ResilientStorage
baseurl=http://172.25.60.250/rhel6.5/ResilientStorage
gpgcheck=0

[ScalableFileSystem]
name=ScalableFileSystem
baseurl=http://172.25.60.250/rhel6.5/ScalableFileSystem
gpgcheck=0

#安装ricci,打开ricci后会出现11111端口

[root@server1 ~]# yum install ricci -y
[root@server1 ~]# passwd ricci
[root@server1 ~]# /etc/init.d/ricci start
[root@server1 ~]# chkconfig ricci on
[root@server1 ~]# netstat -antlp
tcp        0      0 :::11111                    :::*                        LISTEN      1205/ricci          

#luci是web管理界面,只要在master上安装就可以了
#luci为rhcs的web管理界面
[root@server1 ~]# yum install -y luci
[root@server1 ~]# chkconfig luci on
[root@server1 ~]# /etc/init.d/luci start

2.浏览器访问查看

访问 https://172.25.60.1:8084 ,会出现以下页面

用户  操作系统用户

密码 系统的密码

登陆后会出现以下界面

点击Manage clusters,上图红框,添加节点,我的节点是server1和server2,因为勾选了加入节点后重启,所以server1和server2加入后会重新启动。

添加之后

此时,可以在结点上使用以下命令进行查看

脑裂:当两台高可用节点网络之间出现问题时或者master夯住时,master给slave主机发送的心跳slave接收不到,此时就会通过选举机制在slave中重新选举出master接管旧的master的资源,但是当网络恢复或者旧的master恢复之后,旧的master会继续履行master的职责,就会和新的master进行资源的争夺,出现脑裂。为了防止脑裂,就出现了fence

fence:当master出现问题但没有挂掉时,将master强制挂掉,新的master产生之后就会出现脑裂现象。

fence添加

#fence分为外部fence和内部fence,我以外部fence为例,因为两台高可用节点是虚拟机,所以我用物理机充当fence设备

[root@foundation60 ~]# systemctl status libvirtd
[root@foundation60 ~]# rpm -qa | grep fence
[root@foundation40 rhcl-redhat]# yum install fence-virtd-0.3.2-2.el7.x86_64  fence-virtd-libvirt-0.3.2-2.el7.x86_64 fence-virtd-multicast-0.3.2-2.el7.x86_64 -y

[root@foundation40 rhcl-redhat]# cd /etc/
[root@foundation40 etc]# fence_virtd -c
Module search path [/usr/lib64/fence-virt]: 

Available backends:
    libvirt 0.1
Available listeners:
    multicast 1.2
    serial 0.4

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 [virbr0]: 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]: 

configuration complete.

=== Begin Configuration ===
backends {
	libvirt {
		uri = "qemu:///system";
	}

}

listeners {
	multicast {
		port = "1229";
		family = "ipv4";
		interface = "br0";
		address = "225.0.0.12";
		key_file = "/etc/cluster/fence_xvm.key";
	}

}

fence_virtd {
	module_path = "/usr/lib64/fence-virt";
	backend = "libvirt";
	listener = "multicast";
}

=== End Configuration ===

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

#以上配置都记录在/etc/fence_virt.conf文件中
[root@foundation60 etc]# cat /etc/fence_virt.conf 
fence_virtd {
	listener = "multicast";
	backend = "libvirt";
	module_path = "/usr/lib64/fence-virt";
}

listeners {
	multicast {
		key_file = "/etc/cluster/fence_xvm.key";
		address = "225.0.0.12";
		interface = "br0";
		family = "ipv4";
		port = "1229";
	}

}

backends {
	libvirt {
		uri = "qemu:///system";
	}

}
#第一次做时是没有该目录,需要自己创建
[root@foundation40 etc]# mkdir /etc/cluster 
[root@foundation40 etc]# cd clust
#创建了一个key
[root@foundation40 cluster]# dd if=/dev/urandom
  of=fence_xvm.key bs=128 count=1 
[root@foundation40 cluster]# ls
fence_xvm.key

#将key发送给高可用节点
[root@foundation40 cluster]# scp fence_xvm.key  server1:/etc/cluster/
[root@foundation40 cluster]# scp fence_xvm.key  server4:/etc/cluster/

访问 https://172.25.60.1:8084,rhcs中添加fence

#添加fence设备,根据自己需要添加

#给两个节点添加fence,我的节点是虚拟机,Domain处添加的是虚拟机的UUID

#添加完之后

fence添加成功,下来添加服务

#创建集群

#添加ViP资源

#添加脚本资源,及脚本路径

#添加服务组集群

#给服务组集群中添加资源

#在节点上使用以下命令查看,资源在哪台节点上

#master上就会添加一个vip资源

#浏览器访问vip

#删掉master上的vip,由于fence的存在,资源就会转移到slave上

相关阅读

Axure PR 7.0 实现页面纵向滑动效果

几乎所有的APP都会用到页面纵向滑动的效果,我们甚至可以把几乎两个字去掉。页面纵向滑动效果就是用户可以实现上下滑动手机屏幕来

【WebService】WebService实现远程调用

一、WebService是什么WebService是一种跨语言跨平台的远程调用技术。所谓跨语言跨平台就是说服务端采用java编写,客户端程序则可以

天猫魔盒体感游戏删除怎么操作?其工作原理是怎样的?

现在已经逐渐进入智能化社会,我们不仅仅习惯了使用智能手机,还开始用起了其他智能设备,比如天猫魔盒,这是一个非常有用的只能音箱,已经

最短路径Dijkstra算法原理及Matlab实现

图论的基础知识不再阐述。 最短路径算法主要有二 Dijkstra算法 Floyd算法 Dijkstra算法研究的是从初始点到其他每一结点的最短

python-实现键盘记录器

我们今天的目标是python实现键盘记录器。这归属于信息安全领域,黑客入门木马的一个实现,各位不要拿来干坏事哦。我们务必要遵守法律

分享到:

栏目导航

推荐阅读

热门阅读