1. 程式人生 > >centos/redhat高可用環境實現(redhat cluster suit)

centos/redhat高可用環境實現(redhat cluster suit)

應用redhat cluster suit,實現高可用(HA)叢集。

注:本文在第一次成文時少寫了幾個關鍵步驟,已新增:2.1.4A, 2.3 4


虛擬機器環境如下:

[[email protected] ~]# uname -a
Linux stu121.example.com 2.6.18-238.12.1.el5 #1 SMP Tue May 31 13:23:01 EDT 2011 i686 i686 i386 GNU/Linux

0 規劃

我們用red hat cluster suit在3個centos5u4虛擬機器上建立一個高可用叢集(練習,練習哈);

叢集中有3個節點: 192.168.0.121(node1), 192.168.0.122(node2), 192.168.0.123(fence,虛擬機器上沒有fence裝置,所以用一個節點來模擬);

叢集名:cluster_ha;

faildomain名:fd_1;

服務名: web_s(實際啟動的服務就是apache-httpd)

服務下有2個資源,fip(浮動ip)資源:192.168.0.120, script資源:httpd自帶的啟動指令碼/etc/init.d/httpd;

1. 準備工作

1.1 安裝


1.1.1 因為本地沒有fence裝置,用一個節點模擬fence,所以要安裝GNBD

[[email protected] ~]# yum install gnbd

1.1.2 安裝 red hat linux cluster suit
[[email protected] ~]# yum groupinstall Clustering

安裝好後,測試一下:

[

[email protected] ~]# system-config-cluster

如果出現下面的圖形介面,表示安裝成功了:


1.1.3 如果沒有安裝apache

yum install httpd

1.2 一些輔助配置

1.2.1 配置節點名

在node1上

vim /etc/hosts

在檔案最後加上3行:

192.168.0.121 node1.test.com node1 
192.168.0.122 node2.test.com node2 
192.168.0.123 fence.test.com fence 

1.2.2 生成3個節點互訪用的公鑰私鑰

在node1上

ssh-keygen -t dsa

一路回車,然後
ssh-copy-id -i .ssh/id_dsa.pub [email protected]

1.2.3 讓node2和fence和node1保持一致

在node1上 執行:

scp -r ~/.ssh/ [email protected]:/root/
scp -r ~/.ssh/ [email protected]:/root/

scp /etc/hosts [email protected]:/etc/
scp /etc/hosts [email protected]:/etc/

#然後就可以用ssh [email protected]/node2/fence相互登入了,不需要密碼


2 配置叢集

2.1 配置HA cluster(現在node1上配置)

2.1.1 執行

system-config-cluster 
會出現上面那個圖,然後選擇"create new configuration"

2.1.2 配置cluster


2.1.3 新增節點 "Cluster Nodes -> Add a Cluster Node",node1,node2,fence的操作都相同


2.1.4 新增fence裝置 "Fence Devices->Add a Fence Device",主義fence的name不能和fenfce節點的名字相同


2.1.4A 為每個節點,包括fence節點,配置fence-level和fence,點選"Manage Fencing For This Node",然後點選”Add a New Fence Level" 來增加一個fence-level,然後選擇這個fence-level,點選“Add A new Fence to this Level",截圖如下:

2.1.5 新增fail over domain"Failover Domains->Create a Failover Domain" 按規劃取名fd_1,它的配置資訊如下


2.1.6 新增資源

新增fip(192.168.0.120)“Resources->Create a Resource->IP Address"


新增script “Resources->Create a Resource->Script"


2.1.7 新增服務“Services->Create a Service",按規劃服務名為web_s;並新增資源,點選"Add a Shared Resource to this service"(哈,這個service為什麼不大寫呢?語法錯誤?呵呵),先新增ip資源,然後選中ip資源新增httpd資源。結果如下

2.2 複製cluster.conf 到node2 和 fence

scp /etc/cluster/cluster.conf  [email protected]:/etc/cluster/

scp /etc/cluster/cluster.conf  [email protected]fence:/etc/cluster/



2.3 3個節點一起啟動cman,注意要在selinux的配置上保持一致,全開(開啟對應的埠),或者關閉iptables (servcie iptables stop)

在3個節點同時執行

[[email protected]*** ~]# service cman start
Starting cluster: 
   Loading modules... done
   Mounting configfs... done
   Starting ccsd... done
   Starting cman... done
   Starting daemons... done
   Starting fencing... done
                                                           [確定]


ok了! 然後可以在3個節點執行
[[email protected] ~]# service rgmanager start
啟動 Cluster Service Manager:                             [確定]

2.3 4 在fence節點上啟動gnbd_serv

[[email protected] ~]#gnbd_serv



2.4 檢查 在fence節點上執行

[[email protected] ~]# clustat
Cluster Status for cluster_ha @ Sat Jul 23 22:48:27 2011
Member Status: Quorate

 Member Name                                                     ID   Status
 ------ ----                                                     ---- ------
 node1                                                               1 Online, rgmanager
 node2                                                               2 Online, rgmanager
 fence                                                               3 Online, Local, rgmanager

 Service Name                                                  Owner (Last)                                                  State         
 ------- ----                                                  ----- ------                                                  -----         
 service:web_s                                                 node1                                                         started   

這時,是node1提供服務

2.5 現在我們就可以訪問fip了

http://192.168.0.120/ 你會看到apache首頁,如果node1和node2的首頁不一樣,你會明確看到node1的頁面

注意,這個時候node2上的httpd沒有被自動起來!

2.6 手工停止node1上httpd,驗證failover:在node1上執行service httpd stop,然後還是在fence節點上刷clustat,過幾秒鐘會看到

 Member Name                                                     ID   Status
 ------ ----                                                     ---- ------
 node1                                                               1 Online, rgmanager
 node2                                                               2 Online, rgmanager
 fence                                                               3 Online, Local, rgmanager

 Service Name                                                  Owner (Last)                                                  State         
 ------- ----                                                  ----- ------                                                  -----         
 service:web_s                                                 node2                                                         started 


注意,因為node1是httpd被stop了,節點依然是活著的,所以上面node1的status還是Online狀態,如果在node1上執行ifdown eth0(關閉node1上的工作網絡卡),那麼node1就成為Offline狀態。

3 其他

上述只是練習,實際生產環境是用硬體fence裝置的---在選fence裝置型別時要選APC。

其他,增刪節點,就相對容易了。


相關推薦

centos/redhat可用環境實現redhat cluster suit

應用redhat cluster suit,實現高可用(HA)叢集。注:本文在第一次成文時少寫了幾個關鍵步驟,已新增:2.1.4A, 2.3 4虛擬機器環境如下:[[email protected] ~]# uname -aLinux stu121.example.

redis可用環境搭建主從+哨兵

                                          &

一鍵部署可用etcd叢集TLS,ubuntufreetoo、碼客、盧益貴

一鍵部署高可用etcd叢集(TLS,ubuntu)(freetoo、碼客、盧益貴)   這是一個便捷高效的部署高可用etcd叢集(TLS)的指令碼工具。 下載連結: https://download.csdn.net/download/guestcode/1079847

SpringBoot2.0 + SpringCloud Eureka搭建可用註冊中心Eureka之二

上一篇中提到用SpringBoot2.0+Eureka搭建服務註冊中心和服務提供者,詳情參考: https://www.cnblogs.com/SysoCjs/p/10127448.html         現在講一下SpringCloud+Eureka搭建高可用註

Hadoop HA可用叢集搭建2.7.2

<configuration> <!--指定hdfs的nameservice為ns1,需要和core-site.xml中的保持一致 --> <property> <name>dfs.nameservices</name> <valu

Docker 環境搭建RedHat 7

wal img centos docke disable firewalld alt x86 sta Docker 環境搭建(RedHat 7): CentOS7 下載 http://mirrors.sohu.com/centos/7/isos/x86_64/

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

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

Haproxy + Pacemaker 實現可用負載均衡

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

Centos可用主從同步DNS服務部署

高可用 dns 一、背景介紹 在日常工作中,為解決內網域名解析問題,時長會配置DNS服務來提供解析。這時DNS服務就起到了為所有內部服務提供連通的基礎,變得非常重要了。所以在服務啟動後還是應該考慮服務的高可用和數據的完整性。 網友有很多LVS+Keepalived+Bind的負載均衡高可用

Mongodb3.4.7搭建可用集群

cto logs ica sta ready 部署 ... ima exiting 部署Mongodb高可用集群 準備 按照官方說明,至少需要3個config server,2個mongos,2個shard,每個shard至少2個副本,就是4個shard,共需要9個Mong

Memcached可用方案收集集群及分布式

ima tar -s 可用 應該 alt 分布式 方式 實現 Memcached的集群方案有很多,不止magent一個,但是單靠集群軟件去實現高可用感覺還是會缺少一步,最推薦的方案應該是軟件加編碼去實現高可用,至少能保證站點的99.5%的可運行行,以下是集群的方案收集:

drbd+mariadb+corosync+pacemaker構建可用實現負載均衡

drbd mysql 高可用DRBD DRBD是由內核模塊和相關腳本而構成,用以構建高可用性的集群 drbd 工作原理:DRBD是一種塊設備,可以被用於高可用(HA)之中.它類似於一個網絡RAID-1功能。當你將數據寫入本地 文件系統時,數據還將會被發送到網絡中另一臺主機上。以相同的形式記錄在

阿裏雲centos7.2 centos 超全lamp 環境搭建 各種拼接:)

vmw ati ipad 默認網關 html -i add-port grant light vmware 安裝 修改dns /etc/sysconfig/network-scripts 下面查找ifcfg-en33(可能會不同) 的文件,vi 編輯這個文件

Azure技術12-可用--在Azure上創建典型可用架構應用2

公有雲 azure PHP mysql 高可用 下面創建虛擬機,我們分別創建兩臺Windows2012 的虛擬機吧,這裏填入虛擬機名,磁盤類型(這裏就比以前老門戶方便多了,以前要創建SSD還需要powershell,見我寫的博客Azure技術08-虛擬機-創建高性能存儲,創建DS系列虛擬機

Azure技術12-可用--在Azure上創建典型可用架構應用3

azure php mysql 負載平衡器 高可用 等待安裝完成將PHPBB的文件夾中的數據復制到相應的目錄中,我這裏為了方便直接放到了wwwroot文件夾中,就不需要另外建網站,直接用默認網站然後我們展開至Install文件夾,找到index.html瀏覽來安裝PHPBB論壇根據提示一步

Jumpserver雙機可用環境部署筆記

inotify head LG end sts 時間 x11 註意 dex 之前在IDC部署了Jumpserver堡壘機環境,作為登陸線上服務器的統一入口。後面運行一段時間後,發現Jumpserver服務器的CPU負載使用率高達80%以上,主要是python程序對CPU的消

部署mysql可用集群第三方軟件 + 主從同步mysql-mmm

nginx zxvf c-c++ 部署 GC mysql主主復制 tar -xvf 數據 star 部署mysql高可用集群(第三方軟件 + 主從同步) mysql-mmm 集群:使用多臺服務器提供

Redis+Keepalived可用環境部署記錄

db文件 做了 ini 一個 keepalive red off -o BE Keepalived 實現VRRP(虛擬路由冗余)協議,從路由級別實現VIP切換,可以完全避免類似heartbeat腦裂問題,可以很好的實現主從、主備、互備方案,尤其是無狀態業務,有狀態業務就

corosync+pacemaker配置可用集群需要額外安裝crm工具

自用借鑒了網上不少博客定義:(來源於百度百科)Corosync:是集群管理套件的一部分,它在傳遞信息的時候可以通過一個簡單的配置文件來定義信息傳遞的方式和協議等。Pacemaker:是一個集群資源管理器。它利用集群基礎構件(OpenAIS 、heartbeat或corosync)提供的消息和成員管理能力來探測

SpringCloud系列四:Eureka 服務發現框架定義 Eureka 服務端、Eureka 服務信息、Eureka 發現管理、Eureka 安全配置、Eureka-HA(可用) 機制、Eureka 服務打包部署

pac elf figure 傳遞 uri rect body 情況 服務組 1、概念:Eureka 服務發現框架 2、具體內容 對於服務發現框架可以簡單的理解為服務的註冊以及使用操作步驟,例如:在 ZooKeeper 組件,這個組件裏面已經明確的描述了一個服務的註冊以及發