專利名稱:具有共享的高速緩存地址空間的數(shù)據(jù)存儲系統(tǒng)及其操作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計算機(jī)數(shù)據(jù)存儲系統(tǒng)的領(lǐng)域,尤其涉及需要擴(kuò)展的可擴(kuò)縮性的存儲系統(tǒng)(例如,用于存儲區(qū)域網(wǎng)絡(luò)的塊存儲控制器)。
背景技術(shù):
現(xiàn)代存儲系統(tǒng)提供增加的存儲容量以滿足來自主計算機(jī)系統(tǒng)應(yīng)用的用戶需求。已知并使用各種存儲設(shè)備配置來滿足對更高存儲容量、性能和可用性的需求。
圖1中示出了根據(jù)該技術(shù)的示例性配置。如圖1所示,一種可用于滿足對增加的容量和可靠性的需求的存儲配置是使用多個較小的存儲模塊,這些模塊被配置成在發(fā)生故障的情況下確保數(shù)據(jù)完整性和連續(xù)的可用性。在這樣的冗余系統(tǒng)中,由于冗余的使用,而可在存儲子系統(tǒng)自身中自動地從多種類型的故障恢復(fù)。這樣的冗余子系統(tǒng)的示例包括具有在圖1中示意性地示為112和114的廉價磁盤冗余陣列(RAID)的雙控制器。
典型的存儲系統(tǒng)具有管理存儲器并向存儲器提供用于I/O的上游接口的兩個存儲設(shè)備控制器108、110。存儲設(shè)備控制器可管理例如用于一個或多個主機(jī)系統(tǒng)的存儲設(shè)備陣列。存儲控制器可用于使存儲設(shè)備112、114的陣列對于主機(jī)系統(tǒng)102、104顯現(xiàn)為單個高容量存儲池。
許多現(xiàn)代的存儲系統(tǒng)被配置在能夠由主計算機(jī)102、104訪問存儲器的存儲區(qū)域網(wǎng)絡(luò)內(nèi),其通過通信鏈路被控制。存儲區(qū)域網(wǎng)絡(luò)(SAN)是這樣的網(wǎng)絡(luò),即其主要目的是在諸如主機(jī)102、104的計算機(jī)系統(tǒng)與位于例如存儲設(shè)備112、114的存儲子系統(tǒng)內(nèi)的存儲元件之間傳送數(shù)據(jù)。在SAN中,在允許在通信基礎(chǔ)設(shè)施所支持的距離內(nèi)在存儲子系統(tǒng)和主計算機(jī)之間建立通信的高速網(wǎng)絡(luò)內(nèi),可集中化并互連存儲設(shè)備。SAN可在主機(jī)之間共享或者專用于一個主機(jī)。其可以是本地的,或者可在地理距離之上延伸。
SAN使存儲器能夠存在于主機(jī)外部并且被集中于其他位置。這使得存儲器和數(shù)據(jù)可在多個主機(jī)之間共享。數(shù)據(jù)共享使能由多個計算機(jī)平臺或主機(jī)訪問公用數(shù)據(jù)以便進(jìn)行處理。
SAN的主機(jī)基礎(chǔ)設(shè)施可包括主機(jī)平臺的混合。存儲器基礎(chǔ)設(shè)施包括連接到SAN網(wǎng)絡(luò)的存儲設(shè)備。SAN可將存儲器接口互連為多種網(wǎng)絡(luò)配置。
典型的SAN使用所謂的結(jié)構(gòu)(fabric)106來連接設(shè)備。結(jié)構(gòu)是用于描述使用互連實(shí)體連接主機(jī)和存儲子系統(tǒng)的基礎(chǔ)設(shè)施的術(shù)語,其中的互連實(shí)體諸如交換機(jī)、路由器、導(dǎo)控器、網(wǎng)絡(luò)集線器和網(wǎng)關(guān)。不同類型的互連實(shí)體允許構(gòu)建規(guī)模可變的網(wǎng)絡(luò)。
轉(zhuǎn)到存儲控制器108、110,在本領(lǐng)域內(nèi),公知傳統(tǒng)控制器包括高速緩沖存儲器以利用電子存取速度。這樣的高速緩沖存儲器可例如以DRAM技術(shù)來實(shí)現(xiàn)。在操作時,高速緩沖存儲器116、118為與控制器108、110接收到的I/O請求相關(guān)聯(lián)的數(shù)據(jù)提供臨時存儲。
高速緩沖存儲器和I/O端口與各個控制器的直接關(guān)聯(lián)通常是實(shí)現(xiàn)存儲子系統(tǒng)的性能、容量和主機(jī)連通性的可擴(kuò)縮性方面的限制因素,因此期望提供一種可解決此問題的布置、裝置、方法或計算機(jī)程序。
已知使控制器成對,以便以通過任何一個控制器訪問數(shù)據(jù)的能力來實(shí)現(xiàn)更高的可用性,但是這些系統(tǒng)的容量和性能的可擴(kuò)縮性內(nèi)在地受到限制。因此,還需要克服此限制。
發(fā)明內(nèi)容
在第一方面,本發(fā)明提供一種用于具有多個節(jié)點(diǎn)的對等網(wǎng)絡(luò)的節(jié)點(diǎn)的裝置,該裝置包括一個或多個I/O適配器;高速緩存組件;一個或多個節(jié)點(diǎn)間路由選擇組件;存儲映象組件,用于向所述I/O適配器呈現(xiàn)跨多個存儲元件映象的單個地址空間,其中每個存儲元件都與上述高速緩存組件相關(guān)聯(lián);以及直接存儲器存取組件,用于代表所述I/O適配器經(jīng)由所述存儲映象組件對所述存儲元件執(zhí)行存儲操作。
優(yōu)選地,上述I/O適配器包括主機(jī)系統(tǒng)適配器。
優(yōu)選地,上述I/O適配器包括數(shù)據(jù)存儲設(shè)備適配器。
優(yōu)選地,上述網(wǎng)絡(luò)包括光纖通道結(jié)構(gòu)。
優(yōu)選地,上述網(wǎng)絡(luò)包括存儲區(qū)域網(wǎng)絡(luò)。
優(yōu)選地,上述存儲區(qū)域網(wǎng)絡(luò)包括存儲器虛擬化控制器。
優(yōu)選地,該裝置包括邏輯裝置,并且該邏輯裝置優(yōu)選地包括可編程邏輯元件。
優(yōu)選地,上述數(shù)據(jù)存儲設(shè)備適配器可與存儲器陣列合作。
優(yōu)選地,上述存儲器陣列包括RAID陣列。
在第二方面,本發(fā)明提供一種對節(jié)點(diǎn)的對等網(wǎng)絡(luò)中的節(jié)點(diǎn)進(jìn)行操作的方法,該節(jié)點(diǎn)包括一個或多個I/O適配器、高速緩存組件和存儲映象組件;該方法包括步驟由存儲映象組件向所述I/O適配器呈現(xiàn)跨多個存儲元件映象的單個地址空間,其中每個存儲元件都與上述高速緩存組件相關(guān)聯(lián);以及由直接存儲器存取組件代表所述I/O適配器經(jīng)由所述存儲映象組件對所述存儲元件執(zhí)行存儲操作。
優(yōu)選地,上述I/O適配器包括主機(jī)系統(tǒng)適配器。
優(yōu)選地,上述I/O適配器包括數(shù)據(jù)存儲設(shè)備適配器。
優(yōu)選地,上述網(wǎng)絡(luò)包括光纖通道結(jié)構(gòu)。
優(yōu)選地,上述網(wǎng)絡(luò)包括存儲區(qū)域網(wǎng)絡(luò)。
優(yōu)選地,上述存儲區(qū)域網(wǎng)絡(luò)包括存儲器虛擬化控制器。
優(yōu)選地,該裝置包括邏輯裝置,并且該邏輯裝置優(yōu)選地包括可編程邏輯元件。
優(yōu)選地,上述數(shù)據(jù)存儲設(shè)備適配器可與存儲器陣列合作。
優(yōu)選地,上述存儲器陣列包括RAID陣列。
在第三方面,本發(fā)明提供一種包括計算機(jī)程序代碼的計算機(jī)程序,當(dāng)該計算機(jī)程序代碼被加載到計算機(jī)系統(tǒng)內(nèi)并且在其上執(zhí)行時,使所述計算機(jī)執(zhí)行根據(jù)第二方面的方法的步驟。優(yōu)選地,第二方面的方法的優(yōu)選步驟以第三方面的程序代碼步驟實(shí)現(xiàn)。
因此,本發(fā)明提供了一種通過在對等網(wǎng)絡(luò)內(nèi)將多個模塊化控制器連接在一起來擴(kuò)縮存儲子系統(tǒng)的性能、容量和主機(jī)連通性,其中在該對等網(wǎng)絡(luò)內(nèi)高速緩沖存儲器地址空間可被公共尋址。
現(xiàn)在將參照附圖僅以示例的方式描述本發(fā)明的優(yōu)選實(shí)施例,在附圖中圖1示出根據(jù)現(xiàn)有技術(shù)的包含一對冗余控制器的典型存儲子系統(tǒng)配置;圖2示出根據(jù)本發(fā)明的優(yōu)選實(shí)施例的裝置;圖3示出根據(jù)此優(yōu)選實(shí)施例的包括進(jìn)行通信的一對控制器的裝置的示例性布置;以及圖4示出根據(jù)優(yōu)選實(shí)施例的裝置的布置的操作方法。
具體實(shí)施例方式
圖1中示出如上文所述的根據(jù)現(xiàn)有技術(shù)的具有主機(jī)、結(jié)構(gòu)(fabric)、具有高速緩沖存儲器和存儲設(shè)備的一對控制器的典型存儲子系統(tǒng)配置。
圖2中示出根據(jù)本發(fā)明的優(yōu)選實(shí)施例的裝置200。節(jié)點(diǎn)200可在對等網(wǎng)絡(luò)(未示出)內(nèi)操作,且其包括主機(jī)適配器216、高速緩沖存儲器220、設(shè)備適配器222和CPU 212。I/O適配器216和222、高速緩沖存儲器220和CPU 212通過節(jié)點(diǎn)內(nèi)總線224鏈接。
存儲映象組件214可操作地向I/O適配器216和222呈現(xiàn)跨多個高速緩沖存儲器220映象的單個地址空間,其中每個高速緩沖存儲器220由所述多個節(jié)點(diǎn)中的一個所擁有。每個I/O適配器包含用于經(jīng)由節(jié)點(diǎn)內(nèi)總線或經(jīng)由存儲映象組件214及節(jié)點(diǎn)間結(jié)構(gòu)對高速緩沖存儲器220執(zhí)行存儲操作的直接存儲器存取組件。
優(yōu)選地,該裝置實(shí)現(xiàn)為其中根據(jù)該優(yōu)選實(shí)施例的硬件和軟件功能分成三層的控制器設(shè)備。主機(jī)適配器(HA)—優(yōu)選實(shí)施例的I/O適配器的一個示例性實(shí)例—處理與例如存儲區(qū)域網(wǎng)絡(luò)或SAN的接口。高速緩存(CA)層包含高速緩存、復(fù)制服務(wù)、虛擬化和數(shù)據(jù)遷移功能。每個虛擬盤由CA層的一個或多個實(shí)例所擁有。設(shè)備適配器(DA)—優(yōu)選實(shí)施例的I/O適配器的另一個示例性實(shí)例—包含RAID功能和與驅(qū)動器的接口。每個物理陣列由DA層的一個或多個實(shí)例所擁有。
多個控制器可經(jīng)由節(jié)點(diǎn)間結(jié)構(gòu)連接在一起。優(yōu)選地,該結(jié)構(gòu)支持允許HA和DA硬件的任何實(shí)例直接對CA存儲器的任何實(shí)例傳送數(shù)據(jù)的共享存儲模型。該結(jié)構(gòu)還支持消息傳遞系統(tǒng),該系統(tǒng)允許HA、CA和DA功能的任何實(shí)例與任何其他功能通信。
圖3示出根據(jù)此優(yōu)選實(shí)施例的包括兩個進(jìn)行通信的控制器302、304的裝置的示例性布置。每個控制器302、304通常與另一個冗余控制器成對以便實(shí)現(xiàn)更高的可用性,但是為了簡單在圖3內(nèi)未示出該冗余控制器。
HA 306包含將每個I/O請求引導(dǎo)到擁有編址的虛擬盤的特定CA層308的路由選擇組件。類似的,CA 308包含將每個I/O請求引導(dǎo)到擁有編址的物理陣列312的DA層310的路由選擇組件。
在此示例性布置內(nèi),可提供一種可在節(jié)點(diǎn)的對等網(wǎng)絡(luò)內(nèi)操作的裝置的操作方法,其中每個節(jié)點(diǎn)包括一個或多個I/O適配器、高速緩沖存儲器和存儲映象組件。該方法包括由存儲映象組件向I/O適配器呈現(xiàn)跨多個高速緩沖存儲器映象的單個地址空間,其中每個高速緩沖存儲器由一個節(jié)點(diǎn)所擁有;并且代表I/O適配器,經(jīng)由節(jié)點(diǎn)內(nèi)總線或經(jīng)由存儲映象器和節(jié)點(diǎn)間結(jié)構(gòu)通過直接存儲器存取對高速緩沖存儲器執(zhí)行存儲操作。
該優(yōu)選實(shí)施例的特征支持以低開銷的I/O請求的零拷貝數(shù)據(jù)傳送和內(nèi)部路由選擇。
圖4示出根據(jù)優(yōu)選實(shí)施例的包括進(jìn)行通信的一對控制器的示例性布置的操作方法,其根據(jù)下面的偽代碼響應(yīng)于例如從主機(jī)接收到的讀請求進(jìn)行操作HA1接收對于虛擬盤的讀命令路由器1解碼虛擬盤號并將請求入隊到CA1CA1 在CA1中分配緩沖區(qū)CA1 將請求映象到物理陣列并將請求入隊到DA2DA2向盤發(fā)出讀命令DA2通過DMA向CA1寫數(shù)據(jù)DA2將應(yīng)答入隊到CA1CA1 將應(yīng)答入隊到HA1HA1 通過DMA從CA1讀數(shù)據(jù)HA1 向主機(jī)發(fā)送狀態(tài)本領(lǐng)域內(nèi)的普通技術(shù)人員將容易理解,具有適當(dāng)?shù)男薷牡南鄳?yīng)過程可應(yīng)用于其他I/O請求,諸如寫請求。
這樣,根據(jù)優(yōu)選實(shí)施例的布置的操作方法可概括如下。
連接到主機(jī)的HA適配器接收針對將從虛擬盤執(zhí)行的讀操作的主機(jī)命令(步驟402)。路由器解碼該命令(步驟406),并將該請求入隊到所屬高速緩存層(步驟408)。高速緩存層在其高速緩存內(nèi)分配緩沖區(qū)(步驟412)。路由器413將重映象的請求入隊到合適的設(shè)備適配器(步驟414),而該設(shè)備適配器向盤發(fā)出讀命令(步驟416)。
設(shè)備適配器接收到從盤讀取的數(shù)據(jù)(步驟418),使用由存儲映象組件提供的單個地址空間通過DMA將數(shù)據(jù)寫入高速緩存內(nèi)的緩沖區(qū)(步驟420),并將應(yīng)答入隊到高速緩存層(步驟422)。高速緩存層將該應(yīng)答入隊到主機(jī)適配器(步驟426)。主機(jī)適配器通過DMA從高速緩存中的緩沖區(qū)讀取數(shù)據(jù)(步驟428),并將數(shù)據(jù)和狀態(tài)返回給主機(jī)(步驟430)。
在此示例中,主機(jī)I/O適配器和設(shè)備I/O適配器可根據(jù)本發(fā)明的實(shí)施例與結(jié)構(gòu)和設(shè)備配合操作,從而經(jīng)由對高速緩沖存儲器的DMA操作提供在存儲設(shè)備和主機(jī)之間的雙向零拷貝數(shù)據(jù)傳送。
本領(lǐng)域內(nèi)的普通技術(shù)人員應(yīng)容易理解,本發(fā)明的優(yōu)選實(shí)施例可以例如布置成在裝置的網(wǎng)絡(luò)內(nèi)操作的存儲控制器來實(shí)現(xiàn),并且可包括例如存儲區(qū)域網(wǎng)絡(luò)控制器。
對于本領(lǐng)域內(nèi)的技術(shù)人員來說明顯地,本發(fā)明的方法可適合地以邏輯設(shè)備來實(shí)現(xiàn),該邏輯設(shè)備包括執(zhí)行該方法的步驟的邏輯裝置,并且這樣的邏輯裝置可包括硬件組件或固件組件。
對于本領(lǐng)域內(nèi)的技術(shù)人員來說同樣明顯地,本發(fā)明的邏輯布置可適合地以邏輯設(shè)備來實(shí)現(xiàn),該邏輯設(shè)備包括執(zhí)行該方法的步驟的邏輯裝置,并且這樣的邏輯裝置可包括諸如可編程邏輯陣列內(nèi)的邏輯門的組件。這樣的邏輯布置可進(jìn)一步實(shí)現(xiàn)為使能裝置,用于使用例如可使用固定或可傳送的承載介質(zhì)來存儲的虛擬硬件描述符語言在這樣的陣列中臨時或永久地建立邏輯結(jié)構(gòu)。
應(yīng)該理解,上述方法還可適合地完全或部分在一個或多個處理器(未示出)上運(yùn)行的軟件中實(shí)現(xiàn),并且該軟件可被提供為承載在諸如磁性或光學(xué)計算機(jī)盤的任何合適的數(shù)據(jù)載體(也未示出)上的計算機(jī)程序組件。用于傳送數(shù)據(jù)的通道同樣可包括所有描述的存儲介質(zhì)以及信號承載介質(zhì),諸如有線或無線信號介質(zhì)。
因此,本發(fā)明還可適合地完全或部分實(shí)現(xiàn)為與計算機(jī)系統(tǒng)一起使用的計算機(jī)程序產(chǎn)品。這樣的實(shí)現(xiàn)可包括這樣的一系列計算機(jī)可讀指令,該指令或者固定在諸如計算機(jī)可讀介質(zhì)(例如軟磁盤、CD-ROM、ROM或硬盤)的有形介質(zhì)上,或者可通過包括但不局限于光或模擬通信線路的有形介質(zhì)或無形地使用包括但不局限于微波、紅外線或其他傳輸技術(shù)的無線技術(shù)經(jīng)由調(diào)制解調(diào)器或其他接口設(shè)備傳送到計算機(jī)系統(tǒng)。
本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)理解,這樣的計算機(jī)可讀指令可以用于多種計算機(jī)體系結(jié)構(gòu)或操作系統(tǒng)的多種程序設(shè)計語言來編寫。另外,這樣的指令可使用包括但不局限于半導(dǎo)體、磁性或光學(xué)的目前或?qū)淼娜魏未鎯夹g(shù)存儲,或者使用包括但不局限于光、紅外線或微波的目前或?qū)淼娜魏瓮ㄐ偶夹g(shù)傳輸??深A(yù)期的是,這樣的計算機(jī)程序產(chǎn)品可作為具有隨附的印刷或電子文檔的可移動介質(zhì)(例如預(yù)加載到計算機(jī)系統(tǒng)例如在系統(tǒng)ROM或固定盤上的緊縮套裝軟件)來發(fā)布,或者在例如因特網(wǎng)或萬維網(wǎng)的網(wǎng)絡(luò)上從服務(wù)器或電子公告板發(fā)布。
還應(yīng)理解,對于本領(lǐng)域內(nèi)的普通技術(shù)人員來說顯而易見地,可對上述的優(yōu)選實(shí)施例進(jìn)行多種進(jìn)一步的修改。
權(quán)利要求
1.一種用于具有多個節(jié)點(diǎn)的對等網(wǎng)絡(luò)的節(jié)點(diǎn)的裝置,該裝置包括一個或多個I/O適配器;高速緩存組件;一個或多個節(jié)點(diǎn)間路由選擇組件;存儲映象組件,用于向所述I/O適配器呈現(xiàn)跨多個存儲元件映象的單個地址空間,其中每個存儲元件都與上述高速緩存組件相關(guān)聯(lián);以及直接存儲器存取組件,用于代表所述I/O適配器經(jīng)由所述存儲映象組件對所述存儲元件執(zhí)行存儲操作。
2.根據(jù)權(quán)利要求1的裝置,其中上述I/O適配器包括主機(jī)系統(tǒng)適配器。
3.根據(jù)權(quán)利要求1的裝置,其中上述I/O適配器包括數(shù)據(jù)存儲設(shè)備適配器。
4.根據(jù)權(quán)利要求1的裝置,其中上述網(wǎng)絡(luò)包括光纖通道結(jié)構(gòu)。
5.根據(jù)權(quán)利要求1的裝置,其中上述網(wǎng)絡(luò)包括存儲區(qū)域網(wǎng)絡(luò)。
6.根據(jù)權(quán)利要求5的裝置,其中上述存儲區(qū)域網(wǎng)絡(luò)包括存儲器虛擬化控制器。
7.根據(jù)權(quán)利要求1的裝置,包括邏輯裝置。
8.根據(jù)權(quán)利要求1的裝置,其中上述邏輯裝置包括可編程邏輯元件。
9.根據(jù)權(quán)利要求3的裝置,其中上述數(shù)據(jù)存儲設(shè)備適配器可與存儲器陣列合作。
10.根據(jù)權(quán)利要求9的裝置,其中上述存儲器陣列包括RAID陣列。
11.一種對節(jié)點(diǎn)的對等網(wǎng)絡(luò)中的節(jié)點(diǎn)進(jìn)行操作的方法,該節(jié)點(diǎn)包括一個或多個I/O適配器、高速緩存組件和存儲映象組件;該方法包括步驟由存儲映象組件向所述I/O適配器呈現(xiàn)跨多個存儲元件映象的單個地址空間,其中每個存儲元件都與上述高速緩存組件相關(guān)聯(lián);以及由直接存儲器存取組件代表所述I/O適配器經(jīng)由所述存儲映象組件對所述存儲元件執(zhí)行存儲操作。
12.根據(jù)權(quán)利要求11的方法,其中上述I/O適配器包括主機(jī)系統(tǒng)適配器。
13.根據(jù)權(quán)利要求11的方法,其中上述I/O適配器包括數(shù)據(jù)存儲設(shè)備適配器。
14.根據(jù)權(quán)利要求11的方法,其中上述網(wǎng)絡(luò)包括光纖通道結(jié)構(gòu)。
15.根據(jù)權(quán)利要求11的方法,其中上述網(wǎng)絡(luò)包括存儲區(qū)域網(wǎng)絡(luò)。
16.根據(jù)權(quán)利要求15的方法,其中上述存儲區(qū)域網(wǎng)絡(luò)包括存儲器虛擬化控制器。
17.根據(jù)權(quán)利要求11的方法,包括邏輯裝置。
18.根據(jù)權(quán)利要求17的方法,其中上述邏輯裝置包括可編程邏輯元件。
19.根據(jù)權(quán)利要求13的方法,其中上述數(shù)據(jù)存儲設(shè)備適配器可與存儲器陣列合作。
20.根據(jù)權(quán)利要求19的方法,其中上述存儲器陣列包括RAID陣列。
21.一種包括計算機(jī)程序代碼的計算機(jī)程序,當(dāng)該計算機(jī)程序代碼被加載到計算機(jī)系統(tǒng)內(nèi)并且在其上執(zhí)行時,使所述計算機(jī)執(zhí)行根據(jù)權(quán)利要求11至20中的任意一項(xiàng)的方法的步驟。
全文摘要
一種用于具有多個節(jié)點(diǎn)的對等網(wǎng)絡(luò)的節(jié)點(diǎn)的裝置,包括一個或多個I/O適配器;高速緩存組件;一個或多個節(jié)點(diǎn)間路由選擇組件;存儲映象組件,用于向I/O適配器呈現(xiàn)跨多個存儲元件映象的單個地址空間,其中每個存儲元件都與該高速緩存組件相關(guān)聯(lián);以及直接存儲器存取組件,用于代表I/O適配器經(jīng)由存儲映象組件對存儲元件執(zhí)行存儲操作。
文檔編號G06F12/08GK1845059SQ20061005849
公開日2006年10月11日 申請日期2006年3月28日 優(yōu)先權(quán)日2005年4月8日
發(fā)明者I·D·賈德 申請人:國際商業(yè)機(jī)器公司