1. 程式人生 > >rhcs實現服務級別的高可用(httpd為例)和fence的原理及實現

rhcs實現服務級別的高可用(httpd為例)和fence的原理及實現

rhcs實現服務級別的高可用

 rhcs是用來實現高可用的一個紅帽套件。

下來我將介紹如何安裝配置rhcs和用rhcs實現httpd的高可用。

作業系統版本:redhat6.5

master:server1

slave:server2

在server1上搭建web管理介面

實驗之前給兩臺節點上安裝httpd

rhcs的安裝

1.配置yum源,安裝相應的軟體

#ricci是master和slave都要安裝

#配置yum源

[[email protected] ~]# 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埠

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

#luci是web管理介面,只要在master上安裝就可以了
#luci為rhcs的web管理介面
[[email protected] ~]# yum install -y luci
[[email protected] ~]# chkconfig luci on
[[email protected] ~]# /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裝置

[[email protected] ~]# systemctl status libvirtd
[[email protected] ~]# rpm -qa | grep fence
[[email protected] 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

[[email protected] rhcl-redhat]# cd /etc/
[[email protected] 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檔案中
[[email protected] 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";
	}

}
#第一次做時是沒有該目錄,需要自己建立
[[email protected] etc]# mkdir /etc/cluster 
[[email protected] etc]# cd clust
#建立了一個key
[[email protected] cluster]# dd if=/dev/urandom
  of=fence_xvm.key bs=128 count=1 
[[email protected] cluster]# ls
fence_xvm.key

#將key傳送給高可用節點
[[email protected] cluster]# scp fence_xvm.key  server1:/etc/cluster/
[[email protected] 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上

相關推薦

rhcs實現服務級別可用(httpd)fence原理實現

rhcs實現服務級別的高可用 rhcs是用來實現高可用的一個紅帽套件。下來我將介紹如何安裝配置rhcs和用rhcs實現httpd的高可用。作業系統版本:redhat6.5master:server1slave:server2在server1上搭建web管理介面實驗之前給兩臺節

dubbo+rabbitmq+hystrix實現服務可用

實際業務中,我們總希望我們的系統能夠儘可能做到高可用,容錯性強,系統內部在服務的呼叫鏈路上,可控制性更好,這樣一旦系統一旦出現問題,容易追蹤問題的來源,尤其是在分散式開發,微服務化越來越流行的今天,如何達到上述的幾項標準,是考量我們的系統的有效試金石,下面,我們使用dubbo模擬分散式系統環

02-keepalived實現對nginx服務可用(主備)

trac code lob back ddr then 密碼 rtu alt 實驗環境:controller3,controller4為後端web服務器,controller1,controller2為nginx負載均衡服務器,用keepalived實現主備模式的高可用 c

heartbeat v1(CRM)+DRBD實現數據庫服務可用集群搭建

drbd mariadb heartbeat 一. 方案簡介本方案采用Heartbeat雙機熱備軟件來保證數據庫的高穩定性和連續性,數據的一致性由DRBD這個工具來保證。默認情況下只有一臺mysql在工作,當主mysql服務器出現問題後,系統將自動切換到備機上繼續提供服務,當主數據庫修復完畢,又將

Mysql DBA 級運維學習筆記-Heartbeat實現web服務可用案例維護要點

heartbeat8.Heartbeat實現web服務的高可用案例 8.1部署準備 通過web服務高可用案例來熟悉heatbeat軟件的使用,用上面的兩臺服務器機器名分別為heartbeat-1-130和heartbeat-1-129 8.2 安裝配置http服務(兩臺機器都要安裝) yum install

mysql運維管理-Heartbeat實現web服務可用案例維護要點

server exp lec disabled urn tool distrib model recover 1.DRBD介紹 Distributed Replicated Block Device (DRBD)是基於塊設備在不同的高可用服務器對之間同步和鏡像數據的軟件,通

Heartbeat實現web服務可用

2-2 修改文件權限 util tde 信號 .html 報文 群集 api 一、Heartbeat概述:   Heartbeat的工作原理:heartbeat最核心的包括兩個部分,心跳監測部分和資源接管部分,心跳監測可以通過網絡鏈路和串口進行,而且支持冗余鏈路,它們之間

【轉載】keepalived+httpd 做web服務可用

場景:  環境中有兩臺httpd伺服器,一臺做主,一臺做備用;平時只用主向外提供http服務;當主宕機後,keepalived把vip繫結到備機上去,這樣就由備機提供http服務了。  **keepalvied 這個軟體還是更新的比較快的,主要問題再於它的文件並沒能跟上來,不

Spring cloud Eureka 服務治理(可用服務中心)

image 本地host available png active url 狀態 name spring 在微服務的架構中,我們考慮發生故障的情況,所以在生產環境中我們需要對服務中各個組件進行高可用部署。 Eureka Server 的高可用實際上就是將自己作為服務想其

使用RHCS創建Linux可用群集

linux 拓撲圖 target blank border 基礎環境準備環境拓撲圖Linux基本服務設定關閉iptables#/etc/init.d/iptables stop#chkconfig iptables off#chkconfig list | grep iptables關閉s

nginx實現請求的負載均衡 + keepalived實現nginx的可用

java 谷歌 you proc max 業務需求 html state opus 前言   使用集群是網站解決高並發、海量數據問題的常用手段。當一臺服務器的處理能力、存儲空間不足時,不要企圖去換更強大的服務器,對大型網站而言,不管多麽強大的服務器,都滿足不了網站持續增長的

corosync+pacemaker+drbd 實現mysql的可用

corosync+pacemaker+drbd 實現mysql的高可用性一、環境準備1.操作系統centos 6.4 (32位)系統要是雙網卡2.配置各節點互相解析 node1:[[email protected] ~]# uname -n node1.test.com [[email 

實現keepalived企業級可用基於LVS-DR模式

負載均衡 lvs dr模式 keepalived 地址漂移 一、為什麽要使用keepalived 當後端實現了負載均衡後壞掉一臺機器後可以用另一臺後臺web服務器補上,但是當前端的LVS壞掉後,整套服務就徹底廢掉,因此前端的LVS也需要實現負載均衡。 Keepa

Keepalived + Haproxy實現負載均衡可用

liunx haproxy 高可用基於LVS實現Keepalived的高可用見:http://amelie.blog.51cto.com/12850951/1979636負載均衡為將用戶並發請求轉發到後臺若幹服務器,以分流方式均衡負載。均衡負載借用的軟件,我們這裏是Haproxy。而負責轉發的服務器,我們稱之

keepalived+MHA實現mysql主從可用集群

keepalived mha mysql主從集群 高可用 本節索引原理分析實驗環境準備主從復制集群安裝MHA包初始化MHA配置Keepalived故障出現故障恢復總結 一 原理分析1 MHA簡介:MHA(Master High Availability)目前在MySQL高可用方面是一個相對成熟

zipkin服務可用

url tid artifact end -- 可用 man client pid server:port: 9412spring:application:name: unieap-zipkin-clientzipkin:enabled: truebase-url: htt

Keepalived+Nginx實現負載均衡可用

技術 狀態 實現負載均衡 一定的 方式 mark 提供服務 priority usr 一、負載均衡高可用 Nginx作為負載均衡器,所有請求都到了Nginx,可見Nginx處於非常重點的位置,如果Nginx服務器宕機後端web服務將無法提供服務,影響嚴重。

Redis Sentinel安裝與部署,實現redis的可用

config pom else turn int 修改 align 表示 boot.s 前言   對於生產環境,高可用是避免不了要面對的問題,無論什麽環境、服務,只要用於生產,就需要滿足高可用;此文針對的是redis的高可用。   接下來會有系列文章,該系列是對spring

LVS - 利用ldirectord實現RS的可用

LVSLdirectord利用ldirectord實現RS的高可用性 --- 實驗:搭建Ldirectord,實現Real Server的高可用性 LVS高可用性 --- RS的高可用 1 Director不可用,整個系統將不可用;SPoF Single Point of Failure 單點失

Centos7 下實現 memcached + keepalived 可用群集

緩存服務 支持 pad mkdir .so check def shel 安裝 memcached + keepalived 高可用群集 memcached介紹 Memcached是一套開源的高性能分布式內存對象緩存系統,它將所有的數據都存儲在內存中,因為在內存中會統一維護