一種數(shù)據(jù)預取的方法以及裝置制造方法
【專利摘要】本發(fā)明實施例公開了一種數(shù)據(jù)預取的方法以及裝置,其中,所述方法包括:查找當前I/O請求所訪問的數(shù)據(jù)所處的目標存儲塊;在特征位圖中查找出所述目標存儲塊的I/O訪問特征,所述特征位圖用于標識所述目標存儲塊的I/O訪問特征;當查找出所述目標存儲塊的I/O訪問特征為順序訪問特征時,根據(jù)所述當前I/O請求進行順序預??;當查找出所述目標存儲塊的I/O訪問特征為隨機訪問特征時,根據(jù)所述當前I/O請求進行隨機預取。采用本發(fā)明,可提高系統(tǒng)的預取效率。
【專利說明】一種數(shù)據(jù)預取的方法以及裝置
【技術領域】
[0001] 本發(fā)明涉及計算機【技術領域】,尤其涉及一種數(shù)據(jù)預取的方法以及裝置。
【背景技術】
[0002] 隨著信息技術的迅速發(fā)展,網(wǎng)絡規(guī)模隨著用戶數(shù)呈指數(shù)級增長,也越來越龐大,為 了支持斷接操作,數(shù)據(jù)要預先存儲到緩存中,由于在斷接過程中只能使用本地的數(shù)據(jù),所以 要提高用戶的訪問速度,主要采用緩存預取技術來減少網(wǎng)絡延遲,因此這個數(shù)據(jù)預先提取 的過程是必需的。
[0003] 在現(xiàn)有技術中,可以利用全量I/O訪問歷史來挖掘數(shù)據(jù)間的關聯(lián)關系,并通過該 關聯(lián)關系生成規(guī)則用于規(guī)則關聯(lián)預取,由于現(xiàn)有技術中的規(guī)則關聯(lián)預取無法區(qū)分順序訪問 的I/O請求和隨機訪問的I/O請求,所以無論是順序訪問的I/O請求還是隨機訪問的I/O 請求,都將使用規(guī)則關聯(lián)預取,但是規(guī)則關聯(lián)預取并不適用于順序訪問的I/O請求,從而降 低了系統(tǒng)的預取效率。
【發(fā)明內(nèi)容】
[0004] 本發(fā)明實施例所要解決的技術問題在于,提供一種數(shù)據(jù)預取的方法以及裝置,可 提1?系統(tǒng)的預取效率。
[0005] 本發(fā)明第一方面提供了一種數(shù)據(jù)預取的方法,包括:
[0006] 查找當前I/O請求所訪問的數(shù)據(jù)所處的目標存儲塊;
[0007] 在特征位圖中查找出所述目標存儲塊的I/O訪問特征,所述特征位圖用于標識所 述目標存儲塊的I/O訪問特征;
[0008] 當查找出所述目標存儲塊的I/O訪問特征為順序訪問特征時,根據(jù)所述當前I/O 請求進行順序預??;
[0009] 當查找出所述目標存儲塊的I/O訪問特征為隨機訪問特征時,根據(jù)所述當前I/O 請求進行隨機預取。
[0010] 在第一種可能的實現(xiàn)方式中,在所述查找當前I/O請求所訪問的數(shù)據(jù)所處的目標 存儲塊的步驟之前,還包括:
[0011] 識別存儲塊的I/O訪問特征;
[0012] 將識別出的所述存儲塊的I/O訪問特征添加或更新至特征位圖中。
[0013] 結(jié)合第一方面的第一種可能的實現(xiàn)方式,在第二種可能的實現(xiàn)方式中,所述識別 存儲塊的I/O訪問特征,包括:
[0014] 當達到統(tǒng)計時間窗閾值,且判斷出所述存儲塊中的歷史I/O請求個數(shù)大于或等于 預設的第一數(shù)量閾值,且各個所述歷史I/O請求之間的間距小于預設的扇區(qū)數(shù)量閾值時, 識別出所述存儲塊的I/O訪問特征為順序訪問特征;
[0015] 當達到統(tǒng)計時間窗閾值,且判斷出所述存儲塊中的所述歷史I/O請求個數(shù)小于預 設的第二數(shù)量閾值,且各個所述歷史I/O請求之間的間距大于預設的扇區(qū)數(shù)量閾值時,識 別出所述存儲塊的I/O訪問特征為隨機訪問特征;
[0016] 當達到統(tǒng)計時間窗閾值,且判斷出所述存儲塊中的所述歷史I/O請求個數(shù)大于或 等于預設的第二數(shù)量閾值,且小于預設的第一數(shù)量閾值時,標示所述存儲塊的I/O訪問特 征為暫未識別;其中,所述第一數(shù)量閾值大于所述第二數(shù)量閾值。
[0017] 結(jié)合第一方面的第二種可能的實現(xiàn)方式,在第三種可能的實現(xiàn)方式中,還包括:
[0018] 當達到統(tǒng)計時間窗閾值,且判斷出所述歷史I/O請求在所述存儲塊中的覆蓋率大 于或等于預設的第一覆蓋率閾值時,識別出所述存儲塊的I/O訪問特征為順序訪問特征;
[0019] 當達到統(tǒng)計時間窗閾值,且判斷出所述歷史I/O請求在所述存儲塊中的覆蓋率小 于或等于預設的第二覆蓋率閾值時,識別出所述存儲塊的I/O訪問特征為隨機訪問特征;
[0020] 當達到統(tǒng)計時間窗閾值,且判斷出所述歷史I/O請求在所述存儲塊中的覆蓋率大 于預設的第二覆蓋率閾值,且小于預設的第一覆蓋率閾值時,標示所述存儲塊的I/O訪問 特征為暫未識別;其中,所述第一覆蓋率閾值大于所述第二覆蓋率閾值。
[0021] 結(jié)合第一方面的第一種可能的實現(xiàn)方式,或第一方面的第二種可能的實現(xiàn)方式, 或第一方面的第三種可能的實現(xiàn)方式,在第四種可能的實現(xiàn)方式中,在所述識別存儲塊的 I/O訪問特征的步驟之前,還包括:
[0022] 判斷所述歷史I/O請求所訪問的數(shù)據(jù)所處的存儲塊的用于識別I/O訪問特征的元 數(shù)據(jù)是否在本地內(nèi)存中,所述元數(shù)據(jù)至少包括所述存儲塊中所述歷史I/O請求個數(shù)和所述 歷史I/O請求的覆蓋率;
[0023] 若判斷為在所述本地內(nèi)存中,則更新所述歷史I/O請求所訪問的數(shù)據(jù)所處的存儲 塊的用于識別I/O訪問特征的元數(shù)據(jù);
[0024] 當更新后的元數(shù)據(jù)所對應的所述存儲塊滿足啟動識別條件時,執(zhí)行所述識別存儲 塊的I/O訪問特征。
[0025] 結(jié)合第一方面的第四種可能的實現(xiàn)方式,在第五種可能的實現(xiàn)方式中,還包括:
[0026] 當判斷所述歷史I/O請求所訪問的數(shù)據(jù)所處的存儲塊的用于識別I/O訪問特征的 元數(shù)據(jù)不在本地內(nèi)存中時,則進一步判斷所述本地內(nèi)存中的所述元數(shù)據(jù)的個數(shù)是否達到預 設的元數(shù)據(jù)閾值;
[0027] 若判斷為未達到預設的元數(shù)據(jù)閾值,則生成所述歷史I/O請求所訪問的數(shù)據(jù)所處 的存儲塊的用于識別I/O訪問特征的元數(shù)據(jù),并將所生成的元數(shù)據(jù)存儲于所述本地內(nèi)存 中,以便于更新所述歷史I/O請求所訪問的數(shù)據(jù)所處的存儲塊的用于識別I/O訪問特征的 元數(shù)據(jù);
[0028] 若判斷為達到預設的元數(shù)據(jù)閾值時,則從所述本地內(nèi)存中刪除啟動識別時間戳最 靠前的元數(shù)據(jù),以便于在所述本地內(nèi)存中生成所述歷史I/O請求所訪問的數(shù)據(jù)所處的存儲 塊的用于識別I/O訪問特征的元數(shù)據(jù);
[0029] 計算被刪除的元數(shù)據(jù)所對應的存儲塊的I/O訪問特征,以將計算出的所述I/O訪 問特征添加或更新至特征位圖中。
[0030] 結(jié)合第一方面的第二種可能的實現(xiàn)方式,或第一方面的第三種可能的實現(xiàn)方式, 或第一方面的第四種可能的實現(xiàn)方式,或第一方面的第五種可能的實現(xiàn)方式,在第六種可 能的實現(xiàn)方式中,所述當查找出所述目標存儲塊的I/O訪問特征為隨機訪問特征時,根據(jù) 所述當前I/O請求進行隨機預取,包括:
[0031] 當查找出所述目標存儲塊的I/O訪問特征為隨機訪問特征時,在預設的二維表中 查找是否存在所述目標存儲塊對應的關聯(lián)規(guī)則;
[0032] 若查找到存在所述目標存儲塊對應的關聯(lián)規(guī)則,則下發(fā)所述當前I/O請求,并根 據(jù)所述當前I/O請求以及查找到的所述關聯(lián)規(guī)則生成預取請求,以根據(jù)所述預取請求進行 預取;
[0033] 若未查找到存在所述目標存儲塊對應的關聯(lián)規(guī)則,則直接下發(fā)所述當前I/O請 求。
[0034] 結(jié)合第一方面的第六種可能的實現(xiàn)方式,在第七種可能的實現(xiàn)方式中,
[0035] 所述關聯(lián)規(guī)則是通過對識別為隨機訪問特征和暫未識別的I/O訪問特征的存儲 塊進行歷史訪問信息挖掘所得到的;
[0036] 所述二維表包括與識別為隨機訪問特征或暫未識別的I/O訪問特征的存儲塊對 應的關聯(lián)規(guī)則。
[0037] 本發(fā)明第二方面提供了一種數(shù)據(jù)預取裝置,包括:
[0038] 第一查找模塊,用于查找當前I/O請求所訪問的數(shù)據(jù)所處的目標存儲塊;
[0039] 第二查找模塊,用于在特征位圖中查找出所述目標存儲塊的I/O訪問特征,所述 特征位圖用于標識所述目標存儲塊的I/O訪問特征;
[0040] 順序預取模塊,用于當查找出所述目標存儲塊的I/O訪問特征為順序訪問特征 時,根據(jù)所述當前I/O請求進行順序預?。?br>
[0041] 隨機預取模塊,用于當查找出所述目標存儲塊的I/O訪問特征為隨機訪問特征 時,根據(jù)所述當前I/O請求進行隨機預取。
[0042] 在第一種可能的實現(xiàn)方式中,還包括:
[0043] 特征識別模塊,用于識別存儲塊的I/O訪問特征;
[0044] 添加更新模塊,用于將所述特征識別模塊識別出的所述存儲塊的I/O訪問特征添 加或更新至特征位圖中。
[0045] 結(jié)合第二方面的第一種可能的實現(xiàn)方式,在第二種可能的實現(xiàn)方式中,所述特征 識別模塊包括:
[0046] 識別單元,用于當達到統(tǒng)計時間窗閾值,且判斷出所述存儲塊中的歷史I/O請求 個數(shù)大于或等于預設的第一數(shù)量閾值,且各個所述歷史I/O請求之間的間距小于預設的扇 區(qū)數(shù)量閾值時,識別出所述存儲塊的I/O訪問特征為順序訪問特征;
[0047] 所述識別單元,還用于當達到統(tǒng)計時間窗閾值,且判斷出所述存儲塊中的所述歷 史I/O請求個數(shù)小于預設的第二數(shù)量閾值,且各個所述歷史I/O請求之間的間距大于預設 的扇區(qū)數(shù)量閾值時,識別出所述存儲塊的I/O訪問特征為隨機訪問特征;
[0048] 標示單元,用于當達到統(tǒng)計時間窗閾值,且判斷出所述存儲塊中的所述歷史I/O 請求個數(shù)大于或等于預設的第二數(shù)量閾值,且小于預設的第一數(shù)量閾值時,標示所述存儲 塊的I/O訪問特征為暫未識別;其中,所述第一數(shù)量閾值大于所述第二數(shù)量閾值。
[0049] 結(jié)合第二方面的第二種可能的實現(xiàn)方式,在第三種可能的實現(xiàn)方式中,
[0050] 所述識別單元,還用于當達到統(tǒng)計時間窗閾值,且判斷出所述歷史I/O請求在所 述存儲塊中的覆蓋率大于或等于預設的第一覆蓋率閾值時,識別出所述存儲塊的I/O訪問 特征為順序訪問特征;
[0051] 所述識別單元,還用于當達到統(tǒng)計時間窗閾值,且判斷出所述歷史I/O請求在所 述存儲塊中的覆蓋率小于或等于預設的第二覆蓋率閾值時,識別出所述存儲塊的I/O訪問 特征為隨機訪問特征;
[0052] 所述標示單元,還用于當達到統(tǒng)計時間窗閾值,且判斷出所述歷史I/O請求在所 述存儲塊中的覆蓋率大于預設的第二覆蓋率閾值,且小于預設的第一覆蓋率閾值時,標示 所述存儲塊的I/O訪問特征為暫未識別;其中,所述第一覆蓋率閾值大于所述第二覆蓋率 閾值。
[0053] 結(jié)合第二方面的第一種可能的實現(xiàn)方式,或第二方面的第二種可能的實現(xiàn)方式, 或第二方面的第三種可能的實現(xiàn)方式,在第四種可能的實現(xiàn)方式中,還包括:
[0054] 第一判斷模塊,用于判斷所述歷史I/O請求所訪問的數(shù)據(jù)所處的存儲塊的用于識 別I/O訪問特征的元數(shù)據(jù)是否在本地內(nèi)存中,所述元數(shù)據(jù)至少包括所述存儲塊中所述歷史 I/O請求個數(shù)和所述歷史I/O請求的覆蓋率;
[0055] 元數(shù)據(jù)更新模塊,用于若所述第一判斷模塊判斷為在所述本地內(nèi)存中,則更新所 述歷史I/O請求所訪問的數(shù)據(jù)所處的存儲塊的用于識別I/O訪問特征的元數(shù)據(jù);
[0056] 通知模塊,用于當所述元數(shù)據(jù)更新模塊更新后的元數(shù)據(jù)所對應的所述存儲塊滿足 啟動識別條件時,通知所述特征識別模塊識別存儲塊的I/O訪問特征。
[0057] 結(jié)合第二方面的第四種可能的實現(xiàn)方式,在第五種可能的實現(xiàn)方式中,還包括:
[0058] 第二判斷模塊,用于當所述第一判斷模塊判斷所述歷史I/O請求所訪問的數(shù)據(jù)所 處的存儲塊的用于識別I/O訪問特征的元數(shù)據(jù)不在本地內(nèi)存中時,則進一步判斷所述本地 內(nèi)存中的所述元數(shù)據(jù)的個數(shù)是否達到預設的元數(shù)據(jù)閾值;
[0059] 生成存儲模塊,用于若所述第二判斷模塊判斷為未達到預設的元數(shù)據(jù)閾值,則生 成所述歷史I/O請求所訪問的數(shù)據(jù)所處的存儲塊的用于識別I/O訪問特征的元數(shù)據(jù),并將 所生成的元數(shù)據(jù)存儲于所述本地內(nèi)存中,以便于更新所述歷史I/O請求所訪問的數(shù)據(jù)所處 的存儲塊的用于識別I/O訪問特征的元數(shù)據(jù);
[0060] 刪除模塊,用于若所述第二判斷模塊判斷為達到預設的元數(shù)據(jù)閾值時,則從所述 本地內(nèi)存中刪除啟動識別時間戳最靠前的元數(shù)據(jù),以便于在所述本地內(nèi)存中生成所述歷史 I/O請求所訪問的數(shù)據(jù)所處的存儲塊的用于識別I/O訪問特征的元數(shù)據(jù);
[0061] 計算模塊,用于計算被刪除的元數(shù)據(jù)所對應的存儲塊的I/O訪問特征,以將計算 出的所述I/O訪問特征添加或更新至特征位圖中。
[0062] 結(jié)合第二方面的第二種可能的實現(xiàn)方式,或第二方面的第三種可能的實現(xiàn)方式, 或第二方面的第四種可能的實現(xiàn)方式,或第二方面的第五種可能的實現(xiàn)方式,在第六種可 能的實現(xiàn)方式中,所述隨機預取模塊包括:
[0063] 規(guī)則查找單元,用于當查找出所述目標存儲塊的I/O訪問特征為隨機訪問特征 時,在預設的二維表中查找是否存在所述目標存儲塊對應的關聯(lián)規(guī)則;
[0064] 預取單元,用于若所述規(guī)則查找單元查找到存在所述目標存儲塊對應的關聯(lián)規(guī) 貝1J,則下發(fā)所述當前I/O請求,并根據(jù)所述當前I/O請求以及查找到的所述關聯(lián)規(guī)則生成預 取請求,以根據(jù)所述預取請求進行預??;
[0065] 請求下發(fā)單元,用于若所述規(guī)則查找單元未查找到存在所述目標存儲塊對應的關 聯(lián)規(guī)則,則直接下發(fā)所述當前I/O請求。
[0066] 結(jié)合第二方面的第六種可能的實現(xiàn)方式,在第七種可能的實現(xiàn)方式中,
[0067] 所述關聯(lián)規(guī)則是通過對識別為隨機訪問特征和暫未識別的I/O訪問特征的存儲 塊進行歷史訪問信息挖掘所得到的;
[0068] 所述二維表包括與識別為隨機訪問特征或暫未識別的I/O訪問特征的存儲塊對 應的關聯(lián)規(guī)則。
[0069] 由上可見,本發(fā)明實施例通過在預先設置的特征位圖中查找出目標存儲塊的I/O 訪問特征,可以確定出要對當前I/O請求進行順序預取或隨機預取,使得順序預取和隨機 預取兩種預取方法可以有效分離開來,以應用到對應的I/O請求,從而可以提高系統(tǒng)的預 取效率。
【專利附圖】
【附圖說明】
[0070] 為了更清楚地說明本發(fā)明實施例中的技術方案,下面將對實施例或現(xiàn)有技術描述 中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些 實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附 圖獲得其他的附圖。
[0071] 圖1是本發(fā)明實施例提供的一種數(shù)據(jù)預取的方法的流程示意圖;
[0072] 圖2是本發(fā)明實施例提供的另一種數(shù)據(jù)預取的方法的流程示意圖;
[0073] 圖3是本發(fā)明實施例提供的其中一種對元數(shù)據(jù)的處理方法的流程示意圖;
[0074] 圖4是本發(fā)明實施例提供的其中一種隨機預取的方法的流程示意圖;
[0075] 圖5是本發(fā)明實施例提供的一種數(shù)據(jù)預取裝置的結(jié)構(gòu)示意圖;
[0076] 圖6是本發(fā)明實施例提供的另一種數(shù)據(jù)預取裝置的結(jié)構(gòu)示意圖;
[0077] 圖7是本發(fā)明實施例提供的一種特征識別模塊的結(jié)構(gòu)示意圖;
[0078] 圖8是本發(fā)明實施例提供的一種隨機預取模塊的結(jié)構(gòu)示意圖;
[0079] 圖9是本發(fā)明實施例提供的又一種數(shù)據(jù)預取裝置的結(jié)構(gòu)示意圖。
【具體實施方式】
[0080] 下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完 整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;?本發(fā)明中的實施例,本領域普通技術人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他 實施例,都屬于本發(fā)明保護的范圍。
[0081] 請參見圖1,是本發(fā)明實施例提供的一種數(shù)據(jù)預取的方法的流程示意圖,所述方法 可以包括:
[0082] S101,查找當前I/O請求所訪問的數(shù)據(jù)所處的目標存儲塊;
[0083] 具體的,所述存儲塊是通過預先對LUN空間進行均等容量劃分所得到的,例如,將 一個40M大小的LUN空間劃分成10個4M大小的存儲塊,即從LUN空間的初始位置開始,每 4M的連續(xù)空間對應一個存儲塊。由于主機發(fā)到存儲系統(tǒng)的I/O請求中攜帶有請求訪問地址 和請求訪問長度,所以存儲系統(tǒng)可以根據(jù)主機側(cè)所發(fā)送的當前I/O請求確定出所述當前1/ 0請求處于哪個存儲塊。在查找到當前I/O請求所處于的存儲塊后,還可以將該存儲塊作為 目標存儲塊。
[0084] S102,在特征位圖中查找出所述目標存儲塊的I/O訪問特征;
[0085] 具體的,所述特征位圖包含每個存儲塊的I/O訪問特征,所以所述特征位圖用于 標識所述目標存儲塊的I/O訪問特征,所述I/O訪問特征至少包括順序訪問特征和隨機訪 問特征。根據(jù)多個歷史I/O請求可以識別出存儲塊的I/O訪問特征,例如,在lms內(nèi),若統(tǒng) 計出其中一個存儲塊中的歷史I/O請求的個數(shù)超過200個,且歷史I/O請求間的間距均小 于8個扇區(qū)大小,則可識別出該存儲塊的I/O訪問特征為順序訪問特征;若統(tǒng)計出另一個存 儲塊中的歷史I/O請求的個數(shù)少于10個,且歷史I/O請求間的間距均大于8個扇區(qū)大小, 則可識別出該存儲塊的I/O訪問特征為隨機訪問特征。在識別出各個存儲塊的I/O訪問特 征后,可以將識別出的所述存儲塊的I/O訪問特征添加或更新至特征位圖中。在設置好所 述特征位圖后,可以在所述特征位圖中查找出所述目標存儲塊的I/O訪問特征。例如,請參 見如下表1所示的特征位圖:
[0086]
【權(quán)利要求】
1. 一種數(shù)據(jù)預取的方法,其特征在于,包括: 查找當前I/O請求所訪問的數(shù)據(jù)所處的目標存儲塊; 在特征位圖中查找出所述目標存儲塊的I/O訪問特征,所述特征位圖用于標識所述目 標存儲塊的I/O訪問特征; 當查找出所述目標存儲塊的I/O訪問特征為順序訪問特征時,根據(jù)所述當前I/O請求 進行順序預?。? 當查找出所述目標存儲塊的I/O訪問特征為隨機訪問特征時,根據(jù)所述當前I/O請求 進行隨機預取。
2. 如權(quán)利要求1所述的方法,其特征在于,在所述查找當前I/O請求所訪問的數(shù)據(jù)所處 的目標存儲塊的步驟之前,還包括: 識別存儲塊的I/O訪問特征; 將識別出的所述存儲塊的I/O訪問特征添加或更新至特征位圖中。
3. 如權(quán)利要求2所述的方法,其特征在于,所述識別存儲塊的I/O訪問特征,包括: 當達到統(tǒng)計時間窗閾值,且判斷出所述存儲塊中的歷史I/O請求個數(shù)大于或等于預設 的第一數(shù)量閾值,且各個所述歷史I/O請求之間的間距小于預設的扇區(qū)數(shù)量閾值時,識別 出所述存儲塊的I/O訪問特征為順序訪問特征; 當達到統(tǒng)計時間窗閾值,且判斷出所述存儲塊中的所述歷史I/O請求個數(shù)小于預設的 第二數(shù)量閾值,且各個所述歷史I/O請求之間的間距大于預設的扇區(qū)數(shù)量閾值時,識別出 所述存儲塊的I/O訪問特征為隨機訪問特征; 當達到統(tǒng)計時間窗閾值,且判斷出所述存儲塊中的所述歷史I/O請求個數(shù)大于或等于 預設的第二數(shù)量閾值,且小于預設的第一數(shù)量閾值時,標示所述存儲塊的I/O訪問特征為 暫未識別;其中,所述第一數(shù)量閾值大于所述第二數(shù)量閾值。
4. 如權(quán)利要求3所述的方法,其特征在于,還包括: 當達到統(tǒng)計時間窗閾值,且判斷出所述歷史I/O請求在所述存儲塊中的覆蓋率大于或 等于預設的第一覆蓋率閾值時,識別出所述存儲塊的I/O訪問特征為順序訪問特征; 當達到統(tǒng)計時間窗閾值,且判斷出所述歷史I/O請求在所述存儲塊中的覆蓋率小于或 等于預設的第二覆蓋率閾值時,識別出所述存儲塊的I/O訪問特征為隨機訪問特征; 當達到統(tǒng)計時間窗閾值,且判斷出所述歷史I/O請求在所述存儲塊中的覆蓋率大于預 設的第二覆蓋率閾值,且小于預設的第一覆蓋率閾值時,標示所述存儲塊的I/O訪問特征 為暫未識別;其中,所述第一覆蓋率閾值大于所述第二覆蓋率閾值。
5. 如權(quán)利要求2至4任一項所述的方法,其特征在于,在所述識別存儲塊的I/O訪問特 征的步驟之前,還包括: 判斷所述歷史I/O請求所訪問的數(shù)據(jù)所處的存儲塊的用于識別I/O訪問特征的元數(shù)據(jù) 是否在本地內(nèi)存中,所述元數(shù)據(jù)至少包括所述存儲塊中所述歷史I/O請求個數(shù)和所述歷史 I/O請求的覆蓋率; 若判斷為在所述本地內(nèi)存中,則更新所述歷史I/O請求所訪問的數(shù)據(jù)所處的存儲塊的 用于識別I/O訪問特征的元數(shù)據(jù); 當更新后的元數(shù)據(jù)所對應的所述存儲塊滿足啟動識別條件時,執(zhí)行所述識別存儲塊的 I/O訪問特征。
6. 如權(quán)利要求5所述的方法,其特征在于,還包括: 當判斷所述歷史I/O請求所訪問的數(shù)據(jù)所處的存儲塊的用于識別I/O訪問特征的元數(shù) 據(jù)不在本地內(nèi)存中時,則進一步判斷所述本地內(nèi)存中的所述元數(shù)據(jù)的個數(shù)是否達到預設的 元數(shù)據(jù)閾值; 若判斷為未達到預設的元數(shù)據(jù)閾值,則生成所述歷史I/O請求所訪問的數(shù)據(jù)所處的存 儲塊的用于識別I/O訪問特征的元數(shù)據(jù),并將所生成的元數(shù)據(jù)存儲于所述本地內(nèi)存中,以 便于更新所述歷史I/O請求所訪問的數(shù)據(jù)所處的存儲塊的用于識別I/O訪問特征的元數(shù) 據(jù); 若判斷為達到預設的元數(shù)據(jù)閾值時,則從所述本地內(nèi)存中刪除啟動識別時間戳最靠前 的元數(shù)據(jù),以便于在所述本地內(nèi)存中生成所述歷史I/O請求所訪問的數(shù)據(jù)所處的存儲塊的 用于識別I/O訪問特征的元數(shù)據(jù); 計算被刪除的元數(shù)據(jù)所對應的存儲塊的I/O訪問特征,以將計算出的所述I/O訪問特 征添加或更新至特征位圖中。
7. 如權(quán)利要求3至6任一項所述的方法,其特征在于,所述當查找出所述目標存儲塊的 I/O訪問特征為隨機訪問特征時,根據(jù)所述當前I/O請求進行隨機預取,包括: 當查找出所述目標存儲塊的I/O訪問特征為隨機訪問特征時,在預設的二維表中查找 是否存在所述目標存儲塊對應的關聯(lián)規(guī)則; 若查找到存在所述目標存儲塊對應的關聯(lián)規(guī)則,則下發(fā)所述當前I/O請求,并根據(jù)所 述當前I/O請求以及查找到的所述關聯(lián)規(guī)則生成預取請求,以根據(jù)所述預取請求進行預 ??; 若未查找到存在所述目標存儲塊對應的關聯(lián)規(guī)則,則直接下發(fā)所述當前I/O請求。
8. 如權(quán)利要求7所述的方法,其特征在于, 所述關聯(lián)規(guī)則是通過對識別為隨機訪問特征和暫未識別的I/O訪問特征的存儲塊進 行歷史訪問信息挖掘所得到的; 所述二維表包括與識別為隨機訪問特征或暫未識別的I/O訪問特征的存儲塊對應的 關聯(lián)規(guī)則。
9. 一種數(shù)據(jù)預取裝置,其特征在于,包括: 第一查找模塊,用于查找當前I/O請求所訪問的數(shù)據(jù)所處的目標存儲塊; 第二查找模塊,用于在特征位圖中查找出所述目標存儲塊的I/O訪問特征,所述特征 位圖用于標識所述目標存儲塊的I/O訪問特征; 順序預取模塊,用于當查找出所述目標存儲塊的I/O訪問特征為順序訪問特征時,根 據(jù)所述當前I/O請求進行順序預?。? 隨機預取模塊,用于當查找出所述目標存儲塊的I/O訪問特征為隨機訪問特征時,根 據(jù)所述當前I/O請求進行隨機預取。
10. 如權(quán)利要求9所述的裝置,其特征在于,還包括: 特征識別模塊,用于識別存儲塊的I/O訪問特征; 添加更新模塊,用于將所述特征識別模塊識別出的所述存儲塊的I/O訪問特征添加或 更新至特征位圖中。
11. 如權(quán)利要求10所述的裝置,其特征在于,所述特征識別模塊包括: 識別單元,用于當達到統(tǒng)計時間窗閾值,且判斷出所述存儲塊中的歷史I/O請求個數(shù) 大于或等于預設的第一數(shù)量閾值,且各個所述歷史I/O請求之間的間距小于預設的扇區(qū)數(shù) 量閾值時,識別出所述存儲塊的I/O訪問特征為順序訪問特征; 所述識別單元,還用于當達到統(tǒng)計時間窗閾值,且判斷出所述存儲塊中的所述歷史I/O 請求個數(shù)小于預設的第二數(shù)量閾值,且各個所述歷史I/O請求之間的間距大于預設的扇區(qū) 數(shù)量閾值時,識別出所述存儲塊的I/O訪問特征為隨機訪問特征; 標示單元,用于當達到統(tǒng)計時間窗閾值,且判斷出所述存儲塊中的所述歷史I/O請求 個數(shù)大于或等于預設的第二數(shù)量閾值,且小于預設的第一數(shù)量閾值時,標示所述存儲塊的 I/O訪問特征為暫未識別;其中,所述第一數(shù)量閾值大于所述第二數(shù)量閾值。
12. 如權(quán)利要求11所述的裝置,其特征在于, 所述識別單元,還用于當達到統(tǒng)計時間窗閾值,且判斷出所述歷史I/O請求在所述存 儲塊中的覆蓋率大于或等于預設的第一覆蓋率閾值時,識別出所述存儲塊的I/O訪問特征 為順序訪問特征; 所述識別單元,還用于當達到統(tǒng)計時間窗閾值,且判斷出所述歷史I/O請求在所述存 儲塊中的覆蓋率小于或等于預設的第二覆蓋率閾值時,識別出所述存儲塊的I/O訪問特征 為隨機訪問特征; 所述標示單元,還用于當達到統(tǒng)計時間窗閾值,且判斷出所述歷史I/O請求在所述存 儲塊中的覆蓋率大于預設的第二覆蓋率閾值,且小于預設的第一覆蓋率閾值時,標示所述 存儲塊的I/O訪問特征為暫未識別;其中,所述第一覆蓋率閾值大于所述第二覆蓋率閾值。
13. 如權(quán)利要求10至12任一項所述的裝置,其特征在于,還包括: 第一判斷模塊,用于判斷所述歷史I/O請求所訪問的數(shù)據(jù)所處的存儲塊的用于識別1/ 0訪問特征的元數(shù)據(jù)是否在本地內(nèi)存中,所述元數(shù)據(jù)至少包括所述存儲塊中所述歷史I/O 請求個數(shù)和所述歷史I/O請求的覆蓋率; 元數(shù)據(jù)更新模塊,用于若所述第一判斷模塊判斷為在所述本地內(nèi)存中,則更新所述歷 史I/O請求所訪問的數(shù)據(jù)所處的存儲塊的用于識別I/O訪問特征的元數(shù)據(jù); 通知模塊,用于當所述元數(shù)據(jù)更新模塊更新后的元數(shù)據(jù)所對應的所述存儲塊滿足啟動 識別條件時,通知所述特征識別模塊識別存儲塊的I/O訪問特征。
14. 如權(quán)利要求13所述的裝置,其特征在于,還包括: 第二判斷模塊,用于當所述第一判斷模塊判斷所述歷史I/O請求所訪問的數(shù)據(jù)所處的 存儲塊的用于識別I/O訪問特征的元數(shù)據(jù)不在本地內(nèi)存中時,則進一步判斷所述本地內(nèi)存 中的所述元數(shù)據(jù)的個數(shù)是否達到預設的元數(shù)據(jù)閾值; 生成存儲模塊,用于若所述第二判斷模塊判斷為未達到預設的元數(shù)據(jù)閾值,則生成所 述歷史I/O請求所訪問的數(shù)據(jù)所處的存儲塊的用于識別I/O訪問特征的元數(shù)據(jù),并將所生 成的元數(shù)據(jù)存儲于所述本地內(nèi)存中,以便于更新所述歷史I/O請求所訪問的數(shù)據(jù)所處的存 儲塊的用于識別I/O訪問特征的元數(shù)據(jù); 刪除模塊,用于若所述第二判斷模塊判斷為達到預設的元數(shù)據(jù)閾值時,則從所述本地 內(nèi)存中刪除啟動識別時間戳最靠前的元數(shù)據(jù),以便于在所述本地內(nèi)存中生成所述歷史I/O 請求所訪問的數(shù)據(jù)所處的存儲塊的用于識別I/O訪問特征的元數(shù)據(jù); 計算模塊,用于計算被刪除的元數(shù)據(jù)所對應的存儲塊的I/O訪問特征,以將計算出的 所述I/O訪問特征添加或更新至特征位圖中。
15. 如權(quán)利要求11至14任一項所述的裝置,其特征在于,所述隨機預取模塊包括: 規(guī)則查找單元,用于當查找出所述目標存儲塊的I/O訪問特征為隨機訪問特征時,在 預設的二維表中查找是否存在所述目標存儲塊對應的關聯(lián)規(guī)則; 預取單元,用于若所述規(guī)則查找單元查找到存在所述目標存儲塊對應的關聯(lián)規(guī)則,則 下發(fā)所述當前I/O請求,并根據(jù)所述當前I/O請求以及查找到的所述關聯(lián)規(guī)則生成預取請 求,以根據(jù)所述預取請求進行預??; 請求下發(fā)單元,用于若所述規(guī)則查找單元未查找到存在所述目標存儲塊對應的關聯(lián)規(guī) 貝1J,則直接下發(fā)所述當前I/O請求。
16. 如權(quán)利要求15所述的裝置,其特征在于, 所述關聯(lián)規(guī)則是通過對識別為隨機訪問特征和暫未識別的I/O訪問特征的存儲塊進 行歷史訪問信息挖掘所得到的; 所述二維表包括與識別為隨機訪問特征或暫未識別的I/O訪問特征的存儲塊對應的 關聯(lián)規(guī)則。
【文檔編號】G06F12/08GK104156321SQ201410353997
【公開日】2014年11月19日 申請日期:2014年7月23日 優(yōu)先權(quán)日:2014年7月23日
【發(fā)明者】王明迪, 覃偉峰 申請人:華為技術有限公司