一種數(shù)據(jù)錯誤定位方法與系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計算機數(shù)據(jù)存儲領(lǐng)域,特別是涉及一種數(shù)據(jù)錯誤定位方法與系統(tǒng)。
【背景技術(shù)】
[0002]圖1示出了存儲系統(tǒng)硬件組成概圖,圖2示出了存儲軟件系統(tǒng)的概圖。從圖1可以看出整個存儲系統(tǒng)的硬件是以CPU為控制和計算核心,以多種部件功能組成模塊,再用各種互連總線為連接的復(fù)雜系統(tǒng)。從圖2可以看出,存儲系統(tǒng)的軟件可以細(xì)分成多個軟件模塊,從計算節(jié)點存入存儲系統(tǒng)的用戶數(shù)據(jù)需要經(jīng)過存儲系統(tǒng)多個軟件模塊的復(fù)雜的處理過程,最終存放到硬盤上。
[0003]存儲系統(tǒng)的結(jié)構(gòu)復(fù)雜,任何硬件傳輸環(huán)節(jié)和軟件處理流程的錯誤都有可能導(dǎo)致用戶數(shù)據(jù)出錯。對于應(yīng)用系統(tǒng)來講,用戶數(shù)據(jù)發(fā)生任何小的偏差都可能導(dǎo)致災(zāi)難性的后果,如導(dǎo)致應(yīng)用系統(tǒng)宕機,甚至導(dǎo)致用戶的重要數(shù)據(jù)出錯或丟失。對存儲系統(tǒng)進(jìn)行數(shù)據(jù)一致性和正確性的測試和驗證非常重要,在發(fā)生數(shù)據(jù)錯誤時需要準(zhǔn)確地對數(shù)據(jù)錯誤的位置進(jìn)行定位。
【發(fā)明內(nèi)容】
[0004]有鑒于此,本發(fā)明的主要目的在于提供一種數(shù)據(jù)錯誤定位方法與系統(tǒng),可以在數(shù)據(jù)一致性測試發(fā)生錯誤時對數(shù)據(jù)錯誤準(zhǔn)確定位。
[0005]為實現(xiàn)上述目的,本發(fā)明提供了一種數(shù)據(jù)錯誤定位方法,包括:
[0006]步驟A:在存儲系統(tǒng)中要進(jìn)行1處理流程對應(yīng)的位置上添加檢查點,插入所述檢查點的位置包括1處理流程的入口處以及1處理流程完成的返回處;
[0007]步驟B:對所述存儲系統(tǒng)進(jìn)行數(shù)據(jù)一致性測試,并對測試過程進(jìn)行記錄得到1流記錄;
[0008]步驟C:當(dāng)檢測到所述數(shù)據(jù)一致性測試發(fā)生錯誤時,獲取數(shù)據(jù)錯誤對應(yīng)的發(fā)生時間與1讀寫范圍,根據(jù)所述數(shù)據(jù)錯誤的發(fā)生時間與1讀寫范圍在所述1流記錄中查找所述數(shù)據(jù)錯誤所在的存儲系統(tǒng)的位置對應(yīng)的相鄰兩個目標(biāo)檢查點;
[0009]步驟D:在所述兩目標(biāo)檢查點之間添加預(yù)設(shè)數(shù)量的檢查點,進(jìn)行數(shù)據(jù)錯誤重演,并進(jìn)行記錄得到新1流記錄,獲取所述數(shù)據(jù)錯誤對應(yīng)的發(fā)生時間與1讀寫范圍,根據(jù)所述數(shù)據(jù)錯誤的發(fā)生時間與1讀寫范圍在所述新1流記錄中查找所述數(shù)據(jù)錯誤所在的存儲系統(tǒng)的位置對應(yīng)的相鄰兩目標(biāo)檢查點;
[0010]步驟E:重復(fù)步驟D直到所述數(shù)據(jù)錯誤在所述存儲系統(tǒng)的位置與檢查點位置重合,確定所述數(shù)據(jù)錯誤在所述存儲系統(tǒng)的位置為與其重合的檢查點的位置。
[0011 ] 優(yōu)選地,所述1流記錄包括1流在所述檢查點的1屬性值與數(shù)據(jù)特征值。
[0012]優(yōu)選地,所述1屬性值包括:
[0013]1流在所述檢查點記錄的時間點,檢查點在1處理流程中的位置,1請求的方向,操作的邏輯卷、讀寫的位置以及數(shù)據(jù)量的大小。
[0014]本發(fā)明還提供了一種數(shù)據(jù)錯誤定位系統(tǒng),包括:
[0015]檢查點添加模塊,用于在存儲系統(tǒng)中要進(jìn)行1處理流程對應(yīng)的位置上添加檢查點,插入所述檢查點的位置包括1處理流程的入口處以及1處理流程完成的返回處;
[0016]1流記錄模塊,用于對所述存儲系統(tǒng)進(jìn)行數(shù)據(jù)一致性測試,并對測試過程進(jìn)行記錄得到1流記錄;
[0017]檢查點確定模塊,用于當(dāng)檢測到所述數(shù)據(jù)一致性測試發(fā)生錯誤時,獲取數(shù)據(jù)錯誤對應(yīng)的發(fā)生時間與1讀寫范圍,根據(jù)所述數(shù)據(jù)錯誤的發(fā)生時間與1讀寫范圍在所述1流記錄中查找所述數(shù)據(jù)錯誤所在的存儲系統(tǒng)的位置對應(yīng)的相鄰兩個目標(biāo)檢查點;
[0018]重演模塊,用于在所述兩目標(biāo)檢查點之間添加預(yù)設(shè)數(shù)量的檢查點,進(jìn)行數(shù)據(jù)錯誤重演,并進(jìn)行記錄得到新1流記錄,獲取所述數(shù)據(jù)錯誤對應(yīng)的發(fā)生時間與1讀寫范圍,根據(jù)所述數(shù)據(jù)錯誤的發(fā)生時間與1讀寫范圍在所述新1流記錄中查找所述數(shù)據(jù)錯誤所在的存儲系統(tǒng)的位置對應(yīng)的相鄰兩目標(biāo)檢查點;
[0019]位置確定模塊,用于重復(fù)重演模塊確定的步驟直到所述數(shù)據(jù)錯誤在所述存儲系統(tǒng)的位置與檢查點位置重合。
[0020]優(yōu)選地,所述1流記錄包括1流在所述檢查點的1屬性值與數(shù)據(jù)特征值。
[0021 ] 優(yōu)選地,所述1屬性值包括:
[0022]1流在所述檢查點記錄的時間點,檢查點在1處理流程中的位置,1請求的方向,操作的邏輯卷、讀寫的位置以及數(shù)據(jù)量的大小。
[0023]應(yīng)用本發(fā)明提供的一種數(shù)據(jù)錯誤定位方法與系統(tǒng),在存儲系統(tǒng)中要進(jìn)行1處理流程對應(yīng)的位置上添加檢查點,對所述存儲系統(tǒng)進(jìn)行數(shù)據(jù)一致性測試,并對測試過程進(jìn)行記錄得到1流記錄,當(dāng)檢測到所述數(shù)據(jù)一致性測試發(fā)生錯誤時,獲取數(shù)據(jù)錯誤對應(yīng)的發(fā)生時間與1讀寫范圍,根據(jù)所述數(shù)據(jù)錯誤的發(fā)生時間與1讀寫范圍在所述1流記錄中查找所述數(shù)據(jù)錯誤所在的存儲系統(tǒng)的位置對應(yīng)的相鄰兩個目標(biāo)檢查點,再目標(biāo)檢查點之間添加新的檢查點并進(jìn)行數(shù)據(jù)錯誤重演直到確定數(shù)據(jù)錯誤的存儲系統(tǒng)中的位置,可以利用設(shè)置在1流處理流程上的檢查點逐步逼近實現(xiàn)在發(fā)生數(shù)據(jù)一致性錯誤時,對數(shù)據(jù)錯誤位置的準(zhǔn)確定位。
【附圖說明】
[0024]為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。
[0025]圖1為存儲系統(tǒng)硬件組成概圖;
[0026]圖2為存儲軟件系統(tǒng)的概圖;
[0027]圖3為本發(fā)明一種數(shù)據(jù)錯誤定位方法實施例一的流程圖;
[0028]圖4為本發(fā)明一種數(shù)據(jù)錯誤定位系統(tǒng)實施例二的結(jié)構(gòu)示意圖。
【具體實施方式】
[0029]下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
[0030]實施例一:
[0031]本發(fā)明提供了一種數(shù)據(jù)錯誤定位方法,圖3示出了本發(fā)明數(shù)據(jù)錯誤定位方法的實施例一流程圖,包括:
[0032]步驟SlOl:在存儲系統(tǒng)中要進(jìn)行1處理流程對應(yīng)的位置上添加檢查點,插入所述檢查點的位置包括1處理流程的入口處以及1處理流程完成的返回處;
[0033]在存儲系統(tǒng)軟件中插入1檢查點,1(input/output)即輸入/輸出,在1檢查點記錄1請求在該檢查點的1屬性值與數(shù)據(jù)特征值,1屬性值包括:10流在所述檢查點記錄的時間點,檢查點在1處理流程中的位置,1請求的方向,操作的邏輯卷、讀寫的位置以及數(shù)據(jù)量的大小。至少需要在1處理流程的入口處以及1處理流程完成的返回處設(shè)置檢查點,除了這兩個檢查點外,其他1處理流程中的任意位置也可以添加1檢查點。
[0034]步驟S102:對所述存儲系統(tǒng)進(jìn)行數(shù)據(jù)一致性測試,并對測試過程進(jìn)行記錄得到1流記錄;
[0035]進(jìn)行數(shù)據(jù)一致性測試,測試是否存在數(shù)據(jù)錯誤,記錄測試過程得到1流記錄,所有的1流記錄以時間先后順序進(jìn)行保存。
[0036]步驟S103:當(dāng)檢測到所述數(shù)據(jù)一致性測試發(fā)生錯誤時,獲取數(shù)據(jù)錯誤對應(yīng)的發(fā)生時間與1讀寫范圍,根據(jù)所述數(shù)據(jù)錯誤的發(fā)生時間與1讀寫范圍在所述1流記錄中查找所述數(shù)據(jù)錯誤所在的存儲系統(tǒng)的位置對應(yīng)的相鄰兩個目標(biāo)檢查點;
[0037]當(dāng)出現(xiàn)數(shù)據(jù)錯誤時,可根據(jù)數(shù)據(jù)錯誤的發(fā)生時間與1讀寫范圍在記錄中找到與數(shù)據(jù)錯誤在存儲系統(tǒng)的位置對應(yīng)的相鄰兩目標(biāo)檢查點。
[0038]步驟S104:在所述兩目標(biāo)檢查點之間添加預(yù)設(shè)數(shù)量的檢查點,進(jìn)行數(shù)據(jù)錯誤重演,并進(jìn)行記錄得到新1流記錄,獲取所述數(shù)據(jù)錯誤對應(yīng)的發(fā)生時間與1讀寫范圍,根據(jù)所述數(shù)據(jù)錯誤的發(fā)生時間與1讀寫范圍在所述新1流記錄中查找所述數(shù)據(jù)錯誤所在的存儲系統(tǒng)的位置對應(yīng)的相鄰兩目標(biāo)檢查點;
[0039]由于得到的兩相鄰檢查點只能確定數(shù)據(jù)錯誤的位置范圍,不能精確定位,所以需要在確定的兩目標(biāo)檢查點之間添加檢查點后再進(jìn)行數(shù)據(jù)一致性測試的重演,將錯誤數(shù)據(jù)位置的范圍進(jìn)行縮小,找到與數(shù)據(jù)錯誤在存儲系統(tǒng)的位置對應(yīng)的新的兩相鄰目標(biāo)檢查點。
[0040]步驟S105:重復(fù)步驟D直到所述數(shù)據(jù)錯誤在所述存儲系統(tǒng)的位置與檢查點位