mysql rac Oracle RAC集群簡介

2021-10-22 00:21:36 字數 1867 閱讀 9371

對於rac來說,最重要的還是要理解內部原理和體系結構。安裝不是非常難的事情。排錯和維護都離不開體系結構以及內部原理。

對於rac來說,最重要的還是要理解內部原理和體系結構。安裝不是非常難的事情。排錯和維護都離不開體系結構以及內部原理。

集群分類

1、高效能計算

計算任務分配到不同計算機節點來提高整體計算能力,主要應用在科學計算領域。主要利用的是平行計算。

2、負載均衡集群(lb)

把業務的負載流量盡可能的平均合理的分配到集群的各個節點上,每個節點都可以處理一部分負載,並且可以根據負載情況進行動態的平衡。負載均衡演算法不是簡單的平均,而是根據每個節點的可用資源或網路的特殊情況來進行優化分配。因此分配+合理才是負載均衡的核心。

3、高可用性(ha)

側重於提高系統的可用性,整合硬體和軟體的容錯性來實現整體服務的高可用性。如果某個節點發生故障,,另外的節點代替他。

rac是真正的lb和ha的複合體。從某種意義上說,只有最終應用(資料庫)才能實現真正意義上的lb,而絕大多數的集群都是ha。

集群環境的特殊問題

1、併發控制

集群環境中,存在共享儲存的問題。集群中各個節點對共享儲存是對等的,所有節點對資料有相同的訪問許可權,因此需要某種機制來控制節點對資料的訪問。

在rac中,採用的是dlm(distribute lock management)機制來進行例項間的併發控制。

2、健忘症(amnesia)

如果集群環境的配置檔案不是集中存放,每個節點都有乙個本地副本,集群正常執行的時候,使用者可以在任何節點修改集群的配置,並且這些更改都會自動同步到其他節點。

如果節點1因為正常的維護需要關機,節點2修改了配置,然後關閉節點2.啟動節點1,因為之前節點2做的配置修改沒有同步到節點1,所以將節點1啟動以後,他仍然使用舊的配置檔案,造成配置丟失。

3、腦裂(split brain)

集群中,節點之間需要通過某種機制(心跳)了解彼此的健康情況,以確保各個節點協調工作。假設只是心跳出現故障,各個節點還在正常的工作,每個節點都認為其他節點宕機,自己是整個集群的唯一健在者,因此需要獲得整個集群的「控制權」。儲存是共享的,這就意味著災難,這種情況就是「腦裂」。

投票演算法可以解決這個問題

如果乙個集群分成了兩個partition,乙個partition是3個節點,乙個partition是2個節點。那麼3個節點的partition裡面所有的節點的票數都是3,兩個節點的partition裡面所有節點的票數都是2.擁有兩個節點的partition會被踢出,自動重啟。如果兩個partition的節點都相同,那麼第乙個控制投票區的partiton將會存活,另外乙個partition將會被踢出而重啟,這種情況通常是master節點(一般是第乙個啟動的節點)所在的partition將會存活。

4、io隔離(io fencing)、

集群出現故障,必須判斷哪個節點應該獲得集群的控制權,那些節點需要被踢出。這時投票需要解決的問題。

僅僅將他們踢出還不足夠,因為他們可能還在繼續執行(只是離開了這個集群),需要保證他們不再訪問共享資料。這就是io隔離要解決的問題。

io fencing實現有硬體和軟體方式。各個集群廠商使用的方式不同,有些需要硬體的支援(主要是儲存裝置是否支援某些協議)。oracle rac使用的是軟體的 方式,直接重啟故障節點。

無論採用哪種方式,io fencing的目的就是保證故障節點不能繼續訪問共享資料。

有一些儲存裝置支援scsi reserve/release命令,正常節點使用scsi reserve命令鎖住儲存裝置,故障節點發現儲存被鎖定,就知道自己已經被踢出了cluster,自行重啟,這種機制叫做自殺機制(suicide)。例如sun和veritas的集群使用的就是這種機制。

無論軟體還是硬體,大致原理就是:正常節點通過某種方式告知故障節點,故障節點會進行重啟。告知的方式有硬體和軟體之分,硬體更加安全一些。

Linux集群軟體LifeKeeper簡介

steeleye technology公司最近為部署linux伺服器集群的企業推出了一款高可用性軟體。該公司的lifekeeper軟體使集群中的伺服器可以接替發生故障的伺服器或應用。硬體部件和應用程式故障通過lan心跳訊號 heartbeats 進行檢測。集群中的節點間傳送的冗餘訊號使 lifeke...

JS簡簡簡易時鐘

簡易時鐘 1 搭建html css部分 插入時鐘背景,使用子絕父相。把時針和分針 秒針的樣式放在時鐘的中心位置 2 js邏輯部分 1 獲取時針 分針 秒針 var hour document.getelementbyid hour var min document.getelementbyid mi...

Metasploit Framework 簡單介紹

1.簡介 metasploit framework 是乙個緩衝區溢位測試使用的輔助工具,也可以說是乙個漏洞利用和測試平台。它整合了各平台上常見的溢位漏洞和流行的shellcode,並且不斷更新,使得緩衝區溢位測試變得方便和簡單。2.主頁 1 選定使用的漏洞 use 2 設定漏洞利用的環境 targe...