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

一種保存小型計算機系統(tǒng)接口訪問錯誤的方法及裝置的制作方法

文檔序號:6426627閱讀:155來源:國知局
專利名稱:一種保存小型計算機系統(tǒng)接口訪問錯誤的方法及裝置的制作方法
技術領域
本發(fā)明涉及存儲技術領域,尤其涉及Linux系統(tǒng)中一種保存小型計算機系統(tǒng)接口 (SCSI)訪問錯誤的方法及裝置。
背景技術
目前,隨著網(wǎng)絡和通信技術的發(fā)展,在云存儲、電信網(wǎng)絡和互聯(lián)網(wǎng)等應用中, 需要存儲大量的數(shù)據(jù),并且需要對存儲的數(shù)據(jù)進行連續(xù)不間斷的訪問,這種情況下,一般使用具備大存儲量、較高的數(shù)據(jù)吞吐量和低成本的采用小型計算機系統(tǒng)接口(Small Computer System Interface, SCSI)的存儲設備,例如采用 SCSI 的 SATA (Serial Advanced Technology Attachment,串行高級技術附件)磁盤作為存儲設備。由于需要對存儲設備進行連續(xù)不間斷的訪問,這就難免會發(fā)生SCSI訪問錯誤,及時準確的識別并處理發(fā)生的SCSI訪問錯誤,才能保障數(shù)據(jù)安全,并保持業(yè)務的穩(wěn)定性和可靠性。現(xiàn)有技術中,針對SCSI訪問錯誤有兩種處理方式一種是在文件系統(tǒng)中統(tǒng)計發(fā)生 SCSI訪問錯誤的次數(shù)和頻率,據(jù)此判斷存儲設備發(fā)生故障的程度,并采取相應的處理措施, 由于在文件系統(tǒng)層將所有的SCSI錯誤都統(tǒng)一為輸入輸出錯誤,因此無法獲知SCSI訪問錯誤的具體錯誤類型,也就不能針對該具體錯誤類型采取有針對性的措施;另一種是在系統(tǒng)日志中會記錄每次發(fā)生的SCSI訪問錯誤,通過解析系統(tǒng)日志中記錄的SCSI訪問錯誤可以獲得SCSI訪問錯誤的具體錯誤類型,但是,由于系統(tǒng)日志沒有固定的格式,系統(tǒng)日志中易出現(xiàn)丟失數(shù)據(jù)的現(xiàn)象,并且由于系統(tǒng)日志中除了記錄SCSI訪問錯誤信息之外,還可以記錄大量其他信息,例如,系統(tǒng)日志中還包括登錄相關信息、打印信息等,因此,系統(tǒng)日志文件較大,這就為在系統(tǒng)日志中定位SCSI訪問錯誤信息造成一定的困難,容易出現(xiàn)誤判。綜上所述,需要尋求一種獲取SCSI訪問錯誤信息的方法,能夠準確快速的獲取 SCSI訪問錯誤信息,以根據(jù)該SCSI訪問錯誤信息快速確定存儲設備的故障類型,并采取相應的處理措施。

發(fā)明內(nèi)容
本發(fā)明提供一種保存SCSI訪問錯誤的方法及裝置,能夠及時保存SCSI錯誤信息, 并使得應用系統(tǒng)基于保存的SCSI錯誤信息準確快速的獲取SCSI錯誤信息,以根據(jù)該SCSI 錯誤信息快速確定存儲設備的故障類型,并采取相應的處理措施。本發(fā)明實施例提供的具體技術方案如下—種保存小型計算機系統(tǒng)接口 SCSI訪問錯誤的方法,包括磁盤驅(qū)動向SCSI設備下發(fā)SCSI命令后,接收SCSI設備返回的響應消息;根據(jù)所述響應消息判定所述SCSI設備處理所述SCSI命令時出現(xiàn)SCSI錯誤,獲取所述響應消息中攜帶的SCSI設備標識和錯誤報文,所述錯誤報文中至少包括錯誤代碼;解析所述錯誤報文生成相應的錯誤信息,按照所述SCSI設備標識保存所述錯誤信息至預設的SCSI錯誤存儲區(qū)域。
一種保存小型計算機系統(tǒng)接口 SCSI訪問錯誤的裝置,包括第一處理單元,用于磁盤驅(qū)動向SCSI設備下發(fā)SCSI命令后,接收SCSI設備返回的響應消息;第二處理單元,用于根據(jù)所述響應消息判定所述SCSI設備處理所述SCSI命令時出現(xiàn)SCSI錯誤,獲取所述響應消息中攜帶的SCSI設備標識和錯誤報文,所述錯誤報文中至少包括錯誤代碼;第三處理單元,用于解析所述錯誤報文生成相應的錯誤信息,按照所述SCSI設備標識保存所述錯誤信息至預設的SCSI錯誤存儲區(qū)域。基于上述技術方案,本發(fā)明實施例中,磁盤驅(qū)動向SCSI設備下發(fā)SCSI命令后,接收SCSI設備返回的響應消息,根據(jù)該響應消息判定SCSI設備處理SCSI命令時出現(xiàn)SCSI錯誤,獲取響應消息中攜帶的SCSI設備標識和錯誤報文,該錯誤報文中至少包括錯誤代碼, 解析該錯誤報文生成相應的錯誤信息,按照SCSI設備標識保存錯誤信息至預設的SCSI錯誤存儲區(qū)域。從而能夠及時保存SCSI錯誤信息,使得應用系統(tǒng)能夠基于保存的SCSI錯誤信息準確快速的獲取SCSI錯誤信息,以根據(jù)該SCSI錯誤信息快速確定存儲設備的故障類型,并采取相應的處理措施。


圖1為本實施例中保存SCSI訪問錯誤的裝置結構圖;圖2為本實施例中保存SCSI訪問錯誤的方法流程圖;圖3為本實施例中保存SCSI訪問錯誤的系統(tǒng)架構圖;圖4為本實施例中對SCSI訪問錯誤進行修復的示意圖;圖5為本實施例中另一對SCSI訪問錯誤進行修復的示意圖。
具體實施例方式為了及時保存SCSI錯誤信息,以使得應用系統(tǒng)基于保存的SCSI錯誤信息準確快速的獲取SCSI錯誤信息,進一步根據(jù)該SCSI錯誤信息快速確定存儲設備的故障類型,并采取相應的處理措施,本發(fā)明實施例中提供了一種保存SCSI訪問錯誤的方法及裝置。該方法為磁盤驅(qū)動向SCSI設備下發(fā)SCSI命令后,接收SCSI設備返回的響應消息,根據(jù)該響應消息判定SCSI設備處理SCSI命令時出現(xiàn)SCSI錯誤,獲取該響應消息中攜帶的SCSI設備標識和錯誤報文,該錯誤報文中至少包括錯誤代碼,解析錯誤報文生成相應的錯誤信息,按照 SCSI設備標識保存錯誤信息至預設的SCSI錯誤存儲區(qū)域。下面結合附圖對本發(fā)明優(yōu)選的實施方式進行詳細說明。如附圖1所示,本發(fā)明實施例中,保存小型計算機系統(tǒng)接口 SCSI訪問錯誤的裝置主要包括以下處理單元第一處理單元101,用于磁盤驅(qū)動向SCSI設備下發(fā)SCSI命令后,接收SCSI設備返回的響應消息;第二處理單元102,用于根據(jù)響應消息判定SCSI設備處理SCSI命令時出現(xiàn)SCSI 錯誤,獲取響應消息中攜帶的SCSI設備標識和錯誤報文,該錯誤報文中至少包括錯誤代碼;
第三處理單元103,用于解析錯誤報文生成相應的錯誤信息,按照SCSI設備標識保存錯誤信息至預設的SCSI錯誤存儲區(qū)域。本實施例中,保存SCSI訪問錯誤的裝置可以設置于磁盤驅(qū)動層?;谏鲜鱿到y(tǒng)架構,如附圖2所示,本發(fā)明實施例中,保存SCSI訪問錯誤的詳細方法流程如下步驟201 磁盤驅(qū)動向SCSI設備下發(fā)SCSI命令后,接收SCSI設備返回的響應消
肩、ο本發(fā)明實施例中,以底層操作系統(tǒng)為Linux操作系統(tǒng)為例進行說明,上層應用系統(tǒng)向磁盤驅(qū)動下發(fā)讀或?qū)懨詈?,由磁盤驅(qū)動解析該命令后向相應的SCSI設備下發(fā)SCSI 命令,并接收SCSI設備針對SCSI命令返回的響應消息,該響應消息中攜帶處理成功或失敗的處理結果信息,對該響應進行解析后,將該處理結果信息返回給上層應用系統(tǒng)。步驟202 根據(jù)響應消息判定SCSI設備處理SCSI命令時出現(xiàn)SCSI錯誤,獲取響應消息中攜帶的SCSI設備標識和錯誤報文,該錯誤報文中至少包括錯誤代碼。其中,錯誤報文中根據(jù)實際需要還可以包括錯誤發(fā)生的扇區(qū)號、錯誤子類型等信肩、ο實際應用中,根據(jù)響應消息判斷出現(xiàn)SCSI錯誤時,解析錯誤報文獲得錯誤信息后調(diào)用磁盤驅(qū)動注冊的回調(diào)函數(shù),在該回調(diào)函數(shù)中實現(xiàn)對錯誤信息的保存,并在保存完畢后進行回調(diào)函數(shù)的默認處理。步驟203 解析錯誤報文生成相應的錯誤信息,按照SCSI設備標識保存錯誤信息至預設的SCSI錯誤存儲區(qū)域。本實施例中,接收上層應用系統(tǒng)下發(fā)的返回設備標識對應的錯誤信息的消息,從 SCSI錯誤存儲區(qū)域獲取SCSI設備標識對應的錯誤信息,發(fā)送給上層應用系統(tǒng)。較佳地,從 SCSI錯誤存儲區(qū)域獲取SCSI設備標識對應的錯誤信息后,清除SCSI錯誤存儲區(qū)域中SCSI 設備標識對應的錯誤信息。較佳地,錯誤報文中還包括出現(xiàn)SCSI錯誤的扇區(qū)號。在解析錯誤報文生成的錯誤信息中包含錯誤代碼和錯誤發(fā)生的扇區(qū)號,在上層應用系統(tǒng)獲取錯誤信息后,可以根據(jù)錯誤信息中包含的錯誤代碼確定錯誤類型,并進一步根據(jù)扇區(qū)號定位SCSI設備發(fā)生故障的具體位置,以便于對磁盤損壞扇區(qū)進行修復,例如便于磁盤損壞扇區(qū)進行物理修復和數(shù)據(jù)修復。實際應用中,接收上層應用系統(tǒng)下發(fā)的消息時,對該消息進行判斷,若確定為返回設備標識對應的錯誤信息的消息,則基于SCSI錯誤存儲區(qū)域獲取SCSI設備標識對應的錯誤信息,并返回給上層應用系統(tǒng);若確定為清除設備標識對應的錯誤信息的消息,則基于 SCSI錯誤存儲區(qū)域清除SCSI設備標識對應的錯誤信息。例如,在接收上層應用系統(tǒng)下發(fā)的消息時,若判斷該消息為返回磁盤A對應的錯誤信息的消息,則基于磁盤A的錯誤存儲區(qū)域獲取獲取錯誤信息;若判斷該消息為清除磁盤A對應的錯誤信息的消息,則清除磁盤A的錯誤存儲區(qū)域中的錯誤信息。本實施例中,基于SCSI設備標識,保存錯誤信息至預設的SCSI錯誤存儲區(qū)域,具體為在每個SCSI設備中分別預設相應的SCSI錯誤存儲區(qū)域,基于SCSI設備標識,保存錯誤信息至相應的SCSI設備中預設的SCSI錯誤存儲區(qū)域中;或者,在任意一個SCSI設備中預設每個SCSI設備的錯誤存儲區(qū)域,并將SCSI設備標識作為相應的錯誤存儲區(qū)域的標識, 將錯誤信息保存至與SCSI設備標識相應的錯誤存儲區(qū)域中。例如,SCSI設備包含磁盤A、 磁盤B和磁盤C,在設定SCSI錯誤存儲區(qū)域時,可以在磁盤Α、磁盤B和磁盤C中分別預設相應的錯誤存儲區(qū)域,也可以在磁盤A中分別以A、B、C為標識預設相應的錯誤存儲區(qū)域。實際應用中,可以針對SCSI設備設定相應的結構體數(shù)組,該結構體數(shù)組的每個元素相應保存一條錯誤信息,可以根據(jù)需要設定每個元素包含的內(nèi)容,例如,結構體數(shù)組中的每個元素中可以包含錯誤代碼、錯誤類型、錯誤扇區(qū)號、錯誤子類型等。當結構體數(shù)組中保存的錯誤信息的個數(shù)達到結構體數(shù)組的容量極限時,對于后續(xù)的錯誤信息不再保存,而是直接丟棄,直至清除結構體數(shù)組中保存的錯誤信息后,再保存進行SCSI訪問產(chǎn)生的新的錯 T^fn 息。下面通過一個具體的實施例對本發(fā)明實施例提供的保存SCSI錯誤的方法進行進一步詳細說明。如附圖3所示的系統(tǒng),該系統(tǒng)中包含四個SCSI磁盤設備,并且該系統(tǒng)采用Linux 操作系統(tǒng)。其中,四個SCSI磁盤依次為磁盤A、磁盤B、磁盤C和磁盤D,在Linux操作系統(tǒng)中依次表現(xiàn)為設備文件/dev/sda、/dev/sdb、/dev/sdc和/dev/sdd,并且每個磁盤都創(chuàng)建有XFS文件系統(tǒng),依次安裝至目錄/mnt/a、/mnt/b、/mnt/c和/mnt/d。假設磁盤A上保存有文件filel,即在目錄/mnt/a下存在filel,大小為10MB。上層應用系統(tǒng)針對filel發(fā)起讀入1MB的數(shù)據(jù)請求,該請求經(jīng)XFS文件系統(tǒng)處理后轉(zhuǎn)化為讀入SCSI磁盤A的10000 12047扇區(qū)數(shù)據(jù)的請求,并由磁盤驅(qū)動生成相應的SCSI命令發(fā)送給SCSI磁盤A。磁盤A在讀取10010扇區(qū)時出現(xiàn)了 SCSI錯誤,且錯誤類型為介質(zhì)錯誤(medium error),錯誤子類型為不可恢復讀錯誤(unrecoverd read error),生成相應的響應消息并發(fā)送給磁盤驅(qū)動,磁盤驅(qū)動根據(jù)響應消息判斷出現(xiàn)SCSI錯誤,進一步根據(jù)響應消息獲知SCSI錯誤出現(xiàn)在磁盤 A,根據(jù)響應消息中攜帶的錯誤報文獲知錯誤代碼以及錯誤類型為介質(zhì)錯誤,錯誤子類型為不可恢復讀錯誤,且錯誤發(fā)生的扇區(qū)號為10010,然后調(diào)用磁盤驅(qū)動注冊的回調(diào)函數(shù),將根據(jù)響應消息獲得的錯誤信息保存至預設存儲區(qū)域?qū)慕Y構體數(shù)組中,該結構體數(shù)組中的每個元素為結構體類型數(shù)據(jù),將從響應消息中獲得的錯誤信息形成結構體類型數(shù)據(jù)后,作為一個元素保存至磁盤A對應的結構體數(shù)組中。磁盤驅(qū)動在獲知發(fā)生SCSI錯誤的同時,告知磁盤A的XFS文件系統(tǒng)發(fā)生輸入輸出錯誤。上層應用系統(tǒng)從XFS文件系統(tǒng)中獲得輸入輸出錯誤的返回值時,通過Linux設備控制接口打開/dev/sda,并向其發(fā)送獲取所有SCSI設備的錯誤信息的消息,該消息通過設備控制接口發(fā)送至磁盤驅(qū)動,并從磁盤A的錯誤存儲區(qū)域中獲取錯誤信息。應用系統(tǒng)根據(jù)獲得的錯誤信息獲知錯誤類型為介質(zhì)錯誤,子類型為不可恢復讀錯誤,錯誤發(fā)生的扇區(qū)號為 10010,并據(jù)此判斷10010扇區(qū)已經(jīng)損壞,上層應用系統(tǒng)根據(jù)實際情況可以采取具體的處理方式,例如,刪除磁盤A的filel ;或者標識磁盤A的filel已經(jīng)損壞,不再讀取該文件;或者,從另一個磁盤或位置讀取10010扇區(qū)對應的副本,對filel進行修復,如附圖4所示;或者,向10010扇區(qū)寫零使其重新映射,如附圖5所示?;谏鲜黾夹g方案,本發(fā)明實施例中,磁盤驅(qū)動向SCSI設備下發(fā)SCSI命令后,接收SCSI設備返回的響應消息,根據(jù)該響應消息判定SCSI設備處理SCSI命令時出現(xiàn)SCSI錯誤,獲取響應消息中攜帶的SCSI設備標識和錯誤報文,該錯誤報文中至少包括錯誤代碼,解析該錯誤報文生成相應的錯誤信息,按照SCSI設備標識保存錯誤信息至預設的SCSI錯誤存儲區(qū)域。從而能夠及時保存SCSI錯誤信息,使得應用系統(tǒng)能夠基于保存的SCSI錯誤信息準確快速的獲取SCSI錯誤信息,以根據(jù)該SCSI錯誤信息快速確定存儲設備的故障類型,并采取相應的處理措施。并且,本發(fā)明實施例中,錯誤信息還可以包括扇區(qū)號,從而能夠準確定位錯誤發(fā)生的具體位置,以便于對SCSI設備的損壞扇區(qū)進行修復,提高修復的準確性以及修復效率。 顯然,本領域的技術人員可以對本發(fā)明進行各種改動和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權利要求及其等同技術的范圍之內(nèi),則本發(fā)明也意圖包含這些改動和變型在內(nèi)。
權利要求
1.一種保存小型計算機系統(tǒng)接口 SCSI訪問錯誤的方法,其特征在于,包括磁盤驅(qū)動向SCSI設備下發(fā)SCSI命令后,接收SCSI設備返回的響應消息;根據(jù)所述響應消息判定所述SCSI設備處理所述SCSI命令時出現(xiàn)SCSI錯誤,獲取所述響應消息中攜帶的SCSI設備標識和錯誤報文,所述錯誤報文中至少包括錯誤代碼;解析所述錯誤報文生成相應的錯誤信息,按照所述SCSI設備標識保存所述錯誤信息至預設的SCSI錯誤存儲區(qū)域。
2.如權利要求1所述的方法,其特征在于,所述錯誤報文中還包括出現(xiàn)SCSI錯誤的扇區(qū)號。
3.如權利要求1或2所述的方法,其特征在于,解析所述錯誤報文生成錯誤信息,按照所述SCSI設備標識保存所述錯誤信息至預設的SCSI錯誤存儲區(qū)域后,包括接收上層應用系統(tǒng)下發(fā)的返回所述設備標識對應的錯誤信息的消息,從所述SCSI錯誤存儲區(qū)域獲取所述SCSI設備標識對應的錯誤信息,發(fā)送給所述上層應用系統(tǒng)。
4.如權利要求3所述的方法,其特征在于,所述接收上層應用系統(tǒng)下發(fā)的返回所述設備標識對應的錯誤信息的消息,從所述SCSI錯誤存儲區(qū)域獲取所述SCSI設備標識對應的錯誤信息后,包括清除所述SCSI錯誤存儲區(qū)域中所述SCSI設備標識對應的錯誤信息。
5.如權利要求4所述的方法,其特征在于,按照所述SCSI設備標識保存所述錯誤信息至預設的SCSI錯誤存儲區(qū)域,包括在每個SCSI設備中分別預設相應的SCSI錯誤存儲區(qū)域,按照所述SCSI設備標識確定相應的SCSI設備,保存所述錯誤信息至該SCSI設備對應的SCSI錯誤存儲區(qū)域中;或者,在任意一個SCSI設備中預設每個SCSI設備的錯誤存儲區(qū)域,并將SCSI設備標識作為相應的錯誤存儲區(qū)域的標識,將所述錯誤報文保存至與SCSI設備標識相應的錯誤存儲區(qū)域中。
6.一種保存小型計算機系統(tǒng)接口 SCSI訪問錯誤的裝置,其特征在于,包括第一處理單元,用于磁盤驅(qū)動向SCSI設備下發(fā)SCSI命令后,接收SCSI設備返回的響應消息;第二處理單元,用于根據(jù)所述響應消息判定所述SCSI設備處理所述SCSI命令時出現(xiàn) SCSI錯誤,獲取所述響應消息中攜帶的SCSI設備標識和錯誤報文,所述錯誤報文中至少包括錯誤代碼;第三處理單元,用于解析所述錯誤報文生成相應的錯誤信息,按照所述SCSI設備標識保存所述錯誤信息至預設的SCSI錯誤存儲區(qū)域。
7.如權利要求6所述的裝置,其特征在于,所述錯誤報文中還包括出現(xiàn)SCSI錯誤的扇區(qū)號。
8.如權利要求6或7所述的裝置,其特征在于,所述第三處理單元解析所述錯誤報文生成錯誤信息,按照所述SCSI設備標識保存所述錯誤信息至預設的SCSI錯誤存儲區(qū)域后,還用于接收上層應用系統(tǒng)下發(fā)的返回所述設備標識對應的錯誤信息的消息,從所述SCSI錯誤存儲區(qū)域獲取所述SCSI設備標識對應的錯誤信息,發(fā)送給所述上層應用系統(tǒng)。
9.如權利要求8所述的裝置,其特征在于,所述第三處理單元從所述SCSI錯誤存儲區(qū)域獲取所述SCSI設備標識對應的錯誤信息后,還用于清除所述SCSI錯誤存儲區(qū)域中所述 SCSI設備標識對應的錯誤信息。
10.如權利要求9所述的裝置,其特征在于,所述第三處理單元按照所述SCSI設備標識保存所述錯誤信息至預設的SCSI錯誤存儲區(qū)域,具體為在每個SCSI設備中分別預設相應的SCSI錯誤存儲區(qū)域,按照所述SCSI設備標識確定相應的SCSI設備,保存所述錯誤信息至該SCSI設備對應的SCSI錯誤存儲區(qū)域中; 或者,在任意一個SCSI設備中預設每個SCSI設備的錯誤存儲區(qū)域,并將SCSI設備標識作為相應的錯誤存儲區(qū)域的標識,將所述錯誤報文保存至與SCSI設備標識相應的錯誤存儲區(qū)域中。
全文摘要
本發(fā)明公開了一種保存SCSI訪問錯誤的方法及裝置,能夠及時保存SCSI錯誤信息,并使得應用系統(tǒng)基于保存的SCSI錯誤信息準確快速的獲取SCSI錯誤信息,以根據(jù)該SCSI錯誤信息快速確定存儲設備的故障類型,并采取相應的處理措施。該方法為磁盤驅(qū)動向SCSI設備下發(fā)SCSI命令后,接收SCSI設備返回的響應消息,根據(jù)該響應消息判定SCSI設備處理SCSI命令時出現(xiàn)SCSI錯誤,獲取響應消息中攜帶的SCSI設備標識和錯誤報文,該錯誤報文中至少包括錯誤代碼,解析錯誤報文生成相應的錯誤信息,按照SCSI設備標識保存錯誤信息至預設的SCSI錯誤存儲區(qū)域。本發(fā)明同時公開了一種保存SCSI訪問錯誤的裝置。
文檔編號G06F11/34GK102222033SQ201110165849
公開日2011年10月19日 申請日期2011年6月20日 優(yōu)先權日2011年6月20日
發(fā)明者何抗洪, 彭杰, 韓盛中 申請人:中興通訊股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1