是指一組相互獨立的計算機,利用高速通訊網絡組成的一個較大的計算機服務系統,每一個集羣節點都是運行各自服務的獨立服務器,這些服務器之間能夠彼此通訊,協同向用戶提供應用程序,系統資源和數據,並以單一系統的模式加以管理。前端
1 高性能
2 價格有效性
3 可伸縮性
4 高可用
5 透明性
6 可管理
7 可編程mysql
1 集羣架構管理器
這是RHCS 集羣的一個基礎套件,提供您一個集羣的基本功能,使各個節點組成的集羣在一塊兒工做,具體包含分佈式集羣管理器(CMAN),成員關係管理、鎖管理(DLM)配置文件管理(CCS)、柵設備(FENCE)
2 高可用服務管理器
提供節點服務監控和服務故障轉移,當一個節點服務出現故障時,將服務轉移到另外一個健康的節點上。
3 集羣配置管理工具
經過LUCI 來管理和配置RHCS集羣,LUCI是一個基於web的集羣配置方式,經過luci能夠輕鬆的搭建一個功能強大的集羣系統,節點主機可使用ricci來和luci 管理段進行通訊
4 Linuxvirtualserver
LVS 是一個開源的負載均衡軟件,利用LVS 能夠將客戶端的請求根據指定的負載策略和算法合理分配到各個節點,實現動態、智能的負載分擔。
5 RedhatGS(globalfilesystem)
GFS 是Redhat公司開發的一款集羣文件系統,目前最新的版本是GFS2,GFS文件系統容許多個服務同時讀寫一個磁盤分區,經過GFS能夠實現數據的集中管理,免去了數據同步和拷貝的麻煩,但GFS不能獨立存在,須要RHCS的底層組件支持
6 clusterlogicalvolumemanger
CLuster 邏輯卷管理,及CLVM,是LVM的擴展,這種容許cluster 中的機器使用LVM來管理共享存儲
7 ISCSI
是一種在Internet協議上,特別是以太網上進行數據傳輸的標準,他是一種基於IPstorage理論的新型存儲技術,RHCS能夠經過ISCSI技術來導出和分配共享存儲的使用。nginx
它運行在各個節點上,爲RHCS提供集羣管理任務
CMAN 用於管理集羣成員、消息和通知。他經過監控每一個節點的運行狀態來了解節點成員之間的關係,當節點出現故障時,CMAN及時將這種改變通知底層,進而作出相應的調整web
表示一個分佈式鎖管理器,他是RHCS的一個底層基礎構建,同時也爲集羣提供了一個公用的鎖運行機制,在RHCS中,DLM運行在集羣的每一個節點上,GFS經過鎖管理機制來同步訪問數據系統元數據,CLVM經過鎖管理其來同步更新數據到LVM卷和邏輯卷, DLM 不須要設定鎖骨哪裏服務器,它採用對等的鎖管理方式,大大提升了處理性能,同時,DLM避免了當單個節點失敗須要總體恢復的性能瓶頸,另外,DLM的請求都是本地的,不須要網絡請求,於是請求會當即生效,最後,DLM經過分層機制,能夠實現多個鎖空間的並行管理模式算法
ClusterConfigurationSystem,簡稱CCS,主要用於集羣配置文件管理和配置文件在節點之間的同步。有時候,luci管理界面可能因爲網絡等方面的以素並非那麼暢快,CCS就顯得很必要了。CCS運行在集羣的每一個節點上,監控每一個集羣節點上的單一配置文件/etc/cluster/cluster.conf的狀態,當這個文件發生任何變化時,
都將此變化更新到集羣中的每一個節點,時刻保持每一個節點的配置文件同步。例如,管理員在節點A上更新了集羣配置文件,CCS發現A節點的配置文件發生變化後,立刻將此變化傳播到其它節點上去。rhcs的配置文件是cluster.conf,它是一個xml文件,具體包含集羣名稱、集羣節點信息、集羣資源和服務信息、fence設備等sql
FENCE設備是RHCS集羣中必不可少的一個組成部分,經過FENCE設備能夠避免因出現不可預知的狀況而形成的「腦裂」現象,FENCE設備的出現,就是爲了解決相似這些問題,Fence設備主要就是經過服務器或存儲自己的硬件管理接口,或者外部電源管理設備,來對服務器或存儲直接發出硬件管理指令,將服務器重啓或關機,或者與網絡斷開鏈接。
FENCE的工做原理是:當意外緣由致使主機異常或者宕機時,備機會首先調用FENCE設備,而後經過FENCE設備將異常主機重啓或者從網絡隔離,當FENCE操做成功執行後,返回信息給備機,備機在接到FENCE成功的信息後,開始接管主機的服務和資源。這樣經過FENCE設備,將異常節點佔據的資源進行了釋放,保證了資源和服務始終運行在一個節點上。
RHCS的FENCE設備能夠分爲兩種:內部FENCE和外部FENCE,經常使用的內部FENCE有IBMRSAII卡,HP的iLO卡,還有IPMI的設備等,外部fence設備有UPS、SANSWITCH、NETWORKSWITCH等數據庫
高可用性服務管理主要用來監督、啓動和中止集羣的應用、服務和資源。
它提供了一種對集羣服務的管理能力,當一個節點的服務失敗時,
高可用性集羣服務管理進程能夠將服務從這個失敗節點轉移到其它健康節點上來,而且這種服務轉移能力是自動、透明的。
RHCS經過rgmanager來管理集羣服務,rgmanager運行在每一個集羣節點上,在服務器上對應的進程爲clurgmgrd。
在一個RHCS集羣中,高可用性服務包含集羣服務和集羣資源兩個方面,集羣服務其實就是應用服務,例如apache、mysql等,集羣資源有不少種,例如一個IP地址、一個運行腳本、ext3/GFS文件系統等。
在RHCS集羣中,高可用性服務是和一個失敗轉移域結合在一塊兒的,所謂失敗轉移域是一個運行特定服務的集羣節點的集合。在失敗轉移域中,能夠給每一個節點設置相應的優先級,經過優先級的高低來決定節點失敗時服務轉移的前後順序,若是沒有給節點指定優先級,那麼集羣高可用服務將在任意節點間轉移。所以,經過建立失敗轉移域不但能夠設定服務在節點間轉移的順序,並且能夠限制某個服務僅在失
敗轉移域指定的節點內進行切換。 apache
Conga是一種新的基於網絡的集羣配置工具,Conga是經過web方式來配置和管理集羣節點的。Conga有兩部分組成,分別是luci和ricci,luci安裝在一臺獨立的計算機上,用於配置和管理集羣,ricci安裝在每一個集羣節點上,Luci經過ricci和集羣中的每一個節點進行通訊。
RHCS也提供了一些功能強大的集羣命令行管理工具,經常使用的有clustat、cman_tool、ccs_tool、fence_tool、clusvcadm等,這些命令的用法將在下面講述。 編程
GFS是RHCS爲集羣系統提供的一個存儲解決方案,它容許集羣多個節點在塊級別上共享存儲,每一個節點經過共享一個存儲空間,保證了訪問數據的一致性,更切實的說,GFS是RHCS提供的一個集羣文件系統,多個節點同時掛載一個文件系統分區,而文件系統數據不受破壞,這是單一的文件系統不能實現的。
爲了實現多個節點對於一個文件系統同時讀寫操做,GFS使用鎖管理器來管理I/O操做,當一個寫進程操做一個文件時,這個文件就被鎖定,此時不容許其它進程進行讀寫操做直到這個寫進程正常完成才釋放鎖,有當鎖被釋放後,其它讀寫進程才能對這個文件進行操做,另外,當一個節點在GFS文件系統上修改數據後,這種修改操做會經過RHCS底層通訊機制當即在其它節點上可見。
在搭建RHCS集羣時,GFS通常做爲共享存儲,運行在每一個節點上,而且能夠經過RHCS管理工具對GFS進行配置和管理。這些須要說明的是RHCS和GFS之間的關係,通常初學者很容易混淆這個概念:運行RHCS,GFS不是必須的,只有在須要共享存儲時,才須要GFS支持,而搭建GFS集羣文件系統,必需要有RHCS的底層支持,因此安裝GFS文件系統的節點,必須安裝RHCS組件。後端
兩臺NGINX服務器負責前端調度,集羣服務器被搭建在前面兩態服務器上
兩臺HTTPd服務器負責提供web界面
設備名稱 | 功能描述 | 設備IP地址 |
---|---|---|
server1 | nginx 負載均衡器 RHCS集羣子節點 | 192.168.122.149 |
server4 | NGINX負載均衡器 RHCS集羣子節點 | 192.168.122.58 |
server2 | web 服務 | 192.168.122.177 |
server3 | web 服務 | 192.168.122.85 |
、
通常優化項:
建立nginx 用戶和組
修改配置
重啓服務
查看其啓動狀況:
默認的NGINX多個進程有可能跑在一個CPU上,致使NGINX進程使用硬件的資源不均,所以須要針對一個CPU配置一個進程
Woker_connections 的值要根據具體服務器性能和程序的內存使用量來指定(一個進程啓動使用的是內存根據程序肯定),以下Events 覈定NGINX的工做模式以及連接數上限。
服務端修改:
配置文件修改
查看
此處的IP應該對應後面集羣的VIP地址:
server 1 配置文件複製到server4 中;
建立軟鏈接,以便於啓動服務:
修改配置和server1 相同:
配置地址解析並測試:
其用戶名和密碼分別是root和節點server1 root對應的密碼,
並添加節點,其名稱是對應的uname -n 對應的主機名,密碼是在ricci 安裝完成後設置的密碼
集羣節點建立中:
集羣節點建立完成:
1 添加服務資源名並配置相關優先級:
添加成功:
此處的網絡接口必須與server1和server4在同一個網段的端口,負責不能起到防止腦裂的做用,由於若是不在同一個網段,網絡則不通、
選擇使用組播方式進行數據傳輸,由於上述在生成密文的時候默認是使用組播的方式傳輸信息的。
yum -y install scsi*
注意此時的磁盤只須要進行一次分區便可,由於其是同一塊磁盤:
兩邊都安裝服務單隻須要一邊啓動服務,由於經過啓動服務獲取的配置文件將被移動到共享資源中,兩邊的服務的目錄都將掛載共享資源,及啓動配置文件:
必須-rp -r表示複製目錄-p 表示複製權限。
可使用上述的VIP,也能夠分開,建議分開使用。
其格式是ext4 文件系統,由於上述格式化時使用的是ext4文件系統
添加組,將VIP 、磁盤掛載、腳本啓動進行綁定,其順序不能混雜,由於其順序是啓動的順序。
此時server1端mysql服務啓動
其不能完成併發的數據庫服務訪問及兩邊的讀寫不一樣步:
節點上進行查看: