應用和數據庫發展cluster還需要HA軟件嗎?

應用和數據庫發展cluster還需要HA軟件嗎?

 

所謂集羣技術(cluster),也有譯爲羣集,涵蓋了三個技術方向:高可用HAHigh Availability; 負載均衡LBLoad Balance; 高性能運算HPCHigh Performance Computing)。對於商業領域的IT應用主要關心高可用HA和負載均衡LB這兩部分。爲了保證應用的高可用,在操作系統os以上發展出了一些系統級HA軟件。不同的操作系統下有不同的HA軟件,如IBM AIX操作系統下的PowerHAHACMP),HP-UX下的MC-SGLinux下的VCSVeritas Cluster Server)、RoseHeartbeat等。這其中也有一些跨平臺的HA軟件,如IBM TSA支持多平臺,HACMP 版本5時出過for Linux on POWER的版本(v6後沒有了),MC-SGfor Linux的版本,VCS也有不同平臺的版本。

 

隨着應用軟件和數據庫軟件的發展,集羣技術(cluster)越來越多地融入到應用軟件和數據庫軟件內部。如oracle RAC, WAS ( Websphere Application Server), WeblogicTomcat等都支持cluster技術。這些cluster技術不僅涵蓋了負載均衡LB (Load Balance)技術,同時也提供高可用HAHigh Availability)功能。相比之下,傳統的高可用HA系統軟件主要只針對高可用這部分的功能提供支持。如PowerHAHACMP),MC-SGVCS等。這些HA軟件雖然在提供主備(primary-backup)功能的同時也提供併發(concurrent)功能,但是其併發功能只是提供併發訪問的存儲管理。在數據一致性方面,仍然需要應用或數據庫軟件來協調併發訪問、避免衝突。也就是說,併發能否實現主要依賴於數據庫或應用軟件的LB功能。那麼現在還需要這些單獨的HA軟件嗎?

 

首先,我們要看到,數據庫和應用軟件自身包含的cluster功能還是有限制的。主要有兩方面的限制:價格差異和功能完善程度。

 

所謂價格差異,就是指不同功能不同價格,集羣版的軟件一般都會有更高的價格。以Oracle RAC爲例,其價格要比單機版高出很多。當然,與單機版相比,RAC不僅提供了HA的功能,同時也提供負載均衡LB的功能。但是需要注意,負載均衡的效果並不是很容易調試出來的。這與應用訪問數據的複雜性有很大關係。對於數據庫來說,RAC只是增加了CPUMemory,對disk IO方面沒有增加。對於系統性能的限制因素主要是disk IO的應用場景,RAC不會有性能提升。另外,由於Oracle在內存中的SGA區內會cache大量的數據以供應用讀寫訪問,RAC下的cache fusion機制就是將多個RAC節點的SGA區協調起來工作,必然需要在RAC的心跳網絡裏傳輸同步數據,這引起了很大的overhead(附加開銷)。因此,如果期望通過RAC多節點併發來提升性能,必然需要對應用進行針對性地優化。而對於本身就比較複雜的應用,如SAP,針對RAC的優化就更加困難。所以,從價格因素和優化方面考慮,單機版Oracle DB + HA軟件仍然是一些應用場景下更適合的解決方案。對於其他支持cluster技術的應用軟件也可以參考如上分析。

 

所謂功能完善程度,是指應用軟件的cluster功能的適用程度。任何技術都有其侷限性,有些應用軟件雖然在新版本中推出了cluster功能,但是其對HA功能的支持是有限制的,還有待於進一步完善。以Tomcat爲例,雖然Tomcat早在5.0.x版本即推出了集成session集羣功能,但其實現的主要是負載均衡LB方面的功能,而對於高可用HA的支持和配置都有所不同。TomcatHA配置需要考慮:Apache是採用http直接代理還是ajp代理? 是否採用sticky session黏性會話? TOMCAT端是否使用memcached session manager實現SESSION的共享存儲和訪問? MSM是否採用sticky方式?等方面。也就是說,實現完全無人工干預的高可用(自動偵測故障,自動切換,自動恢復服務),是有限制的,並且配置困難。

 

基於以上兩點, HA軟件目前還是有生命力的。

 

同時我們也應該看到,長久以來HA軟件在應用實踐中也存在一些問題。有些問題甚至嚴重影響了其口碑和市場推廣。以相對來說比較“高大上”的PowerHAHACMP)爲例,在IBM POWER小型機上配置的比例相當高,基本上用於數據庫的服務器如果數量超過2臺,都會購買。這些年累計的裝機量已經非常大了,技術人員對其評價也是相當高的。但是實際應用效果如何呢?故障發生時,都可以自動切換並恢復服務嗎?切換不成功的例子還是很多的。主要的問題並不是產品本身的問題,而是規劃、實施和運維的問題。

 

首先,PowerHA可以自動偵測四類故障:網卡故障,網絡故障,節點故障,應用故障。但是,其中應用故障的檢測是需要定製化配置的。IBM爲了方便常用應用的偵測,提供一個單獨的產品smart assist,在PowerHA v6.1以前是需要單獨購買的。而實際在中國基本沒有用戶單獨購買smart assist(用戶當然不懂,但並不僅僅是因爲售前沒有推薦,同時也有實施需要收費的因素)。Smart assist可以幫助HA的實施者方便地配置自動監控oracleDB2WASSAPFilenet等常見應用的進程(隨版本不同,支持的範圍也不同,早期版本支持的應用較少)。沒有smart assist,也可以通過人工編制應用監控腳本,並且配置到PowerHA中來實現應用的監控。但這需要了解應用,同時需要負責應用的人員配合。而問題的關鍵是,這是單獨收費項目。代理大多沒有實施能力,而廠家至少要收幾萬實施費。

 

不僅是上面提到的應用監控方面的實施問題,在基本功能的實施方面有時也不能保證質量。廠家實施收費高,而代理互相壓價惡性競爭,結果往往是免HA實施費。在用戶基本不懂的情況下,免費實施的質量難以保證。雖然IBM也一直在積極培訓代理,並有一整套代理技術認證制度,但對於最終用戶的實施情況實際上沒有監控。

 

另外,我們知道,與實施同等重要的是運維,而用戶因爲缺乏培訓和英文資料閱讀障礙的問題,經常不能正確維護HA系統。比如常見的添加共享存儲卷LV或共享文件系統FS時,沒有通過HADARE動態配置更新機制和C-SPOC單點控制工具來操作。造成共享配置信息在不同HA節點上不一致。一旦需要切換,已經無法正常切換了。

 

上面談到的這些問題,相信不同HA軟件和不同廠商或多或少都會有,有些更是IT系統建設過程中普遍存在的問題。值得高興的是,這些年來隨着中國IT市場環境的不斷髮展完善,用戶的IT運維團隊越來越成熟,IT人員素質的不斷提高,這些問題已經或者正在得到解決。相信我們IT基礎架構的高可用等技術一定會不斷完善,達到新的高度。

 wKiom1PMlRDS1DzDAAEQ5--XM_g987.jpg

掃一掃,關注微信公衆號“榮歆IT諮詢”,享免費服務。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章