1. 程式人生 > >RHCS叢集套件——Luci/Ricci實現Web高可用叢集

RHCS叢集套件——Luci/Ricci實現Web高可用叢集

一、簡介 RHCS即 RedHat Cluster Suite ,中文意思即紅帽叢集套件,它是一套綜合的軟體元件,可以通過在部署時採用不同的配置,以滿足企業對高可用性,負載均衡,可擴充套件性,檔案共享和節約成本的需要。 它提供有如下兩種不同型別的叢集:

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

二、搭建RHCS環境 1、基本環境說明:

  • 作業系統:rhel6.5
  • 準備四臺主機: 主機:172.25.96.250,後面作fence,暫時不用 server1: 172.25.96.1 下載ricci,luci(提供Conga配置使用者介面),作主節點 server4:172.25.96.4 下載ricci,作副節點 server3:172.25.96.3 ,後面作iscci共享儲存,暫時不用

2、安裝軟體的說明 叢集中luci的作用: luci是用來配置和管理叢集,監聽在8084上

叢集中ricci的作用: ricci是安裝在每個後端的每個節點上的,luci管理叢集上的各個節點就是通過和節點上的ricci進行通訊,ricci監聽在11111上

叢集中fence的作用: 在HA叢集壞境中,備份伺服器B通過心跳線來發送資料包來看伺服器A是否還活著,主伺服器A接收了大量的客戶端訪問請求,伺服器A的CPU負載達到100%響應不過來了,資源已經耗盡,沒有辦法回覆伺服器B資料包(回覆資料包會延遲),這時伺服器B認為伺服器A已經掛了,於是備份伺服器B把資源奪過來,自己做主伺服器,過了一段時間伺服器A響應過來了,伺服器A覺得自己是老大,伺服器B覺得自己也是老大,他們兩個就掙著搶奪資源,叢集資源被多個節點佔有,兩個伺服器同時向資源寫資料,破壞了資源的安全性和一致性,這種情況的發生叫做“腦裂”。伺服器A負載過重,響應不過來了,有了Fence機制,Fence會自動的把伺服器A給Fence掉,阻止了“腦裂"的發生

FENCE的工作原理是:當意外原因導致主機異常或者宕機時,備機會首先呼叫FENCE裝置,然後通過FENCE裝置將異常主機重啟或者從網路隔離,當FENCE操作成功執行後,返回資訊給備機,備機在接到FENCE成功的資訊後,開始接管主機的服務和資源。這樣通過FENCE裝置,將異常節點佔據的資源進行了釋放,保證了資源和服務始終執行在一個節點上。

Fence分類: 硬體Fence:電源Fence,通過關掉電源來踢掉壞的伺服器 軟體Fence:Fence卡(智慧卡),通過線纜、軟體來踢掉壞的伺服器

第二種分法: 內部FENCE:IBM RSAII卡,HP的iLO卡,還有IPMI的裝置等 外部FENCE:UPS、SAN SWITCH、NETWORK SWITCH等 實際壞境中,Fence卡連線的都是專線,使用專用的Fence網絡卡,不會佔用資料傳輸線路,這樣,更能保證穩定及可靠性。 Fence卡的IP網路和叢集網路是相互依存的

3、server1和server4上配置高可用yum源

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

在這裡插入圖片描述 檢視yum源是否可用

[[email protected] ~]# yum clean all
[[email protected] ~]# yum repolist

在這裡插入圖片描述 這裡可將server1配置好的高可用yum源直接scp給server4,server就不需要再配置高可用yum源。 在這裡插入圖片描述

4、開始安裝及配置 1)安裝ricci(每個叢集中的節點上都要安裝)

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

在這裡插入圖片描述 設定ricci密碼

[[email protected] ~]# passwd ricci

在這裡插入圖片描述 啟動服務並設定開機自啟

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

在這裡插入圖片描述

2)安裝luci(只在server1上安裝)

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

在這裡插入圖片描述 啟動服務並設定開機自啟

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

在這裡插入圖片描述 根據上面提示網站,登陸到管理介面來進行配置 在這裡插入圖片描述 注:這裡進行登陸,一直是在建立連線,不能登陸,猜想可能是物理機上火牆開啟著,檢視火牆並沒有開,檢查本地的解析,也有server1的解析,嘗試將server1換成其ip再次登陸,登陸成功。

在這裡插入圖片描述

用安裝luci的root使用者登陸。 在這裡插入圖片描述

建立cluster,Node Name寫節點的主機名,密碼就是ricci使用者的密碼 在這裡插入圖片描述

點選Create Cluster,進入這個頁面, 在這裡插入圖片描述 若一直是這個等待頁面,是因為在上面安裝ricci和luci的時候沒有設定開機自啟,這是就要手動的開啟虛擬機器,開啟服務。 如下圖,兩個叢集節點已經建立完畢。 在這裡插入圖片描述

可使用cluster命令檢視節點狀態。 在這裡插入圖片描述

新增webfail 在這裡插入圖片描述

新增資源:新增到叢集的資源一定是遮蔽掉的,因為要交給叢集去管理開啟

在這裡插入圖片描述

在這裡插入圖片描述 檢視新增的資源 在這裡插入圖片描述

建立一個web組 在這裡插入圖片描述

點選web組進入,Add Resource選項,將上面新增的ip和指令碼資源加入到web組中。 在這裡插入圖片描述 在這裡插入圖片描述 在這裡插入圖片描述

檢視服務狀態 在這裡插入圖片描述

檢視ip,也將我們設定的ip新增再了server1上。 在這裡插入圖片描述 測試 在物理機上輸入新增的ip,得到的也是server1的測試頁。 在這裡插入圖片描述

clustat命令說明: clustat用來檢視集群系統中每個節點以及服務的執行狀態, 在上面的圖中,可以看到每個節點都處於“Online”狀態,表明每個節點都執行正常,如果某個節點退出了叢集,對應的狀態應該是“Offline”,同時還可以看到,叢集的一個服務web處於“started”狀態,執行在server1節點。 另外,通過“ID”一列可以知道叢集節點的對應關係,例如,server1在此叢集中對應的就是“Node 1”節點,同理,server2對應的是“Node 2”節點。瞭解叢集節點順序有助於對叢集日誌的解讀。 還有許多引數例如"-i","-m"等等,可通過clustat --help進行檢視。

clusvcadm命令說明: 用於管理應用服務,通過這個命令可以啟動、關閉、重啟、切換叢集中的應用服務。 例如:啟動某個應用服務 可以通過如下方式啟動某個節點的應用服務: clusvcadm -e -m 其中: Service:表示叢集中建立的應用服務名稱。 Node:表示叢集節點名稱。 例如,要啟動節點server1上的web服務,操作如下: 在這裡插入圖片描述

切換叢集中的應用服務:將一個應用服務從一個節點切換到另一個節點 在這裡插入圖片描述 詳細使用引數和方法可通過clusvcadm --help檢視。 上述這些在命令列進行的修改都可以在HA網頁管理介面進行修改,比較簡單,這裡不做說明和演示。

三、安裝fence_virtd服務 故障切換: RHCS的一個很重要概念:Failover Domain故障轉移域,更準確地說應該是服務故障轉移域(一個服務包括多個資源如VIP FileSystem…)key當i定義一個節點故障後,此節點上的資源能夠轉移的目標節點,進而限制了資源轉移的範圍。 FENCE裝置是RHCS叢集中必不可少的一個組成部分,通過FENCE裝置可以避免因出現不可預知的情況而造成的“腦裂”現象,FENCE裝置的出現,就是為了解決類似這些問題,Fence裝置主要就是通過伺服器或儲存本身的硬體管理介面,或者外部電源管理裝置,來對伺服器或儲存直接發出硬體管理指令, 將伺服器重啟或關機,或者與網路斷開連線。

需要安裝的包有以下三個:

fence-virtd-multicast.x86_64
fence-virtd-libvirt.x86_64
fence-virtd.x86_64

1)安裝服務並進行配置

 [[email protected] ~]# yum install -y fence-virtd.x86_64 fence-virtd-libvirt.x86_64 fence-virtd-multicast.x86_64

在這裡插入圖片描述

[[email protected] ~]# fence_virtd -c

使用以上命令進行互動式的配置fence檔案 這裡需要注意介面這一項(預設為virbr0,我們應選擇br0,因為虛擬伺服器受主機控制的網絡卡是br0 ): 在這裡插入圖片描述 其餘選項均回車,使用預設選項即可,最後輸入y進行儲存配置。 2)生成128位的key,並將key傳送到套件叢集伺服器(server1,server4)的/etc/cluster目錄下。 在這裡插入圖片描述 在這裡插入圖片描述

3)啟動fence_virtd服務

[[email protected] cluster]# systemctl restart fence_virtd

在這裡插入圖片描述

4)在luci上進行配置 選擇Fence Devices,點選Add,選擇模式為”Fence virt (Multicast Mode)”,輸入一個Fence名稱(名稱可任意輸入,但儘量具有代表性),點選Submit 在這裡插入圖片描述

點選Nodes,選擇server1,點選介面下的”Add Fence Method”,輸入一個自定義的server1的Fence名稱,例如fence1 在這裡插入圖片描述

點選Add Fence Instance,選擇之前設定好的vmfence,輸入Domain(虛擬伺服器的UUID或者虛擬機器的名稱均可,這裡推薦使用UUID),在另一個server4上做同樣操作,名稱fence2,Domain為server4的UUID。 在這裡插入圖片描述

在這裡插入圖片描述

這樣fence就設定完成,接下來測試fence。 首先檢視服務的工作狀態 在這裡插入圖片描述

[[email protected] ~]# echo c > /proc/sysrq-trigger

直接使server4的核心崩潰 在這裡插入圖片描述 等待幾秒鐘,server重新啟動。 在這裡插入圖片描述

檢視服務的狀態,此時工作在server1上,並且server4重新啟動後,恢復正常為online狀態。 在這裡插入圖片描述