存儲控制器、存儲系統及操作存儲控制器的方法
【專利說明】存儲控制器、存儲系統及操作存儲控制器的方法
[0001]本申請要求于2014年4月21日提交的第10-2014-0047443號韓國專利申請的優先權,該韓國專利申請的主題通過引用包含于此。
技術領域
[0002]本發明構思涉及存儲控制器、存儲系統以及操作存儲控制器的方法。
【背景技術】
[0003]廉價或獨立盤冗余陣列(RAID)技術用于將數據劃分成多個數據段,將被劃分的數據段在多個盤中分布和存儲,并且RAID可具有各種等級。例如,在RAID 5系統中,當以分布式的方式將數據分條并將分條數據存儲到多個盤上的同時,數據存儲被存儲有奇偶校驗位,奇偶驗證位可用于在發生讀取數據失敗時恢復存儲在相關盤上的數據。奇偶校驗位可通過對分條數據執行異或(exclusive-OR,XOR)操作來獲得。在另一示例中,RAID 6系統使用第一奇偶校驗位和第二奇偶校驗位來提供數據恢復能力。
[0004]使用RAID的計算系統通常包括用于控制多個數據存儲盤(以下,稱為“存儲盤”或“存儲裝置”)的中央RAID控制器。中央RAID控制器控制存儲裝置,同時處理針對存儲在存儲裝置上的數據的RAID請求。然而,隨著RAID請求變得更頻繁,施加到中央RAID控制器的操作負載(或計算負荷)可增大至使計算系統的性能受損的程度。
【發明內容】
[0005]本發明構思的實施例各種地提供了通過將RAID請求分配到一個或更多個存儲裝置來使分布式存儲系統的性能提高的存儲控制器、數據存儲系統和操作存儲控制器的方法。
[0006]在一個實施例中,本發明構思提供了一種獨立盤冗余陣列(RAID)存儲系統,該RAID存儲系統包括接收RAID請求的RAID主控制器和第一存儲裝置,第一存儲裝置包括:第一 RAID處理單元,從RAID主控制器接收RAID請求并確定是否需要分配RAID子請求,其中,在確定不需要分配RAID子請求時,RAID處理單元直接處理RAID請求;第一 RAID請求分配單元,在確定需要分配RAID子請求時,通過第一存儲裝置與第二存儲裝置之間的直接網絡連接將RAID子請求傳送到第二存儲裝置。
[0007]在另一實施例中,本發明構思提供了一種獨立盤冗余陣列(RAID)存儲系統,該RAID存儲系統包括:主機,包括RAID主控制器,RAID主控制器接收RAID請求并被構造成將RAID請求選擇地傳送到包括第一存儲裝置和第二存儲裝置的多個存儲裝置中的一個存儲裝置,其中,第一存儲裝置和第二存儲裝置在包括主機的數據通信路徑之外直接連接;第一存儲裝置,被構造成在從RAID主控制器接收RAID請求時確定是否需要將RAID子請求分配到第二存儲裝置,使得在確定需要分配RAID子請求時,第一 RAID控制器將RAID子請求傳送到第二存儲裝置。
[0008]在另一實施例中,本發明構思提供了一種操作存儲控制器的方法,該方法包括以下步驟:控制第一存儲裝置以直接處理從RAID主控制器分配的第一 RAID請求;將與第一RAID請求有關的第二 RAID請求分配到包括第二存儲裝置的一個或更多個存儲裝置。
【附圖說明】
[0009]通過參照附圖詳細地描述本發明構思的優選實施例,本發明構思的上述和其他特征和優點將變得更明顯,在附圖中:
[0010]圖1是示出根據本發明構思的實施例的存儲系統的框圖;
[0011]圖2是進一步示出一個示例中的圖1的存儲系統的主機100的框圖;
[0012]圖3是進一步示出另一示例中的圖1的存儲系統的主機100的框圖;
[0013]圖4是進一步示出一個示例中的在圖1的存儲系統中使用的存儲裝置的框圖;
[0014]圖5是進一步示出另一示例中的在圖1的存儲系統中使用的存儲裝置的框圖;
[0015]圖6是示出根據本發明構思的在存儲系統中使用的RAID管理方法的框圖;
[0016]圖7是進一步示出一個示例中的圖6的RAID管理方法的框圖;
[0017]圖8是示出根據本發明構思的實施例的操作存儲控制器以處理RAID請求的方法的操作圖;
[0018]圖9是示出根據本發明構思的另一實施例的操作存儲控制器以處理RAID請求的方法的操作圖;
[0019]圖10是示出根據本發明構思的另一實施例的存儲控制器的框圖;
[0020]圖11和圖12是示出根據本發明構思的各種實施例的存儲系統的各框圖;
[0021]圖13、圖14和圖15是總結根據本發明構思的實施例的操作存儲控制器以處理RAID請求的各種方法的示例的各流程圖。
【具體實施方式】
[0022]現在將參照附圖來更詳細地描述本發明構思的特定實施例。然而,本發明構思可以以不同的形式來實施,并且不應該被解釋為僅局限于示出的實施例。相反,提供這些實施例使得本公開將是徹底的和完整的,這些實施例將向本領域技術人員充分地傳達本發明構思的范圍。在整個書面描述和附圖中,同樣的附圖標號和標記用于指示同樣或類似的元件。
[0023]還將理解的是,當層被稱為“在”另一層或基板“上”時,它可直接在所述另一層或基板上,或者還可存在中間層。相反,當元件被稱為“直接在”另一元件“上”時,不存在中間元件。
[0024]為了便于描述,這里可使用諸如“在……之下”、“在……下面”、“下面的”、“在……上面”和“上面的”等的空間相對術語來描述如附圖中所示的一個元件或特征與另一元件或特征的關系。將理解的是,除了在附圖中描繪的方位之外,空間相對術語意圖包括裝置在使用或操作中的不同方位。例如,如果附圖中的裝置被翻轉,則描述為“在”其他元件或特征“下面”或者“在”其他元件或特征“之下”的元件接著將被定位為“在”所述其他元件或特征“上面”。因此,示例性術語“在……下面”可包括“在……上面”和“在……下面”兩種方位。裝置可被另外定位(旋轉90度或在其他方位),并相應地解釋這里使用的空間相對描述符。
[0025]除非這里另外指出或通過上下文明顯矛盾,否則在描述本發明構思的上下文中(特別在權利要求的上下文中)使用的單數形式的表達以及類似的指示物將被解釋為既包括單數又包括復數。除非另有說明,否則術語“包含”、“具有”、“包括”和“含有”將被解釋為開放式術語(即,表示“包括但不限于”)。
[0026]除非另有定義,否則這里使用的所有技術術語和科學術語具有與如本發明構思所屬領域的普通技術人員所通常理解的意思相同的意思。注意的是,除非另外明確指出,否則這里提供的任何和所有示例或示例性術語的使用僅意圖更好地闡明本發明構思,而不是對本發明構思的范圍的限制。此外,除非另有定義,否則不可過度地解釋在通用辭典中定義的所有術語。
[0027]圖1是示出根據本發明構思的實施例的存儲系統的框圖。
[0028]參照圖1,存儲系統I包括主機100以及多個存儲裝置200、202、204和206。
[0029]主機100接收數據輸入和數據輸出請求(以下,共同地或個別地稱為“數據I/O請求”或“RAID請求”),并執行針對多個存儲裝置200、202、204和206中的一個或更多個的相應的數據I/O操作。數據I/O請求可導致執行數據存儲操作、數據更新操作和/或數據讀取操作中的一個或更多個操作。下面的許多描述將針對以下情況,即,假定接收的數據I/O請求為導致數據存儲操作的請求(即,數據存儲請求)。然而,本發明構思的范圍不僅限于這種類型的請求以及相應的操作。
[0030]主機100被假定為接收由對主機100執行應用而引起的數據I/O請求,但本發明構思涵蓋其他請求起源和類型。響應于接收的數據I/O請求,主機100可使由數據I/O請求指示的RAID操作被分布到多個存儲裝置200、202、204和206中并被多個存儲裝置200、202,204和206共同處理。例如,假定接收的數據I/O請求為數據存儲請求,則主機100可以使用RAID系統以分布式的方式將相應的“寫入數據”寫入到多個存儲裝置200、202、204和206中ο
[0031]為了操作RAID系統,在圖1中示出的主機100包括RAID主控制器110,將參照在圖2和圖3中示出的示例中更詳細地描述RAID主控制器110。然而,在本發明構思的特定實施例中,可將主機100實施為諸如臺式計算機的個人計算機、服務器計算機、諸如筆記本計算機的便攜式計算機或諸如蜂窩電話、智能電話、平板電腦、MP3、便攜式多媒體播放器(PMP)、個人數字助理(PDA)、數碼相機、攝像機等的便攜式裝置。
[0032]多個存儲裝置200、202、204和206中的每個存儲裝置可響應于從主機100接收的數據I/o指令來分別執行數據I/O操作。例如,按照通過從主機100接收的數據讀取指令的指示,存儲裝置200、202、204和206中的每個存儲裝置可以從構成的閃速存儲器讀取數據,并可接著將“讀取數據”傳送到主機100。可選擇地或另外地,存儲裝置200、202、204和206中的每個存儲裝置可以按照從主機100接收的數據存儲指令的指示將寫入數據存儲在構成的閃速存儲器中。
[0033]在本發明構思的特定實施例中,存儲裝置200、202、204和206可分別為通過快速外設組件互連(PC1-E)接口與主機100通信的固態硬盤(SSD),但在本發明構思的實施例中可使用各種接口。如圖1中所示,存儲裝置200、202、204和206中的每個存儲裝置可包括相應的RAID控制器210、212、214和216。RAID控制器被構造成連同RAID主控制器110 —起來實現RAID系統,隨后