專利名稱:存儲系統(tǒng)及其數(shù)據(jù)讀寫方法
技術(shù)領(lǐng)域:
本發(fā)明涉及存儲系統(tǒng)及其數(shù)據(jù)讀寫方法,尤其涉及在存儲級和應(yīng)用級上具有高可靠性的存儲系統(tǒng)及其使用方法。
背景技術(shù):
目前,對于現(xiàn)代化企業(yè)來說,利用計算機(jī)系統(tǒng)來提供及時可靠的信息和服務(wù)是必不可少的。對于計算機(jī)應(yīng)用來說,最重要的是可持續(xù)的、具有一致性和完整性的數(shù)據(jù)訪問。但是,計算機(jī)硬件與軟件都不可避免地會發(fā)生故障,這些故障有可能給企業(yè)帶來極大的損失,甚至造成整個服務(wù)的終止和網(wǎng)絡(luò)的癱瘓。對于那些任何停工都將產(chǎn)生嚴(yán)重的財產(chǎn)損失、名譽(yù)損失、甚至生命損失的關(guān)鍵性應(yīng)用的企業(yè)或公司,必須有適當(dāng)?shù)拇胧﹣泶_保計算機(jī)系統(tǒng)提供不間斷的服務(wù),以維護(hù)系統(tǒng)的可用性。因此,系統(tǒng)的高可用性顯得尤為重要。高可用性(HA,High Availability)指的是通過盡量縮短因日常維護(hù)操作(計劃)和突發(fā)的系統(tǒng)崩潰(非計劃)所導(dǎo)致的停機(jī)時間,以提高系統(tǒng)和應(yīng)用的可用性。高可用性方案利用冗余部件、由軟件檢測故障,一旦故障發(fā)生立即隔離損壞部件,通過提供故障恢復(fù)實現(xiàn)最大化系統(tǒng)和應(yīng)用的可用性。HA的目標(biāo)是盡量實現(xiàn)不停機(jī)操作。故障被掩飾掉,而且盡量不修改最終的應(yīng)用程序。從客戶端看來,集群(cluster)中的所有服務(wù)器是一個系統(tǒng),就像一臺大型的計算機(jī)系統(tǒng),其上運(yùn)行著客戶端需要的應(yīng)用服務(wù)。由于集群系統(tǒng)能夠保證用戶的業(yè)務(wù)是連續(xù)的并且具有持續(xù)可用的特性,即具有7X24小時的可用性。傳統(tǒng)的HA結(jié)構(gòu)傳統(tǒng)的HA是應(yīng)用服務(wù)器級的HA。如圖1所示,兩臺應(yīng)用服務(wù)器1、2之間做服務(wù)器集群,采用互備模式(Active/Active)或熱備模式(Active/Standby)?;淠J?在正常情況下,兩臺服務(wù)器均為前端客戶提供各自的應(yīng)用服務(wù),并互相監(jiān)視對方的運(yùn)行情況。當(dāng)一臺服務(wù)器出現(xiàn)故障情況,不能對客戶端提供正常服務(wù)時,另一臺服務(wù)器將接管對方的應(yīng)用.
熱備模式:在正常情況下,一臺服務(wù)器是工作機(jī),另一臺服務(wù)器為備份機(jī)。工作機(jī)在為信息系統(tǒng)提供服務(wù)時,備份機(jī)在監(jiān)視工作機(jī)的工作。當(dāng)工作機(jī)出現(xiàn)故障,不能對前端客戶提供服務(wù)時,備份機(jī)接管工作機(jī)的應(yīng)用,繼續(xù)為客戶端提供正常服務(wù),從而保證信息系統(tǒng)的業(yè)務(wù)不間斷。當(dāng)工作機(jī)修復(fù)后,可重新接入系統(tǒng)要回自己的應(yīng)用。繼續(xù)為客戶端提供正常服務(wù),從而保證信息系統(tǒng)的業(yè)務(wù)不間斷。服務(wù)器同時連接到同一個存儲設(shè)備。在這種結(jié)構(gòu)下,如果一臺服務(wù)器宕機(jī)另一臺就接管全部的應(yīng)用處理服務(wù),防止應(yīng)用服務(wù)器級的單點故障。但是如果存儲級的設(shè)備出現(xiàn)問題。整個架構(gòu)都將不能使用。所以傳統(tǒng)的HA架構(gòu)不能真正完整地保護(hù)企業(yè)數(shù)據(jù)業(yè)務(wù)365X24X60的不間斷性。企業(yè)一旦無法訪問到任務(wù)關(guān)鍵數(shù)據(jù),就會造成生產(chǎn)和供應(yīng)鏈的延遲,這將給企業(yè)帶來難以估量的損失。因此,需要提出一種改進(jìn)的具有高可靠性的存儲系統(tǒng)及其使用方法。
發(fā)明內(nèi)容
本發(fā)明的目的在于,提供一種在存儲級和應(yīng)用級上具有高可靠性的存儲系統(tǒng)及其使用方法。根據(jù)本發(fā)明的一個方面,提供一種存儲系統(tǒng),所述存儲系統(tǒng)在存儲級和應(yīng)用級上具有高可用性。所述存儲系統(tǒng)包括:至少一臺應(yīng)用服務(wù)器,建立集群并向用戶提供相同的應(yīng)用服務(wù);兩臺存儲管理服務(wù)器,分別與所述應(yīng)用服務(wù)器連接,利用映射卷技術(shù)實現(xiàn)所述存儲系統(tǒng)的虛擬化存儲;以及多臺存儲設(shè)備,分別與所述存儲管理服務(wù)器連接,并在物理上存儲用戶的數(shù)據(jù)。通過所述至少兩臺存儲管理服務(wù)器實現(xiàn)用戶數(shù)據(jù)的讀取/寫入,當(dāng)發(fā)生故障時,通過存儲系統(tǒng)實現(xiàn)所述兩臺存儲管理服務(wù)器的自動切換,實現(xiàn)應(yīng)用透明,從而保證應(yīng)用系統(tǒng)的持續(xù)運(yùn)行。優(yōu)選的,當(dāng)發(fā)生故障后維修修復(fù)了故障之后,通過自動反向同步技術(shù),再次實現(xiàn)用戶數(shù)據(jù)的同步狀態(tài)。優(yōu)選的,所述應(yīng)用服務(wù)器支持Windows、Linux、Unix、Solaris、以及VMware等操作系統(tǒng)并且支持Oracle、DB2、MS SQL、以及Sybase等數(shù)據(jù)庫。優(yōu)選的,所述兩臺存儲管理服務(wù)器通過光交換網(wǎng)絡(luò)(OSN)或普通交換網(wǎng)絡(luò)與所述多臺存儲設(shè)備相連接。優(yōu)選的,所述多臺存儲設(shè)備是由不同廠商制造的不同品牌的存儲設(shè)備。根據(jù)本發(fā)明的另一方面,提供了一種由上述存儲系統(tǒng)實現(xiàn)的數(shù)據(jù)讀寫方法,所述方法包括如下步驟:當(dāng)接收到讀取/寫入命令時,判斷要讀取/寫入的卷是否為鏡像卷組中的一個鏡像卷;當(dāng)要讀取/寫入的卷是鏡像卷組中的一個鏡像卷時,從鏡像卷組中的一個鏡像卷讀取數(shù)據(jù)或者向鏡像卷組中的一個鏡像卷寫入數(shù)據(jù)。優(yōu)選的,當(dāng)判斷要讀取/寫入的卷不是鏡像卷組中的一個鏡像卷時,將讀取/寫入命令發(fā)送到下一層。優(yōu)選的,所述方法還包括判斷是本地卷還是鏡像卷宕掉的步驟,如果是本地卷宕掉,則執(zhí)行向鏡像卷的讀取/寫入操作;并且如果是鏡像卷宕掉,則執(zhí)行向本地卷的讀取/寫入操作。優(yōu)選的,所述方法還包括當(dāng)所述鏡像卷組中的任一個卷的數(shù)據(jù)遭到破壞時,從所述鏡像卷組中的其他卷將遭到破壞的數(shù)據(jù)恢復(fù)。相應(yīng)地,本發(fā)明所取得的有益效果包括:保障業(yè)備連續(xù)件兩個存儲服務(wù)器實時地保持兩份相同的在線數(shù)據(jù),當(dāng)其中之一發(fā)生故障時,存儲服務(wù)會自動透明地切換到另一臺存儲上,從而保證了客戶業(yè)務(wù)連續(xù)性。待維修完畢,通過自動反向同步技術(shù),又可實現(xiàn)兩臺存儲數(shù)據(jù)同步狀態(tài)。高可用存儲使數(shù)據(jù)實現(xiàn)雙保險,業(yè)務(wù)連續(xù)性有了切實保障。廣泛的兼容性存儲相對獨立,用戶可自由選擇主機(jī)與數(shù)據(jù)庫類型。支持Windows、Linux、Unix、Solaris、VMware等主流操作系統(tǒng),支持Oracle、DB2、MS SQL、Sybase等主流數(shù)據(jù)庫。異構(gòu)存儲管理
支持主流品牌的存儲設(shè)備,可實現(xiàn)不同品牌存儲設(shè)備之間的HA;支持IP、FC、SAS(Serial Attached SCSI)三種連接方式,支持不同連接方式的存儲設(shè)備之間的HA。簡化管理可快速地完成相關(guān)配置,提供易用的中文圖形化操作界面和自動化監(jiān)控系統(tǒng)。廣泛的可擴(kuò)展性可平滑擴(kuò)展持續(xù)數(shù)據(jù)保護(hù)與容災(zāi)功能。
本發(fā)明的特征、實施例和優(yōu)點,將參照附圖在以下詳細(xì)描述。圖1是傳統(tǒng)的應(yīng)用服務(wù)器級的高可靠性(HA)存儲系統(tǒng)的系統(tǒng)結(jié)構(gòu)的示意圖;圖2是描繪了根據(jù)本發(fā)明實施例的存儲級HA的存儲系統(tǒng)的結(jié)構(gòu)的示意圖;以及圖3是描繪了根據(jù)本發(fā)明實施例的存儲級HA所實現(xiàn)的基本功能的示意圖。
具體實施例方式接下來,將結(jié)合附圖進(jìn)行詳細(xì)描述本發(fā)明的實施例。只要可能,在整個附圖中,相同的附圖標(biāo)記將指示相同的部件。硬件配置下面,參照圖2來說明根據(jù)本發(fā)明實施例的存儲級HA的存儲系統(tǒng)的硬件配置。圖2是描繪了根據(jù)本發(fā)明實施例的存儲級HA的存儲系統(tǒng)的結(jié)構(gòu)的示意圖。如圖2所示,存儲系統(tǒng)100包括多臺客戶端(例如,PC) 1、建立集群并向用戶提供相同的應(yīng)用服務(wù)的多臺應(yīng)用服務(wù)器2、分別與應(yīng)用服務(wù)器連接的兩臺存儲管理服務(wù)器3、以及多臺由不同廠商提供的性能不同的物理存儲設(shè)備4。在存儲管理服務(wù)器3上通過映射卷技術(shù)實現(xiàn)存儲虛擬化以提供對數(shù)據(jù)的保護(hù)。通過兩臺存儲管理服務(wù)器實現(xiàn)用戶數(shù)據(jù)的讀取/寫入,當(dāng)發(fā)生故障時,通過軟件實現(xiàn)多臺應(yīng)用服務(wù)器的自動切換,從而保證存儲系統(tǒng)的持續(xù)運(yùn)行。如圖2所示,應(yīng)用服務(wù)器、存儲管理服務(wù)器和存儲設(shè)備的數(shù)目都是兩臺。然而,本領(lǐng)域技術(shù)人員可以理解的是,根據(jù)需要,這些組成部件的數(shù)目還可以是多于兩臺,本發(fā)明并不局限于此。另外,雖然圖2中示出了存儲管理服務(wù)器3和物理存儲設(shè)備4之間通過光交換網(wǎng)絡(luò)(OSN, Optical Switch Network)相連接,但是本領(lǐng)域技術(shù)人員可以理解的是,還可以在存儲系統(tǒng)中采用其他類型的連接方式來實現(xiàn)相同或相似的功能,而本發(fā)明并不局限于此。與傳統(tǒng)的普通HA相比較,通過根據(jù)本發(fā)明的存儲級HA,能夠?qū)崿F(xiàn)數(shù)據(jù)的同步讀取
/寫入。此外,如圖2所示,通過應(yīng)用級的集群(Cluster),實現(xiàn)在出現(xiàn)故障時業(yè)務(wù)系統(tǒng)的自動切換,從而保證業(yè)務(wù)系統(tǒng)的持續(xù)運(yùn)行。因此,根據(jù)本發(fā)明的存儲級HA的特點包括:第一,獨立于主機(jī)(應(yīng)用服務(wù)器)與在其上運(yùn)行的應(yīng)用,能夠在不影響現(xiàn)有應(yīng)用的情況下,透明地實現(xiàn)存儲集群。第二,獨立于存儲系統(tǒng),可構(gòu)建存儲HA框架,為業(yè)務(wù)將來發(fā)展選擇由不同廠商生產(chǎn)的更多存儲硬件品牌。第三,支持異構(gòu)存儲管理,可充分發(fā)揮現(xiàn)有IT的作用,簡化管理。第四,在單點故障情況下全自動切換、恢復(fù),從而實現(xiàn)99.99%以上的安全系數(shù),最大程度的保障業(yè)務(wù)連續(xù)性。第五,基于虛擬存儲,自動精簡配置,可提高存儲利用率。第六,提供現(xiàn)有存儲的自動遷移服務(wù),最大限度減少業(yè)務(wù)宕機(jī)時間。下面將會參考圖3,來詳細(xì)地說明根據(jù)本發(fā)明的存儲級HA的I/O處理過程。首先,如圖3所示,描繪了根據(jù)本發(fā)明的存儲級HA中的由OSN對存儲設(shè)備執(zhí)行的三種基本任務(wù),即讀操作、寫操作和恢復(fù)操作。圖3是描繪了根據(jù)本發(fā)明的存儲級HA所實現(xiàn)的基本功能的不意圖。下面,將會通過三個實施例來分別詳細(xì)地描述這三種操作。第一實施例(讀操作)接下來,描述根據(jù)本發(fā)明的存儲級HA的讀操作。當(dāng)卷接收到讀命令時,首先判斷這個卷是否是鏡像卷組中的一個。如果不是,說明這個卷不是鏡像卷,把讀命令發(fā)送到下一層,程序結(jié)束。如果這個卷是鏡像組中的一個卷,則繼續(xù)判斷這個卷是否拒絕I/o操作。這是因為有時候為了保護(hù)卷中的數(shù)據(jù),會設(shè)置這個卷不可讀寫。然后,需要再判斷這個卷和它的鏡像卷是否都宕掉了。只要其中一個沒宕掉,就繼續(xù)判斷這個讀請求是否來自鏡像卷。如果是來自鏡像卷,執(zhí)行從本地卷讀取數(shù)據(jù)。如果讀數(shù)據(jù)請求不是來自鏡像卷,則還需要判斷本地卷是否宕掉。如果本地卷宕掉,則執(zhí)行從鏡像卷讀取數(shù)據(jù)。如果本地卷沒宕掉,則執(zhí)行從本地卷讀取數(shù)據(jù)的操作。執(zhí)行從本地卷讀數(shù)據(jù)的回調(diào)函數(shù)判斷讀操作是否成功,是則設(shè)置讀寫操作狀態(tài)為成功,程序結(jié)束。否則判斷這個卷是否有鏡像卷。如果沒有鏡像卷,則設(shè)置讀寫操作不成功,程序結(jié)束。如果這個卷有鏡像卷,則判斷是否從鏡像卷讀數(shù)據(jù),是則返回不成功,否則判斷鏡像卷是否是正常連接(UP)狀態(tài),是則從鏡像卷讀取數(shù)據(jù),執(zhí)行回調(diào)函數(shù)判斷讀數(shù)據(jù)是否成功。第二實施例(寫操作)接下來,將會描述寫操作,其中不再贅述與第一實施例中的讀操作相同的步驟,而僅描述兩者不同之處。當(dāng)寫操作開始執(zhí)行時,首先判斷寫的這個卷是不是鏡像組中的卷,不是的話寫命令傳到下一層。如果這個卷不拒絕I/o操作而且這個卷所在的鏡像組的其中至少一個卷能夠正常工作,則判斷這個I/O是來自鏡像卷的I/O還是來自應(yīng)用層的I/O。如果是來自鏡像卷的1/0,則說明本地卷要進(jìn)行恢復(fù)操作。如果來自應(yīng)用層的1/0,則不僅要把這個I/O寫入本地卷,還要寫入這個卷的鏡像卷中。第三實施例(恢復(fù)操作)接下來,將會描述恢復(fù)操作,其中不再贅述與第一、第二實施例中的讀/寫操作相同的步驟,而僅描述與這兩者的不同之處。在鏡像卷組中,如果其中一個鏡像卷的數(shù)據(jù)遭到破壞,可以從其它鏡像卷中恢復(fù)回來。當(dāng)開始恢復(fù)時,首先檢查設(shè)備是否準(zhǔn)備好,例如磁盤是否已經(jīng)正常掃描到等。當(dāng)設(shè)備準(zhǔn)備好后,判斷兩臺服務(wù)器是否都要求做恢復(fù),因為這樣的情況下說明鏡像組同時損壞,恢復(fù)失敗。如果這種情況沒發(fā)生,則需判斷數(shù)據(jù)是從本地卷恢復(fù)到鏡像卷,還是從鏡像卷恢復(fù)到本地卷。恢復(fù)的時候數(shù)據(jù)按程序設(shè)定的值(在本示例中為1M)為單位分成幾次恢復(fù)。先把數(shù)據(jù)從正常的卷讀出來再把數(shù)據(jù)寫到需要恢復(fù)的卷,從而完成恢復(fù)過程。盡管給出一些實施例,但本發(fā)明并不限于此。本領(lǐng)域技術(shù)人員基于本發(fā)明實施例的任何變形、修改,都不會背離本發(fā)明所限定的權(quán)利要求的范圍。
權(quán)利要求
1.一種存儲系統(tǒng),所述存儲系統(tǒng)在存儲級和應(yīng)用級上具有高可用性,其特征在于,所述存儲系統(tǒng)包括: 至少一臺應(yīng)用服務(wù)器,建立集群并向用戶提供相同的應(yīng)用服務(wù); 兩臺存儲管理服務(wù)器,分別與所述應(yīng)用服務(wù)器連接,利用映射卷技術(shù)實現(xiàn)所述存儲系統(tǒng)的虛擬化存儲;以及 多臺存儲設(shè)備,分別與所述存儲管理服務(wù)器連接,并在物理上存儲用戶的數(shù)據(jù), 其中,通過所述至少兩臺存儲管理服務(wù)器實現(xiàn)用戶數(shù)據(jù)的讀取/寫入,當(dāng)發(fā)生故障時,通過所述存儲系統(tǒng)實現(xiàn)所述兩臺存儲管理服務(wù)器的自動切換,實現(xiàn)應(yīng)用透明,從而保證應(yīng)用系統(tǒng)的持續(xù)運(yùn)行。
2.根據(jù)權(quán)利要求1所述的存儲系統(tǒng),其特征在于,當(dāng)發(fā)生故障后維修修復(fù)了故障之后,通過自動反向同步技術(shù),再次實現(xiàn)用戶數(shù)據(jù)的同步狀態(tài)。
3.根據(jù)權(quán)利要求1或2所述的存儲系統(tǒng),其特征在于,所述應(yīng)用服務(wù)器支持Windows、Linux、Unix、Solaris、以及 VMware 操作系統(tǒng)。
4.根據(jù)權(quán)利要求1或2所述的存儲系統(tǒng),其特征在于,所述應(yīng)用服務(wù)器支持Oracle、DB2、MS SQL、以及 Sybase 數(shù)據(jù)庫。
5.根據(jù)權(quán)利要求1或2所述的存儲系統(tǒng),其特征在于,所述兩臺存儲管理服務(wù)器通過交換網(wǎng)絡(luò)與所述多臺存儲設(shè)備相連接。
6.根據(jù)權(quán)利要求1或2所述的存儲系統(tǒng),其特征在于,所述多臺存儲設(shè)備是由不同廠商制造的不同品牌的存儲設(shè)備。
7.一種由根據(jù)權(quán)利要求1-6中任一項所述的存儲系統(tǒng)實現(xiàn)的數(shù)據(jù)讀寫方法,其特征在于,所述方法包括如下步驟: 當(dāng)接收到讀取/寫入命令時,判斷要讀取/寫入的卷是否為鏡像卷組中的一個鏡像卷; 當(dāng)要讀取/寫入的卷是鏡像卷組中的一個鏡像卷時,從鏡像卷組中的一個鏡像卷讀取數(shù)據(jù)或者向鏡像卷組中的一個鏡像卷寫入數(shù)據(jù)。
8.根據(jù)權(quán)利要求7所述的方法,其特征在于,當(dāng)判斷要讀取/寫入的卷不是鏡像卷組中的一個鏡像卷時,將讀取/寫入命令發(fā)送到下一層。
9.根據(jù)權(quán)利要求7或8所述的方法,其特征在于,所述方法還包括判斷是本地卷還是鏡像卷巖掉的步驟, 其中,如果是本地卷宕掉,則執(zhí)行向鏡像卷的讀取/寫入操作;并且 如果是鏡像卷宕掉,則執(zhí)行向本地卷的讀取/寫入操作。
10.根據(jù)權(quán)利要求7或8所述的方法,其特征在于,所述方法還包括當(dāng)所述鏡像卷組中的任一個卷的數(shù)據(jù)遭到破壞時,從所述鏡像卷組中的其他卷將遭到破壞的數(shù)據(jù)恢復(fù)。
全文摘要
本發(fā)明公開了一種存儲系統(tǒng)及其數(shù)據(jù)讀寫方法。該存儲系統(tǒng)在存儲級和應(yīng)用級上具有高可用性并包括至少一臺應(yīng)用服務(wù)器,建立集群并向用戶提供相同的應(yīng)用服務(wù);兩臺存儲管理服務(wù)器,分別與所述應(yīng)用服務(wù)器連接,利用映射卷技術(shù)實現(xiàn)所述存儲系統(tǒng)的虛擬化存儲;以及多臺存儲設(shè)備,分別與所述存儲管理服務(wù)器連接,并在物理上存儲用戶的數(shù)據(jù)。通過所述至少兩臺存儲管理服務(wù)器實現(xiàn)用戶數(shù)據(jù)的讀取/寫入,當(dāng)發(fā)生故障時,通過存儲系統(tǒng)實現(xiàn)所述兩臺存儲管理服務(wù)器的自動切換,實現(xiàn)應(yīng)用透明,從而保證應(yīng)用系統(tǒng)的持續(xù)運(yùn)行。
文檔編號G06F3/06GK103186348SQ20111044460
公開日2013年7月3日 申請日期2011年12月27日 優(yōu)先權(quán)日2011年12月27日
發(fā)明者施苗峰, 任永堅, 汪海, 芮琨 申請人:杭州信核數(shù)據(jù)科技有限公司