1. 程式人生 > >RHCS套件+Nginx實現高可用負載均衡

RHCS套件+Nginx實現高可用負載均衡

紅帽叢集套件(RedHat Cluter Suite, RHCS)是一套綜合的軟體元件,可以通過在部署時採用不同的配置,以滿足你對高可用性,負載均衡,可擴充套件性,檔案共享和節約成本的需要。

它提供有如下兩種不同型別的叢集: 

  • 1、高可用性:應用/服務故障切換-通過建立n個節點的伺服器叢集來實現關鍵應用和服務的故障切換
  • 2、負載均衡:IP 負載均衡-對一群伺服器上收到的 IP 網路請求進行負載均衡

叢集:

1.節點(node) 
執行叢集程序的一個獨立主機,稱為節點,節點是HA的核心組成部分,每個節點上執行著作業系統和叢集軟體服務,在叢集中,節點有主次之分,分別稱為主節點 和備用/備份節點,每個節點擁有唯一的主機名,並且擁有屬於自己的一組資源,例如,磁碟、檔案系統、網路地址和應用服務等。主節點上一般執行著一個或多個 應用服務。而備用節點一般處於監控狀態

2.資源(resource) 
資源是一個節點可以控制的實體,並且當節點發生故障時,這些資源能夠被其它節點接管

3.事件(event) 
也就是叢集中可能發生的事情,例如節點系統故障、網路連通故障、網絡卡故障、應用程式故障等。這些事件都會導致節點的資源發生轉移,HA的測試也是基於這些事件來進行的。

4.動作(action) 
事件發生時HA的響應方式,動作是由shell腳步控制的,例如,當某個節點發生故障後,備份節點將通過事先設定好的執行指令碼進行服務的關閉或啟動。進而接管故障節點的資源

實驗環境:

 物理主機:172.25.26.250

 server1:172.25.26.2  

 server2:172.25.26.3

1、server1和server2配置yum源

[[email protected] init.d]# vim /etc/yum.repos.d/rhel-source.repo 

[rhel-source]

name=Red Hat Enterprise Linux $releasever - $basearch - Source

baseurl=http://172.25.26.250/source6.5

enabled=1

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

[HighAvailability]

name=Red Hat Enterprise Linux HighAvailability

baseurl=http://172.25.26.250/source6.5/HighAvailability

gpgcheck=0

[LoadBalancer]

name=Red Hat Enterprise Linux LoadBalancer

baseurl=http://172.25.26.250/source6.5/LoadBalancer

gpgcheck=0

[ResilientStorage]

name=Red Hat Enterprise Linux ResilientStorage

baseurl=http://172.25.26.250/source6.5/ResilientStorage

gpgcheck=0

[ScalableFileSystem]

name=Red Hat Enterprise Linux ScalableFileSystem

baseurl=http://172.25.26.250/source6.5/ScalableFileSystem

gpgcheck=0

2.server1和server2都安裝ricci,設定密碼並啟動

[[email protected] ~]# yum install ricci -y

[[email protected] ~]# passwd ricci

[[email protected] ~]# /etc/init.d/ricci start

[[email protected] ~]#  chkconfig ricci on

3.在server1上安裝luci,並啟動

[[email protected] ~]# yum install luci -y

[[email protected] ~]# /etc/init.d/luci start

[[email protected] ~]# chkconfig luci on

  1. 介面登陸設定,使用者為server1的root使用者及其密碼

https://172.25.26.2:8084

按圖示進行建立,passwd是server1和server2中ricci密碼設定中,server1和server4會重新啟動

二.安裝fence系統

 物理主機:172.25.26.250

1.安裝

[[email protected] ~]# yum install fence-* -y

[[email protected] ~]# fence_virtd -c

[[email protected] ~]# mkdir /etc/cluster

生成隨機金鑰檔案,重啟服務

[[email protected] cluster]# systemctl   restart    fence_virtd

[[email protected] cluster]# dd if=/dev/urandom of=/etc/cluster/fency_xvm.key bs=128 count=1

把金鑰檔案傳遞給server1和server2

[[email protected] cluster]# scp /etc/cluster/fency_xvm.key [email protected]:/etc/cluster/

[[email protected] cluster]# scp /etc/cluster/fency_xvm.key [email protected]:/etc/cluster/

2.建立fence裝置

開啟瀏覽器,選擇Fence Devices 中Add

選擇server1,點選Add Fence Method 為fence1

選擇server2,點選Add Fence Method 為fence2

選擇 Fence1 中 Add Fence Instance

新增Domain為虛擬機器的uuid

fence2同樣的方法新增

測試:

Server1:

[[email protected] ~]#fence_node   server2

[[email protected] ~]#clustat

三.在搭建好的叢集上新增Nginx服務

1.server1和server2上都部署好 nginx

[[email protected] ~]#  ls

[[email protected] ~]#tar  zxf   nginx-1.14.0.tar.gz

[[email protected] ~]ls

[[email protected] ~]#cd  nginx-1.14.0

cd   src

cd     core

vim   nginx.h

cd    /root/nginx-1.14.0

cd   auto

cd    cc

vim   gcc

 ./configure   --prefx=/usr/local/nginx     --with-http_ssl_module    --with-http_stub_status_module   --with-threads  --with-file-aio

yum install   -y  gcc

yum   install -y  pcre-devel

yum install    openssl-devel   -y

make

make   install

cd   /usr/local

ln -s  /usr/local/nginx/conf/nginx.conf       /sbin

nginx   -t

lscpu

vim   /etc/security/limits.conf  

vim     /usr/local/nginx/conf/nginx.conf

useradd -M  -d   /usr/local/nginx

id   nginx

nginx

nginx   -s   reload

nginx     -s     stop

nginx  

scp    -r    /usr/local/nginx/        [email protected]:/usr/local

Server2:

[[email protected] ~]ln  -s  /usr/local/nginx/sbin/nginx     /sbin

[[email protected] ~]nginx   -t

[[email protected] ~]useradd   -M  -d   /usr/local/nginx     nginx

[[email protected] ~]id   nginx

2.配置 Luci web 端

(1)選 擇Failover Domains,如圖,填寫Name(nginxfail),如圖選擇,前面打勾的三個分別是結點失效之後可以跳到另一個結點、只服務執行指定的結點、當結點失效之跳到另一個結點之後,原先的結點恢復之後,不會跳回原先的結點。下面的Member打勾,是指服務執行server1和server2結點,後 面的Priority值越小,優先順序越高,選擇Create

(2)選擇Resourcs,點選Add,選擇新增IPAddress如圖,新增的172.25.26.100必須是未被佔用的ip,24是子網掩碼的位數,5指的是等待時間為5秒。選擇Submit

  1. 以相同的方法新增Script,nginx是服務的名字,/etc/init.d/nginx是服務啟動指令碼的路徑,選擇Submit

:將nginx的指令碼放置到/etc/init.d/nginx下,指令碼為自己編寫,使用者啟動nginx

Vim /etc/init.d/nginx

#!/bin/bash

[ -f /etc/init.d/functions ] && . /etc/init.d/functions

pidfile=/application/nginx/logs/nginx.pid

Start_Nginx(){

  if [ -f $pidfile ];then

    echo "Nginx is running"

  else

    /usr/local/nginx/sbin/nginx &>/dev/null

    action "Nginx is Started" /bin/true

  fi

}

Stop_Nginx(){

    if [ -f $pidfile ];then

    /usr/local/nginx/sbin/nginx -s stop &>/dev/null

    action "Nginx is Stopped" /bin/true

  else

    echo "Nginx is already Stopped"

  fi

}

Reload_Nginx(){

  if [ -f $pidfile ];then

    /usr/local/nginx/sbin/nginx -s reload &>/dev/null

    action "Nginx is Reloaded" /bin/true

  else

    echo "Can't open $pidfile ,no such file or directory"

  fi

}

case $1 in

  start)

    Start_Nginx

    RETVAL=$?

    ;;

  stop)

    Stop_Nginx

    RETVAL=$?

    ;;

  restart)

    Stop_Nginx

    sleep 3

    Start_Nginx

    RETVAL=$?

    ;;

  reload)

    Reload_Nginx

    RETVAL=$?

    ;;

  *)

    echo "USAGE: $0 {start|stop|reload|restart}"

    exit 1

esac

exit $RETVAL

 

3)選擇Service Groups,點選Add如圖,nginx是服務的名字,下面兩個勾指分別的是自動開啟服務、執行 ,選擇Add Resource,將全域性資源IP Address 和Script加入

選擇:Add   Resource選擇172.25.26.100

選擇Add  Resource   選擇script

選擇Submit,完成,nginx服務組running

3.測試

clustat    ,將server1的webib服務轉移到server2上

clustat   檢視狀態

clusvcadm -r nginx -m server4  將nginx組轉移到server4上

clusvcadm -e nginx   重新啟用nginx組

clusvcadm -d nginx   停止nginx組

/etc/cluster/cluster.conf     所有的配置都在裡面,刪了就沒了

相關推薦

RHCS+Nginx實現可用負載均衡

紅帽叢集套件(RedHat Cluter Suite, RHCS)是一套綜合的軟體元件,可以通過在部署時採用不同的配置,以滿足你對高可用性,負載均衡,可擴充套件性,檔案共享和節約成本的需要。 它提供有如下兩種不同型別的叢集:  1、高可用性:應用/服務故障切換-通過建立n

Keepalived+Nginx實現可用負載均衡集群

連接 靜態 adf -1 rip mail fff hostname dex 一 環境介紹 1.操作系統CentOS Linux release 7.2.1511 (Core) 2.服務keepalived+lvs雙主高可用負載均衡集群及LAMP應用keepalived-1

nginx+keepalived實現可用負載均衡

其中 centos7.3 9.png IT 配置文件 bsp 是我 add nginx 環境: centos7.3虛擬機A 10.0.3.46 centos7.3虛擬機B 10.0.3.110 虛擬機A和B都需要安裝nginx和keepalived(過程省略,其中keepa

nginx+keepalive實現可用負載均衡

keepalived+nginx高可實驗一:實驗環境 主nginx負載均衡器:192.168.10.63 (通過keepalived配置了VIP:192.168.10.188供外使用)副nginx負載均衡器:192.168.10.200(通過keepalived配置了VIP:192.168.10.188供外

postgresql使用RHCS搭建HA可用叢集

環境: 資料庫伺服器 2臺 伺服器一 作業系統:CentOS 6.8 x86_64 IP(eth0):192.168.11.61 主機名:node1 伺服器二 作業系統:CentOS 6.8 x86_64 IP_1(eth0):192.168.11.62 主機名:node2

Nginx】如何實現Nginx可用負載均衡?看完我也會了!!

## 寫在前面 > 不得不說,最近小夥伴們的學習熱情是越來越高,不斷向冰河提出新的想學習的技術。這不,又有小夥伴問我:冰河,你在【Nginx專題】寫的文章基本上都是Nginx單機版的,能不能寫一篇關於Nginx的高可用的文章呢?我:沒問題,安排上!這不,就有了這篇文章!! ## Keepalived

LVS+Keepalived實現可用負載均衡

lvs+keepalived 高可用 負載均衡 用LVS+Keepalived實現高可用負載均衡,簡單來說就是由LVS提供負載均衡,keepalived通過對rs進行健康檢查、對主備機(director)進行故障自動切換,實現高可用。1. LVS NAT模式配置準備三臺服務器,一臺director, 兩

HAProxy+Varnish+LNMP實現可用負載均衡動靜分離集群部署

else 應用服務器 bash == 開機啟動 多少 heal 啟用 4.0 轉自http://bbs.hfteams.com/forum.php?mod=viewthread&tid=11&extra=page%3D1 HAProxy+Varnish+LN

keepalived+lvs實現可用負載均衡集群

keepalived+lvs實現高可用LVS實戰篇第1章 環境準備1.1 系統環境1.1.1 系統版本[root@lb01 ~]# cat /etc/redhat-release CentOS release 6.9 (Final) [root@lb01 ~]# uname -r 2.6.32-696.el6

consul-template + nginx部署可用負載均衡

mas server web key use 健康 png ice pre 簡介 Consul-template是Consul的一個方擴展工具,通過監聽Consul中的數據可以動態修改一些配置文件,大家比較熱衷於應用在Nginx,HAProxy上動態配置健康

LVS+Keepalived 實現可用負載均衡叢集

LVS+Keepalived  實現高可用負載均衡叢集     隨著網站業務量的增長,網站的伺服器壓力越來越大?需要負載均衡方案!商業的硬體如 F5 ,Array又太貴,你們又是創業型互聯公司如何有效節約成本,節省不必要的浪費?同時還需要實現商業硬體一樣的高效能高可

Nginx+Keepalived可用負載均衡

warn 兩個 available fail star 服務 online vip .com 轉自 https://www.jianshu.com/p/da26df4f7d60 Keepalived+Nginx實現高可用Web負載均衡 Master 192.

docker下用keepalived+Haproxy實現可用負載均衡叢集

先記錄下遇到的坑,避免之後忘了; 花時間最多去解決的一個題是:在docker下啟動haproxy服務後在這個docker服務內安裝keepalived無法ping通的問題,雖然最後也是莫名其妙就好了,但是加強了不少對docker的理解和還需深入學習的地方。 為什麼要用

【Linux】LVS+Keepalived實現可用負載均衡(Web群集)

一、Keepalived概述 keepalived是一個類似於layer3,4,5交換機制的軟體,也就是我們平時說的第3層、第4層和第5層交換。Keepalived的作用是檢測web伺服器的狀態,

LVS-DR+keepalived實現可用負載均衡

介紹 LVS是Linux Virtual Server的簡寫,意即Linux虛擬伺服器,是一個虛擬的伺服器集群系統。本專案在1998年5月由章文嵩博士成立,是中國國內最早出現的自由軟體專案之一。 Keepalived 主要用作RealServer的健康狀態檢查以及Load

centos7.2 MYSQL雙主+半同步+keepalived實現可用負載均衡

這兩天瞭解了一下mysql的叢集方案,發現有很多解決方案,有複雜的也有簡單的,有興趣的參考下面網址:http://www.cnblogs.com/Kellana/p/6738739.html 這裡,我使用中小企業最常用也是較簡單的方案,用keepalived提供一個vip(

利用lvs+keepalived實現可用負載均衡環境的部署

http://wangwq.blog.51cto.com/8711737/1852212 ,執行即可(注意指令碼的VIP,不同的realserver對應不同的VIP) 1 2 3 4 5 6

利用saltstack自動化運維工具結合keepalived實現可用負載均衡

在上次實驗“saltstsck自動化運維工具實現負載均衡”的基礎上,也就是在server3端配置實現server4端的httpd和server5端的nginx負載均衡,繼續進行操作實現高可用: (本文所有主機ip均為172.25.17網段,主機名和ip相對應。

Haproxy + Pacemaker 實現可用負載均衡(二)

Pacemaker server1 和 server2 均安裝pacemaker 和 corosync server1 和 server2 作相同配置 [root@server1 ~]# yum install -y pacemaker coros

keepalived+httpd+tomcat實現可用負載均衡

一、環境 centos 6.5 keepalived keepalived-1.2.19.tar.gz httpd httpd-2.4.12.tar.gz tomcat apache-tomcat-7.0.63.tar.gz 二、部署 安裝 http