本發(fā)明涉及計算機
技術領域:
,尤其涉及一種i/o特征識別方法以及裝置。
背景技術:
:隨著信息技術的迅速發(fā)展,網絡規(guī)模隨著用戶數呈指數級增長,也越來越龐大,為了支持斷接操作,數據要預先存儲到緩存中,由于在斷接過程中只能使用本地的數據,所以要提高用戶的訪問速度,主要采用緩存預取技術來減少網絡延遲,因此這個數據預先提取的過程是必需的。在現有技術中,可以利用全量i/o訪問歷史來挖掘數據間的關聯關系,并通過該關聯關系生成規(guī)則用于規(guī)則關聯預取,由于現有技術中的規(guī)則關聯預取無法區(qū)分順序訪問的i/o請求和隨機訪問的i/o請求,所以無論是順序訪問的i/o請求還是隨機訪問的i/o請求,都將使用規(guī)則關聯預取,但是規(guī)則關聯預取并不適用于順序訪問的i/o請求,從而降低了系統的預取效率。技術實現要素:本發(fā)明實施例所要解決的技術問題在于,提供一種數據預取的方法以及裝置,可提高系統的預取效率。本發(fā)明第一方面提供了一種數據預取的方法,包括:查找當前i/o請求所訪問的數據所處的目標存儲塊;在特征位圖中查找出所述目標存儲塊的i/o訪問特征,所述特征位圖用于標識所述目標存儲塊的i/o訪問特征;當查找出所述目標存儲塊的i/o訪問特征為順序訪問特征時,根據所述當前i/o請求進行順序預??;當查找出所述目標存儲塊的i/o訪問特征為隨機訪問特征時,根據所述當前i/o請求進行隨機預取。在第一種可能的實現方式中,在所述查找當前i/o請求所訪問的數據所處的目標存儲塊的步驟之前,還包括:識別存儲塊的i/o訪問特征;將識別出的所述存儲塊的i/o訪問特征添加或更新至特征位圖中。結合第一方面的第一種可能的實現方式,在第二種可能的實現方式中,所述識別存儲塊的i/o訪問特征,包括:當達到統計時間窗閾值,且判斷出所述存儲塊中的歷史i/o請求個數大于或等于預設的第一數量閾值,且各個所述歷史i/o請求之間的間距小于預設的扇區(qū)數量閾值時,識別出所述存儲塊的i/o訪問特征為順序訪問特征;當達到統計時間窗閾值,且判斷出所述存儲塊中的所述歷史i/o請求個數小于預設的第二數量閾值,且各個所述歷史i/o請求之間的間距大于預設的扇區(qū)數量閾值時,識別出所述存儲塊的i/o訪問特征為隨機訪問特征;當達到統計時間窗閾值,且判斷出所述存儲塊中的所述歷史i/o請求個數大于或等于預設的第二數量閾值,且小于預設的第一數量閾值時,標示所述存儲塊的i/o訪問特征為暫未識別;其中,所述第一數量閾值大于所述第二數量閾值。結合第一方面的第二種可能的實現方式,在第三種可能的實現方式中,還包括:當達到統計時間窗閾值,且判斷出所述歷史i/o請求在所述存儲塊中的覆蓋率大于或等于預設的第一覆蓋率閾值時,識別出所述存儲塊的i/o訪問特征為順序訪問特征;當達到統計時間窗閾值,且判斷出所述歷史i/o請求在所述存儲塊中的覆蓋率小于或等于預設的第二覆蓋率閾值時,識別出所述存儲塊的i/o訪問特征為隨機訪問特征;當達到統計時間窗閾值,且判斷出所述歷史i/o請求在所述存儲塊中的覆蓋率大于預設的第二覆蓋率閾值,且小于預設的第一覆蓋率閾值時,標示所述存儲塊的i/o訪問特征為暫未識別;其中,所述第一覆蓋率閾值大于所述第二覆蓋率閾值。結合第一方面的第一種可能的實現方式,或第一方面的第二種可能的實現方式,或第一方面的第三種可能的實現方式,在第四種可能的實現方式中,在所述識別存儲塊的i/o訪問特征的步驟之前,還包括:判斷所述歷史i/o請求所訪問的數據所處的存儲塊的用于識別i/o訪問特征的元數據是否在本地內存中,所述元數據至少包括所述存儲塊中所述歷史i/o請求個數和所述歷史i/o請求的覆蓋率;若判斷為在所述本地內存中,則更新所述歷史i/o請求所訪問的數據所處的存儲塊的用于識別i/o訪問特征的元數據;當更新后的元數據所對應的所述存儲塊滿足啟動識別條件時,執(zhí)行所述識別存儲塊的i/o訪問特征。結合第一方面的第四種可能的實現方式,在第五種可能的實現方式中,還包括:當判斷所述歷史i/o請求所訪問的數據所處的存儲塊的用于識別i/o訪問特征的元數據不在本地內存中時,則進一步判斷所述本地內存中的所述元數據的個數是否達到預設的元數據閾值;若判斷為未達到預設的元數據閾值,則生成所述歷史i/o請求所訪問的數據所處的存儲塊的用于識別i/o訪問特征的元數據,并將所生成的元數據存儲于所述本地內存中,以便于更新所述歷史i/o請求所訪問的數據所處的存儲塊的用于識別i/o訪問特征的元數據;若判斷為達到預設的元數據閾值時,則從所述本地內存中刪除啟動識別時間戳最靠前的元數據,以便于在所述本地內存中生成所述歷史i/o請求所訪問的數據所處的存儲塊的用于識別i/o訪問特征的元數據;計算被刪除的元數據所對應的存儲塊的i/o訪問特征,以將計算出的所述i/o訪問特征添加或更新至特征位圖中。結合第一方面的第二種可能的實現方式,或第一方面的第三種可能的實現方式,或第一方面的第四種可能的實現方式,或第一方面的第五種可能的實現方式,在第六種可能的實現方式中,所述當查找出所述目標存儲塊的i/o訪問特征為隨機訪問特征時,根據所述當前i/o請求進行隨機預取,包括:當查找出所述目標存儲塊的i/o訪問特征為隨機訪問特征時,在預設的二維表中查找是否存在所述目標存儲塊對應的關聯規(guī)則;若查找到存在所述目標存儲塊對應的關聯規(guī)則,則下發(fā)所述當前i/o請求,并根據所述當前i/o請求以及查找到的所述關聯規(guī)則生成預取請求,以根據所述預取請求進行預?。蝗粑床檎业酱嬖谒瞿繕舜鎯K對應的關聯規(guī)則,則直接下發(fā)所述當前i/o請求。結合第一方面的第六種可能的實現方式,在第七種可能的實現方式中,所述關聯規(guī)則是通過對識別為隨機訪問特征和暫未識別的i/o訪問特征的存儲塊進行歷史訪問信息挖掘所得到的;所述二維表包括與識別為隨機訪問特征或暫未識別的i/o訪問特征的存儲塊對應的關聯規(guī)則。本發(fā)明第二方面提供了一種數據預取裝置,包括:第一查找模塊,用于查找當前i/o請求所訪問的數據所處的目標存儲塊;第二查找模塊,用于在特征位圖中查找出所述目標存儲塊的i/o訪問特征,所述特征位圖用于標識所述目標存儲塊的i/o訪問特征;順序預取模塊,用于當查找出所述目標存儲塊的i/o訪問特征為順序訪問特征時,根據所述當前i/o請求進行順序預?。浑S機預取模塊,用于當查找出所述目標存儲塊的i/o訪問特征為隨機訪問特征時,根據所述當前i/o請求進行隨機預取。在第一種可能的實現方式中,還包括:特征識別模塊,用于識別存儲塊的i/o訪問特征;添加更新模塊,用于將所述特征識別模塊識別出的所述存儲塊的i/o訪問特征添加或更新至特征位圖中。結合第二方面的第一種可能的實現方式,在第二種可能的實現方式中,所述特征識別模塊包括:識別單元,用于當達到統計時間窗閾值,且判斷出所述存儲塊中的歷史i/o請求個數大于或等于預設的第一數量閾值,且各個所述歷史i/o請求之間的間距小于預設的扇區(qū)數量閾值時,識別出所述存儲塊的i/o訪問特征為順序訪問特征;所述識別單元,還用于當達到統計時間窗閾值,且判斷出所述存儲塊中的所述歷史i/o請求個數小于預設的第二數量閾值,且各個所述歷史i/o請求之間的間距大于預設的扇區(qū)數量閾值時,識別出所述存儲塊的i/o訪問特征為隨機訪問特征;標示單元,用于當達到統計時間窗閾值,且判斷出所述存儲塊中的所述歷史i/o請求個數大于或等于預設的第二數量閾值,且小于預設的第一數量閾值時,標示所述存儲塊的i/o訪問特征為暫未識別;其中,所述第一數量閾值大于所述第二數量閾值。結合第二方面的第二種可能的實現方式,在第三種可能的實現方式中,所述識別單元,還用于當達到統計時間窗閾值,且判斷出所述歷史i/o請求在所述存儲塊中的覆蓋率大于或等于預設的第一覆蓋率閾值時,識別出所述存儲塊的i/o訪問特征為順序訪問特征;所述識別單元,還用于當達到統計時間窗閾值,且判斷出所述歷史i/o請求在所述存儲塊中的覆蓋率小于或等于預設的第二覆蓋率閾值時,識別出所述存儲塊的i/o訪問特征為隨機訪問特征;所述標示單元,還用于當達到統計時間窗閾值,且判斷出所述歷史i/o請求在所述存儲塊中的覆蓋率大于預設的第二覆蓋率閾值,且小于預設的第一覆蓋率閾值時,標示所述存儲塊的i/o訪問特征為暫未識別;其中,所述第一覆蓋率閾值大于所述第二覆蓋率閾值。結合第二方面的第一種可能的實現方式,或第二方面的第二種可能的實現方式,或第二方面的第三種可能的實現方式,在第四種可能的實現方式中,還包括:第一判斷模塊,用于判斷所述歷史i/o請求所訪問的數據所處的存儲塊的用于識別i/o訪問特征的元數據是否在本地內存中,所述元數據至少包括所述存儲塊中所述歷史i/o請求個數和所述歷史i/o請求的覆蓋率;元數據更新模塊,用于若所述第一判斷模塊判斷為在所述本地內存中,則更新所述歷史i/o請求所訪問的數據所處的存儲塊的用于識別i/o訪問特征的元數據;通知模塊,用于當所述元數據更新模塊更新后的元數據所對應的所述存儲塊滿足啟動識別條件時,通知所述特征識別模塊識別存儲塊的i/o訪問特征。結合第二方面的第四種可能的實現方式,在第五種可能的實現方式中,還包括:第二判斷模塊,用于當所述第一判斷模塊判斷所述歷史i/o請求所訪問的數據所處的存儲塊的用于識別i/o訪問特征的元數據不在本地內存中時,則進一步判斷所述本地內存中的所述元數據的個數是否達到預設的元數據閾值;生成存儲模塊,用于若所述第二判斷模塊判斷為未達到預設的元數據閾值,則生成所述歷史i/o請求所訪問的數據所處的存儲塊的用于識別i/o訪問特征的元數據,并將所生成的元數據存儲于所述本地內存中,以便于更新所述歷史i/o請求所訪問的數據所處的存儲塊的用于識別i/o訪問特征的元數據;刪除模塊,用于若所述第二判斷模塊判斷為達到預設的元數據閾值時,則從所述本地內存中刪除啟動識別時間戳最靠前的元數據,以便于在所述本地內存中生成所述歷史i/o請求所訪問的數據所處的存儲塊的用于識別i/o訪問特征的元數據;計算模塊,用于計算被刪除的元數據所對應的存儲塊的i/o訪問特征,以將計算出的所述i/o訪問特征添加或更新至特征位圖中。結合第二方面的第二種可能的實現方式,或第二方面的第三種可能的實現方式,或第二方面的第四種可能的實現方式,或第二方面的第五種可能的實現方式,在第六種可能的實現方式中,所述隨機預取模塊包括:規(guī)則查找單元,用于當查找出所述目標存儲塊的i/o訪問特征為隨機訪問特征時,在預設的二維表中查找是否存在所述目標存儲塊對應的關聯規(guī)則;預取單元,用于若所述規(guī)則查找單元查找到存在所述目標存儲塊對應的關聯規(guī)則,則下發(fā)所述當前i/o請求,并根據所述當前i/o請求以及查找到的所述關聯規(guī)則生成預取請求,以根據所述預取請求進行預取;請求下發(fā)單元,用于若所述規(guī)則查找單元未查找到存在所述目標存儲塊對應的關聯規(guī)則,則直接下發(fā)所述當前i/o請求。結合第二方面的第六種可能的實現方式,在第七種可能的實現方式中,所述關聯規(guī)則是通過對識別為隨機訪問特征和暫未識別的i/o訪問特征的存儲塊進行歷史訪問信息挖掘所得到的;所述二維表包括與識別為隨機訪問特征或暫未識別的i/o訪問特征的存儲塊對應的關聯規(guī)則。由上可見,本發(fā)明實施例通過在預先設置的特征位圖中查找出目標存儲塊的i/o訪問特征,可以確定出要對當前i/o請求進行順序預取或隨機預取,使得順序預取和隨機預取兩種預取方法可以有效分離開來,以應用到對應的i/o請求,從而可以提高系統的預取效率。附圖說明為了更清楚地說明本發(fā)明實施例中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。圖1是本發(fā)明實施例提供的一種數據預取的方法的流程示意圖;圖2是本發(fā)明實施例提供的另一種數據預取的方法的流程示意圖;圖3是本發(fā)明實施例提供的其中一種對元數據的處理方法的流程示意圖;圖4是本發(fā)明實施例提供的其中一種隨機預取的方法的流程示意圖;圖5是本發(fā)明實施例提供的一種數據預取裝置的結構示意圖;圖6是本發(fā)明實施例提供的另一種數據預取裝置的結構示意圖;圖7是本發(fā)明實施例提供的一種特征識別模塊的結構示意圖;圖8是本發(fā)明實施例提供的一種隨機預取模塊的結構示意圖;圖9是本發(fā)明實施例提供的又一種數據預取裝置的結構示意圖。具體實施方式下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域普通技術人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。請參見圖1,是本發(fā)明實施例提供的一種數據預取的方法的流程示意圖,所述方法可以包括:s101,查找當前i/o請求所訪問的數據所處的目標存儲塊;具體的,所述存儲塊是通過預先對lun空間進行均等容量劃分所得到的,例如,將一個40m大小的lun空間劃分成10個4m大小的存儲塊,即從lun空間的初始位置開始,每4m的連續(xù)空間對應一個存儲塊。由于主機發(fā)到存儲系統的i/o請求中攜帶有請求訪問地址和請求訪問長度,所以存儲系統可以根據主機側所發(fā)送的當前i/o請求確定出所述當前i/o請求處于哪個存儲塊。在查找到當前i/o請求所處于的存儲塊后,還可以將該存儲塊作為目標存儲塊。s102,在特征位圖中查找出所述目標存儲塊的i/o訪問特征;具體的,所述特征位圖包含每個存儲塊的i/o訪問特征,所以所述特征位圖用于標識所述目標存儲塊的i/o訪問特征,所述i/o訪問特征至少包括順序訪問特征和隨機訪問特征。根據多個歷史i/o請求可以識別出存儲塊的i/o訪問特征,例如,在1ms內,若統計出其中一個存儲塊中的歷史i/o請求的個數超過200個,且歷史i/o請求間的間距均小于8個扇區(qū)大小,則可識別出該存儲塊的i/o訪問特征為順序訪問特征;若統計出另一個存儲塊中的歷史i/o請求的個數少于10個,且歷史i/o請求間的間距均大于8個扇區(qū)大小,則可識別出該存儲塊的i/o訪問特征為隨機訪問特征。在識別出各個存儲塊的i/o訪問特征后,可以將識別出的所述存儲塊的i/o訪問特征添加或更新至特征位圖中。在設置好所述特征位圖后,可以在所述特征位圖中查找出所述目標存儲塊的i/o訪問特征。例如,請參見如下表1所示的特征位圖:0m~4m4m~8m8m~12m12m~16m16m~20m01000表1在表1中,是將20m大小的lun空間分成5個存儲塊,每個存儲塊為4m大小,其中,0表示順序訪問特征,1表示隨機訪問特征,若8m~12m對應的存儲塊為目標存儲塊,則可以在如表1所示的特征位圖中查找出該目標存儲塊的i/o訪問特征為順序訪問特征;若4m~8m對應的存儲塊為目標存儲塊,則可以在如表1所示的特征位圖中查找出該目標存儲塊的i/o訪問特征為隨機訪問特征。其中,所述特征位圖可以保存在內存中,每個lun空間對應一個特征位圖,還可以使用一個鏈表保存所有特征位圖的指針。s103,當查找出所述目標存儲塊的i/o訪問特征為順序訪問特征時,根據所述當前i/o請求進行順序預??;具體的,當查找出所述目標存儲塊的i/o訪問特征為順序訪問特征時,說明所述當前i/o請求所訪問的數據處于順序流中,因此,可以根據所述當前i/o請求進行順序預取。順序預取的具體過程可以為:若所述當前i/o請求所訪問的數據處于順序流中,則將所述當前i/o請求所訪問的數據的起始位置識別為順序流頭,并啟動順序預取,再根據預取長度查找順序流尾,若順序流尾所處于的存儲塊為隨機訪問特征,則將順序流尾重新設置到所述當前i/o請求所訪問的數據所處的存儲塊的尾部地址;若順序流尾所處于的存儲塊為順序訪問特征,則不改變順序流尾的位置;在找到順序流頭和順序流尾之后,可以從順序流頭開始進行預取,并可以將每次預取的順序流尾標識為預讀標記,當所述順序流尾再次被訪問時,說明命中所述預讀標記,此時,可以啟動下一段順序預讀。s104,當查找出所述目標存儲塊的i/o訪問特征為隨機訪問特征時,根據所述當前i/o請求進行隨機預??;具體的,當查找出所述目標存儲塊的i/o訪問特征為隨機訪問特征時,可以確定出所述當前i/o請求屬于隨機請求,此時,可以通過關聯規(guī)則對所述當前i/o請求進行預取,本發(fā)明實施例所提供的關聯規(guī)則是通過對識別為隨機訪問特征和暫未識別的i/o訪問特征的存儲塊進行歷史訪問信息挖掘所得到的,即所挖掘的歷史訪問信息中不包含順序訪問特征的i/o請求。而現有技術中的關聯規(guī)則是通過對全量訪問歷史進行挖掘所得到,所述全量訪問歷史包含順序訪問歷史和隨機訪問歷史,由于現有技術中會對順序訪問歷史進行挖掘,所以可能會摻雜一些其他的規(guī)則而造成預取浪費,同時由于要挖掘全量記錄庫,所以會導致計算量大,且消耗過多的系統資源。因此,本發(fā)明實施例所提供的關聯規(guī)則可以減少隨機預取算法中規(guī)則挖掘的消耗,提高實用性。由上可見,本發(fā)明實施例通過在預先設置的特征位圖中查找出目標存儲塊的i/o訪問特征,可以確定出要對當前i/o請求進行順序預取或隨機預取,使得順序預取和隨機預取兩種預取方法可以有效分離開來,以應用到對應的i/o請求,從而可以提高系統的預取效率;同時,由于只對識別為隨機訪問特征和暫未識別的i/o訪問特征的存儲塊進行歷史訪問信息挖掘以得到關聯規(guī)則,所以可以減少隨機預取算法中規(guī)則挖掘的消耗,提高實用性。再請參見圖2,是本發(fā)明實施例提供的另一種數據預取的方法的流程示意圖,所述方法可以包括:s201,識別存儲塊的i/o訪問特征;具體的,根據歷史i/o請求的訪問地址記錄所述歷史i/o請求所訪問的數據所處的存儲塊;其中,所述歷史i/o請求是指在歷史訪問記錄中的多個i/o請求,根據歷史i/o請求的訪問地址可以確定出所述歷史i/o請求所訪問的數據所處的存儲塊,并記錄下各個存儲塊中的歷史i/o請求的個數、間距、覆蓋率等信息。當達到統計時間窗閾值,且判斷出所述存儲塊中的所述歷史i/o請求個數大于或等于預設的第一數量閾值,且各個所述歷史i/o請求之間的間距小于預設的扇區(qū)數量閾值時,識別出所述存儲塊的i/o訪問特征為順序訪問特征;當達到統計時間窗閾值,且判斷出所述存儲塊中的所述歷史i/o請求個數小于預設的第二數量閾值,且各個所述歷史i/o請求之間的間距大于預設的扇區(qū)數量閾值時,識別出所述存儲塊的i/o訪問特征為隨機訪問特征;當達到統計時間窗閾值,且判斷出所述存儲塊中的所述歷史i/o請求個數大于或等于預設的第二數量閾值,且小于預設的第一數量閾值時,標示所述存儲塊的i/o訪問特征為暫未識別;其中,所述第一數量閾值大于所述第二數量閾值;例如,統計時間窗閾值為1ms,第一數量閾值為200,第二數量閾值為10,扇區(qū)數量閾值為8,在達到1ms時,統計所述存儲塊中的所述歷史i/o請求個數以及各個所述歷史i/o請求之間的間距,若統計出的所述歷史i/o請求個數大于或等于200,且各個所述歷史i/o請求之間的間距小于8個扇區(qū)大小,則可以識別出該存儲塊的i/o訪問特征為順序訪問特征;若統計出的所述歷史i/o請求個數小于10,且各個所述歷史i/o請求之間的間距大于8個扇區(qū)大小,則可以識別出該存儲塊的i/o訪問特征為隨機訪問特征;若統計出的所述歷史i/o請求個數大于或等于10,且小于200,則標示該存儲塊的i/o訪問特征為暫未識別。另外,也可以當達到統計時間窗閾值,且判斷出所述歷史i/o請求在所述存儲塊中的覆蓋率大于或等于預設的第一覆蓋率閾值時,識別出所述存儲塊的i/o訪問特征為順序訪問特征;當達到統計時間窗閾值,且判斷出所述歷史i/o請求在所述存儲塊中的覆蓋率小于或等于預設的第二覆蓋率閾值時,識別出所述存儲塊的i/o訪問特征為隨機訪問特征;當達到統計時間窗閾值,且判斷出所述歷史i/o請求在所述存儲塊中的覆蓋率大于預設的第二覆蓋率閾值,且小于預設的第一覆蓋率閾值時,標示所述存儲塊的i/o訪問特征為暫未識別;其中,所述第一覆蓋率閾值大于所述第二覆蓋率閾值;例如,統計時間窗閾值為1ms,第一覆蓋率閾值為50%,第二覆蓋率閾值為6%,在達到1ms時,統計所述歷史i/o請求在所述存儲塊中的覆蓋率,若統計出所述歷史i/o請求在所述存儲塊中的覆蓋率大于或等于50%,則可以識別出所述存儲塊的i/o訪問特征為順序訪問特征;若統計出所述歷史i/o請求在所述存儲塊中的覆蓋率小于或等于6%,則可以識別出所述存儲塊的i/o訪問特征為隨機訪問特征;若統計出所述歷史i/o請求在所述存儲塊中的覆蓋率大于6%,且小于50%,則標示所述存儲塊的i/o訪問特征為暫未識別。s202,將識別出的所述存儲塊的i/o訪問特征添加或更新至特征位圖中;具體的,在識別出某個存儲塊的i/o訪問特征之后,可以將識別出的所述存儲塊的i/o訪問特征添加或更新至特征位圖中,以便于后續(xù)在所述特征位圖中查找目標存儲塊的i/o訪問特征。由于是以統計時間窗閾值為周期進行循環(huán)統計,所以可以不斷更新每個存儲塊的i/o訪問特征,使得所識別出的所述存儲塊的i/o訪問特征可以更加準確。例如,請參見如下表2所示的特征位圖:0m~4m4m~8m8m~12m12m~16m16m~20m01001表2在表2中,是將20m大小的lun空間分成5個存儲塊,每個存儲塊為4m大小,其中,0表示順序訪問特征,1表示隨機訪問特征。由表2可見,在識別出0m~4m的存儲塊的i/o訪問特征為順序訪問特征時,可以將該存儲塊的i/o訪問特征添加或更新至如表2所示的特征位圖中,即將0m~4m的存儲塊的i/o訪問特征標識為0;同樣的,在識別出4m~8m的存儲塊的i/o訪問特征為隨機訪問特征時,可以將該存儲塊的i/o訪問特征添加或更新至如表2所示的特征位圖中,即將4m~8m的存儲塊的i/o訪問特征標識為1。其中,所述特征位圖可以保存在內存中,每個lun空間對應一個特征位圖,還可以使用一個鏈表保存所有特征位圖的指針。其中,由于保存每個存儲塊的i/o訪問特征所消耗的資源較少,所以保存整個lun空間的i/o訪問特征所消耗的資源也較少。s203,查找當前i/o請求所訪問的數據所處的目標存儲塊;s204,在特征位圖中查找出所述目標存儲塊的i/o訪問特征;s205,當查找出所述目標存儲塊的i/o訪問特征為順序訪問特征時,根據所述當前i/o請求進行順序預??;s206,當查找出所述目標存儲塊的i/o訪問特征為隨機訪問特征時,根據所述當前i/o請求進行隨機預?。槐景l(fā)明實施例中的s203至s206的步驟具體可以參見上述圖1對應實施例中的s101至s104的步驟,這里不再進行贅述。另外,當查找出所述目標存儲塊的i/o訪問特征為暫未標識時,根據存儲系統默認的預取算法對所述當前i/o請求進行預取,若存儲系統并無默認的預取算法,則直接下發(fā)所述當前i/o請求,所述默認的預取算法可以為順序預取或隨機預取。由上可見,本發(fā)明實施例通過在預先設置的特征位圖中查找出目標存儲塊的i/o訪問特征,可以確定出要對當前i/o請求進行順序預取或隨機預取,使得順序預取和隨機預取兩種預取方法可以有效分離開來,以應用到對應的i/o請求,從而可以提高系統的預取效率;同時,由于只對識別為隨機訪問特征和暫未識別的i/o訪問特征的存儲塊進行歷史訪問信息挖掘以得到關聯規(guī)則,所以可以減少隨機算法中規(guī)則挖掘的消耗,提高實用性。進一步的,再請參見圖3,是本發(fā)明實施例提供的其中一種對元數據的處理方法的流程示意圖,所述方法可以在上述圖2對應實施例中的s201步驟之前執(zhí)行,所述方法可以包括:s301,判斷所述歷史i/o請求所訪問的數據所處的存儲塊的用于識別i/o訪問特征的元數據是否在本地內存中;具體的,所述元數據至少包括所述存儲塊中所述歷史i/o請求個數和所述歷史i/o請求的覆蓋率。在識別存儲塊的i/o訪問特征之前,可以先判斷所述歷史i/o請求所訪問的數據所處的存儲塊的用于識別i/o訪問特征的元數據是否在本地內存中。s302,更新所述歷史i/o請求所訪問的數據所處的存儲塊的用于識別i/o訪問特征的元數據;具體的,若s301判斷為在所述本地內存中,則可以更新所述歷史i/o請求所訪問的數據所處的存儲塊的用于識別i/o訪問特征的元數據,即在某個存儲塊有新增的歷史i/o請求時,更新與該存儲塊的元數據中的所述歷史i/o請求個數以及所述歷史i/o請求覆蓋率,以便于在后續(xù)識別存儲塊的i/o訪問特征時,可以通過所述歷史i/o請求個數或所述歷史i/o請求覆蓋率對存儲塊進行i/o訪問特征識別。s303,當更新后的元數據所對應的所述存儲塊滿足啟動識別條件時,執(zhí)行所述識別存儲塊的i/o訪問特征;具體的,所述啟動識別條件可以為統計時間長度達到統計時間窗閾值,即當所述存儲塊滿足啟動識別條件時,說明對所述存儲塊的統計時間長度達到統計時間窗閾值,例如,設統計時間窗閾值為1ms,當對某個存儲塊的統計時間長度達到1ms時,則可以執(zhí)行所述識別存儲塊的i/o訪問特征的步驟。所述啟動識別條件也可以為存儲塊中的歷史i/o請求個數或歷史i/o請求覆蓋率達到啟動識別閾值,即當所述存儲塊滿足啟動識別條件時,說明所述存儲塊中的歷史i/o請求個數或歷史i/o請求覆蓋率達到啟動識別閾值,此時,可以執(zhí)行所述識別存儲塊的i/o訪問特征的步驟。s304,判斷所述本地內存中的所述元數據的個數是否達到預設的元數據閾值;具體的,當s301判斷所述歷史i/o請求所訪問的數據所處的存儲塊的用于識別i/o訪問特征的元數據不在本地內存中時,則進一步判斷所述本地內存中的所述元數據的個數是否達到預設的元數據閾值。s305,生成所述歷史i/o請求所訪問的數據所處的存儲塊的用于識別i/o訪問特征的元數據,并將所生成的元數據存儲于所述本地內存中,以便于更新所述歷史i/o請求所訪問的數據所處的存儲塊的用于識別i/o訪問特征的元數據;具體的,在s304判斷為未達到預設的元數據閾值時,說明可以繼續(xù)在所述本地內存中增加新的元數據,因此,可以生成所述歷史i/o請求所訪問的數據所處的存儲塊的用于識別i/o訪問特征的元數據,并將所生成的元數據存儲于所述本地內存中,并執(zhí)行s302步驟中的更新所述歷史i/o請求所訪問的數據所處的存儲塊的用于識別i/o訪問特征的元數據,以及s303步驟中的當更新后的元數據所對應的所述存儲塊滿足啟動識別條件時,執(zhí)行所述識別存儲塊的i/o訪問特征。其中,在所述本地內存中可以保存固定個數的元數據,以控制內存使用。s306,從所述本地內存中刪除啟動識別時間戳最靠前的元數據,以便于在所述本地內存中生成所述歷史i/o請求所訪問的數據所處的存儲塊的用于識別i/o訪問特征的元數據;具體的,在s304判斷為達到預設的元數據閾值時,則可以從所述本地內存中刪除啟動識別時間戳最靠前的元數據,所述啟動識別時間戳最靠前的元數據是指所述本地內存中第一個啟動i/o訪問特征識別的存儲塊所對應的元數據,由于所述本地內存中所存放的元數據個數有限,所以在達到元數據閾值時可以刪除啟動識別時間戳最靠前的元數據,使得可以在所述本地內存中生成所述歷史i/o請求所訪問的數據所處的存儲塊的用于識別i/o訪問特征的元數據,在生成并保存元數據之后,即可執(zhí)行s302步驟中的更新所述歷史i/o請求所訪問的數據所處的存儲塊的用于識別i/o訪問特征的元數據,以及s303步驟中的當更新后的元數據所對應的所述存儲塊滿足啟動識別條件時,執(zhí)行所述識別存儲塊的i/o訪問特征。s307,計算被刪除的元數據所對應的存儲塊的i/o訪問特征,以將計算出的所述i/o訪問特征添加或更新至特征位圖中;具體的,在刪除啟動識別時間戳最靠前的元數據之后,可以計算被刪除的元數據所對應的存儲塊的i/o訪問特征,以將計算出的所述i/o訪問特征添加或更新至特征位圖中。其計算過程與上述圖2對應實施例中的s201相同,這里不再進行贅述。由上可見,本發(fā)明實施例通過對元數據進行判斷和處理,可以有序的控制存儲系統對各個存儲塊的i/o訪問特征進行識別,以得到特征位圖,從而可以在后續(xù)的預取過程中通過特征位圖準確地選擇出對應的預取算法進行預取。進一步的,再請參見圖4,是本發(fā)明實施例提供的其中一種隨機預取的方法的流程示意圖。本發(fā)明實施例的所述方法可對應于上述圖1對應實施例中的s104,或上述圖2對應實施例中的s206。本發(fā)明實施例的所述方法具體包括:s401,當查找出所述目標存儲塊的i/o訪問特征為隨機訪問特征時,在預設的二維表中查找是否存在所述目標存儲塊對應的關聯規(guī)則;具體的,當查找出所述目標存儲塊的i/o訪問特征為隨機訪問特征時,可以在預設的二維表中查找是否存在所述目標存儲塊對應的關聯規(guī)則。其中,所述關聯規(guī)則是通過對識別為隨機訪問特征和暫未識別的i/o訪問特征的存儲塊進行歷史訪問信息挖掘所得到的;所述二維表包括與識別為隨機訪問特征或暫未識別的i/o訪問特征的存儲塊對應的關聯規(guī)則。s402,下發(fā)所述當前i/o請求,并根據所述當前i/o請求以及查找到的所述關聯規(guī)則生成預取請求,以根據所述預取請求進行預??;具體的,若s401步驟中查找到存在所述目標存儲塊對應的關聯規(guī)則,則可以下發(fā)所述當前i/o請求,以在所述目標存儲塊中請求對應的數據,同時還通過查找到的所述關聯規(guī)則生成與所述當前i/o請求關聯的預取請求,并根據所述預取請求進行預取。由于關聯規(guī)則只與隨機訪問特征和暫未識別的存儲塊中的歷史i/o請求相關,即關聯規(guī)則與順序訪問特征的存儲塊無關,所以所挖掘出的關聯規(guī)則是準確的,可以高效的運用在隨機預取過程中,而且由于不用像現有技術那樣挖掘全量訪問歷史,所以可以減少隨機預取算法中規(guī)則挖掘的消耗。s403,直接下發(fā)所述當前i/o請求。具體的,若s401步驟中未查找到存在所述目標存儲塊對應的關聯規(guī)則,則直接下發(fā)所述當前i/o請求,以在所述目標存儲塊中請求對應的數據,此時,不再進行預取。由上可見,本發(fā)明實施例通過對識別為隨機訪問特征和暫未識別的i/o訪問特征的存儲塊進行歷史訪問信息挖掘以得到關聯規(guī)則,可以減少隨機預取算法中規(guī)則挖掘的消耗,提高實用性,而且關聯規(guī)則與順序訪問特征的存儲塊無關,可以保證關聯規(guī)則的準確性。請參見圖5,是本發(fā)明實施例提供的一種數據預取裝置1的結構示意圖,所述數據預取裝置1可以包括:第一查找模塊10、第二查找模塊20、順序預取模塊30、隨機預取模塊40;所述第一查找模塊10,用于查找當前i/o請求所訪問的數據所處的目標存儲塊;具體的,所述數據預取裝置1可以設置于存儲系統中,所述存儲塊是通過預先對lun空間進行均等容量劃分所得到的,例如,將一個40m大小的lun空間劃分成10個4m大小的存儲塊,即從lun空間的初始位置開始,每4m的連續(xù)空間對應一個存儲塊。由于主機發(fā)到存儲系統的i/o請求中攜帶有請求訪問地址和請求訪問長度,所以所述第一查找模塊10可以根據主機側所發(fā)送的當前i/o請求確定出所述當前i/o請求處于哪個存儲塊。在所述第一查找模塊10查找到當前i/o請求所處于的存儲塊后,還可以將該存儲塊作為目標存儲塊。所述第二查找模塊20,用于在特征位圖中查找出所述目標存儲塊的i/o訪問特征,所述特征位圖用于標識所述目標存儲塊的i/o訪問特征;具體的,所述特征位圖包含每個存儲塊的i/o訪問特征,所以所述特征位圖用于標識所述目標存儲塊的i/o訪問特征,所述i/o訪問特征至少包括順序訪問特征和隨機訪問特征。所述第二查找模塊20可以在預先設置的特征位圖中查找出所述目標存儲塊的i/o訪問特征。在此之前,可以根據多個歷史i/o請求可以識別出存儲塊的i/o訪問特征,例如,在1ms內,若統計出其中一個存儲塊中的歷史i/o請求的個數超過200個,且歷史i/o請求間的間距均小于8個扇區(qū)大小,則可識別出該存儲塊的i/o訪問特征為順序訪問特征;若統計出另一個存儲塊中的歷史i/o請求的個數少于10個,且歷史i/o請求間的間距均大于8個扇區(qū)大小,則可識別出該存儲塊的i/o訪問特征為隨機訪問特征。在識別出各個存儲塊的i/o訪問特征后,可以將識別出的所述存儲塊的i/o訪問特征添加或更新至特征位圖中。在設置好所述特征位圖后,所述第二查找模塊20可以在所述特征位圖中查找出所述目標存儲塊的i/o訪問特征。例如,請參見如下表3所示的特征位圖:0m~4m4m~8m8m~12m12m~16m16m~20m11000表3在表3中,是將20m大小的lun空間分成5個存儲塊,每個存儲塊為4m大小,其中,0表示順序訪問特征,1表示隨機訪問特征,若8m~12m對應的存儲塊為目標存儲塊,則所述第二查找模塊20可以在如表3所示的特征位圖中查找出該目標存儲塊的i/o訪問特征為順序訪問特征;若4m~8m對應的存儲塊為目標存儲塊,則所述第二查找模塊20可以在如表3所示的特征位圖中查找出該目標存儲塊的i/o訪問特征為隨機訪問特征。其中,所述特征位圖可以保存在內存中,每個lun空間對應一個特征位圖,還可以使用一個鏈表保存所有特征位圖的指針。所述順序預取模塊30,用于當查找出所述目標存儲塊的i/o訪問特征為順序訪問特征時,根據所述當前i/o請求進行順序預??;具體的,當查找出所述目標存儲塊的i/o訪問特征為順序訪問特征時,說明所述當前i/o請求處于順序流中,因此,所述順序預取模塊30可以根據所述當前i/o請求進行順序預取。順序預取的具體過程可以為:若所述當前i/o請求所訪問的數據處于順序流中,則所述順序預取模塊30將所述當前i/o請求所訪問的數據的起始位置識別為順序流頭,并啟動順序預取,再根據預取長度查找順序流尾,若順序流尾所處于的存儲塊為隨機訪問特征,則將順序流尾重新設置到所述當前i/o請求所訪問的數據所處的存儲塊的尾部地址;若順序流尾所處于的存儲塊為順序訪問特征,則不改變順序流尾的位置;在找到順序流頭和順序流尾之后,可以從順序流頭開始進行預取,并可以將每次預取的順序流尾標識為預讀標記,當所述順序流尾再次被訪問時,說明命中所述預讀標記,此時,所述順序預取模塊30可以啟動下一段順序預讀。所述隨機預取模塊40,用于當查找出所述目標存儲塊的i/o訪問特征為隨機訪問特征時,根據所述當前i/o請求進行隨機預取。具體的,當查找出所述目標存儲塊的i/o訪問特征為隨機訪問特征時,可以確定出所述當前i/o請求屬于隨機請求,此時,所述隨機預取模塊40可以通過關聯規(guī)則對所述當前i/o請求進行預取,本發(fā)明實施例所提供的關聯規(guī)則是通過對識別為隨機訪問特征和暫未識別的i/o訪問特征的存儲塊進行歷史訪問信息挖掘所得到的,即所挖掘的歷史訪問信息中不包含順序訪問特征的i/o請求。而現有技術中的關聯規(guī)則是通過對全量訪問歷史進行挖掘所得到,所述全量訪問歷史包含順序訪問歷史和隨機訪問歷史,由于現有技術中會對順序訪問歷史進行挖掘,所以可能會摻雜一些其他的規(guī)則而造成預取浪費,同時由于要挖掘全量記錄庫,所以會導致計算量大,且消耗過多的系統資源。因此,本發(fā)明實施例所提供的關聯規(guī)則可以減少隨機預取算法中規(guī)則挖掘的消耗,提高實用性。由上可見,本發(fā)明實施例通過在預先設置的特征位圖中查找出目標存儲塊的i/o訪問特征,可以確定出要對當前i/o請求進行順序預取或隨機預取,使得順序預取和隨機預取兩種預取方法可以有效分離開來,以應用到對應的i/o請求,從而可以提高系統的預取效率;同時,由于只對識別為隨機訪問特征和暫未識別的i/o訪問特征的存儲塊進行歷史訪問信息挖掘以得到關聯規(guī)則,所以可以減少隨機預取算法中規(guī)則挖掘的消耗,提高實用性。再請參見圖6,是本發(fā)明實施例提供的另一種數據預取裝置1的結構示意圖,所述數據預取裝置1可以包括上述圖5對應實施例中的第一查找模塊10、第二查找模塊20、順序預取模塊30、隨機預取模塊40,進一步的,所述數據預取裝置1還可以包括:特征識別模塊50、添加更新模塊60、第一判斷模塊70、元數據更新模塊80、通知模塊90、第二判斷模塊100、生成存儲模塊110、刪除模塊120、計算模塊130;所述特征識別模塊50,用于識別存儲塊的i/o訪問特征;具體的,所述特征識別模塊50可以通過各個存儲塊中的歷史i/o請求的個數、間距、覆蓋率等信息,識別出存儲塊的i/o訪問特征。所述添加更新模塊60,用于將所述特征識別模塊50識別出的所述存儲塊的i/o訪問特征添加或更新至特征位圖中;具體的,在識別出某個存儲塊的i/o訪問特征之后,所述添加更新模塊60可以將識別出的所述存儲塊的i/o訪問特征添加或更新至特征位圖中,以便于后續(xù)在所述特征位圖中查找目標存儲塊的i/o訪問特征。所述第一判斷模塊70,用于判斷所述歷史i/o請求所訪問的數據所處的存儲塊的用于識別i/o訪問特征的元數據是否在本地內存中,所述元數據至少包括所述存儲塊中所述歷史i/o請求個數和所述歷史i/o請求的覆蓋率;具體的,所述元數據至少包括所述存儲塊中所述歷史i/o請求個數和所述歷史i/o請求的覆蓋率。在所述特征識別模塊50識別存儲塊的i/o訪問特征之前,可以由所述第一判斷模塊70先判斷所述歷史i/o請求所訪問的數據所處的存儲塊的用于識別i/o訪問特征的元數據是否在本地內存中。所述元數據更新模塊80,用于若所述第一判斷模塊70判斷為在所述本地內存中,則更新所述歷史i/o請求所訪問的數據所處的存儲塊的用于識別i/o訪問特征的元數據;具體的,在某個存儲塊有新增的歷史i/o請求時,所述元數據更新模塊80可以更新與該存儲塊的元數據中的所述歷史i/o請求個數以及所述歷史i/o請求覆蓋率,以便于在后續(xù)由所述特征識別模塊50識別存儲塊的i/o訪問特征時,可以通過所述歷史i/o請求個數或所述歷史i/o請求覆蓋率對存儲塊進行i/o訪問特征識別。所述通知模塊90,用于當所述元數據更新模塊80更新后的元數據所對應的所述存儲塊滿足啟動識別條件時,通知所述特征識別模塊50識別存儲塊的i/o訪問特征;具體的,所述啟動識別條件可以為統計時間長度達到統計時間窗閾值,即當所述存儲塊滿足啟動識別條件時,說明對所述存儲塊的統計時間長度達到統計時間窗閾值,例如,設統計時間窗閾值為1ms,當對某個存儲塊的統計時間長度達到1ms時,則所述通知模塊90可以通知所述特征識別模塊50識別存儲塊的i/o訪問特征。所述啟動識別條件也可以為存儲塊中的歷史i/o請求個數或歷史i/o請求覆蓋率達到啟動識別閾值,即當所述存儲塊滿足啟動識別條件時,說明所述存儲塊中的歷史i/o請求個數或歷史i/o請求覆蓋率達到啟動識別閾值,此時,所述通知模塊90可以通知所述特征識別模塊50識別存儲塊的i/o訪問特征。所述第二判斷模塊100,用于當所述第一判斷模塊70判斷所述歷史i/o請求所訪問的數據所處的存儲塊的用于識別i/o訪問特征的元數據不在本地內存中時,則進一步判斷所述本地內存中的所述元數據的個數是否達到預設的元數據閾值;所述生成存儲模塊110,用于若所述第二判斷模塊100判斷為未達到預設的元數據閾值,則生成所述歷史i/o請求所訪問的數據所處的存儲塊的用于識別i/o訪問特征的元數據,并將所生成的元數據存儲于所述本地內存中,以便于更新所述歷史i/o請求所訪問的數據所處的存儲塊的用于識別i/o訪問特征的元數據;具體的,在所述第二判斷模塊100判斷為未達到預設的元數據閾值時,說明可以繼續(xù)在所述本地內存中增加新的元數據,因此,所述生成存儲模塊110可以生成所述歷史i/o請求所訪問的數據所處的存儲塊的用于識別i/o訪問特征的元數據,并將所生成的元數據存儲于所述本地內存中,并通知所述元數據更新模塊80更新所述歷史i/o請求所訪問的數據所處的存儲塊的用于識別i/o訪問特征的元數據,并通知所述通知模塊90執(zhí)行相應操作。其中,在所述本地內存中可以保存固定個數的元數據,以控制內存使用。所述刪除模塊120,用于若所述第二判斷模塊100判斷為達到預設的元數據閾值時,則從所述本地內存中刪除啟動識別時間戳最靠前的元數據,以便于在所述本地內存中生成所述歷史i/o請求所訪問的數據所處的存儲塊的用于識別i/o訪問特征的元數據;具體的,在所述第二判斷模塊100判斷為達到預設的元數據閾值時,所述刪除模塊120可以從所述本地內存中刪除啟動識別時間戳最靠前的元數據,所述啟動識別時間戳最靠前的元數據是指所述本地內存中第一個啟動i/o訪問特征識別的存儲塊所對應的元數據,由于所述本地內存中所存放的元數據個數有限,所以在達到元數據閾值時所述刪除模塊120可以刪除啟動識別時間戳最靠前的元數據,使得可以在所述本地內存中生成所述歷史i/o請求所訪問的數據所處的存儲塊的用于識別i/o訪問特征的元數據,在生成并保存元數據之后,通知所述元數據更新模塊80更新所述歷史i/o請求所訪問的數據所處的存儲塊的用于識別i/o訪問特征的元數據,并通知所述通知模塊90執(zhí)行相應操作。所述計算模塊130,用于計算被刪除的元數據所對應的存儲塊的i/o訪問特征,以將計算出的所述i/o訪問特征添加或更新至特征位圖中;具體的,在所述刪除模塊120刪除啟動識別時間戳最靠前的元數據之后,所述計算模塊130可以計算被刪除的元數據所對應的存儲塊的i/o訪問特征,以將計算出的所述i/o訪問特征添加或更新至特征位圖中。其計算過程與上述圖2對應實施例中的s201相同,這里不再進行贅述。進一步的,再請參見圖7,是本發(fā)明實施例提供的一種特征識別模塊50的結構示意圖,所述特征識別模塊50可以包括:識別單元501、標示單元502;所述識別單元501,用于當達到統計時間窗閾值,且判斷出所述存儲塊中的歷史i/o請求個數大于或等于預設的第一數量閾值,且各個所述歷史i/o請求之間的間距小于預設的扇區(qū)數量閾值時,識別出所述存儲塊的i/o訪問特征為順序訪問特征;所述識別單元501,還用于當達到統計時間窗閾值,且判斷出所述存儲塊中的所述歷史i/o請求個數小于預設的第二數量閾值,且各個所述歷史i/o請求之間的間距大于預設的扇區(qū)數量閾值時,識別出所述存儲塊的i/o訪問特征為隨機訪問特征;所述標示單元502,用于當達到統計時間窗閾值,且判斷出所述存儲塊中的所述歷史i/o請求個數大于或等于預設的第二數量閾值,且小于預設的第一數量閾值時,標示所述存儲塊的i/o訪問特征為暫未識別;其中,所述第一數量閾值大于所述第二數量閾值例如,統計時間窗閾值為1ms,第一數量閾值為200,第二數量閾值為10,扇區(qū)數量閾值為8,在達到1ms時,統計所述存儲塊中的所述歷史i/o請求個數以及各個所述歷史i/o請求之間的間距,若統計出的所述歷史i/o請求個數大于或等于200,且各個所述歷史i/o請求之間的間距小于8個扇區(qū)大小,則所述識別單元501可以識別出該存儲塊的i/o訪問特征為順序訪問特征;若統計出的所述歷史i/o請求個數小于10,且各個所述歷史i/o請求之間的間距大于8個扇區(qū)大小,則所述識別單元501可以識別出該存儲塊的i/o訪問特征為隨機訪問特征;若統計出的所述歷史i/o請求個數大于或等于10,且小于200,則所述標示單元502可以標示該存儲塊的i/o訪問特征為暫未識別。所述識別單元501,還用于當達到統計時間窗閾值,且判斷出所述歷史i/o請求在所述存儲塊中的覆蓋率大于或等于預設的第一覆蓋率閾值時,識別出所述存儲塊的i/o訪問特征為順序訪問特征;所述識別單元501,還用于當達到統計時間窗閾值,且判斷出所述歷史i/o請求在所述存儲塊中的覆蓋率小于或等于預設的第二覆蓋率閾值時,識別出所述存儲塊的i/o訪問特征為隨機訪問特征;所述標示單元502,還用于當達到統計時間窗閾值,且判斷出所述歷史i/o請求在所述存儲塊中的覆蓋率大于預設的第二覆蓋率閾值,且小于預設的第一覆蓋率閾值時,標示所述存儲塊的i/o訪問特征為暫未識別;其中,所述第一覆蓋率閾值大于所述第二覆蓋率閾值;例如,統計時間窗閾值為1ms,第一覆蓋率閾值為50%,第二覆蓋率閾值為6%,在達到1ms時,統計所述歷史i/o請求在所述存儲塊中的覆蓋率,若統計出所述歷史i/o請求在所述存儲塊中的覆蓋率大于或等于50%,則所述識別單元501可以識別出所述存儲塊的i/o訪問特征為順序訪問特征;若統計出所述歷史i/o請求在所述存儲塊中的覆蓋率小于或等于6%,則所述識別單元501可以識別出所述存儲塊的i/o訪問特征為隨機訪問特征;若統計出所述歷史i/o請求在所述存儲塊中的覆蓋率大于6%,且小于50%,則所述標示單元502可以標示所述存儲塊的i/o訪問特征為暫未識別。進一步的,再請參見圖8,是本發(fā)明實施例提供的一種隨機預取模塊40的結構示意圖,所述隨機預取模塊40可以包括:規(guī)則查找單元401、預取單元402、請求下發(fā)單元403;所述規(guī)則查找單元401,用于當查找出所述目標存儲塊的i/o訪問特征為隨機訪問特征時,在預設的二維表中查找是否存在所述目標存儲塊對應的關聯規(guī)則;具體的,當查找出所述目標存儲塊的i/o訪問特征為隨機訪問特征時,所述規(guī)則查找單元401可以在預設的二維表中查找是否存在所述目標存儲塊對應的關聯規(guī)則。其中,所述關聯規(guī)則是通過對識別為隨機訪問特征和暫未識別的i/o訪問特征的存儲塊進行歷史訪問信息挖掘所得到的;所述二維表包括與識別為隨機訪問特征或暫未識別的i/o訪問特征的存儲塊對應的關聯規(guī)則。所述預取單元402,用于若所述規(guī)則查找單元401查找到存在所述目標存儲塊對應的關聯規(guī)則,則下發(fā)所述當前i/o請求,并根據所述當前i/o請求以及查找到的所述關聯規(guī)則生成預取請求,以根據所述預取請求進行預??;具體的,若所述規(guī)則查找單元401查找到存在所述目標存儲塊對應的關聯規(guī)則,則所述預取單元402可以下發(fā)所述當前i/o請求,以在所述目標存儲塊中請求對應的數據,同時所述預取單元402還通過查找到的所述關聯規(guī)則生成與所述當前i/o請求關聯的預取請求,并根據所述預取請求進行預取。由于關聯規(guī)則只與隨機訪問特征和暫未識別的存儲塊中的歷史i/o請求相關,即關聯規(guī)則與順序訪問特征的存儲塊無關,所以所挖掘出的關聯規(guī)則是準確的,可以高效的運用在隨機預取過程中,而且由于不用像現有技術那樣挖掘全量訪問歷史,所以可以減少隨機預取算法中規(guī)則挖掘的消耗。所述請求下發(fā)單元403,用于若所述規(guī)則查找單元401未查找到存在所述目標存儲塊對應的關聯規(guī)則,則直接下發(fā)所述當前i/o請求;具體的,若所述規(guī)則查找單元401未查找到存在所述目標存儲塊對應的關聯規(guī)則,則所述請求下發(fā)單元403直接下發(fā)所述當前i/o請求,以在所述目標存儲塊中請求對應的數據,此時,不再進行預取。由上可見,本發(fā)明實施例通過對元數據進行判斷和處理,可以有序的控制存儲系統對各個存儲塊的i/o訪問特征進行識別,以得到特征位圖,并通過在所述特征位圖中查找出目標存儲塊的i/o訪問特征,可以確定出要對當前i/o請求進行順序預取或隨機預取,使得順序預取和隨機預取兩種預取方法可以有效分離開來,以應用到對應的i/o請求,從而可以提高系統的預取效率;同時,由于只對識別為隨機訪問特征和暫未識別的i/o訪問特征的存儲塊進行歷史訪問信息挖掘以得到關聯規(guī)則,所以可以減少隨機算法中規(guī)則挖掘的消耗,提高實用性。本發(fā)明實施例還提供了一種計算機存儲介質,其中,所述計算機存儲介質可存儲有程序,該程序執(zhí)行時包括上述圖1至圖4的方法實施例中記載的數據預取的方法的部分或全部步驟。再請參見圖9,為本發(fā)明實施例提供的又一種數據預取裝置1的結構示意圖,所述數據預取裝置1可以包括處理器1001、通信接口1002和存儲器1003(數據預取裝置1中的處理器1001的數量可以為一個或多個,圖9中以一個處理器1001為例)。本發(fā)明的一些實施例中,處理器1001、通信接口1002和存儲器1003可通過通信總線或其他方式連接,其中,圖9以通過通信總線連接為例。其中,所述通信接口1002,用于與主機進行通信;所述存儲器1003用于存儲程序;所述處理器1001用于執(zhí)行所述程序,以實現查找當前i/o請求所訪問的數據所處的目標存儲塊;在特征位圖中查找出所述目標存儲塊的i/o訪問特征,所述特征位圖用于標識所述目標存儲塊的i/o訪問特征;當查找出所述目標存儲塊的i/o訪問特征為順序訪問特征時,根據所述當前i/o請求進行順序預取;當查找出所述目標存儲塊的i/o訪問特征為隨機訪問特征時,根據所述當前i/o請求進行隨機預取。其中,所述處理器1001還用于:識別存儲塊的i/o訪問特征;將識別出的所述存儲塊的i/o訪問特征添加或更新至特征位圖中。其中,所述處理器1001具體用于:當達到統計時間窗閾值,且判斷出所述存儲塊中的歷史i/o請求個數大于或等于預設的第一數量閾值,且各個所述歷史i/o請求之間的間距小于預設的扇區(qū)數量閾值時,識別出所述存儲塊的i/o訪問特征為順序訪問特征;當達到統計時間窗閾值,且判斷出所述存儲塊中的所述歷史i/o請求個數小于預設的第二數量閾值,且各個所述歷史i/o請求之間的間距大于預設的扇區(qū)數量閾值時,識別出所述存儲塊的i/o訪問特征為隨機訪問特征;當達到統計時間窗閾值,且判斷出所述存儲塊中的所述歷史i/o請求個數大于或等于預設的第二數量閾值,且小于預設的第一數量閾值時,標示所述存儲塊的i/o訪問特征為暫未識別;其中,所述第一數量閾值大于所述第二數量閾值。其中,所述處理器1001還用于:當達到統計時間窗閾值,且判斷出所述歷史i/o請求在所述存儲塊中的覆蓋率大于或等于預設的第一覆蓋率閾值時,識別出所述存儲塊的i/o訪問特征為順序訪問特征;當達到統計時間窗閾值,且判斷出所述歷史i/o請求在所述存儲塊中的覆蓋率小于或等于預設的第二覆蓋率閾值時,識別出所述存儲塊的i/o訪問特征為隨機訪問特征;當達到統計時間窗閾值,且判斷出所述歷史i/o請求在所述存儲塊中的覆蓋率大于預設的第二覆蓋率閾值,且小于預設的第一覆蓋率閾值時,標示所述存儲塊的i/o訪問特征為暫未識別;其中,所述第一覆蓋率閾值大于所述第二覆蓋率閾值。其中,所述處理器1001還用于:判斷所述歷史i/o請求所訪問的數據所處的存儲塊的用于識別i/o訪問特征的元數據是否在本地內存中,所述元數據至少包括所述存儲塊中所述歷史i/o請求個數和所述歷史i/o請求的覆蓋率;若判斷為在所述本地內存中,則更新所述歷史i/o請求所訪問的數據所處的存儲塊的用于識別i/o訪問特征的元數據;當更新后的元數據所對應的所述存儲塊滿足啟動識別條件時,執(zhí)行所述識別存儲塊的i/o訪問特征。其中,所述處理器1001還用于:當判斷所述歷史i/o請求所訪問的數據所處的存儲塊的用于識別i/o訪問特征的元數據不在本地內存中時,則進一步判斷所述本地內存中的所述元數據的個數是否達到預設的元數據閾值;若判斷為未達到預設的元數據閾值,則生成所述歷史i/o請求所訪問的數據所處的存儲塊的用于識別i/o訪問特征的元數據,并將所生成的元數據存儲于所述本地內存中,以便于更新所述歷史i/o請求所訪問的數據所處的存儲塊的用于識別i/o訪問特征的元數據;若判斷為達到預設的元數據閾值時,則從所述本地內存中刪除啟動識別時間戳最靠前的元數據,以便于在所述本地內存中生成所述歷史i/o請求所訪問的數據所處的存儲塊的用于識別i/o訪問特征的元數據;計算被刪除的元數據所對應的存儲塊的i/o訪問特征,以將計算出的所述i/o訪問特征添加或更新至特征位圖中。其中,所述處理器1001具體用于:當查找出所述目標存儲塊的i/o訪問特征為隨機訪問特征時,在預設的二維表中查找是否存在所述目標存儲塊對應的關聯規(guī)則;若查找到存在所述目標存儲塊對應的關聯規(guī)則,則下發(fā)所述當前i/o請求,并根據所述當前i/o請求以及查找到的所述關聯規(guī)則生成預取請求,以根據所述預取請求進行預??;若未查找到存在所述目標存儲塊對應的關聯規(guī)則,則直接下發(fā)所述當前i/o請求。其中,所述關聯規(guī)則是通過對識別為隨機訪問特征和暫未識別的i/o訪問特征的存儲塊進行歷史訪問信息挖掘所得到的;所述二維表包括與識別為隨機訪問特征或暫未識別的i/o訪問特征的存儲塊對應的關聯規(guī)則。由上可見,本發(fā)明實施例通過對元數據進行判斷和處理,可以有序的控制存儲系統對各個存儲塊的i/o訪問特征進行識別,以得到特征位圖,并通過在所述特征位圖中查找出目標存儲塊的i/o訪問特征,可以確定出要對當前i/o請求進行順序預取或隨機預取,使得順序預取和隨機預取兩種預取方法可以有效分離開來,以應用到對應的i/o請求,從而可以提高系統的預取效率;同時,由于只對識別為隨機訪問特征和暫未識別的i/o訪問特征的存儲塊進行歷史訪問信息挖掘以得到關聯規(guī)則,所以可以減少隨機算法中規(guī)則挖掘的消耗,提高實用性。本領域普通技術人員可以理解實現上述實施例方法中的全部或部分流程,是可以通過計算機程序來指令相關的硬件來完成,所述的程序可存儲于一計算機可讀取存儲介質中,該程序在執(zhí)行時,可包括如上述各方法的實施例的流程。其中,所述的存儲介質可為磁碟、光盤、只讀存儲記憶體(read-onlymemory,rom)或隨機存儲記憶體(randomaccessmemory,ram)等。以上所揭露的僅為本發(fā)明較佳實施例而已,當然不能以此來限定本發(fā)明之權利范圍,因此依本發(fā)明權利要求所作的等同變化,仍屬本發(fā)明所涵蓋的范圍。當前第1頁12