專利名稱:一種寫(xiě)入數(shù)據(jù)的方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)存儲(chǔ)技術(shù)領(lǐng)域,更具體地說(shuō),涉及一種寫(xiě)入數(shù)據(jù)的方法及系統(tǒng)。
背景技術(shù):
隨著科技的發(fā)展與因特網(wǎng)的廣泛應(yīng)用,企業(yè)、政府等機(jī)關(guān)產(chǎn)生的數(shù)據(jù)量越來(lái)越大,為這些數(shù)據(jù)合理規(guī)劃存儲(chǔ)空間成為當(dāng)前存儲(chǔ)解決方案的當(dāng)務(wù)之急。目前在眾多的存儲(chǔ)解決方案中,精簡(jiǎn)配置(thin provisioning)由于其按需分配的存儲(chǔ)空間管理方式得到了廣泛的應(yīng)用?,F(xiàn)有技術(shù)提供的精簡(jiǎn)配置系統(tǒng)包括精簡(jiǎn)池,精簡(jiǎn)LUN(Logical Unit Number,邏 輯單元號(hào))和映射表;其中,精簡(jiǎn)池為精簡(jiǎn)配置系統(tǒng)底層的物理存儲(chǔ)空間,其分配粒度是固定的;精簡(jiǎn)LUN為建立在精簡(jiǎn)池之上的邏輯硬盤(pán);映射表包括多個(gè)映射標(biāo)記,該映射標(biāo)記用于記錄精簡(jiǎn)池存儲(chǔ)的數(shù)據(jù)的物理地址,與該數(shù)據(jù)對(duì)應(yīng)的精簡(jiǎn)LUN邏輯地址的對(duì)應(yīng)關(guān)系。精簡(jiǎn)配置系統(tǒng)將數(shù)據(jù)寫(xiě)入存儲(chǔ)的過(guò)程如下精簡(jiǎn)LUN根據(jù)主機(jī)下發(fā)的請(qǐng)求寫(xiě)入數(shù)據(jù)的命令,以精簡(jiǎn)池固定分配粒度的整數(shù)倍大小向精簡(jiǎn)池申請(qǐng)存儲(chǔ)空間,精簡(jiǎn)池分配存儲(chǔ)空間,以使待寫(xiě)入數(shù)據(jù)寫(xiě)入精簡(jiǎn)池分配的存儲(chǔ)空間中,在待寫(xiě)入數(shù)據(jù)寫(xiě)入精簡(jiǎn)池分配的存儲(chǔ)空間后,映射表記錄該待寫(xiě)入數(shù)據(jù)在精簡(jiǎn)LUN上對(duì)應(yīng)的邏輯地址,與在精簡(jiǎn)池中對(duì)應(yīng)的物理地址,以表示該待寫(xiě)入數(shù)據(jù)實(shí)際分配的存儲(chǔ)空間。由于現(xiàn)有技術(shù)中,映射表的一個(gè)映射標(biāo)記所能記錄的存儲(chǔ)空間大小是以精簡(jiǎn)池的分配粒度為標(biāo)準(zhǔn),因此當(dāng)精簡(jiǎn)池的分配粒度固定時(shí),一個(gè)映射標(biāo)記只能記錄一個(gè)大小為該固定分配粒度的存儲(chǔ)空間,如果申請(qǐng)的存儲(chǔ)空間是該固定分配粒度的N倍(N為大于I的正整數(shù)),那么就會(huì)產(chǎn)生N個(gè)映射標(biāo)記?,F(xiàn)有精簡(jiǎn)配置系統(tǒng)的精簡(jiǎn)池是以自身固定的分配粒度分配存儲(chǔ)空間,且為綜合大數(shù)據(jù)業(yè)務(wù)和小數(shù)據(jù)業(yè)務(wù)的需求,固定分配粒度的取值較為適中(通常為兆級(jí)),因此存在浪費(fèi)系統(tǒng)資源,系統(tǒng)資源利用率低的現(xiàn)象,即使分配粒度過(guò)小,也會(huì)使用多個(gè)映射標(biāo)記對(duì)該大存儲(chǔ)需求業(yè)務(wù)進(jìn)行記錄,這就造成系統(tǒng)內(nèi)存資源的浪費(fèi)。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明實(shí)施例提供一種寫(xiě)入數(shù)據(jù)的方法及系統(tǒng),以解決現(xiàn)有精簡(jiǎn)配置系統(tǒng)由于精簡(jiǎn)池以自身固定的分配粒度分配存儲(chǔ)空間,而造成的浪費(fèi)系統(tǒng)資源、系統(tǒng)資源利用率低的問(wèn)題。為實(shí)現(xiàn)上述目的,本發(fā)明提供如下技術(shù)方案一種寫(xiě)入數(shù)據(jù)的方法,包括接收請(qǐng)求寫(xiě)入數(shù)據(jù)的命令,所述請(qǐng)求寫(xiě)入數(shù)據(jù)的命令包括待寫(xiě)入數(shù)據(jù)、所述待寫(xiě)入數(shù)據(jù)的長(zhǎng)度以及待寫(xiě)入精簡(jiǎn)邏輯單元號(hào)LUN的邏輯地址;判斷是否給所述待寫(xiě)入精簡(jiǎn)LUN的邏輯地址完全分配精簡(jiǎn)池存儲(chǔ)空間;若是,則將所述待寫(xiě)入數(shù)據(jù)寫(xiě)入精簡(jiǎn)池已分配的存儲(chǔ)空間中;若否,確定所述邏輯地址中未被分配精簡(jiǎn)池存儲(chǔ)空間的連續(xù)的邏輯地址所能寫(xiě)入數(shù)據(jù)的長(zhǎng)度,以存儲(chǔ)器所能提供的最小存儲(chǔ)單元的整數(shù)倍大小,向所述精簡(jiǎn)池申請(qǐng)大于或等于所述連續(xù)的邏輯地址所能寫(xiě)入數(shù)據(jù)的長(zhǎng)度的存儲(chǔ)空間;接收精簡(jiǎn)池響應(yīng)上述申請(qǐng)所分配的存儲(chǔ)空間的信息,將待寫(xiě)入數(shù)據(jù)寫(xiě)入相應(yīng)的存儲(chǔ)空間中。本發(fā)明還提 供一種寫(xiě)入數(shù)據(jù)的系統(tǒng),包括接收模塊,用于接收請(qǐng)求寫(xiě)入數(shù)據(jù)的命令,所述請(qǐng)求寫(xiě)入數(shù)據(jù)的命令包括待寫(xiě)入數(shù)據(jù)、所述待寫(xiě)入數(shù)據(jù)的長(zhǎng)度以及待寫(xiě)入精簡(jiǎn)邏輯單元號(hào)LUN的邏輯地址;判斷模塊,用于判斷是否給所述待寫(xiě)入精簡(jiǎn)LUN的邏輯地址完全分配精簡(jiǎn)池存儲(chǔ)空間;確定模塊,用于在所述判斷模塊的判斷結(jié)果為否的情況下,確定所述邏輯地址中,未被分配精簡(jiǎn)池存儲(chǔ)空間的連續(xù)的邏輯地址所能寫(xiě)入數(shù)據(jù)的長(zhǎng)度;申請(qǐng)模塊,用于以存儲(chǔ)器所能提供的最小存儲(chǔ)單元的整數(shù)倍大小,向所述精簡(jiǎn)池申請(qǐng)大于或等于所述連續(xù)的邏輯地址所能寫(xiě)入數(shù)據(jù)的長(zhǎng)度的存儲(chǔ)空間;存儲(chǔ)信息接收模塊,用于接收精簡(jiǎn)池響應(yīng)所述申請(qǐng)模塊的申請(qǐng)所分配的存儲(chǔ)空間的信息;寫(xiě)入模塊,用于在所述判斷模塊的判斷結(jié)果為是的情況下,將所述待寫(xiě)入數(shù)據(jù)寫(xiě)入精簡(jiǎn)池已分配的存儲(chǔ)空間中,或在所述存儲(chǔ)信息接收模塊接收到精簡(jiǎn)池所分配的存儲(chǔ)空間信息后,將待寫(xiě)入數(shù)據(jù)寫(xiě)入相應(yīng)的存儲(chǔ)空間中?;谏鲜黾夹g(shù)方案,本發(fā)明實(shí)施例所提供的寫(xiě)入數(shù)據(jù)的方法取消了現(xiàn)有技術(shù)中的精簡(jiǎn)池固定分配粒度,以存儲(chǔ)器所能提供的最小存儲(chǔ)單元的整數(shù)倍大小,向精簡(jiǎn)池申請(qǐng)存儲(chǔ)空間,由于申請(qǐng)的存儲(chǔ)空間是以存儲(chǔ)器所能提供的最小存儲(chǔ)單元為基礎(chǔ),因此可以使得申請(qǐng)到的精簡(jiǎn)池中的存儲(chǔ)空間無(wú)限接近于數(shù)據(jù)所需的存儲(chǔ)空間大小,盡量避免浪費(fèi)精簡(jiǎn)池中的系統(tǒng)資源;其次,精簡(jiǎn)池分配出的存儲(chǔ)空間作為精簡(jiǎn)池的一個(gè)整體分配粒度,不再以現(xiàn)有技術(shù)的精簡(jiǎn)池固定分配粒度進(jìn)行區(qū)分,使得待寫(xiě)入精簡(jiǎn)LUN的邏輯地址,與其在精簡(jiǎn)池上對(duì)應(yīng)的物理地址,可以一個(gè)映射標(biāo)記的形式記錄在映射表中,節(jié)省了內(nèi)存資源。本發(fā)明解決了現(xiàn)有精簡(jiǎn)配置系統(tǒng)由于精簡(jiǎn)池以自身固定的分配粒度分配存儲(chǔ)空間,而造成的浪費(fèi)系統(tǒng)資源、系統(tǒng)資源利用率低的問(wèn)題,實(shí)現(xiàn)了系統(tǒng)資源的有效利用。
為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖I為本發(fā)明實(shí)施例提供的一種寫(xiě)入數(shù)據(jù)的方法的流程圖;圖2為本發(fā)明實(shí)施例提供的確定邏輯連續(xù)地址的方法流程圖;圖3為本發(fā)明實(shí)施例提供的一種寫(xiě)入數(shù)據(jù)的系統(tǒng)的結(jié)構(gòu)框圖;圖4為本發(fā)明實(shí)施例提供的判斷模塊的結(jié)構(gòu)框圖;圖5為本發(fā)明實(shí)施例提供的確定模塊的結(jié)構(gòu)框圖;圖6為本發(fā)明實(shí)施例提供的申請(qǐng)模塊的結(jié)構(gòu)框圖7為本發(fā)明實(shí)施例提供的寫(xiě)入數(shù)據(jù)的系統(tǒng)的另一結(jié)構(gòu)框圖;圖8為本發(fā)明實(shí)施例提供的寫(xiě)入數(shù)據(jù)的系統(tǒng)的硬件架構(gòu)圖;圖9為本發(fā)明實(shí)施例提供的寫(xiě)入數(shù)據(jù)的系統(tǒng)的另一硬件架構(gòu)圖。
具體實(shí)施例方式本發(fā)明實(shí)施例提供一種基于精簡(jiǎn)配置系統(tǒng)的寫(xiě)入數(shù)據(jù)的方法及系統(tǒng),卸除設(shè)置于精簡(jiǎn)池中的固定分配粒度,根據(jù)主機(jī)下發(fā)的請(qǐng)求寫(xiě)入數(shù)據(jù)命令中未分配存儲(chǔ)空間的邏輯地址連續(xù)的數(shù)據(jù)的長(zhǎng)度,以存儲(chǔ)器所能提供的最小存儲(chǔ)單元的整數(shù)倍大小,向精簡(jiǎn)池申請(qǐng)存儲(chǔ)空間,使得精簡(jiǎn)配置系統(tǒng)的資源得到有效的利用。下面結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本 發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。圖I為本發(fā)明實(shí)施例提供的一種寫(xiě)入數(shù)據(jù)的方法的流程圖,參照?qǐng)D1,該方法可以包括步驟S100、接收請(qǐng)求寫(xiě)入數(shù)據(jù)的命令,所述請(qǐng)求寫(xiě)入數(shù)據(jù)的命令包括待寫(xiě)入數(shù)據(jù)、所述待寫(xiě)入數(shù)據(jù)的長(zhǎng)度以及待寫(xiě)入精簡(jiǎn)邏輯單元號(hào)LUN的邏輯地址;請(qǐng)求寫(xiě)入數(shù)據(jù)的命令為主機(jī)所下發(fā),包含待寫(xiě)入數(shù)據(jù)、所述待寫(xiě)入數(shù)據(jù)的長(zhǎng)度以及待寫(xiě)入精簡(jiǎn)LUN的邏輯地址,其中所述待寫(xiě)入數(shù)據(jù)的長(zhǎng)度用于表示待寫(xiě)入數(shù)據(jù)所需的存儲(chǔ)容量信息,待寫(xiě)入精簡(jiǎn)LUN的邏輯地址用于指示待寫(xiě)入數(shù)據(jù)需要寫(xiě)入的對(duì)應(yīng)精簡(jiǎn)池物理空間。接收請(qǐng)求寫(xiě)入數(shù)據(jù)的命令的方法可以與現(xiàn)有技術(shù)相同,由生產(chǎn)卷完成;也可預(yù)設(shè)接收裝置,直接接收主機(jī)下發(fā)的請(qǐng)求寫(xiě)入數(shù)據(jù)的命令;本發(fā)明實(shí)施例具體的請(qǐng)求寫(xiě)入數(shù)據(jù)的命令的接收方式并不設(shè)限。步驟S200、判斷是否給所述待寫(xiě)入精簡(jiǎn)LUN的邏輯地址完全分配精簡(jiǎn)池存儲(chǔ)空間,若是,執(zhí)行步驟S300、若否,執(zhí)行步驟S400 ;所述待寫(xiě)入精簡(jiǎn)LUN的邏輯地址分配精簡(jiǎn)池存儲(chǔ)空間的狀況包括三種情況 第一、所述待寫(xiě)入精簡(jiǎn)LUN的邏輯地址部分已分配精簡(jiǎn)池存儲(chǔ)空間;第二、所述待寫(xiě)入精簡(jiǎn)LUN的邏輯地址已全部分配精簡(jiǎn)池存儲(chǔ)空間;第三、所述待寫(xiě)入精簡(jiǎn)LUN的邏輯地址全部未分配精簡(jiǎn)池存儲(chǔ)空間。其中,第二種情況為判斷結(jié)果為是的情況的,執(zhí)行步驟S300,第一和第三種情況為判斷結(jié)果為否的情況,執(zhí)行步驟S400。步驟S300、將所述待寫(xiě)入數(shù)據(jù)寫(xiě)入精簡(jiǎn)池已分配的存儲(chǔ)空間中;當(dāng)所述待寫(xiě)入精簡(jiǎn)LUN的邏輯地址已全部分配精簡(jiǎn)池存儲(chǔ)空間,則參照現(xiàn)有技術(shù)的處理方法,將所述待寫(xiě)入數(shù)據(jù)直接寫(xiě)入已分配的存儲(chǔ)空間中。步驟S400、確定所述邏輯地址中未被分配精簡(jiǎn)池存儲(chǔ)空間的連續(xù)的邏輯地址所能寫(xiě)入數(shù)據(jù)的長(zhǎng)度,以存儲(chǔ)器所能提供的最小存儲(chǔ)單元的整數(shù)倍大小,向所述精簡(jiǎn)池申請(qǐng)大于或等于所述連續(xù)的邏輯地址所能寫(xiě)入數(shù)據(jù)的長(zhǎng)度的存儲(chǔ)空間;這里的存儲(chǔ)器可以是磁盤(pán)、磁帶或者固態(tài)硬盤(pán)。步驟S200判斷結(jié)果為否的情況包括下述兩者所述待寫(xiě)入精簡(jiǎn)LUN的邏輯地址完全未分配精簡(jiǎn)池存儲(chǔ)空間;所述待寫(xiě)入精簡(jiǎn)LUN的邏輯地址部分分配精簡(jiǎn)池存儲(chǔ)空間部分分配。在實(shí)際應(yīng)用中,這兩種情況只會(huì)出現(xiàn)其中的一種,確定了實(shí)際應(yīng)用中對(duì)應(yīng)的情況后,確定對(duì)應(yīng)情況下的邏輯地址中未被分配精簡(jiǎn)池存儲(chǔ)空間的連續(xù)的邏輯地址所能寫(xiě)入數(shù)據(jù)的長(zhǎng)度。在確定了所述連續(xù)的邏輯地址所能寫(xiě)入數(shù)據(jù)的長(zhǎng)度后,可根據(jù)公式存儲(chǔ)器所能提供的最小存儲(chǔ)單元的大小XN,大于或等于所述連續(xù)的邏輯地址所能寫(xiě)入數(shù)據(jù)的長(zhǎng)度;得出N值,以所述N個(gè)存儲(chǔ)器所能提供的最小存儲(chǔ)單元的大小,向精簡(jiǎn)池申請(qǐng)存儲(chǔ)空間。優(yōu)選的,在滿足所述連續(xù)的邏輯地址所能寫(xiě)入數(shù)據(jù)的存儲(chǔ)需求的情況下,向精簡(jiǎn)池申請(qǐng)大小趨近于所述連續(xù)的邏輯 地址所能寫(xiě)入數(shù)據(jù)的長(zhǎng)度的存儲(chǔ)空間。優(yōu)選的,向精簡(jiǎn)池申請(qǐng)存儲(chǔ)空間可由精簡(jiǎn)LUN執(zhí)行,具體的,可在精簡(jiǎn)LUN上預(yù)先定義分配粒度的最小值,所述分配粒度最小值為所述存儲(chǔ)器所能提供的最小存儲(chǔ)單元的大小,以所述精簡(jiǎn)LUN分配粒度的最小值的整數(shù)倍為單位,向所述精簡(jiǎn)池申請(qǐng)大于或等于所述連續(xù)的邏輯地址所能寫(xiě)入數(shù)據(jù)的長(zhǎng)度,所述申請(qǐng)的精簡(jiǎn)池的存儲(chǔ)空間的大小與所述待寫(xiě)入數(shù)據(jù)的長(zhǎng)度之間的差值小于預(yù)設(shè)閾值。目前,存儲(chǔ)器所能提供的最小存儲(chǔ)單元為扇區(qū),大小為512字節(jié)。步驟S500、接收精簡(jiǎn)池響應(yīng)上述申請(qǐng)所分配的存儲(chǔ)空間的信息,將待寫(xiě)入數(shù)據(jù)寫(xiě)入相應(yīng)的存儲(chǔ)空間中。精簡(jiǎn)池接收到存儲(chǔ)空間申請(qǐng)后,響應(yīng)所述申請(qǐng),分配與所述申請(qǐng)的存儲(chǔ)空間大小相同的存儲(chǔ)空間,發(fā)送所分配的存儲(chǔ)空間的信息,該分配的存儲(chǔ)空間的信息記錄有精簡(jiǎn)池所分配的存儲(chǔ)空間的位置信息與大小信息;在獲取了所述分配的存儲(chǔ)空間的信息后,便可從該信息中獲得所述連續(xù)的邏輯地址中的數(shù)據(jù)應(yīng)該寫(xiě)入的存儲(chǔ)空間的位置與大小,將所述連續(xù)的邏輯地址所對(duì)應(yīng)的待寫(xiě)入數(shù)據(jù)寫(xiě)入相應(yīng)的存儲(chǔ)空間中。圖I示出的寫(xiě)入數(shù)據(jù)的方法,在接收到請(qǐng)求寫(xiě)入數(shù)據(jù)的命令之后,判斷是否給所述待寫(xiě)入精簡(jiǎn)LUN的邏輯地址完全分配精簡(jiǎn)池存儲(chǔ)空間,若是,則直接將待寫(xiě)入數(shù)據(jù)寫(xiě)入已分配存儲(chǔ)空間中,若否,確定所述邏輯地址中未被分配精簡(jiǎn)池存儲(chǔ)空間的連續(xù)的邏輯地址所能寫(xiě)入數(shù)據(jù)的長(zhǎng)度,以存儲(chǔ)器所能提供的最小存儲(chǔ)單元的整數(shù)倍大小,向所述精簡(jiǎn)池申請(qǐng)大于或等于所述連續(xù)的邏輯地址所能寫(xiě)入數(shù)據(jù)的長(zhǎng)度的存儲(chǔ)空間,在得到精簡(jiǎn)池分配的存儲(chǔ)空間的彳目息后,將待與入數(shù)據(jù)與入相應(yīng)存儲(chǔ)空間中?,F(xiàn)有精簡(jiǎn)配置系統(tǒng)的精簡(jiǎn)池是以自身固定的分配粒度分配存儲(chǔ)空間,且為綜合大數(shù)據(jù)業(yè)務(wù)和小數(shù)據(jù)業(yè)務(wù)的需求,固定分配粒度的取值較為適中(通常為兆級(jí)),因此存在浪費(fèi)系統(tǒng)資源,系統(tǒng)資源利用率低的現(xiàn)象,具體的(I)固定分配粒度相對(duì)于小數(shù)據(jù)業(yè)務(wù)而言過(guò)大;由于精簡(jiǎn)LUN只能以精簡(jiǎn)池預(yù)定固定分配粒度的正整數(shù)倍申請(qǐng)存儲(chǔ)空間,那么對(duì)于小數(shù)據(jù)業(yè)務(wù),如銀行的儲(chǔ)戶資料數(shù)據(jù)庫(kù)等,精簡(jiǎn)LUN所申請(qǐng)的最小存儲(chǔ)空間(一個(gè)固定分配粒度的存儲(chǔ)空間)相對(duì)于主機(jī)下發(fā)的待寫(xiě)入數(shù)據(jù)也大很多,這就造成精簡(jiǎn)池分配的存儲(chǔ)空間無(wú)法合理利用,存在浪費(fèi)精簡(jiǎn)池存儲(chǔ)資源的情況;(2)對(duì)于大數(shù)據(jù)業(yè)務(wù)所分配的存儲(chǔ)空間,需使用多個(gè)映射標(biāo)記進(jìn)行記錄;對(duì)于大數(shù)據(jù)業(yè)務(wù),如視頻庫(kù)等,精簡(jiǎn)LUN申請(qǐng)的分配空間為所述固定分配粒度的多倍,則需要使用多個(gè)映射標(biāo)記對(duì)該大存儲(chǔ)需求業(yè)務(wù)進(jìn)行記錄,這就造成系統(tǒng)內(nèi)存資源的浪費(fèi)。而本發(fā)明取消了現(xiàn)有技術(shù)中的精簡(jiǎn)池固定分配粒度,以存儲(chǔ)器所能提供的最小存儲(chǔ)單元的整數(shù)倍大小,向精簡(jiǎn)池申請(qǐng)存儲(chǔ)空間,由于申請(qǐng)的存儲(chǔ)空間是以存儲(chǔ)器所能提供的最小存儲(chǔ)單元為基礎(chǔ),因此可以使得申請(qǐng)到的精簡(jiǎn)池中的存儲(chǔ)空間無(wú)限接近于數(shù)據(jù)所需的存儲(chǔ)空間大小,盡量避免精簡(jiǎn)池中系統(tǒng)資源的浪費(fèi);其次,精簡(jiǎn)池分配出的存儲(chǔ)空間作為精簡(jiǎn)池的一個(gè)整體分配粒度,不再以現(xiàn)有技術(shù)的精簡(jiǎn)池固定分配粒度進(jìn)行區(qū)分,使得待寫(xiě)入精簡(jiǎn)LUN的邏輯地址,與其在精簡(jiǎn)池上對(duì)應(yīng)的物理地址,可以一個(gè)映射標(biāo)記的形式記錄在映射表中,節(jié)省了內(nèi)存資源。本發(fā)明解決了現(xiàn)有精簡(jiǎn)配置系統(tǒng)由于精簡(jiǎn)池以自身固定的分配粒度分配存儲(chǔ)空間,而造成的浪費(fèi)系統(tǒng)資源、系統(tǒng)資源利用率低的問(wèn)題,實(shí)現(xiàn)了系統(tǒng)資源的有效利用。圖I所示步驟S200中判斷是否給所述待寫(xiě)入精簡(jiǎn)LUN的邏輯地址完全分配精簡(jiǎn)池存儲(chǔ)空間,可以通過(guò)檢測(cè)所述待寫(xiě)入精簡(jiǎn)LUN的邏輯地址在映射表中的記錄情況來(lái)實(shí)現(xiàn),具體方法可如圖2所示,該方法包括步驟步驟S210、檢測(cè)所述待寫(xiě)入精簡(jiǎn)LUN的邏輯地址在所述映射表中的記錄;
步驟S220、若所述待寫(xiě)入精簡(jiǎn)LUN的邏輯地址完全記錄在所述映射表中,則判定已經(jīng)給所述待寫(xiě)入精簡(jiǎn)LUN的邏輯地址完全分配精簡(jiǎn)池存儲(chǔ)空間;步驟S230、若所述待寫(xiě)入精簡(jiǎn)LUN的邏輯地址部分或沒(méi)有記錄在所述映射表中,則判定未給所述待寫(xiě)入精簡(jiǎn)LUN的邏輯地址完全分配精簡(jiǎn)池存儲(chǔ)空間。圖I所示步驟S400中確定所述邏輯地址中,未被分配精簡(jiǎn)池存儲(chǔ)空間的連續(xù)的邏輯地址所能寫(xiě)入數(shù)據(jù)的長(zhǎng)度的具體方法可依如下所述對(duì)于未給所述待寫(xiě)入精簡(jiǎn)LUN的邏輯地址分配精簡(jiǎn)池存儲(chǔ)空間的情況,即所述待寫(xiě)入精簡(jiǎn)LUN的邏輯地址完全未分配精簡(jiǎn)池存儲(chǔ)空間,則所述未被分配精簡(jiǎn)池存儲(chǔ)空間的連續(xù)的邏輯地址所能寫(xiě)入數(shù)據(jù)的長(zhǎng)度為所述請(qǐng)求寫(xiě)入數(shù)據(jù)的命令中的待寫(xiě)入數(shù)據(jù)的長(zhǎng)度;對(duì)于未完全給所述待寫(xiě)入精簡(jiǎn)LUN的邏輯地址分配精簡(jiǎn)池存儲(chǔ)空間的情況,即所述待寫(xiě)入精簡(jiǎn)LUN的邏輯地址部分分配精簡(jiǎn)池存儲(chǔ)空間部分分配,需對(duì)整個(gè)待寫(xiě)入數(shù)據(jù)進(jìn)行拆分,具體可以為以已分配存儲(chǔ)空間對(duì)應(yīng)的邏輯連續(xù)地址為拆分點(diǎn),對(duì)所述待寫(xiě)入精簡(jiǎn)LUN的邏輯地址進(jìn)行拆分,拆分后的所述待寫(xiě)入精簡(jiǎn)LUN的邏輯地址包括已被分配存儲(chǔ)空間的連續(xù)的邏輯地址和未被分配存儲(chǔ)空間的連續(xù)的邏輯地址,其中,已被分配存儲(chǔ)空間的連續(xù)的邏輯地址在映射表中存在記錄,未被分配存儲(chǔ)空間的連續(xù)的邏輯地址在映射表中不存在記錄;計(jì)算拆分后的未被分配存儲(chǔ)空間的連續(xù)的邏輯地址所能寫(xiě)入數(shù)據(jù)的長(zhǎng)度,具體計(jì)算方法可參照現(xiàn)有的數(shù)據(jù)長(zhǎng)度計(jì)算方法,此處不再贅述;將拆分后的未被分配精簡(jiǎn)池存儲(chǔ)空間的連續(xù)的邏輯地址所能寫(xiě)入數(shù)據(jù)的長(zhǎng)度確定為未被分配精簡(jiǎn)池存儲(chǔ)空間的連續(xù)的邏輯地址所能寫(xiě)入數(shù)據(jù)的長(zhǎng)度。對(duì)于未完全給所述待寫(xiě)入精簡(jiǎn)LUN的邏輯地址分配精簡(jiǎn)池存儲(chǔ)空間的情況,由于拆分后的所述待寫(xiě)入精簡(jiǎn)LUN的邏輯地址包括已被分配存儲(chǔ)空間的連續(xù)的邏輯地址和未被分配存儲(chǔ)空間的連續(xù)的邏輯地址,因此圖I所示步驟S500在將所述未被分配存儲(chǔ)空間的連續(xù)的邏輯地址對(duì)應(yīng)的數(shù)據(jù)寫(xiě)入,精簡(jiǎn)池分配的存儲(chǔ)空間的同時(shí),還可以包括步驟將已被分配存儲(chǔ)空間的連續(xù)的邏輯地址所對(duì)應(yīng)的待寫(xiě)入數(shù)據(jù),寫(xiě)入已分配的存儲(chǔ)空間中。圖I所示步驟S500之后還可以包括步驟
將所述待寫(xiě)入精簡(jiǎn) LUN的邏輯地址,與其在精簡(jiǎn)池上對(duì)應(yīng)的物理地址,以映射標(biāo)記的形式記錄在映射表中;優(yōu)選的,可以一個(gè)映射標(biāo)記的形式記錄。發(fā)明人在對(duì)本發(fā)明的實(shí)踐過(guò)程中發(fā)現(xiàn),以存儲(chǔ)器所能提供的最小存儲(chǔ)單元的整數(shù)倍大小,向所述精簡(jiǎn)池申請(qǐng)大于或等于,所述連續(xù)的邏輯地址所能寫(xiě)入數(shù)據(jù)的長(zhǎng)度的存儲(chǔ)空間,可以優(yōu)選為以存儲(chǔ)器扇區(qū)的2的冪次方倍,向精簡(jiǎn)池申請(qǐng)大于或等于所述連續(xù)的邏輯地址所能寫(xiě)入數(shù)據(jù)的長(zhǎng)度的存儲(chǔ)空間。這樣的數(shù)值設(shè)置以通用的二進(jìn)制數(shù)據(jù)記錄方式為基礎(chǔ),因此相對(duì)于現(xiàn)有的存儲(chǔ)而言,如硬盤(pán)等,可以較為便捷的記錄數(shù)據(jù)。本發(fā)明以存儲(chǔ)器所能提供的最小存儲(chǔ)單元的整數(shù)倍大小,向精簡(jiǎn)池申請(qǐng)存儲(chǔ)空間,相對(duì)于小數(shù)據(jù)業(yè)務(wù),本發(fā)明可將一個(gè)存儲(chǔ)器所能提供的最小存儲(chǔ)單元分配給該小數(shù)據(jù)業(yè)務(wù),從而最大限度的提高存儲(chǔ)空間利用率,相對(duì)于現(xiàn)有的精簡(jiǎn)池兆級(jí)固定分配粒度而言,本發(fā)明可極大的減少精簡(jiǎn)池在小數(shù)據(jù)業(yè)務(wù)方面所浪費(fèi)的空間。本發(fā)明卸除了設(shè)置于精簡(jiǎn)池的固定分配粒度,精簡(jiǎn)池分配的存儲(chǔ)空間不再以現(xiàn)有的固定分配粒度分段,而是將精簡(jiǎn)池分配出的存儲(chǔ)空間作為精簡(jiǎn)池的一個(gè)整體分配粒度,分配完整的存儲(chǔ)空間,從而使得本發(fā)明映射表中的一個(gè)映射標(biāo)記對(duì)應(yīng)一個(gè)精簡(jiǎn)池分配的存儲(chǔ)空間,相對(duì)于現(xiàn)有技術(shù),本發(fā)明極大的減少了映射標(biāo)記的使用數(shù)目,避免了系統(tǒng)內(nèi)存資源的浪費(fèi)。針對(duì)上文示出的基于精簡(jiǎn)配置系統(tǒng)的寫(xiě)入數(shù)據(jù)的方法,下文將示出對(duì)應(yīng)的寫(xiě)入數(shù)據(jù)的系統(tǒng)。圖3為本發(fā)明一種寫(xiě)入數(shù)據(jù)的系統(tǒng)的結(jié)構(gòu)框圖。參照?qǐng)D3,該系統(tǒng)可以包括接收模塊100,用于接收請(qǐng)求寫(xiě)入數(shù)據(jù)的命令,所述請(qǐng)求寫(xiě)入數(shù)據(jù)的命令包括待寫(xiě)入數(shù)據(jù)、所述待寫(xiě)入數(shù)據(jù)的長(zhǎng)度以及待寫(xiě)入精簡(jiǎn)邏輯單元號(hào)LUN的邏輯地址;判斷模塊200,用于判斷是否給所述待寫(xiě)入精簡(jiǎn)LUN的邏輯地址完全分配精簡(jiǎn)池存儲(chǔ)空間;確定模塊300,用于在所述判斷模塊的判斷結(jié)果為否的情況下,確定所述邏輯地址中,未被分配精簡(jiǎn)池存儲(chǔ)空間的連續(xù)的邏輯地址所能寫(xiě)入數(shù)據(jù)的長(zhǎng)度;申請(qǐng)模塊400,用于以存儲(chǔ)器所能提供的最小存儲(chǔ)單元的整數(shù)倍大小,向所述精簡(jiǎn)池申請(qǐng)大于或等于所述連續(xù)的邏輯地址所能寫(xiě)入數(shù)據(jù)的長(zhǎng)度的存儲(chǔ)空間;存儲(chǔ)信息接收模塊500,用于接收精簡(jiǎn)池響應(yīng)所述申請(qǐng)模塊的申請(qǐng)所分配的存儲(chǔ)空間的信息;寫(xiě)入模塊600,用于在所述判斷模塊的判斷結(jié)果為是的情況下,將所述待寫(xiě)入數(shù)據(jù)寫(xiě)入精簡(jiǎn)池已分配的存儲(chǔ)空間中,或在所述存儲(chǔ)信息接收模塊接收到精簡(jiǎn)池所分配的存儲(chǔ)空間信息后,將待寫(xiě)入數(shù)據(jù)寫(xiě)入相應(yīng)的存儲(chǔ)空間中。其中,判斷模塊200的結(jié)構(gòu)可如圖4所示,包括檢測(cè)單元210,用于檢測(cè)所述待寫(xiě)入精簡(jiǎn)LUN的邏輯地址在所述映射表中的記錄;判定單元220,用于在所述檢測(cè)單元檢測(cè)到所述待寫(xiě)入精簡(jiǎn)LUN的邏輯地址完全記錄在所述映射表中時(shí),判定已經(jīng)給所述待寫(xiě)入精簡(jiǎn)LUN的邏輯地址完全分配精簡(jiǎn)池存儲(chǔ)空間,或,在所述檢測(cè)單元檢測(cè)到所述待寫(xiě)入精簡(jiǎn)LUN的邏輯地址部分或沒(méi)有記錄在所述映射表中時(shí),判定未給所述待寫(xiě)入精簡(jiǎn)LUN的邏輯地址完全分配精簡(jiǎn)池存儲(chǔ)空間。
確定模塊300的結(jié)構(gòu)可如圖5所示,包括第一確定單元310,用于在未給所述待寫(xiě)入精簡(jiǎn)LUN的邏輯地址分配精簡(jiǎn)池存儲(chǔ)空間時(shí),將所述待寫(xiě)入數(shù)據(jù)的長(zhǎng)度確定為,所述未被分配精簡(jiǎn)池存儲(chǔ)空間的連續(xù)的邏輯地址所能寫(xiě)入數(shù)據(jù)的長(zhǎng)度;拆分單元320,用于在未完全給所述待寫(xiě)入精簡(jiǎn)LUN的邏輯地址分配精簡(jiǎn)池存儲(chǔ)空間,以已分配存儲(chǔ)空間對(duì)應(yīng)的邏輯地址為拆分點(diǎn),對(duì)所述待寫(xiě)入精簡(jiǎn)LUN的邏輯地址進(jìn)行拆分;
第二確定單元330,用于將拆分后的未被分配精簡(jiǎn)池存儲(chǔ)空間的連續(xù)的邏輯地址所能寫(xiě)入數(shù)據(jù)的長(zhǎng)度確定為,所述未被分配精簡(jiǎn)池存儲(chǔ)空間的連續(xù)的邏輯地址所能寫(xiě)入數(shù)據(jù)的長(zhǎng)度。寫(xiě)入模塊600還可以用于,將拆分單元320拆分后的已分配存儲(chǔ)空間的連續(xù)的邏輯地址,所對(duì)應(yīng)的數(shù)據(jù),寫(xiě)入已分配存儲(chǔ)空間中。申請(qǐng)模塊400的結(jié)構(gòu)可如圖6所示,包括預(yù)定義單元410,用于預(yù)先定義所述精簡(jiǎn)LUN分配粒度的最小值,所述分配粒度的最小值為所述存儲(chǔ)器所能提供的最小存儲(chǔ)單元的大??;申請(qǐng)單元420,用于以所述預(yù)定義單元定義的所述精簡(jiǎn)LUN分配粒度的最小值的正整數(shù)倍為單位,向所述精簡(jiǎn)池申請(qǐng)大于或等于所述連續(xù)的邏輯地址所能寫(xiě)入數(shù)據(jù)的長(zhǎng)度的存儲(chǔ)空間,所述申請(qǐng)的精簡(jiǎn)池的存儲(chǔ)空間的大小與所述待寫(xiě)入數(shù)據(jù)的長(zhǎng)度之間的差值小于預(yù)設(shè)閾值。圖7為本發(fā)明實(shí)施例所提供的寫(xiě)入數(shù)據(jù)的系統(tǒng)的另一結(jié)構(gòu)框圖。結(jié)合圖3和圖7所示系統(tǒng),圖7所示系統(tǒng)還包括映射表模塊700,用于將所述待寫(xiě)入精簡(jiǎn)LUN的邏輯地址,與其在精簡(jiǎn)池上的對(duì)應(yīng)的物理地址,以映射標(biāo)記的形式記錄在映射表中。上文示出了本發(fā)明基于精簡(jiǎn)配置的寫(xiě)入數(shù)據(jù)的系統(tǒng)的軟件模塊組成,需要說(shuō)明的是,本發(fā)明的寫(xiě)入數(shù)據(jù)的系統(tǒng)也可以硬件形式存在,下面將列舉幾個(gè)本發(fā)明寫(xiě)入數(shù)據(jù)的系統(tǒng)的硬件形態(tài)的實(shí)施例。圖8為本發(fā)明實(shí)施例所提供的寫(xiě)入數(shù)據(jù)的系統(tǒng)的硬件架構(gòu)圖,共同參照?qǐng)D7和圖8。接口模塊100可以接口 01的形式存在,將接收的請(qǐng)求寫(xiě)入數(shù)據(jù)的命令存入第一數(shù)據(jù)庫(kù)02中;第一數(shù)據(jù)庫(kù)02存儲(chǔ)所述請(qǐng)求寫(xiě)入數(shù)據(jù)的命令;第一處理器03為內(nèi)置有判斷模塊200和確定模塊300功能軟件的處理器,第一處理器03提取第一取數(shù)據(jù)庫(kù)02中存儲(chǔ)的接收請(qǐng)求寫(xiě)入數(shù)據(jù)的命令,判斷是否給所述待寫(xiě)入精簡(jiǎn)LUN的邏輯地址完全分配精簡(jiǎn)池存儲(chǔ)空間,在判斷結(jié)果為否時(shí),確定所述邏輯地址中,未被分配精簡(jiǎn)池存儲(chǔ)空間的連續(xù)的邏輯地址所能寫(xiě)入數(shù)據(jù)的長(zhǎng)度,其中涉及到對(duì)數(shù)據(jù)的拆分時(shí),第一處理器03可將拆分后的待寫(xiě)入數(shù)據(jù)再存放入第一數(shù)據(jù)庫(kù)02中;精簡(jiǎn)LUN 04內(nèi)置有申請(qǐng)模塊400的功能,其以存儲(chǔ)器所能提供的最小存儲(chǔ)單元的整數(shù)倍大小,向所述精簡(jiǎn)池申請(qǐng)大于或等于,所述連續(xù)的邏輯地址所能寫(xiě)入數(shù)據(jù)的長(zhǎng)度的存儲(chǔ)空間;
精簡(jiǎn)池05響應(yīng)精簡(jiǎn)LUN 04的申請(qǐng),分配相應(yīng)的存儲(chǔ)空間,發(fā)送關(guān)于分配存儲(chǔ)空間位置與大小的信息;存儲(chǔ)信息接收模塊500的功能可以軟件形式內(nèi)置在輸入裝置06,或精簡(jiǎn)LUN 04中;輸入裝置06內(nèi)置有寫(xiě)入模塊600功能的軟件,當(dāng)其還內(nèi)置有存儲(chǔ)信息接收模塊500功能的軟件時(shí),可直接提取第一數(shù)據(jù)庫(kù)02中存儲(chǔ)的相應(yīng)待寫(xiě)入數(shù)據(jù),將其寫(xiě)入精簡(jiǎn)池分配的存儲(chǔ)空間中;當(dāng)存儲(chǔ)信息接收模塊500的功能設(shè)置在其他硬件設(shè)備中時(shí),如精簡(jiǎn)LUN04,可通過(guò)獲取其他硬件設(shè)備轉(zhuǎn)發(fā)的分配存儲(chǔ)空間的信息,再提取第一數(shù)據(jù)庫(kù)02中存儲(chǔ)的相應(yīng)待寫(xiě)入數(shù)據(jù),將其寫(xiě)入精簡(jiǎn)池分配的存儲(chǔ)空間中;第二數(shù)據(jù)庫(kù)07內(nèi)置有映射表模塊700功能的軟件,第二數(shù)據(jù)庫(kù)07包括由多個(gè)映射標(biāo)記組成的映射表,可將精簡(jiǎn)池分配的存儲(chǔ)空間在所述精簡(jiǎn)池上對(duì)應(yīng)的物理地址,與在精簡(jiǎn)邏輯單元LUN上對(duì)應(yīng)的邏輯地址,以一個(gè)映射標(biāo)記的形式記錄在其內(nèi)的映射表中; 需要說(shuō)明地是,接口 01與第一數(shù)據(jù)庫(kù)02可以進(jìn)行整合,如以現(xiàn)有技術(shù)的生產(chǎn)卷形式出現(xiàn)。圖9為本發(fā)明寫(xiě)入數(shù)據(jù)的系統(tǒng)的另一硬件架構(gòu)圖,參照?qǐng)D7和圖9。生產(chǎn)卷012接收主機(jī)下發(fā)的請(qǐng)求寫(xiě)入數(shù)據(jù)的命令;第一處理器03為內(nèi)置有判斷模塊200和確定模塊300功能軟件的處理器,從生成卷012中提取請(qǐng)求寫(xiě)入數(shù)據(jù)的命令,進(jìn)行相應(yīng)的處理;精簡(jiǎn)LUN 04同時(shí)內(nèi)置有申請(qǐng)模塊400功能的軟件,存儲(chǔ)信息接收模塊500功能的軟件,和寫(xiě)入模塊600功能的軟件;精簡(jiǎn)池05響應(yīng)精簡(jiǎn)LUN 04的申請(qǐng),分配相應(yīng)的存儲(chǔ)空間,并發(fā)送關(guān)于分配存儲(chǔ)存儲(chǔ)的信息;第二數(shù)據(jù)庫(kù)07內(nèi)置有映射表模塊700的功能,第二數(shù)據(jù)庫(kù)07包括由多個(gè)映射標(biāo)記組成的映射表。需要說(shuō)明地是,圖8和圖9所示出的硬件架構(gòu)圖,只是本發(fā)明硬件架構(gòu)的優(yōu)選方式,其不應(yīng)成為對(duì)本發(fā)明硬件架構(gòu)體系的限制。本領(lǐng)域技術(shù)人員完全能夠通過(guò)本發(fā)明具體實(shí)施方式
所給出的技術(shù)啟示,結(jié)合所示出的相應(yīng)軟件原理與硬件組成,對(duì)本發(fā)明的軟件與硬件做出相應(yīng)的變形與整合,而得出相似或相應(yīng)的軟件與硬件,值得說(shuō)明地是,該變形與整合并不脫離本發(fā)明的技術(shù)思想,也應(yīng)在本發(fā)明的保護(hù)范圍。本說(shuō)明書(shū)中各個(gè)實(shí)施例采用遞進(jìn)的方式描述,每個(gè)實(shí)施例重點(diǎn)說(shuō)明的都是與其他實(shí)施例的不同之處,各個(gè)實(shí)施例之間相同相似部分互相參見(jiàn)即可。對(duì)于實(shí)施例公開(kāi)的裝置而言,由于其與實(shí)施例公開(kāi)的方法相對(duì)應(yīng),所以描述的比較簡(jiǎn)單,相關(guān)之處參見(jiàn)方法部分說(shuō)明即可。專業(yè)人員還可以進(jìn)一步意識(shí)到,結(jié)合本文中所公開(kāi)的實(shí)施例描述的各示例的單元及算法步驟,能夠以電子硬件、計(jì)算機(jī)軟件或者二者的結(jié)合來(lái)實(shí)現(xiàn),為了清楚地說(shuō)明硬件和軟件的可互換性,在上述說(shuō)明中已經(jīng)按照功能一般性地描述了各示例的組成及步驟。這些功能究竟以硬件還是軟件方式來(lái)執(zhí)行,取決于技術(shù)方案的特定應(yīng)用和設(shè)計(jì)約束條件。專業(yè)技術(shù)人員可以對(duì)每個(gè)特定的應(yīng)用來(lái)使用不同方法來(lái)實(shí)現(xiàn)所描述的功能,但是這種實(shí)現(xiàn)不應(yīng)認(rèn)為超出本發(fā)明的范圍。
結(jié)合本文中所公開(kāi)的實(shí)施例描述的方法或算法的步驟可以直接用硬件、處理器執(zhí)行的軟件模塊,或者二者的結(jié)合來(lái)實(shí)施。軟件模塊可以置于隨機(jī)存儲(chǔ)器(RAM)、內(nèi)存、只讀存儲(chǔ)器(ROM)、電可編程ROM、電可擦除可編程ROM、寄存器、硬盤(pán)、可移動(dòng)磁盤(pán)、CD-ROM、或技術(shù)領(lǐng)域內(nèi)所公知的任意其它形式的存儲(chǔ)介質(zhì)中。對(duì)所公開(kāi)的實(shí)施例的上述說(shuō)明,使本領(lǐng)域?qū)I(yè)技術(shù)人員能夠?qū)崿F(xiàn)或使用本發(fā)明。對(duì)這些實(shí)施例的多種修改對(duì)本領(lǐng)域的專業(yè)技術(shù)人員來(lái)說(shuō)將是顯而易見(jiàn)的,本文中所定義的一般原理可以在不脫離本發(fā)明的精神 或范圍的情況下,在其它實(shí)施例中實(shí)現(xiàn)。因此,本發(fā)明將不會(huì)被限制于本文所示的這些實(shí)施例,而是要符合與本文所公開(kāi)的原理和新穎特點(diǎn)相一致的最寬的范圍。
權(quán)利要求
1.一種寫(xiě)入數(shù)據(jù)的方法,其特征在于,包括 接收請(qǐng)求寫(xiě)入數(shù)據(jù)的命令,所述請(qǐng)求寫(xiě)入數(shù)據(jù)的命令包括待寫(xiě)入數(shù)據(jù)、所述待寫(xiě)入數(shù)據(jù)的長(zhǎng)度以及待寫(xiě)入精簡(jiǎn)邏輯單元號(hào)LUN的邏輯地址; 判斷是否給所述待寫(xiě)入精簡(jiǎn)LUN的邏輯地址完全分配精簡(jiǎn)池存儲(chǔ)空間; 若是,則將所述待寫(xiě)入數(shù)據(jù)寫(xiě)入精簡(jiǎn)池已分配的存儲(chǔ)空間中; 若否,確定所述邏輯地址中,未被分配精簡(jiǎn)池存儲(chǔ)空間的連續(xù)的邏輯地址所能寫(xiě)入數(shù)據(jù)的長(zhǎng)度,以存儲(chǔ)器所能提供的最小存儲(chǔ)單元的整數(shù)倍大小,向所述精簡(jiǎn)池申請(qǐng)大于或等于所述連續(xù)的邏輯地址所能寫(xiě)入數(shù)據(jù)的長(zhǎng)度的存儲(chǔ)空間; 接收精簡(jiǎn)池響應(yīng)上述申請(qǐng)所分配的存儲(chǔ)空間的信息,將待寫(xiě)入數(shù)據(jù)寫(xiě)入相應(yīng)的存儲(chǔ)空間中。
2.根據(jù)權(quán)利要求I所述的方法,其特征在于,還包括 將所述待寫(xiě)入精簡(jiǎn)LUN的邏輯地址,與其在精簡(jiǎn)池上對(duì)應(yīng)的物理地址,以映射標(biāo)記的形式記錄在映射表中。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述判斷是否給所述待寫(xiě)入精簡(jiǎn)LUN的邏輯地址完全分配精簡(jiǎn)池存儲(chǔ)空間包括 檢測(cè)所述待寫(xiě)入精簡(jiǎn)LUN的邏輯地址在所述映射表中的記錄; 若所述待寫(xiě)入精簡(jiǎn)LUN的邏輯地址完全記錄在所述映射表中,則判定已經(jīng)給所述待寫(xiě)入精簡(jiǎn)LUN的邏輯地址完全分配精簡(jiǎn)池存儲(chǔ)空間; 若所述待寫(xiě)入精簡(jiǎn)LUN的邏輯地址部分或沒(méi)有記錄在所述映射表中,則判定未給所述待寫(xiě)入精簡(jiǎn)LUN的邏輯地址完全分配精簡(jiǎn)池存儲(chǔ)空間。
4.根據(jù)權(quán)利要求1、2或3所述的方法,其特征在于,所述確定所述邏輯地址中,未被分配精簡(jiǎn)池存儲(chǔ)空間的連續(xù)的邏輯地址所能寫(xiě)入數(shù)據(jù)的長(zhǎng)度包括 若未給所述待寫(xiě)入精簡(jiǎn)LUN的邏輯地址分配精簡(jiǎn)池存儲(chǔ)空間,則所述未被分配精簡(jiǎn)池存儲(chǔ)空間的連續(xù)的邏輯地址所能寫(xiě)入數(shù)據(jù)的長(zhǎng)度為所述待寫(xiě)入數(shù)據(jù)的長(zhǎng)度; 若未完全給所述待寫(xiě)入精簡(jiǎn)LUN的邏輯地址分配精簡(jiǎn)池存儲(chǔ)空間,則以已被分配存儲(chǔ)空間對(duì)應(yīng)的邏輯地址為拆分點(diǎn),對(duì)所述待寫(xiě)入精簡(jiǎn)LUN的邏輯地址進(jìn)行拆分,則所述未被分配精簡(jiǎn)池存儲(chǔ)空間的連續(xù)的邏輯地址所能寫(xiě)入數(shù)據(jù)的長(zhǎng)度為拆分后的未被分配精簡(jiǎn)池存儲(chǔ)空間的連續(xù)的邏輯地址所能寫(xiě)入數(shù)據(jù)的長(zhǎng)度。
5.根據(jù)權(quán)利要求I所述的方法,其特征在于,所述以存儲(chǔ)器所能提供的最小存儲(chǔ)單元的整數(shù)倍大小向所述精簡(jiǎn)池申請(qǐng)大于或等于所述連續(xù)的邏輯地址所能寫(xiě)入數(shù)據(jù)的長(zhǎng)度的存儲(chǔ)空間包括 預(yù)先定義所述精簡(jiǎn)LUN分配粒度的最小值,所述分配粒度最小值為所述存儲(chǔ)器所能提供的最小存儲(chǔ)單元的大小; 以所述精簡(jiǎn)LUN分配粒度的最小值的整數(shù)倍為單位,向所述精簡(jiǎn)池申請(qǐng)大于或等于所述連續(xù)的邏輯地址所能寫(xiě)入數(shù)據(jù)的長(zhǎng)度的存儲(chǔ)空間,所述申請(qǐng)的精簡(jiǎn)池的存儲(chǔ)空間的大小與所述待寫(xiě)入數(shù)據(jù)的長(zhǎng)度之間的差值小于預(yù)設(shè)閾值。
6.ー種寫(xiě)入數(shù)據(jù)的系統(tǒng),其特征在于,包括 接收模塊,用于接收請(qǐng)求寫(xiě)入數(shù)據(jù)的命令,所述請(qǐng)求寫(xiě)入數(shù)據(jù)的命令包括待寫(xiě)入數(shù)據(jù)、所述待寫(xiě)入數(shù)據(jù)的長(zhǎng)度以及待寫(xiě)入精簡(jiǎn)邏輯單元號(hào)LUN的邏輯地址;判斷模塊,用于判斷是否給所述待寫(xiě)入精簡(jiǎn)LUN的邏輯地址完全分配精簡(jiǎn)池存儲(chǔ)空間; 確定模塊,用于在所述判斷模塊的判斷結(jié)果為否的情況下,確定所述邏輯地址中,未被分配精簡(jiǎn)池存儲(chǔ)空間的連續(xù)的邏輯地址所能寫(xiě)入數(shù)據(jù)的長(zhǎng)度; 申請(qǐng)模塊,用于以存儲(chǔ)器所能提供的最小存儲(chǔ)單元的整數(shù)倍大小,向所述精簡(jiǎn)池申請(qǐng)大于或等于所述連續(xù)的邏輯地址所能寫(xiě)入數(shù)據(jù)的長(zhǎng)度的存儲(chǔ)空間; 存儲(chǔ)信息接收模塊,用于接收精簡(jiǎn)池響應(yīng)所述申請(qǐng)模塊的申請(qǐng)所分配的存儲(chǔ)空間的信息; 寫(xiě)入模塊,用于在所述判斷模塊的判斷結(jié)果為是的情況下,將所述待寫(xiě)入數(shù)據(jù)寫(xiě)入精簡(jiǎn)池已分配的存儲(chǔ)空間中,或在所述存儲(chǔ)信息接收模塊接收到精簡(jiǎn)池所分配的存儲(chǔ)空間信息后,將待寫(xiě)入數(shù)據(jù)寫(xiě)入相應(yīng)的存儲(chǔ)空間中。
7.根據(jù)權(quán)利要求6所述的系統(tǒng),其特征在于,還包括 映射表模塊,用于將所述待寫(xiě)入精簡(jiǎn)LUN的邏輯地址,與其在精簡(jiǎn)池上的對(duì)應(yīng)的物理地址,以映射標(biāo)記的形式記錄在映射表中。
8.根據(jù)權(quán)利要求7所述的系統(tǒng),其特征在于,所述判斷模塊包括 檢測(cè)單元,用于檢測(cè)所述待寫(xiě)入精簡(jiǎn)LUN的邏輯地址在所述映射表中的記錄; 判定単元,用于在所述檢測(cè)単元檢測(cè)到所述待寫(xiě)入精簡(jiǎn)LUN的邏輯地址完全記錄在所述映射表中時(shí),判定已經(jīng)給所述待寫(xiě)入精簡(jiǎn)LUN的邏輯地址完全分配精簡(jiǎn)池存儲(chǔ)空間,或,在所述檢測(cè)単元檢測(cè)到所述待寫(xiě)入精簡(jiǎn)LUN的邏輯地址部分或沒(méi)有記錄在所述映射表中時(shí),判定未給所述待寫(xiě)入精簡(jiǎn)LUN的邏輯地址完全分配精簡(jiǎn)池存儲(chǔ)空間。
9.根據(jù)權(quán)利要求6、7或8所述的系統(tǒng),其特征在于,所述確定模塊包括 第一確定單元,用于在未給所述待寫(xiě)入精簡(jiǎn)LUN的邏輯地址分配精簡(jiǎn)池存儲(chǔ)空間吋,將所述待寫(xiě)入數(shù)據(jù)的長(zhǎng)度確定為,所述未被分配精簡(jiǎn)池存儲(chǔ)空間的連續(xù)的邏輯地址所能寫(xiě)入數(shù)據(jù)的長(zhǎng)度; 拆分單元,用于在未完全給所述待寫(xiě)入精簡(jiǎn)LUN的邏輯地址分配精簡(jiǎn)池存儲(chǔ)空間吋,以已分配存儲(chǔ)空間對(duì)應(yīng)的邏輯地址為拆分點(diǎn),對(duì)所述待寫(xiě)入精簡(jiǎn)LUN的邏輯地址進(jìn)行拆分; 第二確定單元,用于將拆分后的未被分配精簡(jiǎn)池存儲(chǔ)空間的連續(xù)的邏輯地址所能寫(xiě)入數(shù)據(jù)的長(zhǎng)度確定為,所述未被分配精簡(jiǎn)池存儲(chǔ)空間的連續(xù)的邏輯地址所能寫(xiě)入數(shù)據(jù)的長(zhǎng)度。
10.根據(jù)權(quán)利要求6所述的系統(tǒng),其特征在于,所述申請(qǐng)模塊包括 預(yù)定義単元,用于預(yù)先定義所述精簡(jiǎn)LUN分配粒度的最小值,所述分配粒度的最小值為所述存儲(chǔ)器所能提供的最小存儲(chǔ)單元的大??; 申請(qǐng)單元,用于以所述預(yù)定義單元定義的所述精簡(jiǎn)LUN分配粒度的最小值的正整數(shù)倍為單位,向所述精簡(jiǎn)池申請(qǐng)大于或等于所述連續(xù)的邏輯地址所能寫(xiě)入數(shù)據(jù)的長(zhǎng)度的存儲(chǔ)空間,所述申請(qǐng)的精簡(jiǎn)池的存儲(chǔ)空間的大小與所述待寫(xiě)入數(shù)據(jù)的長(zhǎng)度之間的差值小于預(yù)設(shè)閾值。
全文摘要
本發(fā)明實(shí)施例提供一種寫(xiě)入數(shù)據(jù)的方法及系統(tǒng)。所述方法包括接收請(qǐng)求寫(xiě)入數(shù)據(jù)的命令;判斷是否給所述待寫(xiě)入精簡(jiǎn)LUN的邏輯地址完全分配精簡(jiǎn)池存儲(chǔ)空間;若是,則將所述待寫(xiě)入數(shù)據(jù)寫(xiě)入精簡(jiǎn)池已分配的存儲(chǔ)空間中;若否,確定所述邏輯地址中,未被分配精簡(jiǎn)池存儲(chǔ)空間的連續(xù)的邏輯地址所能寫(xiě)入數(shù)據(jù)的長(zhǎng)度,以存儲(chǔ)器所能提供的最小存儲(chǔ)單元的整數(shù)倍大小,向所述精簡(jiǎn)池申請(qǐng)大于或等于所述連續(xù)的邏輯地址所能寫(xiě)入數(shù)據(jù)的長(zhǎng)度的存儲(chǔ)空間;接收精簡(jiǎn)池響應(yīng)上述申請(qǐng)所分配的存儲(chǔ)空間的信息,將待寫(xiě)入數(shù)據(jù)寫(xiě)入相應(yīng)的存儲(chǔ)空間中。本發(fā)明實(shí)現(xiàn)了系統(tǒng)資源的有效利用。
文檔編號(hào)G06F3/06GK102650931SQ20121009593
公開(kāi)日2012年8月29日 申請(qǐng)日期2012年4月1日 優(yōu)先權(quán)日2012年4月1日
發(fā)明者馮歡 申請(qǐng)人:華為技術(shù)有限公司