2010年7月20日 星期二

聽我在放屁 CASE2 我如果去了 User Site ,我絕不用 RAC ,也不想用 HA

RAC 是 Oracle Database 的一個特性,可以用來提昇高可靠度和系統延展性,在理論上這兩個指數提昇的話,系統管理人員應該是高枕無憂了才對,但是事情絕對不是你我想的那麼簡單。

基本上兩部主機之間要高速存取資料庫,且有辦法互換資料,依賴的就是兩部主機之間的網路,而 Storage 層級,只是個儲存媒介,所以當主機從一台變成二台或三台,這兩部或三部主機間的網路就會由原本的2或3條,變為 4 或 9條,更多的線路,更多的卡片,更複雜的架構,硬體成本不算好了,這些管理成本都會落在系統人員身上,而且元件愈多,反而單一元件出錯的可能性變高了,我這邊說的出錯不是硬體元件壞掉,如果是斷線或損壞,那是個小問題,因為備援機制啟動後,這些問題都能被接手掉,但是如果是壞一半,半壞不壞,時通時不通的,時快時慢你就頭大了。這些問題都可能造成 RAC 的不穩定,效能變差,動不動就當機,而且問題有時還不只來自於硬體。

所以 Oracle RAC 架構在維護時需要上的 Patch 和 Update 大概是 Single Instance 時的數倍,而且可能經常性的需要關切及更新。所以基本上這個東西除非我所待的那個地方的資料庫己經大到無法用目前世界最大的伺服器去支撐他的需求,不然我大概是不會用的。因為那所帶來的,就是未來不知原因的當機,可能來自於時間同步,網路限制,單一伺服器的問題,還有很多可能完全找不到原因的當機,反正就是忽然一個 Node 不見,不然就忽然 Hang 住。我相信目前我見過的 RAC 在高可靠度這點是不及格的。

至於 HA Solution ,雖然有 HA 可以在最短的時間內讓你因主機硬體損壞將服務切換到另一部主機,但是如果你有心架了 HA,卻從來不驗證,那你這個 HA 在建置完成半年至一年後,就有可能是不會運作的,尤其是當你特別有心,設置了另一部機器平常還真的沒在 Run 什麼服務,只為了接手 Product ,那這個從來沒被驗證過的機制,大概有 6 成的機率是不會動的,為了這個機制特別買的機器結果只是插著浪費電而已,每年還要繳給原廠保護費,多划不來。

另外在有 HA 機制存在時,如果 Product 發生了 Outstge ,如果順利的話,系統會在 5 分鐘內被重新啟動,但這只限於 Product 本身的硬體壞掉,還有其他狀況是無法避免的,如果沒有重新啟動,我通常會有2種選擇:

1. 直接設法略過 HA 的機制,將服務啟動,盡最快的速度恢復服務讓使用者使用,至於 HA 機制,可能就另外安排時間將之恢復。
2. 設法恢復 HA 機制,將服務由 HA 啟動,此時可能會面臨很多問題,所需花費的修復時間,要視 HA 機制設定完成後,系統變做了多少變更而定,或是因為發生故障原因而定,所要花費的時間可能是第一種選擇的數倍以上。

至於發生 Outage 的原因,可能來自於系統內部,如系統軟體 Bug、應用程式 Bug 、硬體、韌体或系統外部如網路環境、SAN 環境、機房環境、電源種種原因造成,尤其在很多狀況下,很多公司在做 HA 機制時,通常還是只會保護主機本身,網路就沒有那麼重要了,其實很多時間就網管人員而言是他們是最重要的一個部份,通常一個機房如果要做整體維修,就系統而言,網路人員是最辛苦的,因為他們在最底層,關機時是最後關的,開機時又要第一個開起來,等所有系統開機完成無誤,網管人員才能夠休息。

題外話扯遠了,還是回到主題,其實就 Single Instance 我有信心可以維持好一定的可靠度,因為單純,當老闆有心投資到 IT 想要做一些防護時,我會建議他將錢投資在異地備援及備份上面,而不必去考慮自動化的備援環境,理由有幾個:

1.不是自動化的環境,就會有標準 SOP 的產出,在每次的驗證去修改,將 SOP 愈修愈是完整,總而言之主旨是不變的,程序上的修改也不會太大,除非系統是整個架構被翻掉
2.投資在異地備援,資料和系統都會有一定程度的保護,不像部份 HA 機制,只能保護到主機的部份,資料是未受到保護的。如果是主要機房受到天災人禍攻擊,就一般的主機端備援HA機制而言,是沒有任何用處的。
3. 依賴 HA 自動接手的機制,雖然還是會有 SOP,但可能發生的例外會較自己手動切換多的太多 ,而省下的時間頂多是從 30 分鐘縮短至5分鐘,而且自動化的程式也是人寫的,出錯誤判的機率仍然是存在的,與其將之投資在系統主機這端,個人還是認為不如去補強網路的 HA 或是異地備援上會更有效率。

這些心得都是在接觸了大量的 HA 環境後產生的,目前我約建置了快50套的 HACMP 環境,10套的 MSCS 環境,手上曾經維護過的也有 RHCS 和 MC Service Guide 環境,不過這就未實際參與建置。

當然以上所言,隨著科技的進步,一定會有成熟的一天,所以目前只能說就產品而言,仍然還是不成熟的。

4 則留言:

  1. 或許Veritas Cluster System(VCS)會讓你對於HA有不一樣的認識. VCS自動接手的機制可以讓你安心睡覺. 隔天上班起來再查問題. 不是HACMP那垃圾可相比擬的.

    回覆刪除
  2. 哈哈,當然用什麼產品是由銀子的數量決定,我知道VCS報價應該是 HACMP 的數倍,也因為愈來愈多廠商會設定 HACMP ,這幾年來 HACMP 的設定費用由以往只有原廠設定的天價掉到 1/3 都不到。經驗搞不好比原廠還豐富。

    回覆刪除
  3. 同意您在本文的看法。現在的HACMP改名 PowerHA,不過似乎差不多。。。。

    回覆刪除
  4. 同意您在本文的看法。現在的HACMP改名 PowerHA,不過似乎差不多。。。。

    回覆刪除