亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

使用獨立磁盤冗余陣列的動態(tài)自動調(diào)諧的最大延遲的減小的制作方法

文檔序號:12271136閱讀:194來源:國知局
使用獨立磁盤冗余陣列的動態(tài)自動調(diào)諧的最大延遲的減小的制作方法與工藝

本申請要求于2015年5月12日提交的臨時申請?zhí)枮?2/160,508的美國臨時申請的權(quán)益,其全部內(nèi)容通過引用并入本文。

技術(shù)領(lǐng)域

本公開的示例性實施例涉及一種存儲器系統(tǒng)及其操作方法。



背景技術(shù):

計算機(jī)環(huán)境范例已經(jīng)轉(zhuǎn)變至可隨時隨地使用的普適計算系統(tǒng)。由于該事實,諸如移動電話、數(shù)碼相機(jī)和筆記本電腦的便攜式電子裝置的使用一直快速增加。這些便攜式電子裝置通常使用具有存儲器裝置即數(shù)據(jù)存儲裝置的存儲器系統(tǒng)。數(shù)據(jù)存儲裝置被用作便攜式電子裝置的主存儲器裝置或輔助存儲器裝置。

由于使用存儲器裝置的數(shù)據(jù)存儲裝置沒有移動部件,所以它們提供良好的穩(wěn)定性、耐用性、高的信息存取速度以及低功耗。具有這種優(yōu)點的數(shù)據(jù)存儲裝置的示例包括通用串行總線(USB)存儲器裝置、具有各種接口的存儲卡以及固態(tài)驅(qū)動器(SSD)。



技術(shù)實現(xiàn)要素:

本發(fā)明的一方面包括存儲器系統(tǒng)。存儲器系統(tǒng)可包括:廉價磁盤冗余陣列(RAID)組,其包括多個磁盤;以及存儲訪問層,其包括RAID引擎,其中RAID引擎適用于從RAID組請求數(shù)據(jù)、基于延遲閾值確定多個磁盤中的磁盤是否忙碌、當(dāng)確定磁盤忙碌時確定被請求的數(shù)據(jù)是否可以從多個磁盤中的其它非忙碌磁盤獲取以及當(dāng)確定數(shù)據(jù)從其它非忙碌磁盤可獲取時獲取被請求的數(shù)據(jù)。

本發(fā)明的進(jìn)一步的方面包括方法。該方法可包括利用廉價磁盤冗余陣列(RAID)引擎從包括多個磁盤的RAID組請求數(shù)據(jù)、基于延遲閾值確定多個磁盤中的磁盤是否忙碌、當(dāng)確定磁盤忙碌時確定被請求的數(shù)據(jù)是否可以從多個磁盤中的其它非忙碌磁盤獲取以及當(dāng)確定數(shù)據(jù)從其它非忙碌磁盤可獲取時獲取被請求的數(shù)據(jù)。

本發(fā)明的附加方面包括存儲器裝置。存儲器裝置可包括廉價磁盤冗余陣列(RAID)組,其包括多個磁盤;以及RAID引擎,其被配置成從RAID組請求數(shù)據(jù)、基于延遲閾值確定多個磁盤中的磁盤是否忙碌以及當(dāng)確定磁盤忙碌時從其它非忙碌磁盤獲取被請求的數(shù)據(jù)。

附圖說明

圖1是示意性示出根據(jù)本發(fā)明的實施例的存儲器系統(tǒng)的框圖。

圖2是示出根據(jù)本發(fā)明的實施例的存儲器系統(tǒng)的框圖。

圖3是示出根據(jù)本發(fā)明的實施例的存儲器裝置的存儲塊的電路圖。

圖4是根據(jù)本發(fā)明的一方面的示例存儲器系統(tǒng)的簡圖。

圖5是根據(jù)本發(fā)明的一方面的進(jìn)程的步驟的流程圖。

具體實施方式

下面將參照附圖更詳細(xì)地描述各種實施例。然而,本發(fā)明可以不同的形式呈現(xiàn)且不應(yīng)被解釋為限于在本文中提出的實施例。而是,這些實施例被提供使得本公開將是徹底且完整的并將本發(fā)明的范圍充分傳達(dá)給本領(lǐng)域技術(shù)人員。在整個公開中,相似的參考編號指的是本發(fā)明的各種附圖和實施例中的相似部件。

本發(fā)明可以多種方式實施,包括作為進(jìn)程;設(shè)備;系統(tǒng);物質(zhì)組分;呈現(xiàn)在計算機(jī)可讀存儲介質(zhì)上的計算機(jī)程序產(chǎn)品;和/或處理器,諸如適用于執(zhí)行存儲在聯(lián)接至處理器的存儲器上和/或由聯(lián)接至處理器的存儲器提供的指令的處理器。在本說明書中,這些實施例或本發(fā)明可采用的任何其它形式可被稱為技術(shù)。通常,公開的進(jìn)程的步驟的順序可在本發(fā)明的范圍內(nèi)改變。除非另有說明,否則諸如被描述為適用于執(zhí)行任務(wù)的處理器或存儲器的組件可被實施為在給定時間臨時適用于執(zhí)行任務(wù)的一般組件或被制造為執(zhí)行任務(wù)的專用組件。如在此所使用的,術(shù)語“處理器”是指適用于處理數(shù)據(jù)的一個或多個裝置、電路和/或處理核心,諸如計算機(jī)程序指令。

下面連同示出本發(fā)明的原理的附圖一起提供本發(fā)明的一個或多個實施例的詳細(xì)說明。結(jié)合這些實施例描述本發(fā)明,但本發(fā)明不限于任意實施例。本發(fā)明的范圍僅由權(quán)利要求限制且本發(fā)明包含許多可選方案、變型和等同方案。為了能夠徹底理解本發(fā)明,在下面的描述中闡述許多具體細(xì)節(jié)。這些細(xì)節(jié)被提供以用于示例的目的,且在沒有一些或全部這些具體細(xì)節(jié)的情況下,本發(fā)明可根據(jù)權(quán)利要求來實施。為了清楚的目的,沒有詳細(xì)描述在與本發(fā)明相關(guān)的技術(shù)領(lǐng)域中已知的技術(shù)材料使得本發(fā)明沒有被不必要地模糊。

圖1是示意性示出根據(jù)本發(fā)明的實施例的存儲器系統(tǒng)10的框圖。

參照圖1,存儲器系統(tǒng)10可包括存儲器控制器100和半導(dǎo)體存儲器裝置200。

存儲器控制器100可控制半導(dǎo)體存儲器裝置200的全部操作。

半導(dǎo)體存儲器裝置200可在存儲器控制器100的控制下執(zhí)行一個或多個擦除操作、編程操作和讀取操作。半導(dǎo)體存儲器裝置200可通過輸入/輸出線接收命令CMD、地址ADDR和數(shù)據(jù)DATA。半導(dǎo)體存儲器裝置200可通過電源線接收電源PWR以及通過控制線接收控制信號CTRL??刂菩盘柨砂铈i存啟用(CLE)信號、地址鎖存啟用(ALE)信號、芯片啟用(CE)信號、寫入啟用(WE)信號、讀取啟用(RE)信號等。

存儲器控制器100和半導(dǎo)體存儲器裝置200可被集成在單個半導(dǎo)體裝置中。例如,存儲器控制器100和半導(dǎo)體存儲器裝置200可被集成在諸如固態(tài)驅(qū)動器(SSD)的單個半導(dǎo)體裝置中。固態(tài)驅(qū)動器可包括用于將數(shù)據(jù)存儲在其中的存儲裝置。當(dāng)半導(dǎo)體存儲器系統(tǒng)10被用在SSD中時,聯(lián)接至存儲器系統(tǒng)10的主機(jī)(未示出)的操作速度可顯著提高。

存儲器控制器100和半導(dǎo)體存儲器裝置200可被集成在諸如存儲卡的單個半導(dǎo)體裝置中。例如,存儲器控制器100和半導(dǎo)體存儲器裝置200可被集成在單個半導(dǎo)體裝置中以配置諸如以下的存儲卡:個人計算機(jī)存儲卡國際協(xié)會(PCMCIA)的PC卡、標(biāo)準(zhǔn)閃存(CF)卡、智能多媒體(SM)卡、記憶棒、多媒體卡(MMC)、減小尺寸的多媒體卡(RS-MMC)、微型版MMC(微型MMC)、安全數(shù)碼(SD)卡、迷你安全數(shù)字(迷你SD)卡、微型安全數(shù)字(微型SD)卡、安全數(shù)字高容量(SDHC)以及通用閃速存儲器(UFS)。

作為另一個示例,存儲器系統(tǒng)10可被設(shè)置為諸如以下的包括電子裝置的各種元件中的一個:計算機(jī)、超便攜移動PC(UMPC)、工作站、上網(wǎng)本計算機(jī)、個人數(shù)字助理(PDA)、便攜式計算機(jī)、網(wǎng)絡(luò)平板PC、無線電話、移動電話、智能電話、電子書閱讀器、便攜式多媒體播放器(PMP)、便攜式游戲裝置、航海裝置、黑匣子、數(shù)碼相機(jī)、數(shù)碼多媒體廣播(DMB)播放器、三維電視、智能電視、數(shù)字音頻記錄器、數(shù)字音頻播放器、數(shù)字圖片記錄器、數(shù)字圖片播放器、數(shù)字視頻記錄器、數(shù)字視頻播放器、數(shù)據(jù)中心的存儲裝置、能夠在無線環(huán)境下接收和傳輸信息的裝置、家庭網(wǎng)絡(luò)的電子裝置中的一個、計算機(jī)網(wǎng)絡(luò)的電子裝置中的一個、遠(yuǎn)程信息處理網(wǎng)絡(luò)的電子裝置中的一個、射頻識別(RFID)裝置或計算系統(tǒng)的元件裝置。

圖2是示出根據(jù)本發(fā)明的實施例的存儲器系統(tǒng)的詳細(xì)框圖。例如,圖2的存儲器系統(tǒng)可描述圖1中示出的存儲器系統(tǒng)10。

參照圖2,存儲器系統(tǒng)10可包括存儲器控制器100和半導(dǎo)體存儲器裝置200。存儲器系統(tǒng)10可響應(yīng)于來自主機(jī)裝置的請求而操作,尤其是,存儲待被由主機(jī)裝置訪問的數(shù)據(jù)。

主機(jī)裝置可利用各種電子裝置中的任意一種來實施。在一些實施例中,主機(jī)裝置可包括諸如臺式計算機(jī)、工作站、三維(3D)電視、智能電視、數(shù)字音頻記錄器、數(shù)字音頻播放器、數(shù)字圖像記錄器、數(shù)字圖像播放器、數(shù)字視頻記錄器和數(shù)字視頻播放器的電子裝置。在一些實施例,主機(jī)裝置可包括諸如移動電話、智能電話、電子書、MP3播放器、便攜式多媒體播放器(PMP)和便攜式游戲機(jī)的便攜式電子裝置。

存儲器裝置200可存儲待被由主機(jī)裝置訪問的數(shù)據(jù)。

存儲器裝置200可利用諸如動態(tài)隨機(jī)存取存儲器(DRAM)和靜態(tài)隨機(jī)存取存儲器(SRAM)的易失性存儲器裝置或諸如只讀存儲器(ROM)、掩膜ROM(MROM)、可編程ROM(PROM)、可擦可編程ROM(EPROM)、電可擦可編程ROM(EEPROM)、鐵電隨機(jī)存取存儲器(FRAM)、相變RAM(PRAM)、磁阻RAM(MRAM)和電阻式RAM(RRAM)的非易失存儲器裝置來實施。

控制器100可控制存儲器裝置200中數(shù)據(jù)的存儲。例如,控制器100可響應(yīng)于來自主機(jī)裝置的請求控制存儲器裝置200??刂破?00可將從存儲器裝置200讀取的數(shù)據(jù)提供至主機(jī)裝置,并將從主機(jī)裝置提供的數(shù)據(jù)存儲在存儲器裝置200中。

控制器100可包括通過總線160聯(lián)接的存儲單元110、控制單元120、錯誤糾正碼(ECC)單元130、主機(jī)接口140和存儲器接口150。

存儲單元110可用作存儲器系統(tǒng)10和控制器100的工作存儲器并存儲用于驅(qū)動存儲器系統(tǒng)10和控制器100的數(shù)據(jù)。當(dāng)控制器100控制存儲器裝置200的操作時,存儲單元110可存儲被控制器100和存儲器裝置200用于諸如讀取操作、寫入操作、編程操作和擦除操作的數(shù)據(jù)。

存儲單元110可利用易失性存儲器來實施。存儲單元110可利用靜態(tài)隨機(jī)存取存儲器(SRAM)或動態(tài)隨機(jī)存取存儲器(DRAM)來實施。如上所述,存儲單元110可將主機(jī)裝置使用的數(shù)據(jù)存儲在存儲器裝置200中以用于讀取操作和寫入操作。為了存儲數(shù)據(jù),存儲單元110可包括編程存儲器、數(shù)據(jù)存儲器、寫入緩沖器、讀取緩沖器、映射緩沖器等。

控制單元120可響應(yīng)于來自主機(jī)裝置的寫入請求或讀取請求而控制存儲器系統(tǒng)10的一般操作和用于存儲器裝置200的寫入操作或讀取操作??刂茊卧?20可驅(qū)動被稱為閃存轉(zhuǎn)換層(FTL)的固件以控制存儲器系統(tǒng)10的一般操作。例如,F(xiàn)TL可執(zhí)行諸如邏輯-物理(L2P)映射、損耗均衡、碎片收集和壞塊處理的操作。L2P映射被稱為邏輯塊尋址(LBA)。

ECC單元130可檢測并糾正在讀取操作期間從存儲器裝置200讀取的數(shù)據(jù)中的錯誤。當(dāng)錯誤位的數(shù)量大于或等于可糾正錯誤位的閾值數(shù)量時,ECC單元130可不糾正錯誤位,而是可輸出表示糾正錯誤位失敗的錯誤糾正失敗信號。

在一些實施例中,ECC單元130可基于諸如低密度奇偶檢查(LDPC)碼、博斯-查德胡里-霍昆格姆(BCH)碼、渦輪(turbo)碼、渦輪乘積碼(TPC)、里德-所羅門(RS)碼、卷積碼、遞歸系統(tǒng)碼(RSC)、網(wǎng)格編碼調(diào)制(TCM)、分組編碼調(diào)制(BCM)等的編碼調(diào)制來執(zhí)行錯誤糾正操作。ECC單元130可包括用于錯誤糾正操作的所有電路、系統(tǒng)或裝置。

主機(jī)接口140可通過諸如通用串行總線(USB)、多媒體卡(MMC)、外圍組件互連高速(PCI-E)、小型計算機(jī)系統(tǒng)接口(SCSI)、串列SCSI(SAS)、串行高級技術(shù)附件(SATA)、并行高級技術(shù)附件(PATA)、增強(qiáng)型小型磁盤接口(ESDI)和集成驅(qū)動電路(IDE)的各種接口協(xié)議中的一個或多個與主機(jī)裝置通信。

存儲器接口150可提供控制器100和存儲器裝置200之間的接口以允許控制器100響應(yīng)于來自主機(jī)裝置的請求而控制存儲器裝置200。存儲器接口150可在CPU120的控制器下生成用于存儲器裝置200的控制器信號并處理數(shù)據(jù)。當(dāng)存儲器裝置200是諸如NAND閃速存儲器的閃速存儲器時,存儲器接口150可在CPU120的控制器下生成用于存儲器裝置200的控制器信號并處理數(shù)據(jù)。

存儲器裝置200可包括存儲單元陣列210、控制電路220、電壓生成電路230、行解碼器240、頁面緩沖器250、列解碼器260和輸入/輸出電路270。存儲單元陣列210可包括多個存儲塊211并可將數(shù)據(jù)存儲在其中。電壓生成電路230、行解碼器240、頁面緩沖器250、列解碼器260和輸入/輸出電路270形成用于存儲器單元陣列210的外圍電路。外圍電路可執(zhí)行存儲器單元陣列210的編程操作、讀取操作或擦除操作。控制電路220可控制外圍電路。

電壓生成電路230可生成具有各種電平的操作電壓。例如,在擦除操作中,電壓生成電路230可生成具有各種電平的操作電壓,諸如擦除電壓和過電壓。

行解碼器240可連接至電壓生成電路230和多個存儲塊211。行解碼器240可響應(yīng)于由控制電路220生成的行地址RADD選擇多個存儲塊211中的至少一個存儲塊,并將從電壓生成電路230供應(yīng)的操作電壓傳輸至在多個存儲塊211中選擇的存儲塊。

頁面緩沖器250通過位線BL(未示出)連接至存儲器單元陣列210。頁面緩沖器250可響應(yīng)于由控制電路220生成的頁面緩沖器控制信號利用正電壓對位線BL預(yù)充電、在編程操作中將數(shù)據(jù)傳輸至選擇的存儲塊/在讀取操作中從選擇的存儲塊接收數(shù)據(jù)或臨時存儲傳輸?shù)臄?shù)據(jù)。

列解碼器260可將數(shù)據(jù)傳輸至頁面緩沖器250/從頁面緩沖器250接收數(shù)據(jù)或?qū)?shù)據(jù)傳輸至輸入電路270/從輸出電路270接收數(shù)據(jù)。

輸入/輸出電路270可通過輸入/輸出電路270將從外部裝置(例如,存儲器控制器100)傳輸?shù)拿詈偷刂穫鬏斨量刂齐娐?20、將數(shù)據(jù)從外部裝置傳輸至列解碼器260或?qū)?shù)據(jù)從列解碼器260輸出至外部裝置。

控制電路220可響應(yīng)于命令和地址控制外圍電路。

圖3是示出根據(jù)本發(fā)明的實施例的半導(dǎo)體存儲器裝置的存儲塊的電路圖。例如,圖3的存儲塊可以是圖2中示出的存儲器單元陣列210的存儲塊211。

參照圖3,存儲塊211可包括分別聯(lián)接至位線BL0至BLm-1的多個單元字符串221。每列的單元字符串可包括一個或多個漏極選擇晶體管DST和一個或多個源極選擇晶體管SST。多個存儲器單元或存儲器單元晶體管可串行地聯(lián)接在選擇晶體管DST和SST。存儲單元MC0至MCn-1中的每個可由每個單元中都存儲多位數(shù)據(jù)信息的多層單元(MLC)形成。單元字符串221可分別電聯(lián)接至對應(yīng)的位線BL0至BLm-1。

在一些實施例中,存儲塊211可包括NAND型閃速存儲單元。然而,存儲塊211不限于NAND閃速存儲器,而是可包括NOR型閃速存儲器、結(jié)合兩個或多個類型的存儲單元的混合閃速存儲器和控制器被嵌入在存儲芯片內(nèi)部的1-NAND閃速存儲器。

基于奇偶校驗的廉價磁盤冗余陣列(下文稱為“RAID”)用于提供存儲系統(tǒng)中的磁盤故障轉(zhuǎn)移服務(wù)。其為HDD而設(shè)計,同時其也廣泛用于諸如固態(tài)磁盤(下文稱為“SSD”)的基于閃速存儲器的存儲磁盤。隨著SSD的使用,可預(yù)期的性能被期望,但隨著時間人們可以證明冗余陣列的性能的不一致。原因是當(dāng)執(zhí)行耗時任務(wù)(例如,垃圾收集、隨機(jī)寫入等)占據(jù)磁盤時,整個陣列應(yīng)該等待該磁盤完成其任務(wù)。

數(shù)據(jù)是當(dāng)今商業(yè)最有價值的資產(chǎn)。RAID通過奇偶校驗計算提供不同程度的磁盤故障保護(hù)。除故障轉(zhuǎn)移保護(hù)外,數(shù)據(jù)分塊潛在地可增加全部系統(tǒng)性能。同時,可預(yù)期的性能對企業(yè)閃存用戶至關(guān)重要。對于閃存用戶來說,知道最差情況的性能與知道平均性能一樣重要。

因此,在此公開的發(fā)明使不期望的低的讀取I/O(輸入/輸出)的數(shù)量最小化,同時仍然保持最大的故障轉(zhuǎn)移保護(hù),實現(xiàn)更可預(yù)期的性能。例如,在多層單元(MLC)SSD中,與單層單元(SLC)裝置相反,閃存模塊具有難以預(yù)期的性能,因此,本發(fā)明也有利于利用MLC裝置的應(yīng)用。SSD的性能也非常依賴工作負(fù)載。訪問模式、讀取/寫入比例和塊大小是可大大影響SSD的性能的因素。因此,在此公開的發(fā)明利用底層存儲器系統(tǒng)適應(yīng)于主機(jī)以動態(tài)方式產(chǎn)生的工作負(fù)載通信量以保證最大延遲和性能一致性的技術(shù)。

參照圖4,根據(jù)本發(fā)明的方面示出示例系統(tǒng)40和與源自涉及訪問RAID組的任意進(jìn)程的讀取請求相關(guān)的示例進(jìn)程中的步驟的簡圖。系統(tǒng)40可包括存儲訪問層408、數(shù)據(jù)布局引擎401以及映射圖430。數(shù)據(jù)布局引擎可包括包含多個磁盤402、404和406的RAID組400(或與其相關(guān)、連接至其等)。為簡單起見,示出三個磁盤,本領(lǐng)域技術(shù)人員將理解更多或更少磁盤可被利用。在實施例中,磁盤可以是非易失性磁盤(例如,NVM express、NVMHCI等)。RAID組400自身可在一個磁盤內(nèi)包括多個閃存裝置或分區(qū),因此,像裝置、構(gòu)件、構(gòu)件裝置等術(shù)語通??芍搁W速SSD、SSD中的分區(qū)和/或取決于RAID方案如何產(chǎn)生的其它類型的存儲器結(jié)構(gòu)。

存儲訪問層408可包括內(nèi)核420(例如,操作系統(tǒng),諸如linux、windows等)和控制器/RAID引擎410??刂破?10可被配置為具有I/O延遲計算和虛擬讀取能力的增強(qiáng)型RAID引擎。系統(tǒng)還可包括下面將描述的用于映射地址的映射圖430。

在步驟450中,存儲服務(wù)器408的RAID引擎410接收啟動用于數(shù)據(jù)集(例如,文件或區(qū)塊)的讀取請求的進(jìn)程。RAID引擎410可在存儲訪問層408的軟件或硬件中實施(其在圖4中被示為嵌入在存儲服務(wù)器訪問層中)。然后,存儲訪問層408可將該信息傳達(dá)至數(shù)據(jù)布局引擎401,數(shù)據(jù)布局引擎401訪問上述數(shù)據(jù)結(jié)構(gòu)以確定在RAID組400中的任何構(gòu)件裝置是否具有數(shù)據(jù)(例如,確定在RAID組400中的構(gòu)件裝置是否忙碌)。

在步驟460中,如果包含被請求的數(shù)據(jù)的裝置忙碌,則數(shù)據(jù)布局引擎401發(fā)送信號給存儲訪問層408以從RAID組中的其余(非忙碌)裝置讀取被請求的數(shù)據(jù)。同時,在步驟470中,為了被進(jìn)程使用以滿足讀取請求,存儲器的一段被映射(例如,映射至映射圖430)。此時,為了本公開的發(fā)明目的,RAID分塊和重建可被使用。然后,在步驟480中,RAID數(shù)據(jù)重建技術(shù)將在忙碌裝置中的數(shù)據(jù)的部分提供至存儲訪問層408。

另一方面,當(dāng)包含被請求的數(shù)據(jù)的構(gòu)件裝置不忙碌時,引擎401僅向存儲訪問層408發(fā)送信號以從保存被請求的數(shù)據(jù)的裝置構(gòu)件讀取被請求的數(shù)據(jù)。然后,數(shù)據(jù)被送回至RAID引擎410,這引起數(shù)據(jù)被送回至請求進(jìn)程。如上所述,裝置狀態(tài)(忙碌/就緒)可被追蹤并被容納在存儲訪問層408中而不是數(shù)據(jù)布局引擎401中,且可在不知道來自閃存子系統(tǒng)的實際硬件狀態(tài)信號的情況下完成。

圖5是利用虛擬讀取的用于自動調(diào)諧RAID裝置的進(jìn)程的步驟的流程圖50。盡管流程圖50示出用于虛擬讀取的步驟和用于RAID裝置的自動調(diào)諧的步驟,但兩個特征可在裝置內(nèi)分別或獨立地實施。

在步驟500中,形成用于讀取數(shù)據(jù)的請求。例如,請求可由如圖4中所示的RAID引擎410形成。在步驟502中,包含被請求的數(shù)據(jù)的RAID組的磁盤(例如,裝置、存儲器等)被識別。如圖4中所示,磁盤可以是數(shù)據(jù)訪問層401內(nèi)的RAID組400的磁盤402、404、406。

在步驟504中,確定來自主機(jī)的工作負(fù)載是否已經(jīng)改變。如果是,則方法繼續(xù)進(jìn)行步驟506,其調(diào)整對應(yīng)于工作負(fù)載的截止時間(例如,自動調(diào)諧)。確定何時將底層裝置(例如,存儲器、裝置等)標(biāo)記為忙碌取決于RAID組服務(wù)的工作負(fù)載。這需要仔細(xì)監(jiān)控工作負(fù)載通信量,因為不是每個工作負(fù)載都應(yīng)該相同地被處理。在此公開的方法根據(jù)工作負(fù)載性質(zhì)動態(tài)地調(diào)整運(yùn)行時的延遲閾值。這保證運(yùn)行時忙碌的存儲器裝置可被始終檢測,即使工作負(fù)載的模式意外地改變。因此,系統(tǒng)可被配置以基于工作流或工作流的改變增加或減小延遲閾值。

例如,如下所述,延遲閾值可基于從主機(jī)接收的工作負(fù)載的量或基于在虛擬讀取期間接收的信息。延遲閾值可基于從數(shù)據(jù)從RAID組被請求的時間到數(shù)據(jù)被從在RAID組中的存儲器/磁盤接收的時間的時間量。延遲閾值還可起截止時間的作用。例如,延遲閾值可被設(shè)置為請求數(shù)據(jù)和接收數(shù)據(jù)之間允許的時間量。如果數(shù)據(jù)未在延遲閾值規(guī)定的時間量內(nèi)被從磁盤接收,則系統(tǒng)確定磁盤忙碌并繼續(xù)訪問RAID組中的其它非忙碌磁盤以構(gòu)造/計算數(shù)據(jù)塊。

如果在步驟504中為否或在步驟506之后,在步驟508中系統(tǒng)周期性地檢查哪個磁盤忙碌(例如,虛擬讀取)。虛擬讀取可通過周期性地將一個數(shù)據(jù)塊大小讀取(例如,在典型操作系統(tǒng)中的4K字節(jié)的數(shù)據(jù)塊大小)發(fā)送到RAID構(gòu)件確定在識別的RAID組中哪個SSD(例如,磁盤)忙碌。如果對于這個小的數(shù)據(jù)塊讀取(例如,虛擬讀取)的延遲將高于預(yù)期,則其可被轉(zhuǎn)譯為裝置忙于耗時請求(例如,垃圾收集、隨機(jī)寫入等)的指示。在RAID組中的裝置構(gòu)件忙碌時,在構(gòu)建來自數(shù)據(jù)讀取的數(shù)據(jù)集之后,從RAID組中的其它構(gòu)件讀取數(shù)據(jù)集。

因此,虛擬讀取可起到裝置構(gòu)件的促進(jìn)或刺激的作用以基于延遲閾值確定磁盤是否忙碌。如果在虛擬讀取期間請求的最小數(shù)據(jù)在延遲閾值規(guī)定的時間量內(nèi)未被接收,則磁盤被確定為處于忙碌狀態(tài)。

因此,在步驟510中,當(dāng)磁盤被確定為忙碌時,確定忙碌磁盤是否是包含被請求的數(shù)據(jù)塊的磁盤。在一些情況下,多個磁盤可被確定為忙碌。因此,如果步驟510的結(jié)果是否(例如,忙碌磁盤不包含被請求的數(shù)據(jù)塊),則方法繼續(xù)進(jìn)行步驟512以從包含被請求的數(shù)據(jù)塊的非忙碌磁盤讀取數(shù)據(jù)塊返回至請求的發(fā)出者,然后方法在步驟520結(jié)束。

然而,如果確定忙碌磁盤包含數(shù)據(jù)塊,則方法移到步驟514,在步驟514中,控制器從RAID組中的其它非忙碌磁盤獲取(或嘗試獲取)數(shù)據(jù)。在步驟514中,確定RAID組的其它非忙碌構(gòu)件(如用于說明性目的示出的“RAID 4、5、6”)是否可被用于執(zhí)行請求。例如,在自動調(diào)諧階段后,如果保存被請求的數(shù)據(jù)的底層裝置構(gòu)件忙碌,則RAID引擎檢查其它構(gòu)件以察看它們是否具有塊鏡像(步驟516)以復(fù)制數(shù)據(jù)或它們是否具有奇偶校驗計算(步驟518)以構(gòu)建數(shù)據(jù)。當(dāng)數(shù)據(jù)已經(jīng)從塊鏡像讀取或以其它方式被計算,則方法在步驟520結(jié)束。

如上所述,功能性應(yīng)用至諸如在此公開的閃存陣列的RAID可被應(yīng)用在存儲服務(wù)器的存儲訪問層中??蛇x地,這種功能性可通過專用于為閃存存儲器提供這種功能性的單獨層或模塊來提供。通過使用諸如更高層的RAID的不同冗余算法,即使在目標(biāo)組中的兩個或更多個閃存裝置忙碌,也可以執(zhí)行通讀數(shù)據(jù)重建。

盡管為了清楚理解的目的已經(jīng)相當(dāng)詳細(xì)地描述了前述實施例,但本發(fā)明不限于提供的細(xì)節(jié)。存在許多實施本發(fā)明的可選方法。公開的實施例是說明性的而不是限制性的。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1