一種動態(tài)調整存儲設備Cache讀寫命令數的方法和裝置制造方法
【專利摘要】本發(fā)明提供一種動態(tài)調整高速緩存Cache讀寫命令數的方法,該方法包括:統計周期時間T內通過寫Cache下發(fā)的隨機寫命令數R_num和總寫命令數T_num;并且統計周期時間T內RAID接收到的讀命令數Raid_r和寫命令數Raid_w;根據所述R_num、T_num得出的隨機寫的壓力,根據Raid_r、Raid_w得出的RAID層實際的讀寫壓力,以及通過Cache下發(fā)的命令總數上限值Up_n動態(tài)調整Cache層下發(fā)到RAID層的寫命令數Wn和讀命令數Rn。本發(fā)明方案利用現有系統各層面能分別統計各種命令數的功能,并根據各命令數之間的關系所能反映的業(yè)務的實際情況,設計調整算法,以達到動態(tài)根據業(yè)務讀寫狀況,細致調整Cache層讀寫命令數的下發(fā)值,以更好的提高系統性能。
【專利說明】-種動態(tài)調整存儲設備Cache讀寫命令數的方法和裝置
【技術領域】
[0001] 本發(fā)明涉及視頻監(jiān)控【技術領域】,尤其涉及一種動態(tài)調整高速緩存Cache讀寫命令 數的方法和裝置。
【背景技術】
[0002] RAID (Redundant Array of Independent Disks,獨立磁盤冗余陣列)已經廣泛 使用于數據讀寫的各個領域中。為了提高系統性能,RAID陣列通常會引入高速緩沖存儲器 Cache。眾所周知,Cache是存儲系統為陣列分配的內存空間。
[0003] -種存儲系統結構如圖1所示,其分為業(yè)務應用層、Cache層、RAID控制層和物理 磁盤層。其中Cache層是由系統內存中分割出一部分作為RAID陣列的緩存,若是讀緩存,通 常應用預讀功能提供系統讀性能;若是寫緩存,系統業(yè)務應用層將數據塊寫入Cache層后, Cache會根據一定的策略將數據塊刷寫至RAID陣列的磁盤中,如果刷寫RAID成功,寫入數 據塊的寫緩存空間將被回收;如果寫RAID不成功,業(yè)務數據會保留在寫Cache中。因此,該 類存儲系統通常提供UPS (Uninterruptible Power Supply,不間斷電源)以保證系統異常 掉電時寫緩存中的數據不丟失。
[0004] 通過讀Cache到達RAID層的讀命令可能為業(yè)務應用層產生的讀10,可能為SCSI 中間層產生的讀10,可能為邏輯卷LV產生的讀10,也可能為Cache層產生的預取讀10。這 些讀10都會放到一個Cache的發(fā)送隊列中,Cache發(fā)送線程按FIFO(先進先出)順序下發(fā) 讀10,并控制下發(fā)的讀10個數為當前RAID的配置值Rn。另,讀寫10總個數不超過一個 RAID支持的最大命令個數Up_n。
[0005] 通過寫Cache到達RAID的寫命令可能為從Cache的下刷的寫10等。這些寫10 會放到一個Cache發(fā)送隊列中,Cache發(fā)送線程按FIFO順序下發(fā)寫10,并控制下發(fā)的寫10 個數不超過當前RAID的配置值Wn。另外,讀寫10總個數不超過一個RAID支持的最大命令 個數Up_n。
[0006] 當前RAID陣列的寫Cache和讀Cache中的讀、寫命令下發(fā)個數都是固定配置的。 隨機寫情況下,當前RAID配置的寫10下發(fā)個數增大會提高寫性能,但又可能影響讀10下 發(fā)的及時性,從而影響讀性能。
[0007] 所以需要根據業(yè)務情況進行RAID陣列的寫Cache和讀Cache中的讀、寫命令下發(fā) 個數的變動?,F有技術只能人為根據業(yè)務情況進行手動更改,這就很不方便,不能自動得適 應隨機讀寫、順序讀寫、偽隨機讀寫等各種應用模型。如果固定配置好的讀寫命令數不能很 好的適應當前的應用模型,則將導致系統性能不能發(fā)揮到最好。
【發(fā)明內容】
[0008] 有鑒于此,本發(fā)明提供一種動態(tài)調整高速緩存Cache讀寫命令數的方法和裝置。 該方法和裝置應用于存儲設備。
[0009] 該動態(tài)調整高速緩存Cache讀寫命令數的方法方法包括:統計周期時間T內通過 寫Cache下發(fā)的隨機寫命令數R_num和總寫命令數T_num ;并且統計周期時間T內RAID接 收到的讀命令數Raid_r和寫命令數Raid_w ;根據所述R_num、T_num得出的隨機寫的壓力, 根據Raid_r、Raid_w得出的RAID層實際的讀寫壓力,以及通過Cache下發(fā)的命令總數上限 值Up_n動態(tài)調整Cache層下發(fā)到RAID層的寫命令數Wn和讀命令數Rn。
[0010] 優(yōu)選地,所述動態(tài)調整Cache層下發(fā)到RAID層的寫命令數Wn具體為:
[0011] 根據下述公式計算Wn:
[0012] Wn = Up_n*(R_num/T_num)*(Raid_w/(Raid_r+Raid_w)),
[0013] 根據計算結果進行fc的調整;
[0014] 所述動態(tài)調整Cache層下發(fā)到RAID層的Rn具體為:
[0015] 根據下述公式計算 Rn :Rn = Wn*Raid_r/(Raid_r+Raid_w),
[0016] 根據該計算結果進行Rn的調整。
[0017] 優(yōu)選地,當Raid_w為0時,Wn不進行調整,保持當前值不變;當Raid_r為0時,Rn 不進行調整,保持當前值不變。
[0018] 基于同樣的構思,該動態(tài)調整高速緩存Cache讀寫命令數的方法還可以按如下方 式設計:該方法包括:統計周期時間T內通過讀Cache下發(fā)的隨機讀命令數RR_num和總讀 命令數RT_num ;并且統計周期時間T內RAID接收到的讀命令數Raid_r和寫命令數Raid_ w ;根據所述RR_num、RT_num得出的隨機讀的壓力,根據Raid_r、Raid_w得出的Raid層實 際的讀寫壓力,以及通過Cache下發(fā)的命令總數上限值Up_n動態(tài)調整Cache層下發(fā)到RAID 層的寫命令數fc和讀命令數Rn。
[0019] 優(yōu)選地,動態(tài)調整Cache層下發(fā)到RAID層的讀命令數Rn具體為:
[0020] 根據下述公式計算Rn :
[0021] Rn = Up_n*(RR_num/RT_num)*(Raid_r/(Raid_r+Raid_w)),
[0022] 根據Rn的計算結果對Rn進行調整;
[0023] 所述動態(tài)調整Cache層下發(fā)到RAID層的寫命令數Wn具體為:
[0024] 根據下述公式計算Wn:
[0025] Wn = Rn*Raid_w/(Raid_r+Raid_w),
[0026] 根據Wn的計算結果對Wn進行調整。
[0027] 優(yōu)選地,當Raid_r為0時,Rn不進行調整,保持當前值不變;當Raid_w為0時,Wn 不進行調整,保持當前值不變。
[0028] 該動態(tài)調整高速緩存Cache讀寫命令數的裝置包括:Cache層處理模塊,用于統計 周期時間T內通過寫Cache下發(fā)的隨機寫命令數R_num和總寫命令數T_num ;RAID層處理 模塊,用于統計周期時間T內RAID接收到的讀命令數Raid_r和寫命令數Raid_w ;Cache層 處理模塊,還用于根據所述R_num、T_num得出的隨機寫的壓力,根據Raid_r、Raid_w得出的 RAID層實際的讀寫壓力,以及通過Cache下發(fā)的命令總數上限值Up_n動態(tài)調整Cache層下 發(fā)到RAID層的寫命令數Wn和讀命令數Rn。
[0029] 優(yōu)選地,該Cache層處理模塊動態(tài)調整Cache層下發(fā)到RAID層的寫命令數Wn具 體為:
[0030] 根據下述公式計算fc :
[0031] Wn = Up_n*(R_num/T_num)*(Raid_w/(Raid_r+Raid_w)),
[0032] 根據計算結果進行Wn的調整;
[0033] Cache層處理模塊動態(tài)調整Cache層下發(fā)到RAID層的Rn具體為:
[0034] 根據下述公式計算 Rn :Rn = Wn*Raid_r/(Raid_r+Raid_w),
[0035] 根據該計算結果進行Rn的調整。
[0036] 優(yōu)選地,當Raid_w為0時,Cache層處理模塊不進行Wn的調整,保持其當前值不 變;當Raid_r為0時,Cache層處理模塊不進行Rn的調整,保持其當前值不變。
[0037] 基于同樣的構思,該動態(tài)調整高速緩存Cache讀寫命令數的裝置還可以按照如下 方式進行設計,該裝置包括:Cache層處理模塊,用于統計周期時間T內通過讀Cache下發(fā) 的隨機讀命令數RR_num和總讀命令數RT_num ;RAID層處理模塊,用于統計周期時間T內 RAID接收到的讀命令數Raid_r和寫命令數Raid_w ;Cache層處理模塊,還用于根據所述 RR_num、RT_num得出的隨機讀的壓力,根據Raid_r、Raid_w得出的RAID層實際的讀寫壓力, 以及通過Cache下發(fā)的命令總數上限值Up_n動態(tài)調整Cache層下發(fā)到RAID層的寫命令數 fc和讀命令數Rn。
[0038] 優(yōu)選地,Cache層處理模塊動態(tài)調整Cache層下發(fā)到RAID層的讀命令數Rn具體 為:
[0039] 根據下述公式計算Rn :
[0040] Rn = Up_n*(RR_num/RT_num)*(Raid_r/(Raid_r+Raid_w)),
[0041] 根據Rn的計算結果對Rn進行調整;
[0042] Cache層處理模塊動態(tài)調整Cache層下發(fā)到RAID層的寫命令數Wn具體為:
[0043] 根據下述公式計算Wn :
[0044] Wn = Rn*Raid_w/(Raid_r+Raid_w),
[0045] 根據Wn的計算結果對Wn進行調整。
[0046] 優(yōu)選地,當Raid_r為0時,Cache層處理模塊不進行Rn的調整,保持其當前值不 變;當Raid_w為0時,Cache層處理模塊不進行Wn的調整,保持其當前值不變。
[0047] 相較于現有技術,本發(fā)明方案利用現有系統各層面能分別統計各種命令數的功 能,并根據各命令數之間的關系所能反映的業(yè)務的實際情況,設計調整算法,以達到動態(tài)根 據業(yè)務讀寫狀況,細致調整Cache層讀寫命令數的下發(fā)值,以更好的提高系統性能。
【專利附圖】
【附圖說明】
[0048] 圖1是現有的一種存儲系統結構圖。
[0049] 圖2是本發(fā)明實施例流程圖。
[0050] 圖3是本發(fā)明又一實施例流程圖。
[0051] 圖4是本發(fā)明實施例裝置圖。
【具體實施方式】
[0052] 本發(fā)明提供一種動態(tài)調整寫Cache和讀Cache中的讀、寫命令下發(fā)個數的技術。本 發(fā)明的動態(tài)調整技術能根據當前的業(yè)務模型得到合適的讀、寫命令下發(fā)個數值,從而使得 系統的讀寫性能到達最優(yōu)。以下通過具體實施例詳細說明。
[0053] 實施例一
[0054] 請參圖2,該實施例包括如下實施步驟:
[0055] 步驟21、統計周期時間T內通過寫Cache下發(fā)的隨機寫命令數R_num和總寫命令 數T_num ;并且統計周期時間T內RAID接收到的讀命令數Raid_r和寫命令數Raid_w。
[0056] 步驟22、根據所述R_num、T_num得出的隨機寫的壓力,根據Raid_r、Raid_w得出 的RAID層實際的讀寫壓力,以及通過Cache下發(fā)的命令總數上限值Up_n動態(tài)調整Cache 層下發(fā)到RAID層的寫命令數Wn和讀命令數Rn。
[0057] 當前具有Cache層處理模塊的系統對于上層業(yè)務到達寫緩存后下發(fā)到RAID層的 命令,都可進行計數。RAID層處理模塊也可以對實際接收到的"讀命令個數Raid_r"和"寫 命令個數Raid_w"進行計數。本發(fā)明主要依賴通過寫緩存模塊下刷RAID層時的"隨機命 令刷新數R_num"跟"總寫命令數T_num"的比例以及RAID層面實際接收到的"讀命令個 數"Raid_r、"寫命令個數"Raid_w的比較關系進行自動調整Cache下發(fā)到RAID層的讀寫命 令數。
[0058] 寫Cache中的數據下刷到RAID層時,通常會遵循系統的寫緩存刷新策略刷到RAID 層。Cache層處理模塊會記錄下刷到RAID層的隨機寫命令數R_num和總寫命令數T_num。 總寫命令數除了包括隨機寫命令數外還包括順序寫命令數。而對于RAID層,該層的處理模 塊可以統計到上層包括Cache層或是不經過Cache透傳到RAID層的讀寫命令數,即RAID 接收到的讀命令數Raid_r和寫命令數Raid_w。這里需要針對同一時間進行統計,所以設定 Cache層處理模塊和RAID層處理模塊進行命令數統計的周期時間為T。
[0059] 在得到上述統計值后,可以根據一定的方式來動態(tài)調整Cache層下發(fā)的寫命令數 fc和讀命令數Rn。
[0060] 調整Cache寫命令數Wn的方式為:按照如下公式計算Wn,然后將計算得到的結果 作為下一個周期的Wn值:
[0061] Wn = Up_n* (R_num/T_num) * (Raid_w/ (Raid_r+Raid_w)) (式一)
[0062] 這里的Up_n為Cache層下發(fā)到RAID層的命令總數上限值Up_n。
[0063] 這里需要進一步說明的是,如果當Raid_w為0時,Wn不進行調整,而是保持當前 值不變。
[0064] 而Rn的調整方式為,可以按照如下公式計算Rn,然后將計算得到的結果作為調整 的依據:
[0065] Rn = ffn*Raid_r/ (Raid_r+Raid_w) (式二)
[0066] 需要說明的是,如果Raid_w為0,則式二中的Wn為未調整前的Wn值;如果Raid_w 不為〇,則式二中的Wn為調整后的Wn值,即式一的計算結果。進一步地,對于式二,當Raid_ r為0時,Rn不進行調整,保持當前的值不變。
[0067] 系統在啟動時,需要給Cache層下發(fā)的寫命令數Wn和讀命令數Rn賦予一初始值; 該初始值通常適應通用的監(jiān)控存儲業(yè)務,,。在用戶的實際業(yè)務下,且客戶實際業(yè)務模型穩(wěn) 定的情況下,fc和Rn經過一段時間的調整后,就會趨于一個適應于當前業(yè)務的穩(wěn)定值。
[0068] 系統啟動時,Cache層下發(fā)到RAID層的隨機寫命令數R_num、總寫命令數T_num, RAID層接收到的讀命令數Raid_r、寫命令數Raid_w均為0。一個周期時間結束,上述各參 數值可能發(fā)生了變化,而后根據fc和Rn的計算公式執(zhí)行計算,并根據計算結果判斷是否執(zhí) 行Cache層下發(fā)的寫命令數Wn和讀命令數Rn的調整。當需要調整時,執(zhí)行對應的調整,否 則不調整。
[0069] 實施例二
[0070] 請參圖3,該實施例包括如下實施步驟:
[0071] 步驟31、統計周期時間T內通過讀Cache下發(fā)的隨機讀命令數RR_num和總讀命令 數RT_num ;并且統計周期時間T內RAID接收到的讀命令數Raid_r和寫命令數Raid_w。
[0072] 步驟32、根據所述RR_num、RT_num得出的隨機讀的壓力,根據Raid_r、Raid_w得 出的RAID層實際的讀寫壓力,以及通過Cache下發(fā)的命令總數上限值Up_n動態(tài)調整Cache 層下發(fā)到RAID層的寫命令數Wn和讀命令數Rn。。
[0073] 當前具有Cache層處理模塊的系統對于上層業(yè)務到達寫讀緩存后發(fā)送到RAID層 的命令,也可進行計數。本發(fā)明主要依賴通過讀緩存模塊發(fā)送RAID層時的"隨機命令讀 命令數RR_num"跟"總讀命令數RT_num"的比例以及RAID層面實際接收到的"讀命令個 數"Raid_r、"寫命令個數"Raid_w的比較關系進行自動調整Cache下發(fā)到RAID層的讀寫命 令數。
[0074] Cache層處理模塊在進行讀命令下發(fā)時,統計一個周期時間T內下發(fā)到RAID層的 隨機讀命令數RR_num和總讀命令數RT_num??傋x命令數除了包括隨機讀命令數外還包括 順序讀命令數。而對于RAID層,該層的處理模塊可以統計到上層包括Cache層或是不經過 Cache透傳到RAID層的讀寫命令數,即RAID接收到的讀命令數Raid_r和寫命令數Raid_ Wo
[0075] 在得到上述統計值后,可以根據一定的方式來動態(tài)調整Cache層下發(fā)的寫命令數 fc和讀命令數Rn。
[0076] 調整Cache寫命令數Rn的方式為:按照如下公式計算Rn,然后將計算得到的結果 作為調整的依據:
[0077] Rn = Up_n* (RR_num/RT_num) * (Raid_r/ (Raid_r+Raid_w))(式三)
[0078] 同樣的,這里的Up_n為Cache層下發(fā)到RAID層的命令總數上限值Up_n。
[0079] 這里需要進一步說明的是,如果當Raid_r為0時,Rn不進行調整,而是保持當前 值不變。
[0080] 而fc的調整方式為,可以按照如下公式計算,然后將計算得到的結果作為調整的 依據:
[0081] Wn = Rn*Raid_w/(Raid_r+Raid_w)(式四)
[0082] 同樣,需要說明的是,如果Raid_r為0,則式四中的Rn為未調整前的Rn值;如果 Raid_r不為0,則式四中的Rn為調整后的Rn值,即式三的計算結果。進一步地,對于式四, 當Raid_w為0時,Wn不進行調整,保持當前值不變。
[0083] 同樣的,系統在啟動時給Cache層下發(fā)的寫命令數Wn和讀命令數Rn賦予一初始 值。此時,Cache層下發(fā)到RAID層的隨機讀命令數RR_num、總讀命令數RT_num,RAID層接 收到的讀命令數Raid_r、寫命令數Raid_w均為0。本發(fā)明流程開始執(zhí)行后,第一個時間周 期結束,便可計算得到Rn和fc的值,從而根據該計算結果判斷是否需要進行fc和Rn的調 整,如果需要則執(zhí)行對應的調整,否則不調整。
[0084] 上述兩個實施例利用現有系統各層面能分別統計各種命令數的功能,并根據各命 令數之間的關系所能反映的業(yè)務的實際情況,設計調整算法,以達到動態(tài)根據業(yè)務讀寫狀 況,細致調整Cache層讀寫命令數的下發(fā)值,以更好的提高系統性能。
[0085] 基于同樣的構思,本發(fā)明還提供一種動態(tài)調整高速緩存Cache讀寫命令數的裝 置,請參圖4。該裝置包括:Cache層處理模塊和RAID層處理模塊。
[0086] Cache層處理模塊,用于統計周期時間T內通過寫Cache下發(fā)的隨機寫命令數R_ num和總寫命令數T_num。
[0087] RAID層處理模塊,用于統計周期時間T內RAID接收到的讀命令數Raid_r和寫命 令數 Raid_w。
[0088] Cache層處理模塊,還用于根據所述R_num、T_num得出的隨機寫的壓力,根據 Raid_r、Raid_w得出的RAID層實際的讀寫壓力,以及通過Cache下發(fā)的命令總數上限值 Up_n動態(tài)調整Cache層下發(fā)到RAID層的寫命令數Wn和讀命令數Rn。
[0089] Cache層處理模塊動態(tài)調整Cache層下發(fā)到RAID層的寫命令數Wn具體為:根據 下述公式計算 Wn :Wn = Up_n*(R_num/T_num)*(Raid_w/(Raid_r+Raid_w)),根據計算結果 進行fc的調整;Cache層處理模塊動態(tài)調整Cache層下發(fā)到RAID層的Rn具體為:根據下 述公式計算Rn :Rn = Wn*Raid_r/(Raid_r+Raid_w),根據該計算結果進行Rn的調整。
[0090] 當Raid_w為0時,Cache層處理模塊不進行Wn的調整,保持其當前值不變;當 Raid_r為0時,Cache層處理模塊不進行Rn的調整,保持其當前值不變。
[0091] 另外,Cache層處理模塊,還可以統計周期時間T內通過讀Cache下發(fā)的隨機讀命 令數RR_num和總讀命令數RT_num。
[0092] Cache層處理模塊,還可以根據所述RR_num、RT_num得出的隨機讀的壓力,根據 Raid_r、Raid_w得出的Raid層實際的讀寫壓力,以及通過Cache下發(fā)的命令總數上限值 Up_n動態(tài)調整Cache層下發(fā)到RAID層的寫命令數Wn和讀命令數Rn。
[0093] Cache層處理模塊動態(tài)調整Cache層下發(fā)到RAID層的讀命令數Rn具體為:根據 下述公式計算 Rn :Rn = Up_n* (RR_num/RT_num) * (Raid_r/ (Raid_r+Raid_w)),根據 Rn 的計 算結果對Rn進行調整;Cache層處理模塊動態(tài)調整Cache層下發(fā)到RAID層的寫命令數Wn 具體為:根據下述公式計算Wn :Wn = Rn*Raid_w/(Raid_r+Raid_w),根據Wn的計算結果對 fc進行調整。
[0094] 當Raid_r為0時,Cache層處理模塊不進行Rn的調整,保持其當前值不變;當 Raid_w為0時,Cache層處理模塊不進行Wn的調整,保持其當前值不變。
[〇〇95] 以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精 神和原則之內,所做的任何修改、等同替換、改進等,均應包含在本發(fā)明保護的范圍之內。
【權利要求】
1. 一種動態(tài)調整高速緩存Cache讀寫命令數的方法,該方法應用于存儲設備,其特征 在于,該方法包括: 統計周期時間T內通過寫Cache下發(fā)的隨機寫命令數R_num和總寫命令數T_num ;并 且統計周期時間T內RAID接收到的讀命令數Raid_r和寫命令數Raid_w ; 根據所述R_num、T_num得出的隨機寫的壓力,根據Raid_r、Raid_w得出的RAID層實 際的讀寫壓力,以及通過Cache下發(fā)的命令總數上限值Up_n動態(tài)調整Cache層下發(fā)到RAID 層的寫命令數fc和讀命令數Rn。
2. 如權利要求1所述的方法,其特征在于,所述動態(tài)調整Cache層下發(fā)到RAID層的寫 命令數Wn具體為: 根據下述公式計算Wn : Wn = Up_n*(R_num/T_num)*(Raid_w/(Raid_r+Raid_w)), 根據計算結果進行Wn的調整; 所述動態(tài)調整Cache層下發(fā)到RAID層的Rn具體為: 根據下述公式計算 Rn :Rn = Wn*Raid_r/(Raid_r+Raid_w), 根據該計算結果進行Rn的調整。
3. 如權利要求2所述的方法,其特征在于,當Raid_w為0時,Wn不進行調整,保持當前 值不變;當Raid_r為0時,Rn不進行調整,保持當前值不變。
4. 一種動態(tài)調整高速緩存Cache讀寫命令數的方法,該方法應用于存儲設備,其特征 在于,該方法包括: 統計周期時間T內通過讀Cache下發(fā)的隨機讀命令數RR_num和總讀命令數RT_num ; 并且統計周期時間T內RAID接收到的讀命令數Raid_r和寫命令數Raid_w ; 根據所述RR_num、RT_num得出的隨機讀的壓力,根據Raid_r、Raid_w得出的Raid層實 際的讀寫壓力,以及通過Cache下發(fā)的命令總數上限值Up_n動態(tài)調整Cache層下發(fā)到RAID 層的寫命令數fc和讀命令數Rn。
5. 如權利要求4所述的方法,其特征在于,所述動態(tài)調整Cache層下發(fā)到RAID層的讀 命令數Rn具體為: 根據下述公式計算Rn : Rn = Up_n*(RR_num/RT_num)*(Raid_r/(Raid_r+Raid_w)), 根據Rn的計算結果對Rn進行調整; 所述動態(tài)調整Cache層下發(fā)到RAID層的寫命令數Wn具體為: 根據下述公式計算Wn : Wn = Rn*Raid_w/(Raid_r+Raid_w), 根據fc的計算結果對fc進行調整。
6. 如權利要求5所述的方法,其特征在于,當Raid_r為0時,Rn不進行調整,保持當前 值不變;當Raid_w為0時,Wn不進行調整,保持當前值不變。
7. -種動態(tài)調整高速緩存Cache讀寫命令數的裝置,該方法應用于存儲設備,其特征 在于,該裝置包括: Cache層處理模塊,用于統計周期時間T內通過寫Cache下發(fā)的隨機寫命令數R_num和 總寫命令數T_num ; RAID層處理模塊,用于統計周期時間T內RAID接收到的讀命令數Raid_r和寫命令數 Raid-w ; Cache層處理模塊,還用于根據所述R_num、T_num得出的隨機寫的壓力,根據Raid_r、 Raid_w得出的RAID層實際的讀寫壓力,以及通過Cache下發(fā)的命令總數上限值Up_n動態(tài) 調整Cache層下發(fā)到RAID層的寫命令數Wn和讀命令數Rn。
8. 如權利要求7所述的裝置,其特征在于,Cache層處理模塊動態(tài)調整Cache層下發(fā)到 RAID層的寫命令數Wn具體為: 根據下述公式計算Wn : Wn = Up_n*(R_num/T_num)*(Raid_w/(Raid_r+Raid_w)), 根據計算結果進行Wn的調整; Cache層處理模塊動態(tài)調整Cache層下發(fā)到RAID層的Rn具體為: 根據下述公式計算 Rn :Rn = Wn*Raid_r/(Raid_r+Raid_w), 根據該計算結果進行Rn的調整。
9. 如權利要求8所述的裝置,其特征在于,當Raid_w為0時,Cache層處理模塊不進行 fc的調整,保持其當前值不變;當Raid_r為0時,Cache層處理模塊不進行Rn的調整,保持 其當前值不變。
10. -種動態(tài)調整高速緩存Cache讀寫命令數的裝置,該方法應用于存儲設備,其特征 在于,該裝置包括: Cache層處理模塊,用于統計周期時間T內通過讀Cache下發(fā)的隨機讀命令數RR_num 和總讀命令數RT_num ; RAID層處理模塊,用于統計周期時間T內RAID接收到的讀命令數Raid_r和寫命令數 Raid_w ; Cache層處理模塊,還用于根據所述RR_num、RT_num得出的隨機讀的壓力,根據Raid_ r、Raid_w得出的RAID層實際的讀寫壓力,以及通過Cache下發(fā)的命令總數上限值Up_n動 態(tài)調整Cache層下發(fā)到RAID層的寫命令數Wn和讀命令數Rn。
11. 如權利要求10所述的裝置,其特征在于,Cache層處理模塊動態(tài)調整Cache層下發(fā) 到RAID層的讀命令數Rn具體為 : 根據下述公式計算Rn : Rn = Up_n*(RR_num/RT_num)*(Raid_r/(Raid_r+Raid_w)), 根據Rn的計算結果對Rn進行調整; Cache層處理模塊動態(tài)調整Cache層下發(fā)到RAID層的寫命令數Wn具體為: 根據下述公式計算Wn : Wn = Rn*Raid_w/(Raid_r+Raid_w), 根據fc的計算結果對fc進行調整。
12. 如權利要求11所述的方法,其特征在于,當Raid_r為0時,Cache層處理模塊不進 行Rn的調整,保持其當前值不變;當Raid_w為0時,Cache層處理模塊不進行Wn的調整, 保持其當前值不變。
【文檔編號】G06F3/06GK104090728SQ201410313524
【公開日】2014年10月8日 申請日期:2014年7月2日 優(yōu)先權日:2014年7月2日
【發(fā)明者】石巖, 陳繼芬 申請人:浙江宇視科技有限公司