存儲裝置及存儲裝置的控制方法
【技術領域】
[0001]本發明涉及將數據壓縮后保存的存儲裝置及其控制方法。
【背景技術】
[0002]由于IT的進步、因特網的普及等,企業等中的計算機系統所要處理的數據量持續增加。另一方面,想要削減IT系統成本的需求也升高,從用戶角度,謀求一種高性能且低價格的系統。
[0003]在存儲裝置的情況下,存儲裝置所使用的存儲介質占用了大多成本。因此,存儲介質的低成本化成為重要課題。對于存儲介質的低成本化,除采用便宜的(低比特成本的)存儲介質的方法以外,還存在通過將保存數據壓縮而由存儲介質保存更多數據的方法。在將數據以壓縮于存儲介質的狀態保存到存儲裝置中的情況下,不會在訪問存儲裝置的主機計算機或應用程序中意識到數據被壓縮后保存,即,關于透明地(transparent)進行數據壓縮,從便利性的觀點出發是重要的。另外,關于極力避免訪問性能降低,在實用上也是重要的。例如在專利文獻I中公開了如下系統,將數據(非壓縮數據)分割成多個單元并按每個單元進行壓縮,將壓縮后的各單元(壓縮單元)保存于LU (邏輯單元),讀取時不需要對LU整體進行讀取,僅通過讀取必要的單元就能夠訪問必要的數據。
[0004]現有技術文獻
[0005]專利文獻
[0006]專利文獻1:美國專利申請公開第2011/0219153號說明書
【發明內容】
[0007]在將壓縮數據保存于最終存儲介質的結構的情況下,關于更新數據的壓縮結果,存在該更新數據的壓縮數據的大小變得大于或小于更新前數據的壓縮數據的大小的情況。因此,無法單純將更新后數據的壓縮數據蓋寫于更新前的壓縮數據的保存區域。在專利文獻I所記載的技術中,在數據更新時,進行先讀取更新前數據并將其解壓縮,然后對解壓縮數據蓋寫更新數據的處理。另外,在更新后的壓縮數據的大小變得大于更新前的壓縮數據的情況下,進行搜尋未使用的存儲區域并保存沒有全部保存于更新前的壓縮數據的保存區域而剩下的部分數據的處理。因此,數據更新時的處理開銷(over head)大。
[0008]本發明的目的在于提高保存壓縮數據的存儲裝置的處理性能。
[0009]在本發明的實施例的存儲裝置中,對上級裝置提供不與最終存儲介質具有直接對應關系(映射)的解壓縮V0L,在上級裝置中進行對解壓縮VOL的訪問。而且將寫入于解壓縮VOL的數據在高速緩沖存儲器中進行在線壓縮,將壓縮后的數據保存到與最終存儲介質直接建立了對應的卷(壓縮VOL)中。另外通過維持解壓縮VOL的(保存有非壓縮數據的)區域與壓縮VOL的(保存有壓縮數據的)區域之間的映射信息,在從上級裝置有對解壓縮VOL的讀請求時,也會基于映射信息,將由讀請求指定的解壓縮VOL上的位置信息向最終存儲介質(與壓縮VOL建立了對應的存儲介質)的位置信息變換,從最終存儲介質讀取壓縮數據。然后將壓縮數據在高速緩沖存儲器中解壓縮并向上級裝置傳送。
[0010]另外在本發明中,其特征在于,在作為存儲裝置的高速緩沖裝置而動作的高速緩沖存儲器的內部,進行數據壓縮并生成針對壓縮后的壓縮數據的RAID Parity。
[0011]發明效果
[0012]根據本發明,在存儲裝置中,在將從服務器接收的寫數據壓縮后記錄于HDD時,將寫入于解壓縮VOL的數據在高速緩沖存儲器中在線壓縮,將壓縮后的數據以追寫要領保存于與最終存儲介質建立了直接對應的卷(壓縮V0L)中,由此在數據更新時不需要進行復雜的處理。另外通過維持解壓縮VOL的(保存有非壓縮數據的)區域與壓縮VOL的(保存有壓縮數據的)區域之間的映射信息,在從上級裝置有對解壓縮VOL的讀請求時,也會基于映射信息,將由讀請求指定的解壓縮VOL上的位置信息向最終存儲介質(與壓縮VOL建立了對應的存儲介質)的位置信息變換,并從最終存儲介質讀取壓縮數據,因此,能夠實現與對通常的(保存時不進行壓縮的)卷進行訪問時同等的訪問性能。
【附圖說明】
[0013]圖1是本發明的存儲裝置的動作概念圖。
[0014]圖2是表示本發明的存儲裝置(存儲系統)的結構圖。
[0015]圖3是表示高速緩沖存儲器的內部結構圖。
[0016]圖4是模擬地表示本實施例的高速緩沖存儲器向存儲控制器提供的邏輯區域LBAO ,LBAI與物理區域PBA的對應建立的概念圖。
[0017]圖5是表示本實施例中的高速緩沖存儲器26所支持的寫指令和相對于該寫指令的響應信息的圖。
[0018]圖6是表示本實施例中的高速緩沖存儲器26所支持的讀指令和向該讀指令的響應信息的圖。
[0019]圖7是表示本實施例中的高速緩沖存儲器26所支持的全條帶Parity(奇偶校驗位)生成指令和向全條帶Parity生成指令的響應信息的圖。
[0020]圖8是表示本實施例中的高速緩沖存儲器26所支持的更新Parity生成指令和向更新Parity生成指令的響應信息的圖。
[0021 ] 圖9是表示本實施例中的高速緩沖存儲器26所支持的LBAl映射指令和對該LBAl映射指令的響應信息的圖。
[0022]圖10是表示本實施例中的高速緩沖存儲器26所支持的LBAO映射指令和向該LBAO映射指令的響應信息的圖。
[0023]圖11是表示本實施例中的高速緩沖存儲器26所支持的壓縮數據大小獲取指令和向該壓縮數據大小獲取指令的響應信息的圖。
[0024]圖12是表示本實施例中的高速緩沖存儲器26所支持的映射解除指令和向該映射解除指令的響應信息的圖。
[0025]圖13是表示解壓縮VOL管理表的內容的圖。
[0026]圖14是表示壓縮VOL管理表的內容的圖。
[0027]圖15是表不解壓縮VOL與壓縮VOL的關系的概念圖。
[0028]圖16是表示壓縮VOL和與壓縮VOL對應的最終存儲介質的對應關系的概念圖。
[0029]圖17是表示卷映射表的內容的圖。
[0030]圖18是表示地址映射表的內容的圖。
[0031]圖19是表示本發明的實施例中的卷、槽、高速緩沖段之間的關系的概念圖。
[0032]圖20是存儲裝置所管理的高速緩沖管理數據結構的概念圖。
[0033]圖21是表示高速緩沖目錄、SLCT、SGCT之間的關系的圖。
[0034]圖22是表示臟隊列或干凈隊列的數據結構的圖。
[0035]圖23是表示空閑隊列的數據結構的圖。
[0036]圖24是表示本實施例中的寫處理中的、將從主機計算機接收到的寫數據保存到高速緩沖存儲器的處理的流程圖。
[0037]圖25是表示本實施例中的向壓縮VOL的數據轉移處理的流程圖。
[0038]圖26是表示本實施例中的轉儲處理的流程圖。
[0039]圖27是表示從主機計算機接受對卷(解壓縮VOL)的讀請求時的處理的流程圖。
[0040]圖28是表示從主機計算機接受對卷(解壓縮VOL)的讀請求時的處理的流程圖。
[0041]圖29是表示本發明的變形例I中的存儲裝置所管理的壓縮V0L、邏輯卷(LDEV)、最終存儲介質(PDEV)之間的關系的概念圖。
[0042]圖30是表示HVOL管理信息的內容的圖。
[0043]圖31是表示頁映射表的內容的圖。
[0044]圖32是表示頁空閑列表的內容的圖。
[0045]圖33是表示本發明的變形例I中的向壓縮VOL的數據轉移處理的流程圖。
[0046]圖34是表示本發明的變形例I中的向HVOL上的頁的區域分配處理的流程圖。
[0047]圖35是表示本發明的變形例2中的卷映射表的內容的圖。
【具體實施方式】
[0048]基于【附圖說明】本發明的實施方式。此外,本發明不限定于以下說明的實施方式。此夕卜,作為半導體存儲元件而以NAND型閃存器(以下,稱為FM)為例進行說明,但本發明不限定于FM,而以全部非易失性存儲器為對象。另外,在本實施例中,記述通過專用的硬件電路來實施數據壓縮的方式,但本發明不限定于該方式,也可以通過基于通用處理器實現的數據壓縮運算處理來壓縮數據。另外,在本實施例中,記述通過專用的硬件電路來實施奇偶校驗位(冗余數據)的方式,但本發明不限定于該實施例,也可以通過基于通用處理器實現的奇偶校驗位生成運算處理來生成RAID Parity。
[0049]首先,關于本發明的概要,使用圖1進行說明。在本發明的存儲裝置I中,將從主機計算機3寫入的數據壓縮后保存到作為最終存儲介質的SSD(Solid State Drive:固態驅動器)11或HDD (Hard Disk Drive:硬盤驅動器)12中,但由于壓縮后的數據大小根據數據內容而變動,所以難以唯一地確定數據保存位置。因此,存儲裝置I生成兩種邏輯卷并進行管理。第I種邏輯卷是向主機計算機3提供的邏輯卷,被主機計算機3認知為在該邏輯卷中保存有非壓縮數據。第2種邏輯卷是無法由主機計算機3認知的邏輯卷,該邏輯卷在存儲控制器10將壓縮數據保存于最終存儲介質(SSD11或HDD12)時使用。以下,將該第I邏輯卷稱作“解壓縮V0L”,將第2邏輯卷稱作“壓縮V0L”。
[0050]解壓縮V0L(圖1的“解壓縮V0L5000”)僅用于向主機計算機3提供邏輯性的(虛擬的)存儲區域,不存在與解壓縮VOL上的各地址對應的物理存儲區域(作為最終存儲介質的SSDll或HDD12的存儲區域)。另一方面,壓縮V0L(圖1的“壓縮V0L5500”)是(壓縮VOL上的)各存儲區域與作為最終存儲介質的SSDll或HDD12的存儲區域以1:1建立了對應的卷。本發明的存儲裝置I將多個(例如四臺)最終存儲介質作為一個RAID組而進行管理,將該一個RAID組的各存儲區域與壓縮VOL的各存儲區域建立對應。
[0051]當從主機計算機3對解壓縮VOL發送數據的寫請求及寫數據后,寫數據被保存到高速緩沖存儲器26上。本發明的高速緩沖存儲器26具有壓縮功能,在高速緩沖存儲器26上保存寫數據時,以壓縮的狀態進行保存。另外,在讀取(輸出)高速緩沖存儲器26上的壓縮數據時,也能夠通過壓縮功能將數據以解壓縮的狀態讀取,不對主機計算機3表現(不使主機計算機認知)數據被壓縮而保存的狀態。
[0052]本發明的目的為,由于將數據以壓縮的狀態保存到最終存儲介質中,所以將保存于高速緩沖存儲器26的壓縮數據以壓縮的狀態直接寫入到最終存儲介質中。在本發明的存儲裝置I中采取如下結構:不將更新數據寫入到與更新前數據的保存區域相同的區域,而將其追寫到最終存儲介質11(12)。另外,為了保存、管理壓縮數據,準備與解壓縮VOL不同的其他卷(壓縮V0L5500),并進行將寫入于解壓縮VOL的數據(實體僅保存于高速緩沖存儲器26)模擬地移動到壓縮V0L5500的處理。
[0053]解壓縮VOL上的區域與壓縮VOL的區域之間沒有固定的對應關系,在從解壓縮VOL向壓縮VOL移動數據時,壓縮VOL上的數據保存位置動態地確定。作為一例,在解壓縮VOL中隨機地寫入數據a、b、c、d、e的情況下,存儲裝置I進行將寫入于解壓縮VOL的數據向壓縮VOL上的區域移動(建立對應)的處理,但此時,在向最終存儲介質寫入數據之前進行的RAID奇偶校驗位生成處理時,在壓縮VOL上以將數據a、b、c、d、e從壓縮VOL的排頭以追寫要領寫入的方式逐步建立對應,從而不需要讀取更新前數據。寫入于解壓縮VOL上的各數據在壓縮VOL上的存儲位置由卷間映射表650管理。在壓縮VOL中將數據a、b、c、d、e (的壓縮數據)建立對應后,通過RAID技術從該數據生成冗余數據(奇偶校驗位),并將數據(壓縮數據)和奇偶校驗位向構成壓縮VOL的最終存儲介質寫入。
[0054]在不將數據壓縮而保存的普通存儲裝置中,在接受到對卷的數據更新請求和更新數據時,在該更新數據的更新前數據的保存區域中將該更新數據蓋寫而保存。但是,在將壓縮數據保存于最終存儲介質的結構的情況下,關于更新數據的壓縮的結果,也存在該更新數據的壓縮數據的大小變得大于更新前數據的壓縮數據的大小的情況。因此,對最終存儲介質蓋寫時的處理變得復雜化,而處理性能惡化。
[0055]在本發明的實施例的存儲裝置中,對主機計算機等上級裝置,提供與最終存儲介質沒有直接對應關系(映射)的解壓縮V0L,使上級裝置進行對解壓縮VOL的訪問。然后將寫入于解壓縮VOL的數據通過高速緩沖存儲器在線壓縮,并將壓縮后的數據以追寫要領保存到與最終存儲介質建立了直接對應的壓縮VOL中,由此不會產生數據更新時的處理開銷。另外,通過維持保存有非壓縮數據的解壓縮VOL的區域與保存有壓縮數據的壓縮VOL的區域之間的映射信息,在有從上級裝置對解壓縮VOL的讀請求時,也會基于映射信息,將由讀請求指定的解壓縮VOL上的位置信息向壓縮VOL的位置信息變換,從壓縮VOL (最終存儲介質)讀取壓縮數據,然后將壓縮數據在高速緩沖存儲器中解壓縮并向上級裝置傳送,由此,能夠縮短響應時間。
[0056]另夕卜,雖然在后詳細說明,但通過對壓縮VOL采用自動精簡配置(ThinProvis1ning)技術而能夠提高容量效率、實現低價格的系統。
[0057]另外,雖然在后詳細說明,但通過考慮解壓縮VOL上的數據配置而向壓縮VOL移動數據,能夠提尚時序訪冋性能。
[0058]【實施例】
[0059]圖2是表示本發明的實施例的存儲裝置(存儲系統)的結構圖。
[0060]存儲裝置I具有一個以上的存儲控制器10 (以下,也存在簡記為“控制器10”的情況)。各控制器10具有用于與主機計算機(上級裝置)3連接的主機接口(在圖中記作“主機I/F”) 24、和用于將記錄裝置連接的盤接口(在圖中記作“盤I/F”) 23。主機接口 24使用例如與 FC(Fibre Channel:光纖通道)、iSCSI (internet Small Computer System Interface:互聯網小型計算機系統接口)、FCoE (Fibre Channel over Ether:以太網光纖通道)等協議對應的設備,盤接口 107使用例如與FC、SAS (Serial Attached SCS1:串行連接SCSI)、SATA (Serial Advanced Technology Attachment:串行高級技術附件)、PCI (PeripheralComponent Interconnect:外設部件互連標準)-Express等各種協議對應的設備。另外,以后,也存在將主機接口 24稱作“端口 24”的情況。而且,存儲控制器10具有處理器(在圖中記作“MPU”)21和DRAM25等硬件資源,在處理器21的控制下,根據來自主機計算機3的讀/寫請求,而進行向SSDll和/或HDD12等最終存儲介質的讀/寫請求。另外,在內部具有高速緩沖存儲器26,能夠由處理器21經由內部開關(在圖中記作“內部SW”)22來控制高速緩沖存儲器26。另外,還具有用于在存儲控制器10間使數據和控制信息相互通信的節點(node)I/F27o
[0061]存儲裝置I和管理裝置4經由網絡而連接。作為該網絡的傳輸介質,使用例如以太網(注冊商標)等。此外,在圖2為了簡化而省略,但該網絡與存儲裝置I內部的各存儲控制器10連接。此外,該網絡也可以通過與SAN2相同的網絡而連接。
[0062]管理裝置4是具有處理器、存儲器,網絡接口、本地輸入輸出設備等硬件資源、和管理程序等軟件資源的計算機。在管理裝置4中,管理程序動作,通過執行該管理程序而從存儲裝置I獲取信息,另外,提供系統管理者的管理操作用的GUI。系統管理者使用該管理操作用的GUI,進行存儲裝置I的卷的生成和存儲裝置I的監視等操作。
[0063]SSD11、HDD12分別在存儲裝置I內存在多個(例如16個),并經由盤接口 23與存在于相同存儲裝置內的多個存儲控制器10連接。SSDl1、HDD12根據來自存儲控制器10的寫請求而保存傳送來的數據,并根據讀請求讀取已保存的數據并向存儲控制器10傳送。此外,此時盤接口 107通過邏輯塊地址(Logical Block Address。以下稱作“LBA”)來指定數據的讀/寫位置。另外,存儲裝置I構成為,將多個SSD11、HDD12以規定臺數(例如4臺、8臺、16臺等)為單位作為RAID組而進行管理,即使在RAID組內的I臺(或2臺)盤發生故障的情況下,也能夠實現數據的復原。
[0064]主機計算機(上級裝置)3具有處理器、存儲器、網絡接口、本地輸入輸出設備等硬件資源,還具有設備驅動器和操作系統(OS)、應用程序等軟件資源。由此,主機計算機3通過在處理器的控制下執行各種程序,而進行與存儲裝置108的通信及數據的讀/寫請求。另夕卜,通過在處理器的控制下執行各種程序,而獲取存儲裝置I的使用狀況、動作狀況等管理信息。另外,能夠指定記錄裝置的管理單位或/和記錄裝置控制方法、數據壓縮設定等而進行變更。
[0065]接下來,使用圖3說明高速緩沖存儲器26的內部結構。
[0066]本發明的實施例中的高速緩沖存儲器26將閃存器(Flash Memory)作為存儲介質而使用。高速緩沖存儲器26在內部具有FM控制器(FM CTL)410和多個(例如32個)FM420o
[0067]FM控制器410在其內部具有處理器415、RAM413、數據壓縮/解壓縮單元418、Parity生成單元419、數據緩沖器416、I/O接口(I/F)411、FM接口 417及相互進行數據傳送的開關414。
[0068]I/O接口 411與存儲裝置I內的存儲控制器10所具有的內部開關22連接,并經由開關414與FM控制器410的各部位連接。I/O接口 411用于從存儲裝置I內的存儲控制器10所具有的處理器21接受對高速緩沖存儲器26的各種指令、或進行數據傳送。
[0069]處理器415經由開關414與FM控制器410的各部位連接,并基于記錄在RAM413中的程序及管理信息對FM控制器410整體進行控制。數據緩沖器416用于暫時保存基于FM控制器410進行的數據傳送處理中途的數據。
[0070]FM接口(I/F) 417通過多條總線(例如16條)與FM420連接。在各總線上連接有多個(例如兩個)FM420。
[0071]數據壓縮/解壓縮單元418具有處理可逆壓縮算法的功能。數據壓縮/解壓縮單元418根據來自處理器415的指示,將從I/O接口 411到來且要寫入FM420的數據壓縮,或者將要從FM420向I/O接口 411送出的數據解壓縮。此外,數據壓縮/解壓縮單元可以作為邏輯電路而安裝,也可以通過由處理器對壓縮/解壓縮的程序進行處理而實現同樣的功會K。
[0072]Parity生成單元419具有生成在RAID技術中所需的冗余數據的奇偶校驗位的功能,具體地說,具有通過RAID5、6等中使用的XOR(異或)運算、RAID6中使用的里所(RS:Reed-Solomon)碼或EVEN0DD法而計算出的對角奇偶校驗位(Diagonal Parity)的生成功會K。
[0073]以上說明的開關414、盤接口 411、處理器415、數據緩沖器416、FM接口 417、數據壓縮/解壓縮單元418、Parity生成單元419可以作為ASIC (Applicat1n SpecificIntegrated Circuit:專用集成電路)或FPGA(Field Programmable Gate Array:現場可編程門陣列),在一個半導體元件內構成,也可以是將多個單獨專用IC(Integrated Circuit:集成電路)相互連接而成的結構。
[0074]關于RAM413,具體地說可列舉DRAM等易失性存儲器。RAM413保存在高速緩沖存儲器26內使用的FM420的管理信息、包含各DMA使用的傳送控制信息在內的傳送列表等。此外,也可以成為使保存數據的數據緩沖器416的一部分或全部功能包含于RAM413、并將RAM413用于數據保存的結構。
[0075]此外,在本實施例中如圖3所示,對搭載有閃存器(Flash Memory)的高速緩沖存儲器26進行了記述,但搭載于高速緩沖存儲器26的存儲介質不限定于閃存器。也可以是Phase Change RAM(相變 RAM)或 Resistance RAM(阻抗 RAM)。另外,也可以是使 FM420 的一部分或全部為易失性RAM (DRAM等)的結構。
[0076]接著,說明本實施例中的高速緩沖存儲器26對存儲控制器10提供的存儲空間。
[0077]本實施例中的高速緩沖存儲器26對自身所連接的存儲控制器10 (的處理器21)提供邏輯性的存儲空間。在此,“提供存儲空間”是指,相對于存儲控制器10而事先向訪問的各存儲區域附加地址,高速緩沖存儲器26所連接的存儲控制器10的處理器21發出指定了該地址的訪問請求(指令),由此成為能夠對由該地址特定的區域中保存的數據進行參照、更新的狀態。高速緩沖存儲器26的處理器415將由FM420構成的物理存儲區域與僅在高速緩沖存儲器26內部使用的一維的地址空間唯一地建立對應而進行管理。以后,將該僅在高速緩沖存儲器26內部使用的物理區域指定用地址空間(物理地址空間)稱作PBA(Physical Block Address:物理塊地址)空間,將PBA空間內的各物理存儲區域(扇區。在本發明的實施例中,I扇區為512字節)的位置(地址)記作PBA(Physical BlockAddress)。
[0078]以往的SSD等存儲裝置對存儲裝置所連接的上級裝置(主機計算機等)提供一個存儲空間。另一方面,本實施例的高速緩沖存儲器26的特征在于,對高速緩沖存儲器26所連接的存儲控制器10提供兩個邏輯存儲空間。使用圖4說明這兩個邏輯存儲空間與PBA空間的關系。
[0079]高速緩沖存儲器26提供LBAO空間701和LBAl空間702這兩個邏輯存儲空間。此外,以后,將對LBAO空間701上的各存儲區域賦予的地址稱作“LBAO”或“