多副本寫入存儲設(shè)備的方法及存儲設(shè)備的制造方法
【專利摘要】本發(fā)明實施例提供一種多副本寫入存儲設(shè)備的方法及存儲設(shè)備,所述存儲設(shè)備包括控制器和至少兩個邏輯存儲單元,所述方法由所述控制器執(zhí)行,包括:接收主機發(fā)送的包括待訪問的第一邏輯存儲單元的ID、目標數(shù)據(jù)和所述第一邏輯存儲單元的LBA的第一寫數(shù)據(jù)請求;確定第一邏輯存儲單元的所述LBA對應(yīng)的存儲空間中存儲的數(shù)據(jù)未被其他與第一寫數(shù)據(jù)請求有資源沖突的數(shù)據(jù)訪問請求訪問;將所述目標數(shù)據(jù)寫入第一邏輯存儲單元的所述LBA對應(yīng)的存儲空間中;生成包括第二邏輯存儲單元的ID、所述目標數(shù)據(jù)和第二邏輯存儲單元的LBA的第二寫數(shù)據(jù)請求;將所述目標數(shù)據(jù)寫入所述第二邏輯存儲單元的所述LBA對應(yīng)的存儲空間中;提升了系統(tǒng)的訪問響應(yīng)能力。
【專利說明】
多副本寫入存儲設(shè)備的方法及存儲設(shè)備
技術(shù)領(lǐng)域
[0001]本發(fā)明實施例涉及計算機技術(shù),尤其涉及一種多副本寫入存儲設(shè)備的方法及存儲設(shè)備。
【背景技術(shù)】
[0002]隨著信息技術(shù)(Informat1n Technology,簡稱IT)的發(fā)展,對于數(shù)據(jù)的威脅通常比較難于防范,如:數(shù)據(jù)處理和訪問軟件平臺故障、操作系統(tǒng)的設(shè)計漏洞、系統(tǒng)的硬件故障或者網(wǎng)絡(luò)內(nèi)非法訪問者的惡意破壞等。為了防止數(shù)據(jù)丟失,需要將存儲數(shù)據(jù)進行復(fù)制得到多個副本。
[0003]現(xiàn)有技術(shù)中,當存儲設(shè)備接收到主機發(fā)送的任何寫數(shù)據(jù)請求時,需先將所述寫數(shù)據(jù)請求中的待存儲數(shù)據(jù)寫入所述存儲設(shè)備的主邏輯存儲單元得到與所述待存儲數(shù)據(jù)對應(yīng)的中間數(shù)據(jù),其次,將所述主邏輯存儲單元中的所述中間數(shù)據(jù)寫入與所述寫數(shù)據(jù)請求對應(yīng)的目標邏輯存儲單元。
[0004]隨著業(yè)務(wù)應(yīng)用規(guī)模擴大,需要進行復(fù)制的存儲數(shù)據(jù)增多,但由于現(xiàn)有的數(shù)據(jù)寫入方法中需先將待存儲數(shù)據(jù)寫入主邏輯存儲單元,其次寫入目標邏輯存儲單元,因此,將所有所述待存儲數(shù)據(jù)寫入存儲設(shè)備的時延較大,系統(tǒng)訪問響應(yīng)能力較差。
【發(fā)明內(nèi)容】
[0005]本發(fā)明實施例提供一種多副本寫入存儲設(shè)備的方法及存儲設(shè)備,提升了系統(tǒng)的整體訪問響應(yīng)能力。
[0006]第一方面,本發(fā)明實施例提供一種多副本寫入存儲設(shè)備的方法,所述存儲設(shè)備包括控制器和至少兩個邏輯存儲單元,所述方法由所述控制器執(zhí)行,包括:
[0007]接收主機發(fā)送的第一寫數(shù)據(jù)請求,所述第一寫數(shù)據(jù)請求包括待訪問的第一邏輯存儲單元的身份標識號ID、目標數(shù)據(jù)和所述第一邏輯存儲單元的邏輯區(qū)塊地址LBA ;
[0008]確定所述第一邏輯存儲單元的所述LBA對應(yīng)的存儲空間中存儲的數(shù)據(jù)未被其他與所述第一寫數(shù)據(jù)請求有資源沖突的數(shù)據(jù)訪問請求訪問;其中,所述與所述第一寫數(shù)據(jù)請求有資源沖突的數(shù)據(jù)訪問請求是指與所述第一寫數(shù)據(jù)請求不能同時訪問相同邏輯存儲單元的相同LBA對應(yīng)的存儲空間的數(shù)據(jù)訪問請求;
[0009]將所述目標數(shù)據(jù)寫入所述第一邏輯存儲單元的所述LBA對應(yīng)的存儲空間中;
[0010]生成第二寫數(shù)據(jù)請求,所述第二寫數(shù)據(jù)請求包括第二邏輯存儲單元的ID、所述目標數(shù)據(jù)和所述第二邏輯存儲單元的LBA ;
[0011 ] 將所述目標數(shù)據(jù)寫入所述第二邏輯存儲單元的所述LBA對應(yīng)的存儲空間中。
[0012]結(jié)合第一方面,在第一方面的第一種可能的實現(xiàn)方式中,所述將所述目標數(shù)據(jù)寫入所述第二邏輯存儲單元的所述LBA對應(yīng)的存儲空間中,包括:
[0013]判斷所述第二邏輯存儲單元的所述LBA對應(yīng)的存儲空間中存儲的數(shù)據(jù)是否被其他與所述第二寫數(shù)據(jù)請求有資源沖突的數(shù)據(jù)訪問請求訪問;其中,所述與所述第二寫數(shù)據(jù)請求有資源沖突的數(shù)據(jù)訪問請求是指與所述第二寫數(shù)據(jù)請求不能同時訪問相同邏輯存儲單元的相同LBA對應(yīng)的存儲空間的數(shù)據(jù)訪問請求;
[0014]若所述第二邏輯存儲單元的所述LBA對應(yīng)的存儲空間中存儲的數(shù)據(jù)未被其他與所述第二寫數(shù)據(jù)請求有資源沖突的數(shù)據(jù)訪問請求訪問,則將所述目標數(shù)據(jù)寫入所述第二邏輯存儲單元的所述LBA對應(yīng)的存儲空間中;或者
[0015]若所述第二邏輯存儲單元的所述LBA對應(yīng)的存儲空間中存儲的數(shù)據(jù)被其他與所述第二寫數(shù)據(jù)請求有資源沖突的數(shù)據(jù)訪問請求訪問,則比較所述第一邏輯存儲單元的優(yōu)先級是否高于所述第二邏輯存儲單元的優(yōu)先級,若是,則暫時不執(zhí)行將所述目標數(shù)據(jù)寫入所述第二邏輯存儲單元的所述LBA對應(yīng)的存儲空間中的步驟,直到其他與所述第二寫數(shù)據(jù)請求有資源沖突的數(shù)據(jù)訪問請求對所述第二邏輯存儲單元的所述LBA對應(yīng)的存儲空間中存儲的數(shù)據(jù)的訪問完成時,將所述目標數(shù)據(jù)寫入所述第二邏輯存儲單元的所述LBA對應(yīng)的存儲空間中。
[0016]結(jié)合第一方面的第一種可能的實現(xiàn)方式,在第一方面的第二種可能的實現(xiàn)方式中,所述方法還包括:若所述第一邏輯存儲單元的優(yōu)先級不高于所述第二邏輯存儲單元的優(yōu)先級,則生成第三寫數(shù)據(jù)請求,所述第三寫數(shù)據(jù)請求包括第三邏輯存儲單元的ID、所述目標數(shù)據(jù)和所述第三邏輯存儲單元的LBA ;其中,所述第三邏輯存儲單元的優(yōu)先級高于所述第一邏輯存儲單元;
[0017]將所述目標數(shù)據(jù)寫入所述第三邏輯存儲單元的所述LBA對應(yīng)的存儲空間中。
[0018]結(jié)合第一方面、第一方面的第一種或第二種任一種可能的實現(xiàn)方式,在第一方面的第三種可能的實現(xiàn)方式中,所述方法還包括:
[0019]接收所述主機發(fā)送的第一讀數(shù)據(jù)請求,所述第一讀數(shù)據(jù)請求包括待訪問邏輯存儲單元的ID和所述待訪問邏輯存儲單元的LBA ;其中,所述待訪問邏輯存儲單元包括:所述第一邏輯存儲單元或者所述第二邏輯存儲單元;
[0020]判斷所述待訪問邏輯存儲單元的所述LBA對應(yīng)的存儲空間中存儲的所述目標數(shù)據(jù)是否被其他與所述第一讀數(shù)據(jù)請求有資源沖突的數(shù)據(jù)訪問請求訪問;其中,所述與所述第一讀數(shù)據(jù)請求有資源沖突的數(shù)據(jù)訪問請求是指與所述第一讀數(shù)據(jù)請求不能同時訪問相同邏輯存儲單元的相同LBA對應(yīng)的存儲空間的數(shù)據(jù)訪問請求;
[0021]若所述待訪問邏輯存儲單元的所述LBA對應(yīng)的存儲空間中存儲的所述目標數(shù)據(jù)未被其他與所述第一讀數(shù)據(jù)請求有資源沖突的數(shù)據(jù)訪問請求訪問,則讀取所述待訪問邏輯存儲單元的所述LBA對應(yīng)的存儲空間中存儲的所述目標數(shù)據(jù);或者,
[0022]若所述待訪問邏輯存儲單元的所述LBA對應(yīng)的存儲空間中存儲的所述目標數(shù)據(jù)被其他與所述第一讀數(shù)據(jù)請求有資源沖突的數(shù)據(jù)訪問請求訪問,則暫時不執(zhí)行讀取所述待訪問邏輯存儲單元的所述LBA對應(yīng)的存儲空間中存儲的所述目標數(shù)據(jù)的步驟,直到其他與所述第一讀數(shù)據(jù)請求有資源沖突的數(shù)據(jù)訪問請求對所述待訪問邏輯存儲單元的所述LBA對應(yīng)的存儲空間中存儲的所述目標數(shù)據(jù)的訪問完成時,讀取所述待訪問邏輯存儲單元的所述LBA對應(yīng)的存儲空間中存儲的所述目標數(shù)據(jù)。
[0023]第二方面,本發(fā)明實施例提供一種存儲設(shè)備,所述存儲設(shè)備包括控制器和至少兩個邏輯存儲單元,其中,所述邏輯存儲單元用于存儲數(shù)據(jù),所述控制器用于:
[0024]接收主機發(fā)送的第一寫數(shù)據(jù)請求,所述第一寫數(shù)據(jù)請求包括待訪問的第一邏輯存儲單元的身份標識號ID、目標數(shù)據(jù)和所述第一邏輯存儲單元的邏輯區(qū)塊地址LBA ;
[0025]確定所述第一邏輯存儲單元的所述LBA對應(yīng)的存儲空間中存儲的數(shù)據(jù)未被其他與所述第一寫數(shù)據(jù)請求有資源沖突的數(shù)據(jù)訪問請求訪問;其中,所述與所述第一寫數(shù)據(jù)請求有資源沖突的數(shù)據(jù)訪問請求是指與所述第一寫數(shù)據(jù)請求不能同時訪問相同邏輯存儲單元的相同LBA對應(yīng)的存儲空間的數(shù)據(jù)訪問請求;
[0026]將所述目標數(shù)據(jù)寫入所述第一邏輯存儲單元的所述LBA對應(yīng)的存儲空間中;
[0027]生成第二寫數(shù)據(jù)請求,所述第二寫數(shù)據(jù)請求包括第二邏輯存儲單元的ID、所述目標數(shù)據(jù)和所述第二邏輯存儲單元的LBA ;
[0028]將所述目標數(shù)據(jù)寫入所述第二邏輯存儲單元的所述LBA對應(yīng)的存儲空間中。
[0029]結(jié)合第二方面,在第二方面的第一種可能的實現(xiàn)方式中,所述控制器還具體用于:
[0030]判斷所述第二邏輯存儲單元的所述LBA對應(yīng)的存儲空間中存儲的數(shù)據(jù)是否被其他與所述第二寫數(shù)據(jù)請求有資源沖突的數(shù)據(jù)訪問請求訪問;其中,所述與所述第二寫數(shù)據(jù)請求有資源沖突的數(shù)據(jù)訪問請求是指與所述第二寫數(shù)據(jù)請求不能同時訪問相同邏輯存儲單元的相同LBA對應(yīng)的存儲空間的數(shù)據(jù)訪問請求;
[0031]若所述第二邏輯存儲單元的所述LBA對應(yīng)的存儲空間中存儲的數(shù)據(jù)未被其他與所述第二寫數(shù)據(jù)請求有資源沖突的數(shù)據(jù)訪問請求訪問,則將所述目標數(shù)據(jù)寫入所述第二邏輯存儲單元的所述LBA對應(yīng)的存儲空間中;或者
[0032]若所述第二邏輯存儲單元的所述LBA對應(yīng)的存儲空間中存儲的數(shù)據(jù)被其他與所述第二寫數(shù)據(jù)請求有資源沖突的數(shù)據(jù)訪問請求訪問,則比較所述第一邏輯存儲單元的優(yōu)先級是否高于所述第二邏輯存儲單元的優(yōu)先級,若是,則暫時不執(zhí)行將所述目標數(shù)據(jù)寫入所述第二邏輯存儲單元的所述LBA對應(yīng)的存儲空間中的步驟,直到其他與所述第二寫數(shù)據(jù)請求有資源沖突的數(shù)據(jù)訪問請求對所述第二邏輯存儲單元的所述LBA對應(yīng)的存儲空間中存儲的數(shù)據(jù)的訪問完成時,將所述目標數(shù)據(jù)寫入所述第二邏輯存儲單元的所述LBA對應(yīng)的存儲空間中。
[0033]結(jié)合第二方面的第一種可能的實現(xiàn)方式,在第二方面的第二種可能的實現(xiàn)方式中,所述控制器還具體用于:
[0034]若所述第一邏輯存儲單元的優(yōu)先級不高于所述第二邏輯存儲單元的優(yōu)先級,則生成第三寫數(shù)據(jù)請求,所述第三寫數(shù)據(jù)請求包括第三邏輯存儲單元的ID、所述目標數(shù)據(jù)和所述第三邏輯存儲單元的LBA ;其中,所述第三邏輯存儲單元的優(yōu)先級高于所述第一邏輯存儲單元;
[0035]將所述目標數(shù)據(jù)寫入所述第三邏輯存儲單元的所述LBA對應(yīng)的存儲空間中。
[0036]結(jié)合第二方面、第二方面的第一種或第二種任一種可能的實現(xiàn)方式,在第二方面的第三種可能的實現(xiàn)方式中,所述控制器還具體用于:
[0037]接收所述主機發(fā)送的第一讀數(shù)據(jù)請求,所述第一讀數(shù)據(jù)請求包括待訪問邏輯存儲單元的ID和所述待訪問邏輯存儲單元的LBA ;其中,所述待訪問邏輯存儲單元包括:所述第一邏輯存儲單元或者所述第二邏輯存儲單元;
[0038]判斷所述待訪問邏輯存儲單元的所述LBA對應(yīng)的存儲空間中存儲的所述目標數(shù)據(jù)是否被其他與所述第一讀數(shù)據(jù)請求有資源沖突的數(shù)據(jù)訪問請求訪問;其中,所述與所述第一讀數(shù)據(jù)請求有資源沖突的數(shù)據(jù)訪問請求是指與所述第一讀數(shù)據(jù)請求不能同時訪問相同邏輯存儲單元的相同LBA對應(yīng)的存儲空間的數(shù)據(jù)訪問請求;
[0039]若所述待訪問邏輯存儲單元的所述LBA對應(yīng)的存儲空間中存儲的所述目標數(shù)據(jù)未被其他與所述第一讀數(shù)據(jù)請求有資源沖突的數(shù)據(jù)訪問請求訪問,則讀取所述待訪問邏輯存儲單元的所述LBA對應(yīng)的存儲空間中存儲的所述目標數(shù)據(jù);或者,
[0040]若所述待訪問邏輯存儲單元的所述LBA對應(yīng)的存儲空間中存儲的所述目標數(shù)據(jù)被其他與所述第一讀數(shù)據(jù)請求有資源沖突的數(shù)據(jù)訪問請求訪問,則暫時不執(zhí)行讀取所述待訪問邏輯存儲單元的所述LBA對應(yīng)的存儲空間中存儲的所述目標數(shù)據(jù)的步驟,直到其他與所述第一讀數(shù)據(jù)請求有資源沖突的數(shù)據(jù)訪問請求對所述待訪問邏輯存儲單元的所述LBA對應(yīng)的存儲空間中存儲的所述目標數(shù)據(jù)的訪問完成時,讀取所述待訪問邏輯存儲單元的所述LBA對應(yīng)的存儲空間中存儲的所述目標數(shù)據(jù)。
[0041]本發(fā)明中,接收主機發(fā)送的第一寫數(shù)據(jù)請求,所述第一寫數(shù)據(jù)請求包括待訪問的第一邏輯存儲單元的身份標識號ID、目標數(shù)據(jù)和所述第一邏輯存儲單元的邏輯區(qū)塊地址LBA ;進一步地,確定所述第一邏輯存儲單元的所述LBA對應(yīng)的存儲空間中存儲的數(shù)據(jù)未被其他與所述第一寫數(shù)據(jù)請求有資源沖突的數(shù)據(jù)訪問請求訪問;其中,所述與所述第一寫數(shù)據(jù)請求有資源沖突的數(shù)據(jù)訪問請求是指與所述第一寫數(shù)據(jù)請求不能同時訪問相同邏輯存儲單元的相同LBA對應(yīng)的存儲空間的數(shù)據(jù)訪問請求;進一步地,將所述目標數(shù)據(jù)寫入所述第一邏輯存儲單元的所述LBA對應(yīng)的存儲空間中;生成第二寫數(shù)據(jù)請求,所述第二寫數(shù)據(jù)請求包括第二邏輯存儲單元的ID、所述目標數(shù)據(jù)和所述第二邏輯存儲單元的LBA ;將所述目標數(shù)據(jù)寫入所述第二邏輯存儲單元的所述LBA對應(yīng)的存儲空間中;可見,可快速地將所述目標數(shù)據(jù)分別寫入所述存儲設(shè)備的不同邏輯存儲單元,從而降低了系統(tǒng)時延,提升了系統(tǒng)的整體訪問響應(yīng)能力。
【附圖說明】
[0042]為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0043]圖1A為本發(fā)明多副本寫入存儲設(shè)備的方法實施例一的流程示意圖;
[0044]圖1B為本發(fā)明實施例提供的存儲系統(tǒng)的組成示意圖;
[0045]圖1C是本發(fā)明實施例提供的控制器的結(jié)構(gòu)示意圖。
【具體實施方式】
[0046]為使本發(fā)明實施例的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
[0047]圖1A為本發(fā)明多副本寫入存儲設(shè)備的方法實施例一的流程示意圖。本實施例的方案可應(yīng)用于如圖1B所示的存儲系統(tǒng),圖1B為本發(fā)明實施例提供的存儲系統(tǒng)的組成示意圖,如圖1B所不,所述存儲系統(tǒng)包括:主機和存儲設(shè)備10,其中,所述存儲設(shè)備10包括:控制器101和至少兩個邏輯存儲單元102。其中,控制器101可以包括當前技術(shù)已知的任何計算設(shè)備,如服務(wù)器、臺式計算機等等;控制器101用于執(zhí)行各種數(shù)據(jù)訪問請求,例如將多副本寫入存儲設(shè)備及從存儲設(shè)備讀取多副本操作等等。存儲設(shè)備10包含的至少兩個邏輯存儲單元102用于提供存儲空間保存數(shù)據(jù),可選地,所述存儲設(shè)備10可以為存儲陣列或者存儲服務(wù)器等等;其中,所述邏輯存儲單元由物理空間映射出的邏輯空間;可選地,對于存儲系統(tǒng),所述邏輯存儲單元可以為邏輯單元號(Logical Unit Number,簡稱LUN)或者卷等。
[0048]下面介紹控制器101的硬件組成結(jié)構(gòu),請參考圖1C,圖1C是本發(fā)明實施例提供的控制器的結(jié)構(gòu)示意圖。如圖1C所示,控制器101主要包括處理器(processor) 1011、緩存(cache) 1012、存儲器(memory) 1013、通信總線(簡稱總線)1014以及通信接口(Communicat1n Interface) 1015。處理器 1011、緩存 1012、存儲器 1013 以及通信接口 1015通過通信總線1014完成相互間的通信。
[0049]通信接口 1015,用于與邏輯存儲單元102通信。
[0050]存儲器1013,用于存放程序1016,存儲器1013可能包含高速RAM存儲器,也可能還包括非易失性存儲器(non-volatile memory),例如至少一個磁盤存儲器??梢岳斫獾氖?,存儲器1013可以為隨機存儲器(Random-Access Memory, RAM)、磁碟、硬盤、光盤、固態(tài)硬盤(Solid State Disk, SSD)或者非易失性存儲器等各種可以存儲程序代碼的非短暫性的(non-transitory)機器可讀介質(zhì)。
[0051]程序1016可以包括程序代碼。
[0052]緩存1012 (Cache)用于緩存從主機接收的數(shù)據(jù)或從邏輯存儲單元102中讀取的數(shù)據(jù)。緩存1012可以是RAM、ROM、閃存(Flash memory)或固態(tài)硬盤(Solid State Disk,SSD)等各種可以存儲數(shù)據(jù)的非短暫性的(non-transitory)機器可讀介質(zhì),在此不做限定。
[0053]另外,存儲器1013和緩存1012可以合設(shè)或者分開設(shè)置,本發(fā)明實施例對此不做限定。
[0054]處理器1011可能是一個中央處理器CPU,或者是特定集成電路ASIC(Applicat1nSpecific Integrated Circuit),或者是被配置成實施本發(fā)明實施例的一個或多個集成電路。在本發(fā)明實施例中,處理器1011可以用于接收來自主機的各種數(shù)據(jù)訪問請求,并且執(zhí)行各種數(shù)據(jù)訪問請求,例如將多副本寫入存儲設(shè)備及從存儲設(shè)備讀取多副本操作等等。
[0055]本實施例的方法可應(yīng)用于如圖1B所示的存儲系統(tǒng)以及如圖1C所示的控制器,所述控制器的處理器可以執(zhí)行如圖1A所示的各個步驟:
[0056]S101、接收主機發(fā)送的第一寫數(shù)據(jù)請求,所述第一寫數(shù)據(jù)請求包括待訪問的第一邏輯存儲單元的身份標識號ID、目標數(shù)據(jù)和所述第一邏輯存儲單元的邏輯區(qū)塊地址LBA。
[0057]本發(fā)明實施例中,所述存儲設(shè)備的控制器接收主機發(fā)送的第一寫數(shù)據(jù)請求,其中,所述第一寫數(shù)據(jù)請求包括待訪問的第一邏輯存儲單元的身份標識號(Identity,簡稱ID)、目標數(shù)據(jù)和所述第一邏輯存儲單元的邏輯區(qū)塊地址(Logical Block Address,簡稱LBA),其中,所述目標數(shù)據(jù)為待寫入的數(shù)據(jù),第一邏輯存儲單元ID用于指示所述主機欲將所述目標數(shù)據(jù)寫入所述存儲設(shè)備的目的邏輯存儲單元;可選地,所述第一邏輯存儲單元可以為LUN或者卷等。
[0058]S102、確定所述第一邏輯存儲單元的所述LBA對應(yīng)的存儲空間中存儲的數(shù)據(jù)未被其他與所述第一寫數(shù)據(jù)請求有資源沖突的數(shù)據(jù)訪問請求訪問。
[0059]本發(fā)明實施例中,所述控制器在接收到主機發(fā)送的包括待訪問的第一邏輯存儲單元的ID、目標數(shù)據(jù)和所述第一邏輯存儲單元的LBA的所述第一寫數(shù)據(jù)請求時,進一步地,確定所述第一邏輯存儲單元的所述LBA對應(yīng)的存儲空間中存儲的數(shù)據(jù)此時未被其他與所述第一寫數(shù)據(jù)請求有資源沖突的數(shù)據(jù)訪問請求訪問,其中,所述與所述第一寫數(shù)據(jù)請求有資源沖突的數(shù)據(jù)訪問請求是指與所述第一寫數(shù)據(jù)請求不能同時訪問相同邏輯存儲單元的相同LBA對應(yīng)的存儲空間的數(shù)據(jù)訪問請求;即確定所述第一邏輯存儲單元的所述LBA對應(yīng)的存儲空間中未在執(zhí)行與所述第一寫數(shù)據(jù)請求有資源沖突的數(shù)據(jù)訪問操作,如所述第一邏輯存儲單元的所述LBA對應(yīng)的存儲空間中存儲的數(shù)據(jù)此時確實未被其它任何數(shù)據(jù)訪問請求訪問,或者若所述第一邏輯存儲單元的所述LBA對應(yīng)的存儲空間中存儲的數(shù)據(jù)此時正被一數(shù)據(jù)訪問請求訪問(也即所述數(shù)據(jù)訪問請求中包含的待訪問的邏輯存儲單元的ID也為所述第一邏輯存儲單元的ID以及所述邏輯存儲單元的LBA也為所述第一邏輯存儲單元的LBA),但所述數(shù)據(jù)訪問請求中包含的互斥邏輯信息為共享式互斥邏輯(即所述數(shù)據(jù)訪問請求可以與其它數(shù)據(jù)訪問請求同時進行訪問操作)(其中,共享式互斥邏輯是指事件A與事件B在規(guī)定范圍內(nèi)可以同時發(fā)生,但超出所述規(guī)定范圍則不會同時發(fā)生);從而所述控制器可以根據(jù)所述第一寫數(shù)據(jù)請求對所述第一邏輯存儲單元的所述LBA對應(yīng)的存儲空間進行寫操作。
[0060]S103、將所述目標數(shù)據(jù)寫入所述第一邏輯存儲單元的所述LBA對應(yīng)的存儲空間中。
[0061]S104、生成第二寫數(shù)據(jù)請求,所述第二寫數(shù)據(jù)請求包括第二邏輯存儲單元的ID、所述目標數(shù)據(jù)和所述第二邏輯存儲單元的LBA。
[0062]S105、將所述目標數(shù)據(jù)寫入所述第二邏輯存儲單元的所述LBA對應(yīng)的存儲空間中。
[0063]本發(fā)明實施例中,在確定所述第一邏輯存儲單元的所述LBA對應(yīng)的存儲空間中存儲的數(shù)據(jù)未被其他與所述第一寫數(shù)據(jù)請求有資源沖突的數(shù)據(jù)訪問請求訪問后,在步驟S103中,所述控制器將所述目標數(shù)據(jù)寫入所述第一邏輯存儲單元的所述LBA對應(yīng)的存儲空間中;在步驟S104中,所述控制器生成包括第二邏輯存儲單元的ID、所述目標數(shù)據(jù)和所述第二邏輯存儲單元的LBA的第二寫數(shù)據(jù)請求,其中,第二邏輯存儲單元的ID用于指示所述控制器欲將所述目標數(shù)據(jù)寫入所述存儲設(shè)備的目的邏輯存儲單元;可選地,所述第二邏輯存儲單元可以為LUN或者卷等;進一步地,在步驟S105中,所述控制器將所述目標數(shù)據(jù)寫入所述第二邏輯存儲單元的所述LBA對應(yīng)的存儲空間中??蛇x地,本發(fā)明實施例中,對步驟S103與步驟S104及步驟S105的先后順序并不限定,如可按照步驟S103、步驟S104及步驟S105順序執(zhí)行(即在將所述目標數(shù)據(jù)寫入所述第一邏輯存儲單元的所述LBA對應(yīng)的存儲空間中后,生成第二寫數(shù)據(jù)請求并將所述目標數(shù)據(jù)寫入所述第二邏輯存儲單元的所述LBA對應(yīng)的存儲空間中)、或者先執(zhí)行步驟S104及步驟S105后執(zhí)行步驟S103 (即在生成第二寫數(shù)據(jù)請求并將所述目標數(shù)據(jù)寫入所述第二邏輯存儲單元的所述LBA對應(yīng)的存儲空間中后,將所述目標數(shù)據(jù)寫入所述第一邏輯存儲單元的所述LBA對應(yīng)的存儲空間中)、或者并行執(zhí)行步驟S103與步驟S104及步驟S105(即將所述目標數(shù)據(jù)寫入所述第一邏輯存儲單元的所述LBA對應(yīng)的存儲空間中的步驟,與生成第二寫數(shù)據(jù)請求并將所述目標數(shù)據(jù)寫入所述第二邏輯存儲單元的所述LBA對應(yīng)的存儲空間中的步驟并行執(zhí)行);需要說明的是,本發(fā)明實施例中,所述控制器可以并行執(zhí)行多個上述將多副本寫入存儲設(shè)備的步驟(即本發(fā)明實施例中的各個邏輯存儲單元都是平等的,不區(qū)分主從邏輯存儲單元,并且所述第一邏輯存儲單元、所述第二邏輯存儲單元或者所述第三邏輯存儲單元分別代指邏輯存儲單元,并未限定具體的某個邏輯存儲單元,同時本發(fā)明實施例中對所述第一邏輯存儲單元、所述第二邏輯存儲單元或者所述第三邏輯存儲單元的個數(shù)并不作限定);可見,本發(fā)明實施例中,所述控制器可以快速地將所述目標數(shù)據(jù)分別寫入所述存儲設(shè)備的不同邏輯存儲單元(即將多副本寫入存儲設(shè)備),從而降低了系統(tǒng)時延,提升了系統(tǒng)的整體訪問響應(yīng)能力。
[0064]本發(fā)明實施例中,接收主機發(fā)送的第一寫數(shù)據(jù)請求,所述第一寫數(shù)據(jù)請求包括待訪問的第一邏輯存儲單元的身份標識號ID、目標數(shù)據(jù)和所述第一邏輯存儲單元的邏輯區(qū)塊地址LBA ;進一步地,確定所述第一邏輯存儲單元的所述LBA對應(yīng)的存儲空間中存儲的數(shù)據(jù)未被其他與所述第一寫數(shù)據(jù)請求有資源沖突的數(shù)據(jù)訪問請求訪問;其中,所述與所述第一寫數(shù)據(jù)請求有資源沖突的數(shù)據(jù)訪問請求是指與所述第一寫數(shù)據(jù)請求不能同時訪問相同邏輯存儲單元的相同LBA對應(yīng)的存儲空間的數(shù)據(jù)訪問請求;進一步地,將所述目標數(shù)據(jù)寫入所述第一邏輯存儲單元的所述LBA對應(yīng)的存儲空間中;生成第二寫數(shù)據(jù)請求,所述第二寫數(shù)據(jù)請求包括第二邏輯存儲單元的ID、所述目標數(shù)據(jù)和所述第二邏輯存儲單元的LBA ;將所述目標數(shù)據(jù)寫入所述第二邏輯存儲單元的所述LBA對應(yīng)的存儲空間中;可見,可快速地將所述目標數(shù)據(jù)分別寫入所述存儲設(shè)備的不同邏輯存儲單元,從而降低了系統(tǒng)時延,提升了系統(tǒng)的整體訪問響應(yīng)能力。
[0065]可選地,步驟S102之前,還包括:
[0066]判斷所述第一邏輯存儲單元的所述LBA對應(yīng)的存儲空間中存儲的數(shù)據(jù)是否被其他與所述第一寫數(shù)據(jù)請求有資源沖突的數(shù)據(jù)訪問請求訪問;
[0067]若否,則確定所述第一邏輯存儲單元的所述LBA對應(yīng)的存儲空間中存儲的數(shù)據(jù)未被其他與所述第一寫數(shù)據(jù)請求有資源沖突的數(shù)據(jù)訪問請求訪問。
[0068]本發(fā)明實施例中,在步驟S102之前包括:判斷所述第一邏輯存儲單元的所述LBA對應(yīng)的存儲空間中存儲的數(shù)據(jù)是否被其他與所述第一寫數(shù)據(jù)請求有資源沖突的數(shù)據(jù)訪問請求訪問;可選地,可根據(jù)所述第一寫數(shù)據(jù)請求中包含的第一邏輯存儲單元的身份標識號ID、所述第一邏輯存儲單元的邏輯區(qū)塊地址LBA以及互斥邏輯信息判斷所述第一邏輯存儲單元的所述LBA對應(yīng)的存儲空間中存儲的數(shù)據(jù)是否被其他與所述第一寫數(shù)據(jù)請求有資源沖突的數(shù)據(jù)訪問請求訪問,其中,所述互斥邏輯信息包括:共享式互斥邏輯或排他式互斥邏輯;(I)若所述第一邏輯存儲單元的所述LBA對應(yīng)的存儲空間中存儲的數(shù)據(jù)此時確實未被其它任何數(shù)據(jù)訪問請求訪問,或者若所述第一邏輯存儲單元的所述LBA對應(yīng)的存儲空間中存儲的數(shù)據(jù)此時正被一數(shù)據(jù)訪問請求訪問(也即所述數(shù)據(jù)訪問請求中包含的待訪問的邏輯存儲單元的ID也為所述第一邏輯存儲單元的ID以及所述邏輯存儲單元的LBA也為所述第一邏輯存儲單元的LBA),但所述數(shù)據(jù)訪問請求中包含的互斥邏輯信息為共享式互斥邏輯(即所述數(shù)據(jù)訪問請求可以與其它數(shù)據(jù)訪問請求同時進行訪問操作),則所述控制器可以確定所述第一邏輯存儲單元的所述LBA對應(yīng)的存儲空間中存儲的數(shù)據(jù)未被其他與所述第一寫數(shù)據(jù)請求有資源沖突的數(shù)據(jù)訪問請求訪問;或者,(2)若所述第一邏輯存儲單元的所述LBA對應(yīng)的存儲空間中存儲的數(shù)據(jù)此時正被一數(shù)據(jù)訪問請求訪問(也即所述數(shù)據(jù)訪問請求中包含的待訪問的邏輯存儲單元的ID也為所述第一邏輯存儲單元的ID以及所述邏輯存儲單元的LBA也為所述第一邏輯存儲單元的LBA),并且所述數(shù)據(jù)訪問請求中包含的互斥邏輯信息為排他式互斥邏輯(即所述數(shù)據(jù)訪問請求不可以與其它數(shù)據(jù)訪問請求同時進行訪問操作)(其中,排他式互斥邏輯是指事件A與事件B在任何情況下都不會同時發(fā)生),則確定所述第一邏輯存儲單元的所述LBA對應(yīng)的存儲空間中存儲的數(shù)據(jù)被其他與所述第一寫數(shù)據(jù)請求有資源沖突的數(shù)據(jù)訪問請求訪問,則繼續(xù)判斷所述第一邏輯存儲單元的所述LBA對應(yīng)的存儲空間中存儲的數(shù)據(jù)是否被其他與所述第一寫數(shù)據(jù)請求有資源沖突的數(shù)據(jù)訪問請求訪問,直到確定其他與所述第一寫數(shù)據(jù)請求有資源沖突的數(shù)據(jù)訪問請求對所述第一邏輯存儲單元的所述LBA對應(yīng)的存儲空間中存儲的數(shù)據(jù)的訪問完成。
[0069]可選地,所述將所述目標數(shù)據(jù)寫入所述第二邏輯存儲單元的所述LBA對應(yīng)的存儲空間中,包括:
[0070]判斷所述第二邏輯存儲單元的所述LBA對應(yīng)的存儲空間中存儲的數(shù)據(jù)是否被其他與所述第二寫數(shù)據(jù)請求有資源沖突的數(shù)據(jù)訪問請求訪問;其中,所述與所述第二寫數(shù)據(jù)請求有資源沖突的數(shù)據(jù)訪問請求是指與所述第二寫數(shù)據(jù)請求不能同時訪問相同邏輯存儲單元的相同LBA對應(yīng)的存儲空間的數(shù)據(jù)訪問請求;
[0071]若所述第二邏輯存儲單元的所述LBA對應(yīng)的存儲空間中存儲的數(shù)據(jù)未被其他與所述第二寫數(shù)據(jù)請求有資源沖突的數(shù)據(jù)訪問請求訪問,則將所述目標數(shù)據(jù)寫入所述第二邏輯存儲單元的所述LBA對應(yīng)的存儲空間中;或者
[0072]若所述第二邏輯存儲單元的所述LBA對應(yīng)的存儲空間中存儲的數(shù)據(jù)被其他與所述第二寫數(shù)據(jù)請求有資源沖突的數(shù)據(jù)訪問請求訪問,則比較所述第一邏輯存儲單元的優(yōu)先級是否高于所述第二邏輯存儲單元的優(yōu)先級,若是,則暫時不執(zhí)行將所述目標數(shù)據(jù)寫入所述第二邏輯存儲單元的所述LBA對應(yīng)的存儲空間中的步驟,直到其他與所述第二寫數(shù)據(jù)請求有資源沖突的數(shù)據(jù)訪問請求對所述第二邏輯存儲單元的所述LBA對應(yīng)的存儲空間中存儲的數(shù)據(jù)的訪問完成時,將所述目標數(shù)據(jù)寫入所述第二邏輯存儲單元的所述LBA對應(yīng)的存儲空間中。
[0073]本發(fā)明實施例中,步驟S105具體如下:判斷所述第二邏輯存儲單元的所述LBA對應(yīng)的存儲空間中存儲的數(shù)據(jù)是否被其他與所述第二寫數(shù)據(jù)請求有資源沖突的數(shù)據(jù)訪問請求訪問;其中,所述與所述第二寫數(shù)據(jù)請求有資源沖突的數(shù)據(jù)訪問請求是指與所述第二寫數(shù)據(jù)請求不能同時訪問相同邏輯存儲單元的相同LBA對應(yīng)的存儲空間的數(shù)據(jù)訪問請求;可選地,可根據(jù)所述第二寫數(shù)據(jù)請求中包含的第二邏輯存儲單元的身份標識號ID、所述第二邏輯存儲單元的邏輯區(qū)塊地址LBA以及互斥邏輯信息判斷所述第二邏輯存儲單元的所述LBA對應(yīng)的存儲空間中存儲的數(shù)據(jù)是否被其他與所述第二寫數(shù)據(jù)請求有資源沖突的數(shù)據(jù)訪問請求訪問,其中,所述互斥邏輯信息包括:共享式互斥邏輯或排他式互斥邏輯;(I)若所述第二邏輯存儲單元的所述LBA對應(yīng)的存儲空間中存儲的數(shù)據(jù)此時確實未被其它任何數(shù)據(jù)訪問請求訪問,或者若所述第二邏輯存儲單元的所述LBA對應(yīng)的存儲空間中存儲的數(shù)據(jù)此時正被一數(shù)據(jù)訪問請求訪問(也即所述數(shù)據(jù)訪問請求中包含的待訪問的邏輯存儲單元的ID也為所述第二邏輯存儲單元的ID以及所述邏輯存儲單元的LBA也為所述第二邏輯存儲單元的LBA),但所述數(shù)據(jù)訪問請求中包含的互斥邏輯信息為共享式互斥邏輯(即所述數(shù)據(jù)訪問請求可以與其它數(shù)據(jù)訪問請求同時進行訪問操作),則所述控制器可以確定所述第二邏輯存儲單元的所述LBA對應(yīng)的存儲空間中存儲的數(shù)據(jù)未被其他與所述第二寫數(shù)據(jù)請求有資源沖突的數(shù)據(jù)訪問請求訪問,則將所述目標數(shù)據(jù)寫入所述第二邏輯存儲單元的所述LBA對應(yīng)的存儲空間中;或者,(2)若所述第二邏輯存儲單元的所述LBA對應(yīng)的存儲空間中存儲的數(shù)據(jù)此時正被一數(shù)據(jù)訪問請求訪問(也即所述數(shù)據(jù)訪問請求中包含的待訪問的邏輯存儲單元的ID也為所述第二邏輯存儲單元的ID以及所述邏輯存儲單元的LBA也為所述第二邏輯存儲單元的LBA),并且所述數(shù)據(jù)訪問請求中包含的互斥邏輯信息為排他式互斥邏輯(即所述數(shù)據(jù)訪問請求不可以與其它數(shù)據(jù)訪問請求同時進行訪問操作),則所述控制器可以確定所述第二邏輯存儲單元的所述LBA對應(yīng)的存儲空間中存儲的數(shù)據(jù)被其他與所述第二寫數(shù)據(jù)請求有資源沖突的數(shù)據(jù)訪問請求訪問,則所述控制器比較所述第一邏輯存儲單元的優(yōu)先級是否高于所述第二邏輯存儲單元的優(yōu)先級;若是,則暫時不執(zhí)行將所述目標數(shù)據(jù)寫入所述第二邏輯存儲單元的所述LBA對應(yīng)的存儲空間中的步驟,直到其他與所述第二寫數(shù)據(jù)請求有資源沖突的數(shù)據(jù)訪問請求對所述第二邏輯存儲單元的所述LBA對應(yīng)的存儲空間中存儲的數(shù)據(jù)的訪問完成時,再執(zhí)行將所述目標數(shù)據(jù)寫入所述第二邏輯存儲單元的所述LBA對應(yīng)的存儲空間中的步驟。
[0074]可選地,若所述第一邏輯存儲單元的優(yōu)先級不高于所述第二邏輯存儲單元的優(yōu)先級,則生成第三寫數(shù)據(jù)請求,所述第三寫數(shù)據(jù)請求包括第三邏輯存儲單元的ID、所述目標數(shù)據(jù)和所述第三邏輯存儲單元的LBA ;其中,所述第三邏輯存儲單元的優(yōu)先級高于所述第一邏輯存儲單元;
[0075]將所述目標數(shù)據(jù)寫入所述第三邏輯存儲單元的所述LBA對應(yīng)的存儲空間中。
[0076]本發(fā)明實施例中,若判斷所述第一邏輯存儲單元的優(yōu)先級不高于所述第二邏輯存儲單元的優(yōu)先級,則生成包括第三邏輯存儲單元的ID、所述目標數(shù)據(jù)和所述第三邏輯存儲單元的LBA的第三寫數(shù)據(jù)請求,其中,所述第三邏輯存儲單元的優(yōu)先級高于所述第一邏輯存儲單元,第三邏輯存儲單元的ID用于指示所述控制器欲將所述目標數(shù)據(jù)寫入所述存儲設(shè)備的目的邏輯存儲單元,可選地,所述第三邏輯存儲單元亦可以為LUN或者卷等;進一步地,將所述目標數(shù)據(jù)寫入所述第三邏輯存儲單元的所述LBA對應(yīng)的存儲空間中,從而可以確保將所述目標數(shù)據(jù)及時地寫入所述存儲設(shè)備;可選地,將所述目標數(shù)據(jù)寫入所述第三邏輯存儲單元的所述LBA對應(yīng)的存儲空間中的具體步驟與上述所述將所述目標數(shù)據(jù)寫入所述第二邏輯存儲單元的所述LBA對應(yīng)的存儲空間中的具體步驟類似,可參見上述關(guān)于所述將所述目標數(shù)據(jù)寫入所述第二邏輯存儲單元的所述LBA對應(yīng)的存儲空間中的部分,此處不再贅述??梢?,本發(fā)明實施例可快速地將所述目標數(shù)據(jù)分別寫入所述存儲設(shè)備的不同邏輯存儲單元,從而降低了系統(tǒng)時延,提升了系統(tǒng)的整體訪問響應(yīng)能力。
[0077]進一步地,所述方法還包括:
[0078]接收所述主機發(fā)送的第一讀數(shù)據(jù)請求,所述第一讀數(shù)據(jù)請求包括待訪問邏輯存儲單元的ID和所述待訪問邏輯存儲單元的LBA ;其中,所述待訪問邏輯存儲單元包括:所述第一邏輯存儲單元或者所述第二邏輯存儲單元;
[0079]判斷所述待訪問邏輯存儲單元的所述LBA對應(yīng)的存儲空間中存儲的所述目標數(shù)據(jù)是否被其他與所述第一讀數(shù)據(jù)請求有資源沖突的數(shù)據(jù)訪問請求訪問;其中,所述與所述第一讀數(shù)據(jù)請求有資源沖突的數(shù)據(jù)訪問請求是指與所述第一讀數(shù)據(jù)請求不能同時訪問相同邏輯存儲單元的相同LBA對應(yīng)的存儲空間的數(shù)據(jù)訪問請求;
[0080]若所述待訪問邏輯存儲單元的所述LBA對應(yīng)的存儲空間中存儲的所述目標數(shù)據(jù)未被其他與所述第一讀數(shù)據(jù)請求有資源沖突的數(shù)據(jù)訪問請求訪問,則讀取所述待訪問邏輯存儲單元的所述LBA對應(yīng)的存儲空間中存儲的所述目標數(shù)據(jù);或者,
[0081]若所述待訪問邏輯存儲單元的所述LBA對應(yīng)的存儲空間中存儲的所述目標數(shù)據(jù)被其他與所述第一讀數(shù)據(jù)請求有資源沖突的數(shù)據(jù)訪問請求訪問,則暫時不執(zhí)行讀取所述待訪問邏輯存儲單元的所述LBA對應(yīng)的存儲空間中存儲的所述目標數(shù)據(jù)的步驟,直到其他與所述第一讀數(shù)據(jù)請求有資源沖突的數(shù)據(jù)訪問請求對所述待訪問邏輯存儲單元的所述LBA對應(yīng)的存儲空間中存儲的所述目標數(shù)據(jù)的訪問完成時,讀取所述待訪問邏輯存儲單元的所述LBA對應(yīng)的存儲空間中存儲的所述目標數(shù)據(jù)。
[0082]本發(fā)明實施例中,(I)當所述控制器接收到所述主機發(fā)送的包括待訪問邏輯存儲單元的ID和所述待訪問邏輯存儲單元的LBA的第一讀數(shù)據(jù)請求,其中,所述待訪問邏輯存儲單元的ID用于指示所述主機欲讀取的所述存儲設(shè)備的目的邏輯存儲單元,所述待訪問邏輯存儲單元包括:所述第一邏輯存儲單元或者所述第二邏輯存儲單元,可選地,所述待訪問邏輯存儲單元還可以為所述第三邏輯存儲單元;(2)所述控制器判斷所述待訪問邏輯存儲單元的所述LBA對應(yīng)的存儲空間中存儲的所述目標數(shù)據(jù)是否被其他與所述第一讀數(shù)據(jù)請求有資源沖突的數(shù)據(jù)訪問請求訪問;其中,所述與所述第一讀數(shù)據(jù)請求有資源沖突的數(shù)據(jù)訪問請求是指與所述第一讀數(shù)據(jù)請求不能同時訪問相同邏輯存儲單元的相同LBA對應(yīng)的存儲空間的數(shù)據(jù)訪問請求;可選地,可根據(jù)所述第一讀數(shù)據(jù)請求中包含的待訪問邏輯存儲單元的身份標識號ID、所述待訪問邏輯存儲單元的邏輯區(qū)塊地址LBA以及互斥邏輯信息判斷所述待訪問邏輯存儲單元的所述LBA對應(yīng)的存儲空間中存儲的所述目標數(shù)據(jù)是否被其他與所述第一讀數(shù)據(jù)請求有資源沖突的數(shù)據(jù)訪問請求訪問,其中,所述互斥邏輯信息包括:共享式互斥邏輯或排他式互斥邏輯;具體判斷方式與上述判斷所述第一邏輯存儲單元的所述LBA對應(yīng)的存儲空間中存儲的數(shù)據(jù)是否被其他與所述第一寫數(shù)據(jù)請求有資源沖突的數(shù)據(jù)訪問請求訪問的步驟類似,此處不再贅述;(2a)若所述待訪問邏輯存儲單元的所述LBA對應(yīng)的存儲空間中存儲的所述目標數(shù)據(jù)未被其他與所述第一讀數(shù)據(jù)請求有資源沖突的數(shù)據(jù)訪問請求訪問,則讀取所述待訪問邏輯存儲單元的所述LBA對應(yīng)的存儲空間中存儲的所述目標數(shù)據(jù);(2b)若所述待訪問邏輯存儲單元的所述LBA對應(yīng)的存儲空間中存儲的所述目標數(shù)據(jù)被其他與所述第一讀數(shù)據(jù)請求有資源沖突的數(shù)據(jù)訪問請求訪問,則暫時不執(zhí)行讀取所述待訪問邏輯存儲單元的所述LBA對應(yīng)的存儲空間中存儲的所述目標數(shù)據(jù)的步驟,直到其他與所述第一讀數(shù)據(jù)請求有資源沖突的數(shù)據(jù)訪問請求對所述待訪問邏輯存儲單元的所述LBA對應(yīng)的存儲空間中存儲的所述目標數(shù)據(jù)的訪問完成時,再執(zhí)行讀取所述待訪問邏輯存儲單元的所述LBA對應(yīng)的存儲空間中存儲的所述目標數(shù)據(jù)的步驟??梢姡景l(fā)明實施例可快速地分別從所述存儲設(shè)備的不同邏輯存儲單元中讀取所述目標數(shù)據(jù),從而降低了系統(tǒng)時延,提升了系統(tǒng)的整體訪問響應(yīng)能力。
[0083]本領(lǐng)域普通技術(shù)人員可以理解:實現(xiàn)上述各方法實施例的全部或部分步驟可以通過程序指令相關(guān)的硬件來完成。前述的程序可以存儲于一計算機可讀取存儲介質(zhì)中。該程序在執(zhí)行時,執(zhí)行包括上述各方法實施例的步驟;而前述的存儲介質(zhì)包括:R0M、RAM、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
[0084]最后應(yīng)說明的是:以上各實施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述各實施例對本發(fā)明進行了詳細的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當理解:其依然可以對前述各實施例所記載的技術(shù)方案進行修改,或者對其中部分或者全部技術(shù)特征進行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實施例技術(shù)方案的范圍。
【主權(quán)項】
1.一種多副本寫入存儲設(shè)備的方法,其特征在于,所述存儲設(shè)備包括控制器和至少兩個邏輯存儲單元,所述方法由所述控制器執(zhí)行,包括: 接收主機發(fā)送的第一寫數(shù)據(jù)請求,所述第一寫數(shù)據(jù)請求包括待訪問的第一邏輯存儲單元的身份標識號ID、目標數(shù)據(jù)和所述第一邏輯存儲單元的邏輯區(qū)塊地址LBA ; 確定所述第一邏輯存儲單元的所述LBA對應(yīng)的存儲空間中存儲的數(shù)據(jù)未被其他與所述第一寫數(shù)據(jù)請求有資源沖突的數(shù)據(jù)訪問請求訪問;其中,所述與所述第一寫數(shù)據(jù)請求有資源沖突的數(shù)據(jù)訪問請求是指與所述第一寫數(shù)據(jù)請求不能同時訪問相同邏輯存儲單元的相同LBA對應(yīng)的存儲空間的數(shù)據(jù)訪問請求; 將所述目標數(shù)據(jù)寫入所述第一邏輯存儲單元的所述LBA對應(yīng)的存儲空間中; 生成第二寫數(shù)據(jù)請求,所述第二寫數(shù)據(jù)請求包括第二邏輯存儲單元的ID、所述目標數(shù)據(jù)和所述第二邏輯存儲單元的LBA ; 將所述目標數(shù)據(jù)寫入所述第二邏輯存儲單元的所述LBA對應(yīng)的存儲空間中。2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述將所述目標數(shù)據(jù)寫入所述第二邏輯存儲單元的所述LBA對應(yīng)的存儲空間中,包括: 判斷所述第二邏輯存儲單元的所述LBA對應(yīng)的存儲空間中存儲的數(shù)據(jù)是否被其他與所述第二寫數(shù)據(jù)請求有資源沖突的數(shù)據(jù)訪問請求訪問;其中,所述與所述第二寫數(shù)據(jù)請求有資源沖突的數(shù)據(jù)訪問請求是指與所述第二寫數(shù)據(jù)請求不能同時訪問相同邏輯存儲單元的相同LBA對應(yīng)的存儲空間的數(shù)據(jù)訪問請求; 若所述第二邏輯存儲單元的所述LBA對應(yīng)的存儲空間中存儲的數(shù)據(jù)未被其他與所述第二寫數(shù)據(jù)請求有資源沖突的數(shù)據(jù)訪問請求訪問,則將所述目標數(shù)據(jù)寫入所述第二邏輯存儲單元的所述LBA對應(yīng)的存儲空間中;或者 若所述第二邏輯存儲單元的所述LBA對應(yīng)的存儲空間中存儲的數(shù)據(jù)被其他與所述第二寫數(shù)據(jù)請求有資源沖突的數(shù)據(jù)訪問請求訪問,則比較所述第一邏輯存儲單元的優(yōu)先級是否高于所述第二邏輯存儲單元的優(yōu)先級,若是,則暫時不執(zhí)行將所述目標數(shù)據(jù)寫入所述第二邏輯存儲單元的所述LBA對應(yīng)的存儲空間中的步驟,直到其他與所述第二寫數(shù)據(jù)請求有資源沖突的數(shù)據(jù)訪問請求對所述第二邏輯存儲單元的所述LBA對應(yīng)的存儲空間中存儲的數(shù)據(jù)的訪問完成時,將所述目標數(shù)據(jù)寫入所述第二邏輯存儲單元的所述LBA對應(yīng)的存儲空間中。3.根據(jù)權(quán)利要求2所述的方法,其特征在于,還包括:若所述第一邏輯存儲單元的優(yōu)先級不高于所述第二邏輯存儲單元的優(yōu)先級,則生成第三寫數(shù)據(jù)請求,所述第三寫數(shù)據(jù)請求包括第三邏輯存儲單元的ID、所述目標數(shù)據(jù)和所述第三邏輯存儲單元的LBA ;其中,所述第三邏輯存儲單元的優(yōu)先級高于所述第一邏輯存儲單元; 將所述目標數(shù)據(jù)寫入所述第三邏輯存儲單元的所述LBA對應(yīng)的存儲空間中。4.根據(jù)權(quán)利要求1-3中任一項所述的方法,其特征在于,所述方法,還包括: 接收所述主機發(fā)送的第一讀數(shù)據(jù)請求,所述第一讀數(shù)據(jù)請求包括待訪問邏輯存儲單元的ID和所述待訪問邏輯存儲單元的LBA ;其中,所述待訪問邏輯存儲單元包括:所述第一邏輯存儲單元或者所述第二邏輯存儲單元; 判斷所述待訪問邏輯存儲單元的所述LBA對應(yīng)的存儲空間中存儲的所述目標數(shù)據(jù)是否被其他與所述第一讀數(shù)據(jù)請求有資源沖突的數(shù)據(jù)訪問請求訪問;其中,所述與所述第一讀數(shù)據(jù)請求有資源沖突的數(shù)據(jù)訪問請求是指與所述第一讀數(shù)據(jù)請求不能同時訪問相同邏輯存儲單元的相同LBA對應(yīng)的存儲空間的數(shù)據(jù)訪問請求; 若所述待訪問邏輯存儲單元的所述LBA對應(yīng)的存儲空間中存儲的所述目標數(shù)據(jù)未被其他與所述第一讀數(shù)據(jù)請求有資源沖突的數(shù)據(jù)訪問請求訪問,則讀取所述待訪問邏輯存儲單元的所述LBA對應(yīng)的存儲空間中存儲的所述目標數(shù)據(jù);或者, 若所述待訪問邏輯存儲單元的所述LBA對應(yīng)的存儲空間中存儲的所述目標數(shù)據(jù)被其他與所述第一讀數(shù)據(jù)請求有資源沖突的數(shù)據(jù)訪問請求訪問,則暫時不執(zhí)行讀取所述待訪問邏輯存儲單元的所述LBA對應(yīng)的存儲空間中存儲的所述目標數(shù)據(jù)的步驟,直到其他與所述第一讀數(shù)據(jù)請求有資源沖突的數(shù)據(jù)訪問請求對所述待訪問邏輯存儲單元的所述LBA對應(yīng)的存儲空間中存儲的所述目標數(shù)據(jù)的訪問完成時,讀取所述待訪問邏輯存儲單元的所述LBA對應(yīng)的存儲空間中存儲的所述目標數(shù)據(jù)。5.一種存儲設(shè)備,其特征在于,所述存儲設(shè)備包括控制器和至少兩個邏輯存儲單元,其中,所述邏輯存儲單元用于存儲數(shù)據(jù),所述控制器用于: 接收主機發(fā)送的第一寫數(shù)據(jù)請求,所述第一寫數(shù)據(jù)請求包括待訪問的第一邏輯存儲單元的身份標識號ID、目標數(shù)據(jù)和所述第一邏輯存儲單元的邏輯區(qū)塊地址LBA ; 確定所述第一邏輯存儲單元的所述LBA對應(yīng)的存儲空間中存儲的數(shù)據(jù)未被其他與所述第一寫數(shù)據(jù)請求有資源沖突的數(shù)據(jù)訪問請求訪問;其中,所述與所述第一寫數(shù)據(jù)請求有資源沖突的數(shù)據(jù)訪問請求是指與所述第一寫數(shù)據(jù)請求不能同時訪問相同邏輯存儲單元的相同LBA對應(yīng)的存儲空間的數(shù)據(jù)訪問請求; 將所述目標數(shù)據(jù)寫入所述第一邏輯存儲單元的所述LBA對應(yīng)的存儲空間中; 生成第二寫數(shù)據(jù)請求,所述第二寫數(shù)據(jù)請求包括第二邏輯存儲單元的ID、所述目標數(shù)據(jù)和所述第二邏輯存儲單元的LBA ; 將所述目標數(shù)據(jù)寫入所述第二邏輯存儲單元的所述LBA對應(yīng)的存儲空間中。6.根據(jù)權(quán)利要求5所述的設(shè)備,其特征在于,所述控制器還具體用于: 判斷所述第二邏輯存儲單元的所述LBA對應(yīng)的存儲空間中存儲的數(shù)據(jù)是否被其他與所述第二寫數(shù)據(jù)請求有資源沖突的數(shù)據(jù)訪問請求訪問;其中,所述與所述第二寫數(shù)據(jù)請求有資源沖突的數(shù)據(jù)訪問請求是指與所述第二寫數(shù)據(jù)請求不能同時訪問相同邏輯存儲單元的相同LBA對應(yīng)的存儲空間的數(shù)據(jù)訪問請求; 若所述第二邏輯存儲單元的所述LBA對應(yīng)的存儲空間中存儲的數(shù)據(jù)未被其他與所述第二寫數(shù)據(jù)請求有資源沖突的數(shù)據(jù)訪問請求訪問,則將所述目標數(shù)據(jù)寫入所述第二邏輯存儲單元的所述LBA對應(yīng)的存儲空間中;或者 若所述第二邏輯存儲單元的所述LBA對應(yīng)的存儲空間中存儲的數(shù)據(jù)被其他與所述第二寫數(shù)據(jù)請求有資源沖突的數(shù)據(jù)訪問請求訪問,則比較所述第一邏輯存儲單元的優(yōu)先級是否高于所述第二邏輯存儲單元的優(yōu)先級,若是,則暫時不執(zhí)行將所述目標數(shù)據(jù)寫入所述第二邏輯存儲單元的所述LBA對應(yīng)的存儲空間中的步驟,直到其他與所述第二寫數(shù)據(jù)請求有資源沖突的數(shù)據(jù)訪問請求對所述第二邏輯存儲單元的所述LBA對應(yīng)的存儲空間中存儲的數(shù)據(jù)的訪問完成時,將所述目標數(shù)據(jù)寫入所述第二邏輯存儲單元的所述LBA對應(yīng)的存儲空間中。7.根據(jù)權(quán)利要求6所述的設(shè)備,其特征在于,所述控制器還具體用于: 若所述第一邏輯存儲單元的優(yōu)先級不高于所述第二邏輯存儲單元的優(yōu)先級,則生成第三寫數(shù)據(jù)請求,所述第三寫數(shù)據(jù)請求包括第三邏輯存儲單元的ID、所述目標數(shù)據(jù)和所述第三邏輯存儲單元的LBA ;其中,所述第三邏輯存儲單元的優(yōu)先級高于所述第一邏輯存儲單元; 將所述目標數(shù)據(jù)寫入所述第三邏輯存儲單元的所述LBA對應(yīng)的存儲空間中。8.根據(jù)權(quán)利要求5-7中任一項所述的設(shè)備,其特征在于,所述控制器還具體用于: 接收所述主機發(fā)送的第一讀數(shù)據(jù)請求,所述第一讀數(shù)據(jù)請求包括待訪問邏輯存儲單元的ID和所述待訪問邏輯存儲單元的LBA ;其中,所述待訪問邏輯存儲單元包括:所述第一邏輯存儲單元或者所述第二邏輯存儲單元; 判斷所述待訪問邏輯存儲單元的所述LBA對應(yīng)的存儲空間中存儲的所述目標數(shù)據(jù)是否被其他與所述第一讀數(shù)據(jù)請求有資源沖突的數(shù)據(jù)訪問請求訪問;其中,所述與所述第一讀數(shù)據(jù)請求有資源沖突的數(shù)據(jù)訪問請求是指與所述第一讀數(shù)據(jù)請求不能同時訪問相同邏輯存儲單元的相同LBA對應(yīng)的存儲空間的數(shù)據(jù)訪問請求; 若所述待訪問邏輯存儲單元的所述LBA對應(yīng)的存儲空間中存儲的所述目標數(shù)據(jù)未被其他與所述第一讀數(shù)據(jù)請求有資源沖突的數(shù)據(jù)訪問請求訪問,則讀取所述待訪問邏輯存儲單元的所述LBA對應(yīng)的存儲空間中存儲的所述目標數(shù)據(jù);或者, 若所述待訪問邏輯存儲單元的所述LBA對應(yīng)的存儲空間中存儲的所述目標數(shù)據(jù)被其他與所述第一讀數(shù)據(jù)請求有資源沖突的數(shù)據(jù)訪問請求訪問,則暫時不執(zhí)行讀取所述待訪問邏輯存儲單元的所述LBA對應(yīng)的存儲空間中存儲的所述目標數(shù)據(jù)的步驟,直到其他與所述第一讀數(shù)據(jù)請求有資源沖突的數(shù)據(jù)訪問請求對所述待訪問邏輯存儲單元的所述LBA對應(yīng)的存儲空間中存儲的所述目標數(shù)據(jù)的訪問完成時,讀取所述待訪問邏輯存儲單元的所述LBA對應(yīng)的存儲空間中存儲的所述目標數(shù)據(jù)。
【文檔編號】G06F3/06GK105988724SQ201510075562
【公開日】2016年10月5日
【申請日】2015年2月12日
【發(fā)明人】李小華, 歐陽戟, 王奇
【申請人】華為技術(shù)有限公司