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