存儲(chǔ)系統(tǒng)及其控制方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種存儲(chǔ)系統(tǒng)及其控制方法,特別是涉及一種可加速完成取消映射(unmap)指令的存儲(chǔ)系統(tǒng)及其控制方法。
【背景技術(shù)】
[0002]一般的存儲(chǔ)系統(tǒng)中,邏輯區(qū)塊(logical block)和物理區(qū)塊(physical block)之間存在一種映射(mapping)關(guān)系。當(dāng)索取磁碟空間(例如產(chǎn)生一個(gè)文件)或歸還磁碟空間(例如刪除一個(gè)文件)時(shí),都需透過這種映射關(guān)系,對(duì)物理區(qū)塊進(jìn)行操作。此外,當(dāng)需要實(shí)際地釋放物理區(qū)塊的空間時(shí),取消映射(unmap)指令就會(huì)傳送至存儲(chǔ)系統(tǒng)中,以將邏輯區(qū)塊和物理區(qū)塊之間的映射關(guān)系取消,并對(duì)物理區(qū)塊進(jìn)行解除分配(deallocate),以釋放物理區(qū)塊的空間。例如當(dāng)對(duì)存儲(chǔ)系統(tǒng)進(jìn)行刪除文件等動(dòng)作時(shí),會(huì)觸發(fā)送出取消映射指令的機(jī)制。當(dāng)存儲(chǔ)系統(tǒng)接受到取消映射指令后,就會(huì)根據(jù)取消映射的范圍,判斷那些映射關(guān)系需要被取消,并一一地對(duì)所對(duì)應(yīng)的物理區(qū)塊進(jìn)行解除分配,以實(shí)際地釋放其空間。當(dāng)存儲(chǔ)系統(tǒng)完成對(duì)應(yīng)物理區(qū)塊的解除分配后,會(huì)回復(fù)此次取消映射的動(dòng)作已完成的回應(yīng)。
[0003]請(qǐng)參考圖1,圖1為現(xiàn)有技術(shù)中進(jìn)行取消映射的流程圖。當(dāng)存儲(chǔ)系統(tǒng)接收到取消映射指令(步驟S100)后,會(huì)根據(jù)所接收到的取消映射指令所對(duì)應(yīng)的物理區(qū)塊范圍進(jìn)行多個(gè)解除分配程序S120_l至S120_10。以上述的取消映射指令對(duì)應(yīng)了十個(gè)物理區(qū)塊為例,存儲(chǔ)系統(tǒng)會(huì)進(jìn)行十次的解除分配程序S120_l至S120_10,以一一地對(duì)所對(duì)應(yīng)的十個(gè)物理區(qū)塊進(jìn)行解除分配并刪除其對(duì)應(yīng)的映射關(guān)系。每一解除分配程序S120_l至S120_10包括解除分配步驟(如步驟S130_l)以及刪除映射關(guān)系步驟(如步驟S140_l)。其中每一解除分配步驟S130_l至S130_10用以對(duì)所對(duì)應(yīng)的物理區(qū)塊進(jìn)行解除分配,而每一刪除映射關(guān)系步驟S140_l至S140_10用以刪除物理區(qū)塊所對(duì)應(yīng)的映射關(guān)系。然而,由于進(jìn)行解除分配步驟S130_l至S130_10非常地耗時(shí),且所有解除分配程序S120_l至S120_10必須都完成后,存儲(chǔ)系統(tǒng)才會(huì)回復(fù)此次取消映射的動(dòng)作已完成的回應(yīng),以繼續(xù)執(zhí)行后續(xù)的指令。因此,存儲(chǔ)系統(tǒng)的后續(xù)指令會(huì)受到影響而延遲執(zhí)行,并導(dǎo)致存儲(chǔ)系統(tǒng)的效能低落。
【發(fā)明內(nèi)容】
[0004]本發(fā)明的一實(shí)施例公開一種控制存儲(chǔ)系統(tǒng)的方法。上述方法包括:自操縱臺(tái)接收取消映射(unmap)指令;響應(yīng)上述的取消映射指令,將該映射關(guān)系搬移至該存儲(chǔ)系統(tǒng)的緩沖器,以預(yù)備至少一解除分配(deallocate)程序;傳送完成回應(yīng)至操縱臺(tái);以及在傳送上述的完成回應(yīng)至操縱臺(tái)后,依據(jù)存儲(chǔ)系統(tǒng)的工作負(fù)載執(zhí)行上述至少一解除分配程序。其中上述的取消映射指令被配置為取消存儲(chǔ)系統(tǒng)的存儲(chǔ)模組的至少一物理區(qū)塊與至少一邏輯區(qū)塊之間的映射關(guān)系,上述的完成回應(yīng)被配置為通知操縱臺(tái)上述的取消映射指令已被執(zhí)行完成,而解除分配程序被配置為依據(jù)緩沖器中的映射關(guān)系解除分配上述的至少一物理區(qū)塊。
[0005]本發(fā)明的一實(shí)施例公開一種存儲(chǔ)系統(tǒng)。存儲(chǔ)系統(tǒng)包括多個(gè)物理區(qū)塊、緩沖器及控制器。上述的多個(gè)物理區(qū)塊用以存儲(chǔ)數(shù)據(jù)。緩沖器用以暫存數(shù)據(jù)??刂破黢罱佑谏鲜龆鄠€(gè)物理區(qū)塊及緩沖器,并用以自操縱臺(tái)接收取消映射指令;響應(yīng)上述的取消映射指令,將該映射關(guān)系搬移至該緩沖器,以預(yù)備至少一解除分配程序;傳送完成回應(yīng)至操縱臺(tái);以及在傳送上述的完成回應(yīng)至操縱臺(tái)后,依據(jù)存儲(chǔ)系統(tǒng)的工作負(fù)載執(zhí)行至少一解除分配程序。其中上述的取消映射指令被配置為取消存儲(chǔ)系統(tǒng)的至少一物理區(qū)塊與至少一邏輯區(qū)塊之間的映射關(guān)系,上述的完成回應(yīng)被配置為通知操縱臺(tái)上述的取消映射指令已被執(zhí)行完成,而解除分配程序被配置為依據(jù)緩沖器中的映射關(guān)系解除分配上述的至少一物理區(qū)塊。
[0006]本發(fā)明實(shí)施例的存儲(chǔ)系統(tǒng)及其控制方法于進(jìn)行取消映射指令時(shí),會(huì)將映射關(guān)系搬移至緩沖器,以預(yù)備至少一解除分配程序。之后再傳送完成回應(yīng)至操縱臺(tái)。當(dāng)傳送完成回應(yīng)后,存儲(chǔ)系統(tǒng)即可繼續(xù)執(zhí)行后續(xù)的指令,故存儲(chǔ)系統(tǒng)對(duì)于取消映射指令的回應(yīng)時(shí)間(response time)可以縮短。此外,存儲(chǔ)系統(tǒng)會(huì)依據(jù)存儲(chǔ)系統(tǒng)的工作負(fù)載,判斷存儲(chǔ)系統(tǒng)是否處于忙碌狀態(tài)或是閑置狀態(tài)。當(dāng)存儲(chǔ)系統(tǒng)處于閑置狀態(tài)時(shí),控制器即可背景執(zhí)行先前所預(yù)備的解除分配程序,以實(shí)際地對(duì)物理區(qū)塊進(jìn)行解除分配,而釋放物理區(qū)塊的空間。如此,存儲(chǔ)系統(tǒng)即可具有良好的效能。
【附圖說明】
[0007]圖1為現(xiàn)有技術(shù)中進(jìn)行取消映射的流程圖。
[0008]圖2為本發(fā)明一實(shí)施例存儲(chǔ)系統(tǒng)連接于操縱臺(tái)時(shí)的功能方塊圖。
[0009]圖3用以說明圖2存儲(chǔ)系統(tǒng)的邏輯區(qū)塊與物理區(qū)塊的映射關(guān)系。
[0010]圖4為圖2的控制器執(zhí)行取消映射指令的流程圖。
[0011]圖5為控制圖2存儲(chǔ)系統(tǒng)的方法的流程圖。
[0012]圖6為圖2的控制器執(zhí)行操縱臺(tái)的寫入指令時(shí)的流程圖。
[0013]圖7為圖2的控制器執(zhí)行操縱臺(tái)的寫入指令時(shí)的另一流程圖。
[0014]其中,附圖標(biāo)記說明如下:
[0015]200存儲(chǔ)系統(tǒng)
[0016]210控制器
[0017]212元數(shù)據(jù)
[0018]220存儲(chǔ)模組
[0019]222_1 至 222_M 物理區(qū)塊
[0020]224存儲(chǔ)碟
[0021]230緩沖器
[0022]232_1 至 232_N 映射關(guān)系
[0023]240操縱臺(tái)
[0024]252_1 至 252_M 邏輯區(qū)塊
[0025]260映射關(guān)系
[0026]Fl文件
[0027]Rp完成回應(yīng)
[0028]S100、S130_l 至 S130_10、S140_l 至 S140_10 流程步驟
[0029]S120_l至S120_10 解除分配程序
[0030]S410 至 S440、S510 至 S560、流程步驟 S610 至 S670、S710 至 S770
[0031]Um 取消映射指令
[0032]Wr寫入指令
【具體實(shí)施方式】
[0033]請(qǐng)參考圖2及圖3。圖2為本發(fā)明一實(shí)施例存儲(chǔ)系統(tǒng)200連接于操縱臺(tái)240時(shí)的功能方塊圖,而圖3用以說明圖2存儲(chǔ)系統(tǒng)200的邏輯區(qū)塊(1gicalblock) 252_1至252_M與物理區(qū)塊(physical block) 222_1至222_M的映射關(guān)系。操縱臺(tái)240為一種可對(duì)存儲(chǔ)系統(tǒng)200發(fā)出存取指令的電子裝置,例如:個(gè)人電腦、伺服器、行動(dòng)電話等。操縱臺(tái)240以有線或無線的方式與存儲(chǔ)系統(tǒng)200連接。此外,在本實(shí)施例中,存儲(chǔ)系統(tǒng)200為具有多個(gè)存儲(chǔ)碟224的獨(dú)立磁盤冗余陣列(Redundant Array of Independent Disks ;RAID),但本發(fā)明并不以此為限。例如,存儲(chǔ)系統(tǒng)200可以是固態(tài)硬盤(Solid State Driver ;SSD)、硬盤(Harddisk)、快閃存儲(chǔ)器(Flash memory)或其他存儲(chǔ)裝置,用以存儲(chǔ)數(shù)據(jù)及文件。此外,存儲(chǔ)系統(tǒng)200也可以是個(gè)人電腦、伺服器、行動(dòng)電話等具有存儲(chǔ)裝置的電子裝置。再者,上述的存儲(chǔ)碟224則可以為硬盤或是固態(tài)硬盤,以組成獨(dú)立磁盤冗余陣列。存儲(chǔ)系統(tǒng)200包括控制器210、存儲(chǔ)模組220及緩沖器230。其中,控制器210耦接于存儲(chǔ)模組220及緩沖器230,用以控制存儲(chǔ)系統(tǒng)200的操作。存儲(chǔ)模組220包括多個(gè)物理區(qū)塊222_1至222_M,用以記錄數(shù)據(jù)。緩沖器230則用以暫存控制器210所需的數(shù)據(jù)。在本發(fā)明一實(shí)施例中,存儲(chǔ)模組220及緩沖器230可以由任意的非揮發(fā)性存儲(chǔ)媒體(例如:快閃存儲(chǔ)器、磁性存儲(chǔ)器等)組成,且用以組成存儲(chǔ)模組220的存儲(chǔ)媒體與用以組成緩沖器230的存儲(chǔ)媒體可以相同或是不同。
[0034]控制器210會(huì)依據(jù)元數(shù)據(jù)(metadata) 212控制存儲(chǔ)系統(tǒng)200的操作。在本發(fā)明一實(shí)施例中,元數(shù)據(jù)212可存儲(chǔ)于固態(tài)硬盤或快閃存儲(chǔ)器等非揮發(fā)性存儲(chǔ)媒體中,當(dāng)存儲(chǔ)系統(tǒng)200啟動(dòng)時(shí),再由控制器210所讀取。由于固態(tài)硬盤與快閃存儲(chǔ)器不需如一般硬盤得借由機(jī)械式運(yùn)轉(zhuǎn)才能運(yùn)作,故若將元數(shù)據(jù)212存儲(chǔ)于固態(tài)硬盤或快閃存儲(chǔ)器中,則存儲(chǔ)系統(tǒng)200整體的數(shù)據(jù)處理速度會(huì)較將元數(shù)據(jù)212存儲(chǔ)于一般硬盤時(shí)的快。此外,元數(shù)據(jù)212記錄了多個(gè)邏輯區(qū)塊252_1至252_M與多個(gè)物理區(qū)塊222_1至222_M之間的映射(mapping)關(guān)系260,而每一映射關(guān)系260記錄對(duì)應(yīng)的物