專利名稱:一種服務(wù)器及其訪問卷的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及存儲(chǔ)技術(shù)領(lǐng)域,尤其涉及一種服務(wù)器及其訪問卷的方法。
背景技術(shù):
在多存儲(chǔ)控制器存儲(chǔ)架構(gòu)中,卷是一種用于存儲(chǔ)數(shù)據(jù)的邏輯介質(zhì)。每一個(gè)卷被標(biāo)記了一個(gè)不同的標(biāo)識(shí)(ID),用于區(qū)別卷的不同。其中,每一個(gè)卷可以劃分成多個(gè)相同大小的塊,塊是存儲(chǔ)數(shù)據(jù)的最小單位。一個(gè)卷劃分成的多個(gè)相同大小的塊可以分散到存儲(chǔ)架構(gòu)的多個(gè)存儲(chǔ)控制器上,使得一個(gè)塊對(duì)應(yīng)了一個(gè)存儲(chǔ)控制器。每一個(gè)存儲(chǔ)控制器都可以通過交換機(jī)和服務(wù)器連接,當(dāng)服務(wù)器需要往某一個(gè)卷寫入數(shù)據(jù)時(shí),各個(gè)存儲(chǔ)控制器可以將服務(wù)器的數(shù)據(jù)并行地寫入該卷劃分成的多個(gè)塊中;當(dāng)服務(wù)器需要從某一個(gè)卷中讀取的數(shù)據(jù)時(shí),各個(gè)存儲(chǔ)控制器可以并行地從該卷劃分成的多個(gè)塊中讀取數(shù)據(jù)并返回給服務(wù)器,各個(gè)存儲(chǔ)控制器并行處理可以達(dá)到更高的性能。
服務(wù)器有時(shí)可以對(duì)某一個(gè)卷的某一個(gè)塊進(jìn)行數(shù)據(jù)的讀或?qū)?,例如,服?wù)器在接收到外部輸入指令或者運(yùn)行某一程序時(shí),可以向映射該卷ID的存儲(chǔ)控制器(每一個(gè)存儲(chǔ)控制器可以在服務(wù)器上映射一個(gè)或多個(gè)卷ID)發(fā)送攜帶了卷的訪問偏移量的讀數(shù)據(jù)請(qǐng)求或者寫數(shù)據(jù)請(qǐng)求,根據(jù)該卷的訪問偏移量,該存儲(chǔ)控制器可以確定出服務(wù)器需要訪問哪一個(gè)塊,進(jìn)而查詢到服務(wù)器需要訪問的塊所對(duì)應(yīng)的存儲(chǔ)控制器,若查詢到的存儲(chǔ)控制器是其他存儲(chǔ)控制器,則通過存儲(chǔ)控制器之間的高速互聯(lián)線將該讀數(shù)據(jù)請(qǐng)求或者寫數(shù)據(jù)請(qǐng)求轉(zhuǎn)發(fā)到對(duì)應(yīng)的存儲(chǔ)控制器進(jìn)行處理。其中,相應(yīng)的存儲(chǔ)控制器可以根據(jù)服務(wù)器的寫請(qǐng)求將服務(wù)器的數(shù)據(jù)寫入服務(wù)器需要訪問的塊中,或者,可以根據(jù)服務(wù)器的讀請(qǐng)求將服務(wù)器需要訪問的塊的數(shù)據(jù)讀取并返回給服務(wù)器,從而實(shí)現(xiàn)服務(wù)器訪問卷。
由上述可知,存儲(chǔ)控制器查詢服務(wù)器需要訪問的塊所對(duì)應(yīng)的存儲(chǔ)控制器是其他存儲(chǔ)控制器時(shí),需要轉(zhuǎn)發(fā)服務(wù)器的讀數(shù)據(jù)請(qǐng)求或者寫數(shù)據(jù)請(qǐng)求到相應(yīng)的存儲(chǔ)控制器,導(dǎo)致服務(wù)器的讀數(shù)據(jù)請(qǐng)求或者寫數(shù)據(jù)請(qǐng)求到達(dá)需要訪問的塊的時(shí)延增大;另外,存儲(chǔ)控制器還需要暫存服務(wù)器的讀數(shù)據(jù)請(qǐng)求或者寫數(shù)據(jù)請(qǐng)求,然后再轉(zhuǎn)發(fā),占用了該存儲(chǔ)控制器的內(nèi)存資源。
發(fā)明內(nèi)容
本發(fā)明實(shí)施例提供了一種服務(wù)器及其訪問卷的方法,能夠?qū)崿F(xiàn)服務(wù)器訪問卷。
為解決上述技術(shù)問題,本發(fā)明實(shí)施例提供如下技術(shù)方案 本發(fā)明實(shí)施例提供了一種多存儲(chǔ)控制器存儲(chǔ)架構(gòu)的訪問方法,包括 根據(jù)對(duì)需要訪問的卷的訪問偏移量從第一列表中確定出需要訪問的塊,所述第一列表,用于存儲(chǔ)所述卷劃分成的至少二個(gè)相同大小的塊的信息; 根據(jù)確定出的塊,從第二列表中確定出所述需要訪問的塊對(duì)應(yīng)的存儲(chǔ)控制器,所述第二列表,用于存儲(chǔ)所述卷劃分成的每一個(gè)塊對(duì)應(yīng)的存儲(chǔ)控制器的信息; 發(fā)送讀數(shù)據(jù)請(qǐng)求或者寫數(shù)據(jù)請(qǐng)求至所述需要訪問的塊對(duì)應(yīng)的存儲(chǔ)控制器進(jìn)行處理。
本發(fā)明實(shí)施例提供了一種服務(wù)器,包括 第一確定模塊,用于根據(jù)對(duì)需要訪問的卷的訪問偏移量從第一列表中確定出需要訪問的塊,所述第一列表,用于存儲(chǔ)所述卷劃分成的至少二個(gè)相同大小的塊的信息; 第二確定模塊,用于根據(jù)所述第一確定模塊確定出的塊,從第二列表中確定出所述需要訪問的塊對(duì)應(yīng)的存儲(chǔ)控制器,所述第二列表,用于存儲(chǔ)所述卷劃分成的每一個(gè)塊對(duì)應(yīng)的存儲(chǔ)控制器的信息; 發(fā)送模塊,用于發(fā)送讀數(shù)據(jù)請(qǐng)求或者寫數(shù)據(jù)請(qǐng)求至所述第二確定模塊確定出的所述需要訪問的塊對(duì)應(yīng)的存儲(chǔ)控制器進(jìn)行處理。
與現(xiàn)有的技術(shù)相比,本發(fā)明實(shí)施例將卷劃分成的至少二個(gè)相同大小的塊的信息,以及每一個(gè)塊對(duì)應(yīng)的存儲(chǔ)控制器的信息存儲(chǔ)在服務(wù)器上,當(dāng)需要訪問卷時(shí),服務(wù)器可以根據(jù)卷的訪問偏移量確定出需要訪問的塊,進(jìn)而確定出該塊對(duì)應(yīng)的存儲(chǔ)控制器,服務(wù)器可以將讀數(shù)據(jù)請(qǐng)求或?qū)憯?shù)據(jù)請(qǐng)求直接發(fā)送給確定出的存儲(chǔ)控制器進(jìn)行處理。這樣,避免了存儲(chǔ)控制器查詢服務(wù)器需要訪問的塊所對(duì)應(yīng)的存儲(chǔ)控制器是其他存儲(chǔ)控制器時(shí),需要轉(zhuǎn)發(fā)服務(wù)器的讀數(shù)據(jù)請(qǐng)求或?qū)憯?shù)據(jù)請(qǐng)求到相應(yīng)的存儲(chǔ)控制器的情況,從而可以降低服務(wù)器的讀數(shù)據(jù)請(qǐng)求或者寫數(shù)據(jù)請(qǐng)求到達(dá)需要訪問的塊的時(shí)延,以及減少服務(wù)器讀數(shù)據(jù)請(qǐng)求或者寫數(shù)據(jù)請(qǐng)求對(duì)存儲(chǔ)控制器的內(nèi)存資源的占用。
為了更清楚地說明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對(duì)實(shí)施例中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明實(shí)施例中提供的一種服務(wù)器訪問卷的方法的流程圖; 圖2為本發(fā)明實(shí)施例中提供的另一種服務(wù)器訪問卷的方法的流程圖; 圖3為本發(fā)明實(shí)施例中提供的一種服務(wù)器的結(jié)構(gòu)示意圖; 圖4為本發(fā)明實(shí)施例中提供的另一種服務(wù)器的結(jié)構(gòu)示意圖; 圖5為本發(fā)明實(shí)施例中提供的又一種服務(wù)器的結(jié)構(gòu)示意圖。
具體實(shí)施例方式 下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
實(shí)施例一 請(qǐng)參閱圖1,圖1為本發(fā)明實(shí)施例中提供的一種服務(wù)器訪問卷的方法的流程圖。如圖1所示,該方法可以包括 101根據(jù)對(duì)需要訪問的卷的訪問偏移量從第一列表中確定出需要訪問的塊; 舉例來說,服務(wù)器在接收到外部輸入指令或者運(yùn)行某一程序時(shí),對(duì)某一個(gè)卷進(jìn)行訪問。在本實(shí)施例和后續(xù)的實(shí)施例中,服務(wù)器對(duì)某一個(gè)卷進(jìn)行訪問可以包括服務(wù)器從某一個(gè)卷中讀取數(shù)據(jù),或者服務(wù)器將數(shù)據(jù)寫入某一個(gè)卷中進(jìn)行存儲(chǔ)。
其中,上述的第一列表可以存儲(chǔ)卷劃分成的至少二個(gè)相同大小的塊的信息。在本發(fā)明實(shí)施例中,塊的信息可以是塊的序號(hào),或者是塊的標(biāo)識(shí)等等。第一列表的格式可以類似于下面的表1。其中,表1中存儲(chǔ)了N(N為自然數(shù))個(gè)塊的序號(hào),這N個(gè)塊是由卷ID劃分成的,且大小相同。
表1 進(jìn)一步地的,上述的表1所示的第一列表中可以設(shè)置多個(gè)行,分別用于存儲(chǔ)多個(gè)卷劃分成的相同大小的塊的信息,其中,多個(gè)卷的卷ID不同,本發(fā)明實(shí)施例不作限定。
102根據(jù)確定出的塊,從第二列表中確定出該塊對(duì)應(yīng)的存儲(chǔ)控制器; 其中,上述的第二列表可以存儲(chǔ)卷劃分成的每一個(gè)塊對(duì)應(yīng)的存儲(chǔ)控制器的信息。在本發(fā)明實(shí)施例中,每一個(gè)塊對(duì)應(yīng)的存儲(chǔ)控制器的信息可以是每一個(gè)塊對(duì)應(yīng)的存儲(chǔ)控制器的序號(hào)或者標(biāo)識(shí)。第二列表的格式可以類似于下面的表2。其中,表2中存儲(chǔ)了N(N為自然數(shù))個(gè)存儲(chǔ)控制器的序號(hào),每一個(gè)塊對(duì)應(yīng)了一個(gè)存儲(chǔ)控制器。
表2 進(jìn)一步地的,上述的表2所示的第二列表中可以設(shè)置多個(gè)列,分別用于存儲(chǔ)多個(gè)卷劃分成的相同大小的塊,其中,在同一個(gè)卷劃分成的多個(gè)相同大小的塊中,每一個(gè)塊可以分別對(duì)應(yīng)一個(gè)不同的存儲(chǔ)控制器,或者,幾個(gè)塊也可以同時(shí)對(duì)應(yīng)同一個(gè)存儲(chǔ)控制器,本發(fā)明實(shí)施例不作限定。
103發(fā)送讀數(shù)據(jù)請(qǐng)求或者寫數(shù)據(jù)請(qǐng)求至該塊對(duì)應(yīng)的存儲(chǔ)控制器進(jìn)行處理。
由于各個(gè)存儲(chǔ)控制器可以通過交換機(jī)和服務(wù)器連接,所以當(dāng)上述的102確定出服務(wù)器需要訪問的塊之后,可以讀數(shù)據(jù)請(qǐng)求或者寫數(shù)據(jù)請(qǐng)求發(fā)送至交換機(jī),由交換機(jī)轉(zhuǎn)發(fā)至該塊對(duì)應(yīng)的存儲(chǔ)控制器進(jìn)行處理。
其中,該塊對(duì)應(yīng)的存儲(chǔ)控制器可以根據(jù)服務(wù)器的寫數(shù)據(jù)請(qǐng)求將服務(wù)器的數(shù)據(jù)寫入服務(wù)器需要訪問的塊中,或者,可以根據(jù)服務(wù)器的讀數(shù)據(jù)請(qǐng)求將服務(wù)器需要訪問的塊的數(shù)據(jù)讀取并通過交換機(jī)返回給服務(wù)器,從而實(shí)現(xiàn)服務(wù)器訪問卷。
進(jìn)一步地,在本發(fā)明實(shí)施例提供的服務(wù)器訪問卷的方法中,還可以包括 從元數(shù)據(jù)服務(wù)器(Meta Data Server,MDS)中獲取卷劃分成的至少二個(gè)相同大小的塊的信息,以及該卷劃分成的每一個(gè)塊對(duì)應(yīng)的存儲(chǔ)控制器的信息,將卷劃分成的至少二個(gè)相同大小的塊的信息寫入上述的第一列表存儲(chǔ),將該卷劃分成的每一個(gè)塊對(duì)應(yīng)的存儲(chǔ)控制器的信息寫入上述的第二列表存儲(chǔ)。
舉例來說,服務(wù)器從MDS中獲取卷劃分成的至少二個(gè)相同大小的塊的信息,以及該卷劃分成的每一個(gè)塊對(duì)應(yīng)的存儲(chǔ)控制器信息具體可以為 服務(wù)器接收MDS發(fā)送的卷劃分成的至少二個(gè)相同大小的塊的信息,以及每一個(gè)塊對(duì)應(yīng)的存儲(chǔ)控制器的信息。
舉例來說,服務(wù)器從MDS中獲取卷劃分成的至少二個(gè)相同大小的塊信息,以及每一個(gè)塊對(duì)應(yīng)的存儲(chǔ)控制器的信息具體還可以為 服務(wù)器裝載有多路徑軟件,在多路徑軟件初始化時(shí),多路徑軟件可以從MDS中獲取卷劃分成的至少二個(gè)相同大小的塊的信息,以及每一個(gè)塊對(duì)應(yīng)的存儲(chǔ)控制器的信息。
其中,MDS可以是一個(gè)獨(dú)立的服務(wù)器,也可以是多個(gè)存儲(chǔ)控制器中的一個(gè)存儲(chǔ)控制器,MDS用于記錄每一個(gè)卷劃分成的相同大小的塊的信息,以及每一個(gè)塊所對(duì)應(yīng)的存儲(chǔ)控制器的信息,這是本領(lǐng)域技術(shù)人員公知常識(shí),本發(fā)明實(shí)施例在此不作介紹。
本發(fā)明實(shí)施例中提供的服務(wù)器訪問卷的方法可以避免存儲(chǔ)控制器向查詢服務(wù)器需要訪問的塊所對(duì)應(yīng)的存儲(chǔ)控制器是其他存儲(chǔ)控制器時(shí),需要轉(zhuǎn)發(fā)服務(wù)器的讀數(shù)據(jù)請(qǐng)求或?qū)憯?shù)據(jù)請(qǐng)求到相應(yīng)的存儲(chǔ)控制器的情況,從而可以降低服務(wù)器的讀數(shù)據(jù)請(qǐng)求或者寫數(shù)據(jù)請(qǐng)求到達(dá)需要訪問的塊的時(shí)延,以及減少服務(wù)器讀數(shù)據(jù)請(qǐng)求或者寫數(shù)據(jù)請(qǐng)求對(duì)存儲(chǔ)控制器的內(nèi)存資源的占用。
舉例來說,上述101中的服務(wù)器根據(jù)對(duì)該卷的訪問偏移量從第一列表中確定出需要訪問的塊可以采用但不限于如下方式來實(shí)現(xiàn) A、將該卷的訪問偏移量除以第一列表存儲(chǔ)的所述卷劃分成的塊的大小,獲得商值; B、取上述商值的整數(shù)部分并加1,獲得需要訪問的塊。
假設(shè)上述的表1所示的第一列表中,卷ID的總大小為320M,劃分為10個(gè)相同大小的塊(即N=10),即塊1=32M,塊2=32M,......,塊10=32M。如果服務(wù)器訪問卷ID的訪問偏移量為40M,則40/32=1.25;取1.25的整數(shù)部分加1等于2,則確定出服務(wù)器需要訪問的塊為塊2。具體地,服務(wù)器可以從塊2的8M大小(40M-32M=8M)的地址開始訪問塊2。
實(shí)施例二 請(qǐng)參閱圖2,圖2為本發(fā)明實(shí)施例中提供的另一種服務(wù)器訪問卷的方法的流程圖。如圖2所示,該方法可以包括 201服務(wù)器從MDS中獲取卷劃分成的至少二個(gè)相同大小的塊的信息,以及每一個(gè)塊對(duì)應(yīng)的存儲(chǔ)控制器的信息; 舉例來說,服務(wù)器從MDS中獲取卷劃分成的至少二個(gè)相同大小的塊的信息,以及每一個(gè)塊對(duì)應(yīng)的存儲(chǔ)控制器的信息具體可以為 服務(wù)器接收MDS發(fā)送的卷劃分成的至少二個(gè)相同大小的塊的信息,以及每一個(gè)塊對(duì)應(yīng)的存儲(chǔ)控制器的信息。
舉例來說,服務(wù)器從MDS中獲取卷劃分成的至少二個(gè)相同大小的塊的信息,以及每一個(gè)塊對(duì)應(yīng)的存儲(chǔ)控制器的信息具體還可以為 服務(wù)器裝載有多路徑軟件,在多路徑軟件初始化時(shí),多路徑軟件可以從MDS中獲取卷劃分成的至少二個(gè)相同大小的塊的信息,以及每一個(gè)塊對(duì)應(yīng)的存儲(chǔ)控制器的信息。
其中,MDS可以是一個(gè)獨(dú)立的服務(wù)器,也可以是多個(gè)存儲(chǔ)控制器中的一個(gè)存儲(chǔ)控制器,MDS用于記錄每一個(gè)卷劃分成的相同大小的塊的信息,以及每一個(gè)塊所對(duì)應(yīng)的存儲(chǔ)控制器的信息,這是本領(lǐng)域技術(shù)人員公知常識(shí),本發(fā)明實(shí)施例在此不作介紹。
202將卷劃分成的至少二個(gè)相同大小的塊的信息寫入第一列表存儲(chǔ),以及將卷劃分成的每一個(gè)塊對(duì)應(yīng)的存儲(chǔ)控制器的信息寫入第二列表存儲(chǔ); 其中,第一列表的格式可以類似于如上述的表1,第二列表的格式可以類似于如上述的表2,本發(fā)明實(shí)施例在此不作復(fù)述。
203當(dāng)需要訪問卷時(shí),服務(wù)器根據(jù)對(duì)該卷的訪問偏移量從第一列表中確定出需要訪問的塊; 舉例來說,服務(wù)器在接收到外部輸入指令或者運(yùn)行某一程序時(shí),對(duì)某一個(gè)卷進(jìn)行訪問。
舉例來說,服務(wù)器可以將該卷的訪問偏移量除以第一列表存儲(chǔ)的該卷劃分成的塊的大小,獲得商值;取上述商值的整數(shù)部分并加1,從而獲得需要訪問的塊。
假設(shè)如表1所示的第一列表中,卷ID的總大小為320M,劃分為10個(gè)相同大小的塊(即N=10),即塊1=32M,塊2=32M,......,塊10=32M。如果服務(wù)器訪問卷ID的訪問偏移量為20M,則20/32=0.625;取0.625的整數(shù)部分加1等于1,則確定出服務(wù)器需要訪問的塊為塊1。具體地,服務(wù)器可以從塊1的20M大小的地址開始訪問塊1。
204根據(jù)確定出的塊,從第二列表中確定出該塊對(duì)應(yīng)的存儲(chǔ)控制器; 其中,第二列表,可以存儲(chǔ)該卷劃分成的每一個(gè)塊對(duì)應(yīng)的存儲(chǔ)控制器的信息,第二列表的格式可以如上述的表2所示,本發(fā)明實(shí)施例在此不作復(fù)述。
205發(fā)送讀數(shù)據(jù)請(qǐng)求或者寫數(shù)據(jù)請(qǐng)求至該塊對(duì)應(yīng)的存儲(chǔ)控制器進(jìn)行處理。
上述對(duì)本發(fā)明實(shí)施例中提供的另一種服務(wù)器訪問卷的方法進(jìn)行介紹,本發(fā)明實(shí)施例可以避免存儲(chǔ)控制器查詢服務(wù)器需要訪問的塊所對(duì)應(yīng)的存儲(chǔ)控制器是其他存儲(chǔ)控制器時(shí),需要轉(zhuǎn)發(fā)服務(wù)器的讀數(shù)據(jù)請(qǐng)求或?qū)憯?shù)據(jù)請(qǐng)求到相應(yīng)的存儲(chǔ)控制器的情況,從而可以降低服務(wù)器的讀數(shù)據(jù)請(qǐng)求或者寫數(shù)據(jù)請(qǐng)求到達(dá)需要訪問的塊的時(shí)延,以及減少服務(wù)器讀數(shù)據(jù)請(qǐng)求或者寫數(shù)據(jù)請(qǐng)求對(duì)存儲(chǔ)控制器的內(nèi)存資源的占用。
本發(fā)明實(shí)施例提供的服務(wù)器訪問卷的方法還可以減少存儲(chǔ)控制器間的數(shù)據(jù)交互量,從而減少存儲(chǔ)控制器間的數(shù)據(jù)總線帶寬或者取消存儲(chǔ)控制器間的數(shù)據(jù)總線。
實(shí)施例三 請(qǐng)參閱圖3,圖3為本發(fā)明實(shí)施例中提供的一種服務(wù)器的結(jié)構(gòu)示意圖。如圖3所示,該服務(wù)器可以包括 第一確定模塊301,用于根據(jù)需要訪問的卷的訪問偏移量從第一列表中確定出需要訪問的塊; 其中,第一列表可以用于存儲(chǔ)該卷劃分成的至少二個(gè)相同大小的塊的信息。第一列表的格式可以類似于上述的表1,本發(fā)明實(shí)施例在此不作復(fù)述。
第二確定模塊302,用于根據(jù)第一確定模塊301確定出的塊,從第二列表中確定出該塊對(duì)應(yīng)的存儲(chǔ)控制器; 其中,第二列表可以用于存儲(chǔ)該卷劃分成的每一個(gè)塊對(duì)應(yīng)的存儲(chǔ)控制器的信息。第二列表的格式可以類似于上述的表2,本發(fā)明實(shí)施例在此不作復(fù)述。
一個(gè)實(shí)施例中,上述的第一列表可作為配置文件的形式,存儲(chǔ)在第一確定模塊301中;上述的第二列表也可以作為配置文件的形式,存儲(chǔ)在第二確定模塊302中。
發(fā)送模塊303,用于發(fā)送讀數(shù)據(jù)請(qǐng)求或者寫數(shù)據(jù)請(qǐng)求至第二確定模塊302確定出的該塊對(duì)應(yīng)的存儲(chǔ)控制器進(jìn)行處理。
如圖3所示,該服務(wù)器還可以包括 獲取模塊304,用于從MDS中獲取卷劃分成的至少二個(gè)相同大小的塊的信息,以及獲取卷劃分成的每一個(gè)塊對(duì)應(yīng)的存儲(chǔ)控制器的信息; 寫入模塊305,用于將獲取模塊304獲取的卷劃分成的至少二個(gè)相同大小的塊的信息寫入第一列表存儲(chǔ),以及將卷劃分成的每一個(gè)塊對(duì)應(yīng)的存儲(chǔ)控制器的信息寫入第二列表存儲(chǔ)。
如圖3所示,當(dāng)上述的第一列表可作為配置文件的形式存儲(chǔ)在第一確定模塊301中,以及上述的第二列表作為配置文件的形式存儲(chǔ)在第二確定模塊302中時(shí),寫入模塊305具體可以將獲取模塊304獲取的卷劃分成的至少二個(gè)相同大小的塊的信息寫入第一確定模塊301存儲(chǔ)的第一列表中,以及將獲取模塊304獲取的卷劃分成的每一個(gè)塊對(duì)應(yīng)的存儲(chǔ)控制器的信息寫入第二確定模塊302存儲(chǔ)的第二列表中。
一個(gè)實(shí)施例中,第一確定模塊301具體可以將該卷的訪問偏移量除以第一列表存儲(chǔ)的卷劃分成的塊的大小,獲得商值,取該商值的整數(shù)部分并加1,獲得需要訪問的塊。
請(qǐng)參閱圖4,圖4為本發(fā)明實(shí)施例中提供的另一種服務(wù)器的結(jié)構(gòu)示意圖。如圖4所示,該服務(wù)器的獲取模塊304可以包括 接收子模塊3041,用于接收MDS發(fā)送的卷劃分成的至少二個(gè)相同大小的塊的信息,以及每一個(gè)塊對(duì)應(yīng)的存儲(chǔ)控制器的信息。
請(qǐng)參閱圖5,圖5為本發(fā)明實(shí)施例中提供的又一種服務(wù)器的結(jié)構(gòu)示意圖。如圖5所示,該服務(wù)器的獲取模塊304可以包括 多路徑軟件子模塊3042,用于在多路徑軟件初始化時(shí),從MDS中獲取卷劃分成的至少二個(gè)相同大小的塊的信息,以及每一個(gè)塊對(duì)應(yīng)的存儲(chǔ)控制器的信息。
上述對(duì)本發(fā)明實(shí)施例提供的服務(wù)器進(jìn)行了介紹,本發(fā)明實(shí)施例提供的服務(wù)器可以存儲(chǔ)卷劃分成的至少二個(gè)相同大小的塊,以及每一個(gè)塊對(duì)應(yīng)的存儲(chǔ)控制器,當(dāng)需要訪問卷時(shí),服務(wù)器可以根據(jù)卷的訪問偏移量確定出需要訪問的塊,進(jìn)而確定出該塊對(duì)應(yīng)的存儲(chǔ)控制器,服務(wù)器可以將讀數(shù)據(jù)請(qǐng)求或?qū)憯?shù)據(jù)請(qǐng)求直接發(fā)送給確定出的存儲(chǔ)控制器進(jìn)行處理。這樣,避免了存儲(chǔ)控制器查詢服務(wù)器需要訪問的塊所對(duì)應(yīng)的存儲(chǔ)控制器是其他存儲(chǔ)控制器時(shí),需要轉(zhuǎn)發(fā)服務(wù)器的讀數(shù)據(jù)請(qǐng)求或?qū)憯?shù)據(jù)請(qǐng)求到相應(yīng)的存儲(chǔ)控制器的情況,從而可以降低服務(wù)器的讀數(shù)據(jù)請(qǐng)求或者寫數(shù)據(jù)請(qǐng)求到達(dá)需要訪問的塊的時(shí)延,以及減少服務(wù)器讀數(shù)據(jù)請(qǐng)求或者寫數(shù)據(jù)請(qǐng)求對(duì)存儲(chǔ)控制器的內(nèi)存資源的占用。
本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述方法實(shí)施例的全部或部分步驟可以通過程序指令相關(guān)的硬件來完成,前述的程序可以存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),執(zhí)行包括上述方法實(shí)施例的步驟;而前述的存儲(chǔ)介質(zhì)包括只讀存儲(chǔ)器(Read-Only Memory,ROM)、隨機(jī)存取存儲(chǔ)器(Random Access Memory,RAM)、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。
以上對(duì)本發(fā)明實(shí)施例所提供的一種服務(wù)器及其訪問卷的方法進(jìn)行了詳細(xì)介紹,本文中應(yīng)用了具體個(gè)例對(duì)本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時(shí),對(duì)于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在具體實(shí)施方式
及應(yīng)用范圍上均會(huì)有改變之處,綜上,本說明書內(nèi)容不應(yīng)理解為對(duì)本發(fā)明的限制。
權(quán)利要求
1.一種服務(wù)器訪問卷的方法,其特征在于,包括
根據(jù)對(duì)需要訪問的卷的訪問偏移量從第一列表中確定出需要訪問的塊,所述第一列表,用于存儲(chǔ)所述卷劃分成的至少二個(gè)相同大小的塊的信息;
根據(jù)確定出的塊,從第二列表中確定出所述需要訪問的塊對(duì)應(yīng)的存儲(chǔ)控制器,所述第二列表,用于存儲(chǔ)所述卷劃分成的每一個(gè)塊對(duì)應(yīng)的存儲(chǔ)控制器的信息;
發(fā)送讀數(shù)據(jù)請(qǐng)求或者寫數(shù)據(jù)請(qǐng)求至所述需要訪問的塊對(duì)應(yīng)的存儲(chǔ)控制器進(jìn)行處理。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,還包括
從元數(shù)據(jù)服務(wù)器中獲取所述卷劃分成的至少二個(gè)相同大小的塊的信息,以及獲取所述卷劃分成的每一個(gè)塊對(duì)應(yīng)的存儲(chǔ)控制器的信息;
將所述卷劃分成的至少二個(gè)相同大小的塊的信息寫入所述第一列表存儲(chǔ);
將所述卷劃分成的每一個(gè)塊對(duì)應(yīng)的存儲(chǔ)控制器的信息寫入所述第二列表存儲(chǔ)。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述從元數(shù)據(jù)服務(wù)器中獲取所述卷劃分成的至少二個(gè)相同大小的塊的信息,以及獲取所述卷劃分成的每一個(gè)塊對(duì)應(yīng)的存儲(chǔ)控制器的信息包括
接收元數(shù)據(jù)服務(wù)器發(fā)送的所述卷劃分成的至少二個(gè)相同大小的塊的信息,以及所述卷劃分成的每一個(gè)塊對(duì)應(yīng)的存儲(chǔ)控制器的信息。
4.根據(jù)權(quán)利要求2所述的方法,其特征在于,若所述服務(wù)器裝載有多路徑軟件,則服務(wù)器從元數(shù)據(jù)服務(wù)器中獲取所述卷劃分成的至少二個(gè)相同大小的塊的信息,以及獲取所述卷劃分成的每一個(gè)塊對(duì)應(yīng)的存儲(chǔ)控制器的信息包括
所述多路徑軟件初始化時(shí),從元數(shù)據(jù)服務(wù)器中獲取所述卷劃分成的至少二個(gè)相同大小的塊的信息,以及所述卷劃分成的每一個(gè)塊對(duì)應(yīng)的存儲(chǔ)控制器的信息。
5.根據(jù)權(quán)利要求1至4任一項(xiàng)所述的方法,其特征在于,所述根據(jù)對(duì)需要訪問的卷的訪問偏移量從第一列表中確定出需要訪問的塊包括
將所述卷的訪問偏移量除以第一列表存儲(chǔ)的所述卷劃分成的塊的大小,獲得商值,取所述商值的整數(shù)部分并加1,獲得需要訪問的塊。
6.一種服務(wù)器,其特征在于,包括
第一確定模塊,用于根據(jù)對(duì)需要訪問的卷的訪問偏移量從第一列表中確定出需要訪問的塊,所述第一列表,用于存儲(chǔ)所述卷劃分成的至少二個(gè)相同大小的塊的信息;
第二確定模塊,用于根據(jù)所述第一確定模塊確定出的塊,從第二列表中確定出所述需要訪問的塊對(duì)應(yīng)的存儲(chǔ)控制器,所述第二列表,用于存儲(chǔ)所述卷劃分成的每一個(gè)塊對(duì)應(yīng)的存儲(chǔ)控制器的信息;
發(fā)送模塊,用于發(fā)送讀數(shù)據(jù)請(qǐng)求或者寫數(shù)據(jù)請(qǐng)求至所述第二確定模塊確定出的所述需要訪問的塊對(duì)應(yīng)的存儲(chǔ)控制器進(jìn)行處理。
7.根據(jù)權(quán)利要求6所述的服務(wù)器,其特征在于,還包括
獲取模塊,用于從元數(shù)據(jù)服務(wù)器中獲取所述卷劃分成的至少二個(gè)相同大小的塊的信息,以及獲取所述卷劃分成的每一個(gè)塊對(duì)應(yīng)的存儲(chǔ)控制器的信息;
寫入模塊,用于將所述卷劃分成的至少二個(gè)相同大小的塊的信息寫入所述第一列表存儲(chǔ),以及將所述卷劃分成的每一個(gè)塊對(duì)應(yīng)的存儲(chǔ)控制器的信息寫入所述第二列表存儲(chǔ)。
8.根據(jù)權(quán)利要求7所述的服務(wù)器,其特征在于,所述獲取模塊包括
接收子模塊,用于接收元數(shù)據(jù)服務(wù)器發(fā)送的所述卷劃分成的至少二個(gè)相同大小的塊的信息,以及所述卷劃分成的每一個(gè)塊對(duì)應(yīng)的存儲(chǔ)控制器的信息。
9.根據(jù)權(quán)利要求7所述的服務(wù)器,其特征在于,所述獲取模塊包括
多路徑軟件子模塊,用于在所述多路徑軟件初始化時(shí),從元數(shù)據(jù)服務(wù)器中獲取所述卷劃分成的至少二個(gè)相同大小的塊的信息,以及所述卷劃分成的每一個(gè)塊對(duì)應(yīng)的存儲(chǔ)控制器的信息。
10.根據(jù)權(quán)利要求6至9任一項(xiàng)所述的服務(wù)器,其特征在于,所述第一確定模塊具體用于將所述卷的訪問偏移量除以第一列表存儲(chǔ)的所述卷劃分成的塊的大小,獲得商值,取所述商值的整數(shù)部分并加1,獲得需要訪問的塊。
全文摘要
本發(fā)明實(shí)施例涉及存儲(chǔ)技術(shù)領(lǐng)域,公開了一種服務(wù)器及其訪問卷的方法,該方法包括根據(jù)對(duì)需要訪問的卷的訪問偏移量從第一列表中確定出需要訪問的塊,所述第一列表,用于存儲(chǔ)所述卷劃分成的至少二個(gè)相同大小的塊的信息;根據(jù)確定出的塊,從第二列表中確定出所述需要訪問的塊對(duì)應(yīng)的存儲(chǔ)控制器,所述第二列表,用于存儲(chǔ)所述卷劃分成的每一個(gè)塊對(duì)應(yīng)的存儲(chǔ)控制器的信息;發(fā)送讀數(shù)據(jù)請(qǐng)求或者寫數(shù)據(jù)請(qǐng)求至所述需要訪問的塊對(duì)應(yīng)的存儲(chǔ)控制器進(jìn)行處理。本發(fā)明實(shí)施例可以降低服務(wù)器的讀數(shù)據(jù)請(qǐng)求或?qū)憯?shù)據(jù)請(qǐng)求到達(dá)需要訪問的塊的時(shí)延,以及減少服務(wù)器讀數(shù)據(jù)請(qǐng)求或?qū)憯?shù)據(jù)請(qǐng)求對(duì)存儲(chǔ)控制器的內(nèi)存資源的占用。
文檔編號(hào)G06F12/06GK101763313SQ20091025249
公開日2010年6月30日 申請(qǐng)日期2009年12月17日 優(yōu)先權(quán)日2009年12月17日
發(fā)明者羅姣林, 張國彬, 劉卯銀 申請(qǐng)人:成都市華為賽門鐵克科技有限公司