TWI514142B - 儲存系統及其控制方法 - Google Patents
儲存系統及其控制方法 Download PDFInfo
- Publication number
- TWI514142B TWI514142B TW102143051A TW102143051A TWI514142B TW I514142 B TWI514142 B TW I514142B TW 102143051 A TW102143051 A TW 102143051A TW 102143051 A TW102143051 A TW 102143051A TW I514142 B TWI514142 B TW I514142B
- Authority
- TW
- Taiwan
- Prior art keywords
- storage system
- buffer
- file
- deallocation
- mapping relationship
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0685—Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0662—Virtualisation aspects
- G06F3/0665—Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
Description
本發明係有關於一種儲存系統及其控制方法,尤指一種可加速完成取消映射(unmap)指令的儲存系統及其控制方法。
一般的儲存系統中,邏輯區塊(logical block)和實體區塊(physical block)之間存在一種映射(mapping)關係。當索取磁碟空間(例如產生一個檔案)或歸還磁碟空間(例如刪除一個檔案)時,都需透過這種映射關係,對實體區塊進行操作。此外,當需要實際地釋放實體區塊的空間時,取消映射(unmap)指令就會傳送至儲存系統中,以將邏輯區塊和實體區塊之間的映射關係取消,並對實體區塊進行解除分配(deallocate),以釋放實體區塊的空間。例如當對儲存系統進行刪除檔案等動作時,會觸發送出取消映射指令的機制。當儲存系統接受到取消映射指令後,就會根據取消映射的範圍,判斷那些映射關係需要被取消,並一一地對所對應的實體區塊進行解除分配,以實際地釋放其空間。當儲存系統完成對應實體區塊的解除分配後,會回覆此次取消映射的動作已完成的回應。
請參考第1圖,第1圖為先前技術中進行取消映射的流程圖。當儲存系統接收到取消映射指令(步驟S100)後,會根據所接收到的取消映射指令所對應的實體區塊範圍進行多個解除分配程序S120_1至S120_10。以上述的取消映射指令對應了十個實體區塊為例,儲存系統會進行十次的解除分配程序S120_1至S120_10,以一一地對所對應的十個實體區塊進行解除分配並
刪除其對應的映射關係。每一解除分配程序S120_1至S120_10包含解除分配步驟(如步驟S130_1)以及刪除映射關係步驟(如步驟S140_1)。其中每一解除分配步驟S130_1至S130_10用以對所對應的實體區塊進行解除分配,而每一刪除映射關係步驟S140_1至S140_10用以刪除實體區塊所對應的映射關係。然而,由於進行解除分配步驟S130_1至S130_10非常地耗時,且所有解除分配程序S120_1至S120_10必須都完成後,儲存系統才會回覆此次取消映射的動作已完成的回應,以繼續執行後續的指令。因此,儲存系統的後續指令會受到影響而延遲執行,並導致儲存系統的效能低落。
在本發明的一實施例中提供一種控制儲存系統的方法。上述方法包含:自操作機台接收取消映射(unmap)指令;響應上述的取消映射指令,將該映射關係搬移至該儲存系統的一緩衝器,以預備至少一解除分配(deallocate)程序;傳送完成回應至操作機台;以及於傳送上述的完成回應至操作機台後,依據儲存系統的工作負載執行上述至少一解除分配程序。其中上述的取消映射指令被配置為取消儲存系統的儲存模組的至少一實體區塊與至少一邏輯區塊之間的映射關係,上述的完成回應被配置為通知操作機台上述的取消映射指令已被執行完成,而解除分配程序被配置為依據緩衝器中的映射關係解除分配上述的至少一實體區塊。
在本發明的一實施例中提供一種儲存系統。儲存系統包含多個實體區塊、緩衝器及控制器。上述的多個實體區塊用以儲存資料。緩衝器用以暫存資料。控制器耦接於上述多個實體區塊及緩衝器,並用以自操作機台接收取消映射指令;響應上述的取消映射指令,將該映射關係搬移至該緩衝器,以預備至少一解除分配程序;傳送完成回應至操作機台;以及於傳送上述的完成回應至操作機台後,依據儲存系統的工作負載執行至少一解除分配程
序。其中上述的取消映射指令被配置為取消儲存系統的至少一實體區塊與至少一邏輯區塊之間的映射關係,上述的完成回應被配置為通知操作機台上述的取消映射指令已被執行完成,而解除分配程序被配置為依據緩衝器中的映射關係解除分配上述的至少一實體區塊。
本發明實施例的儲存系統及其控制方法於進行取消映射指令時,會將映射關係搬移至緩衝器,以預備至少一解除分配程序。之後再傳送完成回應至操作機台。當傳送完成回應後,儲存系統即可繼續執行後續的指令,故儲存系統對於取消映射指令的回應時間(response time)可以縮短。此外,儲存系統會依據儲存系統的工作負載,判斷儲存系統是否處於忙碌狀態或是閒置狀態。當儲存系統處於閒置狀態時,控制器即可背景執行先前所預備的解除分配程序,以實際地對實體區塊進行解除分配,而釋放實體區塊的空間。如此,儲存系統即可具有良好的效能。
200‧‧‧儲存系統
210‧‧‧控制器
212‧‧‧元資料
220‧‧‧儲存模組
222_1至222_M‧‧‧實體區塊
224‧‧‧儲存碟
230‧‧‧緩衝器
232_1至232_N‧‧‧映射關係
240‧‧‧操作機台
252_1至252_M‧‧‧邏輯區塊
260‧‧‧映射關係
F1‧‧‧檔案
Rp‧‧‧完成回應
S100、S130_1至S130_10、S140_1至S140_10‧‧‧流程步驟
S120_1至S120_10‧‧‧解除分配程序
S410至S440、S510至S560、S610至S670、S710至S770‧‧‧流程步驟
Um‧‧‧取消映射指令
Wr‧‧‧寫入指令
第1圖為先前技術中進行取消映射的流程圖。
第2圖為本發明一實施例儲存系統連接於操作機台時的功能方塊圖。
第3圖用以說明第2圖儲存系統的邏輯區塊與實體區塊的映射關係。
第4圖為第2圖的控制器執行取消映射指令的流程圖。
第5圖為控制第2圖儲存系統之方法的流程圖。
第6圖為第2圖之控制器執行操作機台的寫入指令時的流程圖。
第7圖為第2圖之控制器執行操作機台的寫入指令時的另一流程圖。
請參考第2圖及第3圖。第2圖為本發明一實施例儲存系統200連接於操作機台240時的功能方塊圖,而第3圖用以說明第2圖儲存系統200
的邏輯區塊(logical block)252_1至252_M與實體區塊(physical block)222_1至222_M的映射關係。操作機台240為一種可對儲存系統200發出存取指令的電子裝置,例如:個人電腦、伺服器、行動電話等。操作機台240以有線或無線的方式與儲存系統200連接。此外,在本實施例中,儲存系統200為具有多個儲存碟224的獨立磁碟冗餘陣列(Redundant Array of Independent Disks;RAID),但本發明並不以此為限。例如,儲存系統200可以是固態硬碟(Solid State Driver;SSD)、硬碟機(Hard disk)、快閃記憶體(Flash memory)裝置或其他儲存裝置,用以儲存資料及檔案。此外,儲存系統200也可以是個人電腦、伺服器、行動電話等具有儲存裝置的電子裝置。再者,上述的儲存碟224則可以為硬碟機或是固態硬碟,以組成獨立磁碟冗餘陣列。儲存系統200包含控制器210、儲存模組220及緩衝器230。其中,控制器210耦接於儲存模組220及緩衝器230,用以控制儲存系統200的操作。儲存模組220包含多個實體區塊222_1至222_M,用以記錄資料。緩衝器230則用以暫存控制器210所需的資料。在本發明一實施例中,儲存模組220及緩衝器230可以由任意的非揮發性儲存媒體(例如:快閃記憶體、磁性記憶裝置等)組成,且用以組成儲存模組220的儲存媒體與用以組成緩衝器230的儲存媒體可以相同或是不同。
控制器210會依據元資料(metadata)212控制儲存系統200的操作。在本發明一實施例中,元資料212可儲存於固態硬碟或快閃記憶體等非揮發性儲存媒體中,當儲存系統200啟動時,再由控制器210所讀取。由於固態硬碟與快閃記憶體不需如一般硬碟得藉由機械式運轉才能運作,故若將元資料212儲存於固態硬碟或快閃記憶體中,則儲存系統200整體的資料處理速度會較將元資料212儲存於一般硬碟時的快。此外,元資料212記錄了多個邏輯區塊252_1至252_M與多個實體區塊222_1至222_M之間的映射(mapping)關係260,而每一映射關係260記錄對應的實體區塊及邏輯區塊的
位址。當操作機台240對儲存系統200有存取的需求時,控制器210即會依據元資料212所提供的映射關係260,將存取指令所對應的邏輯區塊位址轉換成對應的實體區塊位址,以控制相關實體區塊進行對應的動作。例如當對儲存系統200其中一個儲存碟224進行刪除檔案的動作時,會觸發操作機台240送出取消映射(unmap)指令Um的機制。當控制器210接受到取消映射指令Um後,就會根據取消映射的範圍,判斷那些映射關係260需要被取消。然而,不同於先前技術須實際地完成實體區塊的解除分配後,才得以執行後續指令,控制器210在接收到取消映射指令Um後,會先將要解除分配(deallocate)的實體區塊的映射關係260從元資料212搬移至緩衝器230。之後,再傳送完成回應Rp至操作機台240,以通知操作機台240上述的取消映射指令Um已被控制器210執行完成,而控制器210在傳送上述完成回應Rp後即可繼續地執行後續來自操作機台240的指令,故控制器210對於取消映射指令Um的回應時間(response time)可相對地縮短。
以將對實體區塊222_x進行解除分配為例,控制器210會將實體區塊222_x的映射關係260從元資料212搬移至緩衝器230,而成為映射關係232_x。映射關係232_x記錄了實體區塊222_x的位址,而可供控制器210背景地執行實體區塊222_x的解除分配。換言之,當控制器210接收到取消映射指令Um後,可不用立即地對實體區塊222_x進行解除分配,而可透過先將映射關係232_x儲存至緩衝器230的方式,待儲存系統200處於閒置狀態後,再由控制器210依據儲存於緩衝器230的映射關係232_x,實際地對實體區塊222_x進行解除分配。由於控制器210不會因上述的取消映射指令Um而延後執行後續的指令,故相較於先前技術,儲存系統200具有較佳的存取效能。
請參考第4圖並同時參照第2圖。第4圖為第2圖的控制器210
執行取消映射指令Um的流程圖。假設取消映射指令Um係被配置為命令控制器210取消實體區塊222_x的映射關係260,則當控制器210自操作機台240接收取消映射指令Um(步驟S410)後,控制器210會將實體區塊222_x的映射關係260從元資料212搬移至緩衝器230,而成為映射關係232_x(步驟S420),以預備執行解除分配程序(步驟S430)。當控制器210將實體區塊222_x的映射關係260從元資料212搬移至緩衝器230(步驟S420)後,會傳送完成回應Rp至操作機台240(步驟S440),以通知操作機台240上述的取消映射指令Um已被控制器210執行完成。在此實施例中,上述預備在步驟S430被執行的解除分配程序係被配置為解除分配實體區塊222_x,而可在控制器210將完成步驟S420後,再由控制器210依據儲存系統200的工作負載判斷是否該被執行。當儲存系統200處於閒置狀態時,或當控制器210中待處理的資料處理請求量低於一預定值時,控制器210即可依據儲存於緩衝器230的映射關係232_x,實際地對實體區塊222_x進行解除分配(步驟S430)。當完成實體區塊222_x的解除分配時,控制器210即可將映射關係232_x從緩衝器230中移除。此外,如第4圖所示,步驟S430和S440可平行地由控制器210執行。
需瞭解地,雖然上述實施例係以取消單一個實體區塊222_x的映射關係260為例,但本發明並不以此為限。換言之,本發明亦適用於取消映射指令Um用以取消多個實體區塊之映射關係260的情況。舉例來說,倘若取消映射指令Um係被配置為命令控制器210取消多個實體區塊222_1至222_x的映射關係260,則控制器210於步驟S420會將實體區塊222_1至222_x的映射關係260從元資料212搬移至緩衝器230,而成為映射關係232_1至232_x。其中,每一映射關係232_1至232_x對應於控制器210將要執行的一個解除分配程序。之後,當儲存系統200處於閒置狀態時,或當控制器210中待處理的資料處理請求量低於預定值時,控制器210即可依據映射關係
232_1至232_x,依序地執行多個解除分配程序,而實際地對實體區塊222_1至222_x進行解除分配。當完成實體區塊222_1至222_x的解除分配時,控制器210即可將映射關係232_1至232_x從緩衝器230中移除。更進一步地來說,在對多個實體區塊222_1至222_x進行解除分配的過程中,當完成任一實體區塊的解除分配時,即可將此實體區塊所對應的映射關係從緩衝器230中移除,而無須等待所有要解除分配的實體區塊都完成解除分配。
請參考第5圖,第5圖為控制第2圖儲存系統200之方法的流程圖。上述方法包括以下步驟:步驟S510:自操作機台接收取消映射指令;步驟S520:響應上述的取消映射指令,將對應的映射關係搬移至緩衝器,以預備至少一解除分配程序;步驟S530:傳送完成回應至操作機台;步驟S540:判斷儲存系統200是否繁忙。例如,判斷儲存系統200的工作負載是否為零而處於閒置狀態,或判斷控制器210中待處理的資料處理請求量是否低於預定值。倘若結果為“是”,則進行步驟S550;反之,則進行步驟S560;步驟S550:等待一預設週期(例如30秒、一分鐘等);以及步驟S560:執行上述的解除分配程序。
在本實施例中,緩衝器230所記錄的映射關係232_1至232_N還可被用來作為控制器210執行寫入指令時的依據。請參考第6圖並同時參照第2圖。第6圖為第2圖之控制器210執行操作機台240的寫入指令Wr時的流程圖。在本實施例中,當操作機台240傳送寫入指令Wr(步驟S610)至儲存系統200,以指示控制器210將檔案F1寫入至儲存模組220時,倘若儲存模組220的剩餘空間不足以儲存檔案F1,則控制器210會判斷緩衝器230所
記錄之所有尚等待進行解除分配的實體區塊是否可用來儲存檔案F1的資料。假設檔案F1的大小為Q,儲存模組220的剩餘空間尚有Q1,而緩衝器230所記錄之所有尚等待進行解除分配的實體區塊的容量為Q2,則控制器210會先判斷檔案F1的大小Q是否小於或等於儲存模組220的剩餘空間Q1(步驟S620)。倘若檔案F1的大小Q小於或等於儲存模組220的剩餘空間Q1,則控制器210會將檔案F1寫入至儲存模組220的剩餘空間所對應的實體區塊(步驟S630)。反之,若檔案F1的大小Q大於儲存模組220的剩餘空間Q1,則控制器210會計算緩衝器230所記錄之所有尚等待進行解除分配的實體區塊的容量Q2(步驟S640),並判斷儲存模組220的剩餘空間Q1與所計算的容量Q2的總和(Q1+Q2)是否大於或等於檔案F1的大小Q(步驟S650)。倘若(Q1+Q2)小於Q,控制器210則終止檔案F1的寫入(步驟S660),並通知操作機台240儲存模組220的容量不足以存放檔案F1。反之,倘若(Q1+Q2)大於或等於Q,控制器210則將檔案F1寫入至儲存模組220的剩餘空間所對應的實體區塊及緩衝器230所記錄尚等待進行解除分配的實體區塊(步驟S670)。亦即在步驟S670中,會有一部份緩衝器230所記錄尚等待進行解除分配的實體區塊會被用來儲存檔案F1的部分資料,而檔案F1其他部分的資料則可儲存於儲存模組220的剩餘空間。此時,上述用以儲存檔案F1部分資料的實體區塊,其原先所等待要進行的解除分配的動作即無須進行,且其資料會被檔案F1的資料所覆蓋。如此,即可省去對上述用以儲存檔案F1部分資料的實體區塊進行解除分配的時間與資源。當實體區塊的資料被檔案F1的資料所覆蓋後,其在緩衝器230所對應的映射關係即被刪除。
請參考第7圖並同時參照第2圖。第7圖為第2圖之控制器210執行操作機台240的寫入指令Wr時的另一流程圖。不同於前述的實施例,在本實施例中,當操作機台240傳送寫入指令Wr(步驟S710)至儲存系統200,以指示控制器210將檔案F1寫入至儲存模組220時,控制器210會先判斷緩
衝器230是否有記錄任何的映射關係(步驟S720)。當判斷出緩衝器230未記錄任何的映射關係時,控制器210會將檔案F1寫入至儲存模組220的剩餘空間所對應的實體區塊(步驟S730)。此外,倘若在步驟S720中判斷出顯示緩衝器230記錄有任何的映射關係,則控制器210會將檔案F1寫入至緩衝器230所記錄尚等待進行解除分配的實體區塊(步驟S740)。之後,控制器210再判斷是否已經完成檔案F1的寫入(步驟S750)。倘若檔案F1尚有部分未被寫入,則控制器210再將檔案F1尚未寫入的部分寫入至儲存模組220的剩餘空間(步驟S770)。反之,倘若已完成全部的檔案F1之寫入操作,則結束整個流程(步驟S760)。
此外,假設檔案F1的大小為Q,儲存模組220的剩餘空間尚有Q1,而緩衝器230所記錄之所有尚等待進行解除分配的實體區塊的容量為Q2。在本發明一實施例中,在執行步驟S730之前,控制器210會先判斷儲存模組220的剩餘空間是否大於檔案F1的大小Q。只有當檔案F1的大小Q並未超過儲存模組220的剩餘空間Q1時,控制器210才會執行步驟S730。然而,倘若檔案F1的大小Q超過儲存模組220的剩餘空間Q1,則控制器210不會執行步驟S730,且會通知操作機台240儲存模組220的容量不足以存放檔案F1。再者,在執行步驟S740之前,控制器210會先判斷儲存模組220的剩餘空間Q1與等待進行解除分配的實體區塊的容量Q2之總和(Q1+Q2)是否大於或等於檔案F1的大小Q。只有當檔案F1的大小Q並未超過上述總和(Q1+Q2)時,控制器210才會執行步驟S740。然而,倘若檔案F1的大小Q超過述總和(Q1+Q2),則控制器210不會執行步驟S740,且會通知操作機台240儲存模組220的容量不足以存放檔案F1。
綜上所述,透過本發明實施例的儲存系統及其控制方法於進行取消映射指令時,會將映射關係搬移至緩衝器,以預備至少一解除分配程序。
之後再傳送完成回應至操作機台。當傳送完成回應後,儲存系統即可繼續執行後續的指令,故儲存系統對於取消映射指令的回應時間(response time)可以縮短。此外,儲存系統會依據儲存系統的工作負載,判斷儲存系統是否處於忙碌狀態或是閒置狀態。當儲存系統處於閒置狀態時,控制器即可背景執行先前所預備的解除分配程序,以實際地對實體區塊進行解除分配,而釋放實體區塊的空間。如此,儲存系統即可具有良好的效能。
以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
S510至S560‧‧‧流程步驟
Claims (14)
- 一種控制儲存系統的方法,包含:自一操作機台接收一取消映射(unmap)指令,該取消映射指令被配置為取消該儲存系統的一儲存模組的至少一實體區塊與至少一邏輯區塊之間的映射關係;響應該取消映射指令,將該映射關係搬移至該儲存系統的一緩衝器,以預備至少一解除分配(deallocate)程序,其中該解除分配程序被配置為依據該緩衝器中的該映射關係解除分配該至少一實體區塊;傳送一完成回應至該操作機台,其中該完成回應被配置為通知該操作機台該取消映射指令已被執行完成;以及於傳送該完成回應至該操作機台後,依據該儲存系統的工作負載執行該至少一解除分配程序。
- 如請求項1所述之方法,其中該取消映射指令被配置為取消該儲存模組的多個實體區塊與多個邏輯區塊之間的映射關係,該至少一解除分配程序包含多個解除分配程序,每一解除分配程序被配置為解除分配該些實體區塊的至少一個實體區塊,而依據該儲存系統的工作負載執行該至少一解除分配程序包含:於傳送該完成回應至該操作機台後,依據該儲存系統的工作負載,執行該些解除分配程序。
- 如請求項1所述之方法,依據該儲存系統的工作負載執行該至少一解除分配程序包含:當該控制器中待處理的資料處理請求量低於一預定值時,執行該至少一解除分配程序。
- 如請求項1所述之方法,另包含:接收一寫入指令,該寫入指令被配置為將一檔案寫入至該儲存模組;判斷該緩衝器是否記錄有任何的映射關係;以及當該緩衝器記錄有任何的映射關係時,將該檔案寫入至該緩衝器所記錄尚等待進行解除分配的實體區塊。
- 如請求項4所述之方法,另包含:倘若該檔案的大小超過該緩衝器所記錄尚等待進行解除分配的實體區塊的容量,則將該檔案尚未寫入的部分寫入至該儲存模組的剩餘空間。
- 如請求項1所述之方法,另包含:接收一寫入指令,該寫入指令被配置為將一檔案寫入至該儲存模組;當該檔案的大小超過該儲存模組的剩餘空間時,計算該緩衝器所記錄之所有尚等待進行解除分配的實體區塊的容量;以及倘若該儲存模組的剩餘空間與所計算的該容量的總和大於或等於該檔案的大小,則將該檔案的至少一部份資料儲存於該緩衝器所記錄尚等待進行解除分配的實體區塊的至少一部份。
- 如請求項1所述之方法,另包含:於執行該至少一解除分配程序之前,自該操作機台接收另一指令,並執行該另一指令。
- 一種儲存系統,包含:一儲存模組,包含多個實體區塊,用以儲存資料;一緩衝器,用以暫存資料;以及 一控制器,耦接於該些實體區塊及該緩衝器,用以:自一操作機台接收一取消映射(unmap)指令,其中該取消映射指令被配置為取消該儲存模組的至少一實體區塊與至少一邏輯區塊之間的映射關係;響應該取消映射指令,將該映射關係搬移至該緩衝器,以預備至少一解除分配(deallocate)程序,其中該解除分配程序被配置為依據該緩衝器中的該映射關係解除分配該至少一實體區塊;傳送一完成回應至該操作機台,其中該完成回應被配置為通知該操作機台該取消映射指令已被執行完成;以及於傳送該完成回應至該操作機台後,依據該儲存系統的工作負載執行該至少一解除分配程序。
- 如請求項8所述之儲存系統,其中該取消映射指令被配置為取消該儲存模組的多個實體區塊與多個邏輯區塊之間的映射關係,該至少一解除分配程序包含多個解除分配程序,每一解除分配程序被配置為解除分配該些實體區塊的至少一個實體區塊,而該控制器於傳送該完成回應至該操作機台後,依據該儲存系統的工作負載,執行該些解除分配程序。
- 如請求項8所述之儲存系統,其中當該控制器中待處理的資料處理請求量低於一預定值時,該控制器執行該至少一解除分配程序。
- 如請求項8所述之儲存系統,其中該控制器另用以:接收一寫入指令,其中該寫入指令被配置為將一檔案寫入至該儲存模組;判斷該緩衝器是否記錄有任何的映射關係;以及當該緩衝器記錄有任何的映射關係時,將該檔案寫入至該緩衝器所記錄尚等待進行解除分配的實體區塊。
- 如請求項11所述之儲存系統,其中該控制器另用以:倘若該檔案的大小超過該緩衝器所記錄尚等待進行解除分配的實體區塊的容量,則將該檔案尚未寫入的部分寫入至該儲存模組的剩餘空間。
- 如請求項8所述之儲存系統,其中該控制器另用以:接收一寫入指令,其中該寫入指令被配置為將一檔案寫入至該儲存模組;當該檔案的大小超過該儲存模組的剩餘空間時,計算該緩衝器所記錄之所有尚等待進行解除分配的實體區塊的容量;以及倘若該儲存模組的剩餘空間與所計算的該容量的總和大於或等於該檔案的大小,則將該檔案的至少一部份資料儲存於該緩衝器所記錄尚等待進行解除分配的實體區塊的至少一部份。
- 如請求項8所述之儲存系統,其中該儲存系統係選自以獨立磁碟冗餘陣列((Redundant Array of Independent Disks;RAID)、固態硬碟(Solid State Driver;SSD)、硬碟機(Hard disk)、快閃記憶體(Flash memory)裝置所構成的一群組。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW102143051A TWI514142B (zh) | 2013-11-26 | 2013-11-26 | 儲存系統及其控制方法 |
CN201410008481.0A CN104679668B (zh) | 2013-11-26 | 2014-01-02 | 存储系统及其控制方法 |
US14/451,418 US20150149741A1 (en) | 2013-11-26 | 2014-08-04 | Storage System and Control Method Thereof |
EP14190998.6A EP2876541A1 (en) | 2013-11-26 | 2014-10-30 | Method and apparatus to reclaim free space |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW102143051A TWI514142B (zh) | 2013-11-26 | 2013-11-26 | 儲存系統及其控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201520765A TW201520765A (zh) | 2015-06-01 |
TWI514142B true TWI514142B (zh) | 2015-12-21 |
Family
ID=51945698
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW102143051A TWI514142B (zh) | 2013-11-26 | 2013-11-26 | 儲存系統及其控制方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20150149741A1 (zh) |
EP (1) | EP2876541A1 (zh) |
CN (1) | CN104679668B (zh) |
TW (1) | TWI514142B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102395538B1 (ko) | 2017-04-28 | 2022-05-10 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
KR102423278B1 (ko) | 2017-11-28 | 2022-07-21 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작 방법 |
KR102493323B1 (ko) | 2018-02-21 | 2023-01-31 | 에스케이하이닉스 주식회사 | 저장 장치 및 그 동작 방법 |
KR102583592B1 (ko) * | 2018-03-27 | 2023-10-06 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 이를 포함하는 메모리 시스템 |
CN110413211B (zh) * | 2018-04-28 | 2023-07-07 | 伊姆西Ip控股有限责任公司 | 存储管理方法、电子设备以及计算机可读介质 |
KR20200085966A (ko) * | 2019-01-07 | 2020-07-16 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그 동작 방법 |
US20230342077A1 (en) * | 2020-08-25 | 2023-10-26 | Micron Technology, Inc. | Unmap backlog in a memory system |
CN114661238B (zh) * | 2022-03-29 | 2024-01-02 | 江苏安超云软件有限公司 | 带缓存的存储系统空间回收的方法及应用 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090089516A1 (en) * | 2007-10-02 | 2009-04-02 | Greg Pelts | Reclaiming storage on a thin-provisioning storage device |
US7979645B2 (en) * | 2007-09-14 | 2011-07-12 | Ricoh Company, Limited | Multiprocessor system for memory mapping of processing nodes |
CN102156675A (zh) * | 2010-02-12 | 2011-08-17 | 中兴通讯股份有限公司 | 一种内存分配方法及装置 |
CN102902748A (zh) * | 2012-09-18 | 2013-01-30 | 上海移远通信技术有限公司 | 文件系统建立方法、管理方法及其ram和通信芯片 |
CN102200930B (zh) * | 2011-05-26 | 2013-04-17 | 北京华为数字技术有限公司 | 同步变量映射方法及装置、同步变量释放方法及同步变量删除方法 |
US8527544B1 (en) * | 2011-08-11 | 2013-09-03 | Pure Storage Inc. | Garbage collection in a storage system |
TW201339838A (zh) * | 2012-03-16 | 2013-10-01 | Hon Hai Prec Ind Co Ltd | 虛擬機記憶體管理系統及方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7065630B1 (en) * | 2003-08-27 | 2006-06-20 | Nvidia Corporation | Dynamically creating or removing a physical-to-virtual address mapping in a memory of a peripheral device |
US8122193B2 (en) * | 2004-12-21 | 2012-02-21 | Samsung Electronics Co., Ltd. | Storage device and user device including the same |
CN101408835A (zh) * | 2007-10-10 | 2009-04-15 | 英业达股份有限公司 | 逻辑卷管理器的数据管理方法 |
US8549223B1 (en) * | 2009-10-29 | 2013-10-01 | Symantec Corporation | Systems and methods for reclaiming storage space on striped volumes |
JP5405513B2 (ja) * | 2011-03-22 | 2014-02-05 | 株式会社東芝 | メモリシステム、不揮発性記憶装置、不揮発性記憶装置の制御方法、及びプログラム |
JP5853734B2 (ja) * | 2012-02-02 | 2016-02-09 | 富士通株式会社 | 仮想ストレージ装置,制御装置及び制御プログラム |
US8949512B2 (en) * | 2012-02-17 | 2015-02-03 | Apple Inc. | Trim token journaling |
-
2013
- 2013-11-26 TW TW102143051A patent/TWI514142B/zh not_active IP Right Cessation
-
2014
- 2014-01-02 CN CN201410008481.0A patent/CN104679668B/zh not_active Expired - Fee Related
- 2014-08-04 US US14/451,418 patent/US20150149741A1/en not_active Abandoned
- 2014-10-30 EP EP14190998.6A patent/EP2876541A1/en not_active Withdrawn
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7979645B2 (en) * | 2007-09-14 | 2011-07-12 | Ricoh Company, Limited | Multiprocessor system for memory mapping of processing nodes |
US20090089516A1 (en) * | 2007-10-02 | 2009-04-02 | Greg Pelts | Reclaiming storage on a thin-provisioning storage device |
CN102156675A (zh) * | 2010-02-12 | 2011-08-17 | 中兴通讯股份有限公司 | 一种内存分配方法及装置 |
CN102200930B (zh) * | 2011-05-26 | 2013-04-17 | 北京华为数字技术有限公司 | 同步变量映射方法及装置、同步变量释放方法及同步变量删除方法 |
US8527544B1 (en) * | 2011-08-11 | 2013-09-03 | Pure Storage Inc. | Garbage collection in a storage system |
TW201339838A (zh) * | 2012-03-16 | 2013-10-01 | Hon Hai Prec Ind Co Ltd | 虛擬機記憶體管理系統及方法 |
CN102902748A (zh) * | 2012-09-18 | 2013-01-30 | 上海移远通信技术有限公司 | 文件系统建立方法、管理方法及其ram和通信芯片 |
Also Published As
Publication number | Publication date |
---|---|
CN104679668A (zh) | 2015-06-03 |
EP2876541A1 (en) | 2015-05-27 |
US20150149741A1 (en) | 2015-05-28 |
CN104679668B (zh) | 2018-04-06 |
TW201520765A (zh) | 2015-06-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI514142B (zh) | 儲存系統及其控制方法 | |
US8892520B2 (en) | Storage device including a file system manager for managing multiple storage media | |
US8341338B2 (en) | Data storage device and related method of operation | |
US8924659B2 (en) | Performance improvement in flash memory accesses | |
US9075729B2 (en) | Storage system and method of controlling data transfer in storage system | |
KR101663066B1 (ko) | 하이브리드 디바이스에서의 고체 상태 메모리 커맨드 큐 | |
US20120185656A1 (en) | Systems and Methods for Scheduling a Memory Command for Execution Based on a History of Previously Executed Memory Commands | |
US9182912B2 (en) | Method to allow storage cache acceleration when the slow tier is on independent controller | |
JP6459644B2 (ja) | ストレージ制御装置、制御システム及び制御プログラム | |
JP2012508428A (ja) | 単一のコマンドにより複数の非連続アドレス範囲の転送をキューイングするための方法及びシステム | |
US8862819B2 (en) | Log structure array | |
CN113168374A (zh) | 写入命令在分区命名空间中的保持 | |
US20080162788A1 (en) | Memory Controller with Automatic Command Processing Unit and Memory System Including the Same | |
US20160357672A1 (en) | Methods and apparatus for atomic write processing | |
KR100663827B1 (ko) | 스토리지 제어 장치 및 스토리지 제어 방법 | |
JP6721821B2 (ja) | ストレージ制御装置、ストレージ制御方法およびストレージ制御プログラム | |
US8683161B2 (en) | Method and apparatus for increasing file copy performance on solid state mass storage devices | |
KR101517183B1 (ko) | 데이터 저장 장치 및 그것의 데이터 저장 방법 | |
JP2007249728A (ja) | ディスクアレイ装置 | |
US11474750B2 (en) | Storage control apparatus and storage medium | |
US9236066B1 (en) | Atomic write-in-place for hard disk drives | |
JP2006113882A (ja) | データ管理装置 | |
JP4076316B2 (ja) | 不揮発性キャッシュメモリを用いたデータ書き込みシステム | |
JP5216719B2 (ja) | 情報処理装置および制御装置 | |
WO2020019173A1 (zh) | 一种用于对象存储的存储器控制电路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |