數(shù)據(jù)庫管理系統(tǒng)一次通常只能運行在一臺服務(wù)器上。在不采用高級解決方案的前提下(比如Oracle公司的Real Application Clusters)數(shù)據(jù)庫則只能在服務(wù)器之間手工遷移。由于難以在數(shù)據(jù)庫級別上平衡服務(wù)器負載,所以這一局限性導致大量計算機資源被白白浪費了。
從SAN到DAN
雖然SAN (存儲區(qū)域網(wǎng))和動態(tài)應(yīng)用服務(wù)器在Web和應(yīng)用服務(wù)器負載均衡領(lǐng)域取得了巨大的成功,但是,數(shù)據(jù)庫層卻仍然是系統(tǒng)性能的瓶頸。利用SAN能夠很方便地在服務(wù)器之間搬移磁盤,從而令I(lǐng)T管理職員可以根據(jù)需要對磁盤存儲動態(tài)地重新部署。
當前的靈活體系
SAN技術(shù)實現(xiàn)了多計算機之間的單線程數(shù)據(jù)共享,但問題也隨之而來:在處理能力需求發(fā)生改變的情況下該如何智能地重新部署數(shù)據(jù)庫呢。這就是DAN(數(shù)據(jù)庫區(qū)域網(wǎng):Database Area Network)技術(shù)的用武之地了。
DAN架構(gòu)用到了數(shù)據(jù)庫交換機,其下的SAN則實現(xiàn)了數(shù)據(jù)庫在不影響可用性的情況下在服務(wù)器之間的搬移。
SAN 和DAN架構(gòu)
數(shù)據(jù)庫服務(wù)器負載均衡是一個復(fù)雜而又問題叢生的技術(shù)話題。許多公司年復(fù)一年耗費了大量的資金重新部署數(shù)據(jù)庫服務(wù)器資源。更糟糕的是,由于資源分配的不足和不合理,最終用戶不得不容忍漫長的服務(wù)響應(yīng)時間,直到數(shù)據(jù)庫管理員(DBA)通過手工操作的方式把數(shù)據(jù)庫再度分配到更大的服務(wù)器上,研究人員利用DAN技術(shù)就可以在處理要求超出服務(wù)器處理能力的時候動態(tài)分配數(shù)據(jù)庫。
DAN技術(shù)的工作原理
DAN技術(shù)的內(nèi)部機制可謂相當簡單。在SAN環(huán)境下,數(shù)據(jù)庫的重新部署涉及到以下的步驟:
關(guān)閉數(shù)據(jù)庫,采用軟件方法立即重定向交易。
把數(shù)據(jù)文件重定向到使用SAN的目標服務(wù)器。
在新服務(wù)器上重新啟動數(shù)據(jù)庫。
用Oracle的Transparent Application Failover (TAF)之類的內(nèi)建產(chǎn)品進行處理不會在重新部署期間丟失任何交易,最終用戶也不會察覺到數(shù)據(jù)庫已經(jīng)變更了服務(wù)器。
DAN的優(yōu)點
這種類型的負載均衡對IT管理人員來說具有不一般的影響。由于在硬件上投入了巨資,IT管理人員的工作就是實現(xiàn)昂貴的服務(wù)器資源利用率的化,同時維持最終用戶可以接受的響應(yīng)時間。根據(jù)處理要求采用DAN重新部署數(shù)據(jù)庫就可以鞏固和強化對服務(wù)器的IT管理,從而為企業(yè)在硬件和軟件許可證費用方面節(jié)約大量資金創(chuàng)造了條件。
同時,采用DAN之后DBA維護的工作量也會大大降低。由于服務(wù)器資源的整合,DBA直接管理的服務(wù)器數(shù)量顯著減少,幾乎不再擔心服務(wù)器的處理能力擴充問題。
DAN還實現(xiàn)了數(shù)據(jù)庫行為的“黑盒”化。這就是說,由于數(shù)據(jù)庫獨立于操作之外而令操作系統(tǒng)架構(gòu)失去了以往的重要性。比如說,Oracle數(shù)據(jù)庫就可以無縫地重新部署在AIX、Linux、Solaris或者HP/UX等系統(tǒng)之上,原因就在于以上這些平臺都支持Oracle數(shù)據(jù)庫系統(tǒng)。因為DAN隱藏了操作系統(tǒng)的內(nèi)部結(jié)構(gòu),所以DAN盡可根據(jù)服務(wù)器的處理能力重新部署數(shù)據(jù)庫。
隨著DAN技術(shù)日益走向成熟,DAN最終可以根據(jù)先驗的歷史測量數(shù)據(jù)來預(yù)測數(shù)據(jù)庫遭遇處理壓力而必須重新部署到更大型服務(wù)器的時間,從而滿足日益增長的處理要求。所有理智的數(shù)據(jù)庫專業(yè)人士都知道,數(shù)據(jù)庫服務(wù)器有規(guī)律地表現(xiàn)出一些眾所周知的處理壓力“信號”。出現(xiàn)這些信號是因為最終用戶處理能力要求的周期性,而且我們可以每周、日、小時為度量單元描繪出服務(wù)器受到的處理壓力,從而觀察這些“信號”的出現(xiàn)情況。
如果CPU和內(nèi)存使用情況的歷史測量可用,那么DAN就應(yīng)當能預(yù)測數(shù)據(jù)庫搬移到更強大服務(wù)器的時間。DAN可以預(yù)測迫近的處理高峰,在需要處理能力的時候重新部署數(shù)據(jù)庫。
下面我們就看看DAN技術(shù)是如何完成以上任務(wù)的。假設(shè)我們擁有兩個數(shù)據(jù)庫。
配置示例
系統(tǒng)A于周二達到了100%的使用率,而系統(tǒng)B則在周三到周五都達到了峰值負載。在沒有用到DAN技術(shù)的情況下,IT管人員只能被迫把這些數(shù)據(jù)庫放到兩臺價值4萬美元的服務(wù)器上。而采用DAN技術(shù)后,IT管理人員就可以重新部署數(shù)據(jù)庫并用更便宜的、價值1萬美元的Linux服務(wù)器取代第2臺服務(wù)器。DAN則在處理要求發(fā)生變動的情況下重新部署數(shù)據(jù)庫。而系統(tǒng)則節(jié)約了3萬美元。
DAN技術(shù)向何處去?
任何采用SAN的數(shù)據(jù)庫都可以在幾分鐘的系統(tǒng)關(guān)機時間內(nèi)方便地從一臺服務(wù)器移到另一臺服務(wù)器。而在采用DAN技術(shù)的場合下,負責數(shù)據(jù)庫重新部署的管理人員可以在不丟失即時交易的情況下提供無縫的數(shù)據(jù)庫重新部署,智能代理則直接負責數(shù)據(jù)庫的重新部署。如果DAN真能滿足以往SAN定位的市場要求,那么大型數(shù)據(jù)庫應(yīng)用商會如何利用DAN技術(shù)實施動態(tài)數(shù)據(jù)庫負載均衡呢?我們對這種新技術(shù)的未來發(fā)展趨勢拭目以待。