SAN和集群
SAN可以被用作所有存儲(chǔ)資源的高級(jí)網(wǎng)絡(luò)主干,其中包括硬盤、磁帶、光纖通道的硬盤和遙控設(shè)備,它們?cè)诰W(wǎng)絡(luò)上的所有服務(wù)器節(jié)點(diǎn)之間共享。支持SAN功能的集群使用了集群技術(shù),也就是兩臺(tái)或多臺(tái)互相之間知道彼此配置和所提供的服務(wù)/應(yīng)用的計(jì)算機(jī)系統(tǒng)完全協(xié)同工作在SAN拓?fù)洵h(huán)境中。一個(gè)真正意義上的SAN網(wǎng)絡(luò)早已超越了任意連通性、任意服務(wù)器到任意存儲(chǔ)系統(tǒng)的連通的觀念。事實(shí)上,通過將所有存儲(chǔ)系統(tǒng)從一個(gè)高速的網(wǎng)絡(luò)主干上隔離出來,或是通過在數(shù)據(jù)、存儲(chǔ)管理和使用這些數(shù)據(jù)的應(yīng)用之間引入邏輯層/物理層,這種好處是相當(dāng)巨大的。
為了實(shí)現(xiàn)無縫的存儲(chǔ)管理,SAN結(jié)構(gòu)本來應(yīng)該在所有存儲(chǔ)資源(如磁盤陣列、備份設(shè)備、邏輯卷的管理、文件系統(tǒng)管理和備份管理)以及所有需要這些資源的應(yīng)用系統(tǒng)基礎(chǔ)之上,引進(jìn)一個(gè)軟件層。那些運(yùn)行在CPU數(shù)目滿足需求的服務(wù)器上的應(yīng)用服務(wù)(如應(yīng)用服務(wù)器、數(shù)據(jù)庫(kù)管理系統(tǒng)、中間件、HTTP服務(wù)器)能夠提供負(fù)載均衡和故障切換功能,而不需要專門的存儲(chǔ)設(shè)備。
這些應(yīng)用服務(wù)并不知道數(shù)據(jù)存儲(chǔ)方面的有關(guān)信息,比如數(shù)據(jù)實(shí)際上究竟存放在什么地方、數(shù)據(jù)是否已經(jīng)了鏡像和分布式處理等。所有基于網(wǎng)絡(luò)的RAID、分布式I/O、數(shù)據(jù)冗余、配置冗余、硬盤組、邏輯卷、動(dòng)態(tài)的多個(gè)路徑、分層存儲(chǔ)、在線的高速備份等有關(guān)的問題都由存儲(chǔ)管理系統(tǒng)來處理。一個(gè)正確的SAN是一個(gè)能夠提供高可用性、增強(qiáng)的靈活性和改良的性能的基礎(chǔ)構(gòu)架。
SAN能夠提供一個(gè)理想的拓?fù)浣Y(jié)構(gòu)來實(shí)現(xiàn)集群系統(tǒng),因而其中一個(gè)系統(tǒng)的故障并不意味著所提供的服務(wù)會(huì)發(fā)生任何中斷。參與這一集群的其他一個(gè)或多個(gè)生還的結(jié)點(diǎn)將自動(dòng)處理由故障結(jié)點(diǎn)所提供的應(yīng)用或服務(wù)。支持SAN的集群的一個(gè)優(yōu)點(diǎn)就是在集群環(huán)境中發(fā)生故障時(shí)恢復(fù)速度快。由于數(shù)據(jù)是持續(xù)可用的,問題僅僅是由備用或協(xié)同工作的應(yīng)用來訪問原先由故障結(jié)點(diǎn)來訪問的數(shù)據(jù)。在能夠容忍的災(zāi)難發(fā)生之后,SAN能夠通過光纖通道從10公里以外提供數(shù)據(jù)。
挑戰(zhàn)ERP和電子商務(wù)
在可用性、靈活性和性能要求很高的大型的、支持Web功能的ERP和電子商務(wù)環(huán)境中,SAN和支持SAN的集群解決了一些主要的技術(shù)問題,如更為靈活的備份手段、更快的恢復(fù)、正常運(yùn)行時(shí)間更長(zhǎng)。從更高層次來看,現(xiàn)在具有三層或更多層結(jié)構(gòu)的ERP和電子商務(wù)體系都向著一個(gè)方向發(fā)展,同時(shí)Baan公司、Oracle公司、PeopleSoft公司和SAP公司等不同廠商的系統(tǒng)之間還存在差別。現(xiàn)今所有ERP和電子商務(wù)應(yīng)用都是支持Web功能的構(gòu)件,就象OLAP構(gòu)件、應(yīng)用構(gòu)件、數(shù)據(jù)庫(kù)構(gòu)件一樣,在邏輯上是互相獨(dú)立的。
在應(yīng)用結(jié)構(gòu)適合SAN以后,最嚴(yán)重的問題便是這些模塊化的應(yīng)用所訪問的大部分?jǐn)?shù)據(jù)都集中在一個(gè)或很少幾個(gè)數(shù)據(jù)庫(kù)中(數(shù)據(jù)相當(dāng)集中)。在這種情況下,一般可以對(duì)數(shù)據(jù)進(jìn)行復(fù)制,以支持?jǐn)?shù)據(jù)倉(cāng)庫(kù)或是其他負(fù)載分解方式。由于這些應(yīng)用支持Web功能,使消費(fèi)者能夠?qū)θ蚍秶挠脩舴职l(fā)他們的操作執(zhí)行動(dòng)作,這就使大量協(xié)同用戶同時(shí)訪問這些ERP和電子商務(wù)應(yīng)用成為可能。
而市場(chǎng)的這一趨向又帶來了系統(tǒng)的可伸縮性問題。由于這些用戶遍布世界各地,所提供的服務(wù)就要求不能因?yàn)闀r(shí)間原因而中斷。這一趨勢(shì)同樣帶來了可用性問題。隨著用戶以顯著的速度增加,所收集和分發(fā)的數(shù)據(jù)的總量也以幾何級(jí)數(shù)的速度快速增長(zhǎng)。隨之而來的便是要求對(duì)通過ERP和電子商務(wù)系統(tǒng)所收集到的數(shù)據(jù)(數(shù)據(jù)已經(jīng)復(fù)制到了數(shù)據(jù)倉(cāng)庫(kù))進(jìn)行分析、加以分類,并通過現(xiàn)存的和新啟用的應(yīng)用進(jìn)行擴(kuò)充,于是這又帶來了與性能和速度有關(guān)的問題。所有這些因素更加明確地向結(jié)構(gòu)體系提出了要求,要能夠解決可用性、靈活性和性能問題。
可用性(Availability)
可用性是持續(xù)正常運(yùn)行時(shí)間的一個(gè)衡量指標(biāo)。當(dāng)然,目標(biāo)是100%的正常運(yùn)行時(shí)間,這表明ERP和電子商務(wù)應(yīng)用服務(wù)沒有停工時(shí)間。通過對(duì)基礎(chǔ)構(gòu)造的所有構(gòu)件部分都建立冗余(即使這一冗余是明顯多余的,這是完全有可能達(dá)到的。
為所有冗余部件建立冗余備份的觀念能夠應(yīng)用到SAN中的所有硬件和軟件中,如處理器、應(yīng)用服務(wù)器、中間件、DBMS等。如今,為了實(shí)現(xiàn)高可用性和容錯(cuò),在ERP和電子商務(wù)應(yīng)用環(huán)境中集群扮演了統(tǒng)治地位的角色。基于共享(如Oracle公司的產(chǎn)品)或非共享(如Sybase公司的產(chǎn)品)結(jié)構(gòu)將兩臺(tái)或多臺(tái)服務(wù)器組成集群協(xié)同工作,是目前常用的方式。
在這兩種結(jié)構(gòu)中,在系統(tǒng)和它們的存儲(chǔ)單元之間都有著必須的大量冗余的互連,這一問題直到SAN出現(xiàn)才解決。隨著SAN和基于SAN的集群的推出,由于在存儲(chǔ)系統(tǒng)和服務(wù)器之間引入了一個(gè)邏輯/物理層,因而消除了這種連接要求。SAN中的每一臺(tái)參與集群工作的服務(wù)器都能夠訪問SAN中的存儲(chǔ)空間中的每一個(gè)字節(jié),因而消除了系統(tǒng)和它們的存儲(chǔ)系統(tǒng)之間的所有的互連需求。
可伸縮性(Scalability)
如今,在SAN中的集群配置已經(jīng)達(dá)到了32個(gè)結(jié)點(diǎn),這一數(shù)字近來還有可能上升到128(例如,來自Veritas Software公司的Veritas Cluster Server軟件)。SAN這種結(jié)構(gòu)體系使得在一個(gè)集群配置中包含大量的結(jié)點(diǎn)成為可能。隨著基于SAN的集群系統(tǒng)所提供的有效的負(fù)載平衡,真正的伸縮性和資源的有效利用也完全引入了ERP和電子商務(wù)系統(tǒng)。
作為一種體系結(jié)構(gòu),SAN能夠?yàn)橘Y源的有效利用鋪平道路。假如一個(gè)服務(wù)器需要使用硬盤資源,另外的存儲(chǔ)資源就會(huì)被從網(wǎng)絡(luò)中拖拉出來,而無須增加額外的存儲(chǔ)子系統(tǒng)。假如一臺(tái)特定的服務(wù)器正嚴(yán)重缺乏處理器或內(nèi)存資源,應(yīng)用這些資源的服務(wù)將會(huì)轉(zhuǎn)移到另一個(gè)未充分利用的系統(tǒng)上運(yùn)行。
網(wǎng)絡(luò)延遲的可以承受的水平僅僅由SAN中的存儲(chǔ)資源或硬盤容量這些限制因素決定。由于存儲(chǔ)容量的需求和數(shù)據(jù)庫(kù)及應(yīng)用密切相關(guān),因而在網(wǎng)絡(luò)延遲可以接受的前提下,盡量往SAN中添加資源就可以解決這一問題。從理論上說,運(yùn)行在SAN中的系統(tǒng)和應(yīng)用的可伸縮性是無限的。
網(wǎng)絡(luò)中的全部資源能夠被ERP和電子商務(wù)(要求具有內(nèi)置的智能功能)的所有構(gòu)件所使用,以有效地使用可用資源。因而從長(zhǎng)遠(yuǎn)眼光來看,這種網(wǎng)絡(luò)就好象是一臺(tái)計(jì)算機(jī),而它的和處理器、內(nèi)存相關(guān)的資源分布在多個(gè)分擔(dān)結(jié)點(diǎn)上。SAN中的存儲(chǔ)和訪問是集中處理的,為高級(jí)的應(yīng)用機(jī)構(gòu)、應(yīng)用分割、故障恢復(fù)和負(fù)載均衡等提供余地。
所有這些發(fā)展表明可伸縮性主要受到SAN中的資源的可用性的影響。假如一個(gè)特定處理中的內(nèi)存消耗使得可伸縮性受到影響,這一處理就可以分布到基于SAN的集群系統(tǒng)中的兩個(gè)或多個(gè)結(jié)點(diǎn)中并行處理。假如物理硬盤的I/O正在影響系統(tǒng)的可伸縮性,那么SAN中的基于網(wǎng)絡(luò)的RAID則可以使得這一狀況得到改善。假如所有的結(jié)點(diǎn)的使用率都已經(jīng)達(dá)到了100%,則應(yīng)該考慮在集群的SAN中增加結(jié)點(diǎn),進(jìn)而也應(yīng)該對(duì)應(yīng)用的配置也應(yīng)該作出相應(yīng)的調(diào)整。
性能(Perfermance)
假如資源需求影響到了一個(gè)特定構(gòu)件的性能,這種問題可以通過將構(gòu)件重新部署到網(wǎng)絡(luò)中,或是為構(gòu)件在負(fù)載均衡的基礎(chǔ)上建立冗余來解決。直到SAN出現(xiàn),從客戶機(jī)/服務(wù)器結(jié)構(gòu)方面考慮集中備份,這種跨越網(wǎng)絡(luò)的高速備份和恢復(fù)才成為一種主要的觀念。應(yīng)用如今的技術(shù),具有許多服務(wù)器的網(wǎng)絡(luò)中的集中備份意味著網(wǎng)絡(luò)將會(huì)受到備份數(shù)據(jù)流的沖擊和妨礙,哪怕使用最先進(jìn)的壓縮技術(shù)。
要將網(wǎng)絡(luò)上的所有服務(wù)器中的數(shù)據(jù)進(jìn)行備份,也許要會(huì)花好幾個(gè)小時(shí)。這是因?yàn)槊恳粋€(gè)備份客戶端都要通過網(wǎng)絡(luò)將數(shù)據(jù)傳送到中心備份服務(wù)器中,而且有可能要通過廣域網(wǎng)連接。首先由客戶端機(jī)器從硬盤上讀出數(shù)據(jù),然后從網(wǎng)絡(luò)的不同方向傳送到中心服務(wù)器上,最后由備份服務(wù)器將它寫到備份設(shè)備上。有了SAN,SAN中的中心備份服務(wù)器將從存儲(chǔ)設(shè)備讀出數(shù)據(jù),直接將它們存儲(chǔ)到磁帶、CD光盤或者硬盤等備份設(shè)備上。由于備份和恢復(fù)都不會(huì)影響外部網(wǎng)絡(luò)的工作狀態(tài),因而都能夠在相當(dāng)快的時(shí)間內(nèi)完成。
當(dāng)進(jìn)行了條帶化或是鏡像操作,RAID通常能夠防治因硬盤故障而造成數(shù)據(jù)丟失。由于通向冗余數(shù)據(jù)的通路丟失,位于冗余硬盤上的可用數(shù)據(jù)不能被訪問到,控制器故障和連接故障問題目前仍然沒有解決。在SAN上的存儲(chǔ)管理中使用了邏輯卷管理,可以在位于網(wǎng)絡(luò)上不同的存儲(chǔ)子系統(tǒng)中的硬盤之間建立條帶化和鏡像操作,因而增加了可用性。
由于到這一數(shù)據(jù)有多條通路可用,每次都使用最短的訪問路徑,這樣就大大提高了I/O性能。同樣,在SAN中,由于物理上的I/O分布完全不可能發(fā)生在位于存儲(chǔ)子系統(tǒng)中的硬盤上,但能夠被分布處理在網(wǎng)絡(luò)上進(jìn)行負(fù)載均衡,因而I/O性能也得到了推進(jìn)。
SAN的藍(lán)圖
總體上說,作為一種結(jié)構(gòu)體系,SAN非常適用于任何要求可用性、可伸縮性和性能的計(jì)算環(huán)境中,特別是那種ERP和電子商務(wù)應(yīng)用扮演主要角色的環(huán)境中。這種類型的結(jié)構(gòu)體系能夠?yàn)檫\(yùn)行于生產(chǎn)部門的基于事務(wù)的ERP和電子商務(wù)應(yīng)用提供更高的可用性、增強(qiáng)的性能和提高的伸縮性。即使是在進(jìn)行數(shù)據(jù)備份和歸檔,那些配備了冗余構(gòu)件的服務(wù)器彼此之間還是能夠連續(xù)不斷地高速訪問數(shù)據(jù)。
不管是數(shù)據(jù)、代碼還是元數(shù)據(jù),從底層來看它們都是數(shù)位和字節(jié)。在基于SAN的結(jié)構(gòu)中隨著邏輯卷管理層(位于存儲(chǔ)服務(wù)器端)的引入,所有這些數(shù)位和字節(jié)被冗余地存儲(chǔ)在SAN中,并在需要時(shí)被訪問。