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