處理模塊61,用于接收文件處理請(qǐng)求,將所述文件處理請(qǐng)求拆分成多個(gè)文件操作,分別對(duì)每個(gè)文件操作進(jìn)行文件處理生成多個(gè)文件操作信息;
[0216]寫(xiě)入模塊62,用于將所述多個(gè)文件操作信息全部寫(xiě)入緩存保護(hù)區(qū);
[0217]恢復(fù)模塊63,用于當(dāng)?shù)谝豢刂破靼l(fā)生故障后又上電時(shí),在所述緩存保護(hù)區(qū)中恢復(fù)所述多個(gè)文件操作信息;
[0218]所述寫(xiě)入模塊62,還用于根據(jù)所述多個(gè)文件操作信息獲得數(shù)據(jù)信息,并將所述數(shù)據(jù)信息寫(xiě)入第一寫(xiě)緩存,以供所述主機(jī)訪問(wèn)所述數(shù)據(jù)信息。
[0219]可選的,所述寫(xiě)入模塊62具體用于:
[0220]為每個(gè)文件操作信息在所述緩存保護(hù)區(qū)中申請(qǐng)存儲(chǔ)空間;
[0221]將所述每個(gè)文件操作信息保存在所述申請(qǐng)的存儲(chǔ)空間中;
[0222]確定所述多個(gè)文件操作信息均已保存在對(duì)應(yīng)的存儲(chǔ)空間中;
[0223]將所述保存有所述多個(gè)文件操作信息的存儲(chǔ)空間中的數(shù)據(jù),保存在所述緩存保護(hù)區(qū)對(duì)應(yīng)的數(shù)據(jù)結(jié)構(gòu)中。
[0224]可選的,所述寫(xiě)入模塊62具體用于:
[0225]依次將每個(gè)文件操作信息發(fā)送給所述緩存保護(hù)區(qū);
[0226]確定所述多個(gè)文件操作信息均已發(fā)送給所述緩存保護(hù)區(qū);
[0227]將所述緩存保護(hù)區(qū)中接收的所述多個(gè)文件操作信息,標(biāo)記為已完成數(shù)據(jù),所述已完成數(shù)據(jù)用于指示所述多個(gè)文件操作信息已全部寫(xiě)入所述緩存保護(hù)區(qū)。
[0228]可選的,所述裝置還可以包括:
[0229]保護(hù)模塊64,用于當(dāng)?shù)谝豢刂破靼l(fā)生故障時(shí),根據(jù)所述緩存保護(hù)區(qū)對(duì)應(yīng)的數(shù)據(jù)結(jié)構(gòu)確定所述緩存保護(hù)區(qū)中包括所述多個(gè)文件操作信息;通過(guò)掉電保護(hù)程序?qū)⑺龆鄠€(gè)文件操作信息保存在存儲(chǔ)器的保護(hù)區(qū)。
[0230]或者,保護(hù)模塊64,用于當(dāng)?shù)谝豢刂破靼l(fā)生故障時(shí),根據(jù)所述標(biāo)記確定所述緩存保護(hù)區(qū)中包括所述多個(gè)文件操作信息;通過(guò)掉電保護(hù)程序?qū)⑺龆鄠€(gè)文件操作信息保存在存儲(chǔ)器的保護(hù)區(qū)。
[0231]可選的,所述裝置還可以包括:
[0232]刪除模塊65,用于刪除所述緩存保護(hù)區(qū)中保存的所述多個(gè)文件操作信息。
[0233]可選的,所述裝置還可以包括:
[0234]發(fā)送模塊66,用于將所述多個(gè)文件操作信息發(fā)送給第二控制器,使得所述第二控制器根據(jù)所述多個(gè)文件操作信息獲得所述文件處理請(qǐng)求對(duì)應(yīng)的數(shù)據(jù)信息,并將所述數(shù)據(jù)信息寫(xiě)入所述第二控制器的第二寫(xiě)緩存。
[0235]本發(fā)明實(shí)施例所提供的裝置,可以設(shè)置于前面實(shí)施例所描述的第一控制器中,用于執(zhí)行前面實(shí)施例所描述的數(shù)據(jù)存儲(chǔ)方法,各個(gè)模塊功能的詳細(xì)描述可參見(jiàn)方法實(shí)施例中的描述,在此不再贅述。
[0236]如圖7,為本發(fā)明實(shí)施例提供的存儲(chǔ)設(shè)備,所述存儲(chǔ)設(shè)備包括第一控制器71、第二控制器72和存儲(chǔ)器,所述第二控制器包括寫(xiě)緩存;
[0237]所述第一控制器71,用于接收文件處理請(qǐng)求,將所述文件處理請(qǐng)求拆分成多個(gè)文件操作,分別對(duì)每個(gè)文件操作進(jìn)行文件處理生成多個(gè)文件操作信息;將所述多個(gè)文件操作信息發(fā)送給所述第二控制器72 ;
[0238]可選的,第一控制器71,具體用于向所述第二控制器72發(fā)送第一鏡像消息,所述第一鏡像消息包括所述多個(gè)文件操作信息。
[0239]可選的,第一控制器72,具體用于向所述第二控制器72發(fā)送多個(gè)第二鏡像消息,每個(gè)所述第二鏡像消息包括所述多個(gè)文件操作信息中的一個(gè)文件操作信息。
[0240]所述第二控制器72,用于根據(jù)所述文件操作信息獲得數(shù)據(jù)信息,將所述數(shù)據(jù)信息寫(xiě)入寫(xiě)緩存,以供第一控制器71發(fā)生故障時(shí),主機(jī)訪問(wèn)所述數(shù)據(jù)信息或者對(duì)所述存儲(chǔ)器執(zhí)行與所述文件處理請(qǐng)求相應(yīng)的操作。
[0241]可選的,所述第二控制器72,還用于將所述文件操作信息全部寫(xiě)入所述緩存保護(hù)區(qū)。
[0242]具體的,第二控制器72用于為每個(gè)文件操作信息在所述緩存保護(hù)區(qū)中申請(qǐng)存儲(chǔ)空間;將所述每個(gè)文件操作信息保存在所述申請(qǐng)的存儲(chǔ)空間中;確定所述多個(gè)文件操作信息均已保存在對(duì)應(yīng)的存儲(chǔ)空間中;將所述保存有所述多個(gè)文件操作信息的存儲(chǔ)空間中的數(shù)據(jù),保存在所述緩存保護(hù)區(qū)對(duì)應(yīng)的數(shù)據(jù)結(jié)構(gòu)中。
[0243]或者,第二控制器72用于依次將每個(gè)文件操作信息發(fā)送給所述緩存保護(hù)區(qū);確定所述多個(gè)文件操作信息均已發(fā)送給所述緩存保護(hù)區(qū);設(shè)置所述緩存保護(hù)區(qū)中接收的所述多個(gè)文件操作信息對(duì)應(yīng)的標(biāo)記,所述標(biāo)記用于表示所述多個(gè)文件操作信息已全部寫(xiě)入所述緩存保護(hù)區(qū)。
[0244]可選的,第二控制器72還用于根據(jù)所述緩存保護(hù)區(qū)對(duì)應(yīng)的數(shù)據(jù)結(jié)構(gòu)確定所述緩存保護(hù)區(qū)中包括所述多個(gè)文件操作信息;通過(guò)掉電保護(hù)程序?qū)⑺龆鄠€(gè)文件操作信息保存在所述存儲(chǔ)器的保護(hù)區(qū)。
[0245]可選的,第二控制器72還用于根據(jù)所述標(biāo)記確定所述緩存保護(hù)區(qū)中包括所述多個(gè)文件操作信息;通過(guò)掉電保護(hù)程序?qū)⑺龆鄠€(gè)文件操作信息保存在所述存儲(chǔ)器的保護(hù)區(qū)。
[0246]本發(fā)明實(shí)施例所提供的存儲(chǔ)設(shè)備,可以設(shè)置于前面實(shí)施例所描述的包含至少兩個(gè)控制器的存儲(chǔ)設(shè)備中,用于執(zhí)行前面實(shí)施例所描述的數(shù)據(jù)存儲(chǔ)方法,各個(gè)控制器功能的詳細(xì)描述可參見(jiàn)方法實(shí)施例中的描述,在此不再贅述。
[0247]如圖8,為本發(fā)明實(shí)施例提供的存儲(chǔ)設(shè)備,包括:
[0248]處理器101、存儲(chǔ)器102、系統(tǒng)總線(簡(jiǎn)稱總線)105和通信接口 103。處理器101、存儲(chǔ)器102和通信接口 103之間通過(guò)系統(tǒng)總線105連接并完成相互間的通信。
[0249]處理器101可能為單核或多核中央處理單元,或者為特定集成電路,或者為被配置成實(shí)施本發(fā)明實(shí)施例的一個(gè)或多個(gè)集成電路。
[0250]存儲(chǔ)器102可以為高速RAM存儲(chǔ)器,也可以為非易失性存儲(chǔ)器(non-volatilememory),例如至少一個(gè)硬盤(pán)存儲(chǔ)器。
[0251]通信接口 103用于與存儲(chǔ)設(shè)備通信。
[0252]存儲(chǔ)器102用于存儲(chǔ)計(jì)算機(jī)執(zhí)行指令1021。具體的,計(jì)算機(jī)執(zhí)行指令1021中可以包括程序代碼。
[0253]當(dāng)計(jì)算機(jī)運(yùn)行時(shí),處理器101運(yùn)行計(jì)算機(jī)執(zhí)行指令1021,可以執(zhí)行圖2所述的方法流程。
[0254]所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為描述的方便和簡(jiǎn)潔,上述描述的設(shè)備和模塊的具體工作過(guò)程,可以參考前述方法實(shí)施例中的對(duì)應(yīng)過(guò)程描述,在此不再贅述。
[0255]在本申請(qǐng)所提供的幾個(gè)實(shí)施例中,應(yīng)該理解到,所揭露的設(shè)備和方法,可以通過(guò)其它的方式實(shí)現(xiàn)。例如,以上所描述的設(shè)備實(shí)施例僅僅是示意性的,例如,所述模塊的劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式,例如多個(gè)模塊或組件可以結(jié)合或者可以集成到另一個(gè)設(shè)備中,或一些特征可以忽略,或不執(zhí)行。另一點(diǎn),所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過(guò)一些通信接口,設(shè)備或模塊的間接耦合或通信連接,可以是電性,機(jī)械或其它的形式。
[0256]所述作為分離部件說(shuō)明的模塊可以是或者也可以不是物理上分開(kāi)的,作為模塊顯示的部件可以是或者也可以不是物理子模塊,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)子模塊上。可以根據(jù)實(shí)際的需要選擇其中的部分或者全部,模塊來(lái)實(shí)現(xiàn)本實(shí)施例方案的目的。
[0257]另外,在本發(fā)明各個(gè)實(shí)施例中的各功能模塊可以集成在一個(gè)處理模塊中,也可以是各個(gè)模塊單獨(dú)物理存在,也可以兩個(gè)或兩個(gè)以上模塊集成在一個(gè)模塊中。
[0258]本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例的全部或部分步驟可以通過(guò)硬件來(lái)完成,也可以通過(guò)程序來(lái)指令相關(guān)的硬件完成,所述的程序可以存儲(chǔ)于一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,上述提到的存儲(chǔ)介質(zhì)可以是只讀存儲(chǔ)器,磁盤(pán)或光盤(pán)等。
[0259]最后應(yīng)說(shuō)明的是:以上各實(shí)施例僅用以說(shuō)明本發(fā)明的技術(shù)方案,而非對(duì)其限制;盡管參照前述各實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說(shuō)明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對(duì)前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分或者全部技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的范圍。
【主權(quán)項(xiàng)】
1.一種數(shù)據(jù)存儲(chǔ)方法,其特征在于,所述方法應(yīng)用于存儲(chǔ)系統(tǒng)中,所述存儲(chǔ)系統(tǒng)包括存儲(chǔ)設(shè)備和主機(jī),所述存儲(chǔ)設(shè)備包括第一控制器,所述第一控制器包括緩存保護(hù)區(qū)和第一寫(xiě)緩存,所述緩存保護(hù)區(qū)具有數(shù)據(jù)保護(hù)功能,所述方法包括: 第一控制器接收文件處理請(qǐng)求,將所述文件處理請(qǐng)求拆分成多個(gè)文件操作,分別對(duì)每個(gè)文件操作進(jìn)行文件處理,生成所述文件處理請(qǐng)求對(duì)應(yīng)的多個(gè)文件操作信息; 將所述文件處理請(qǐng)求對(duì)應(yīng)的多個(gè)文件操作信息全部寫(xiě)入所述緩存保護(hù)區(qū); 當(dāng)?shù)谝豢刂破靼l(fā)生故障后又上電時(shí),在所述緩存保護(hù)區(qū)中恢復(fù)所述多個(gè)文件操作信息; 根據(jù)所述多個(gè)文件操作信息獲得數(shù)據(jù)信息,并將所述數(shù)據(jù)信息寫(xiě)入所述第一寫(xiě)緩存,以供所述主機(jī)訪問(wèn)所述數(shù)據(jù)信息。2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述將所述文件處理請(qǐng)求對(duì)應(yīng)的多個(gè)文件操作信息全部寫(xiě)入所述緩存保護(hù)區(qū)包括: 為每個(gè)文件操作信息在所述緩存保護(hù)區(qū)中申請(qǐng)存儲(chǔ)空間; 將所述每個(gè)文件操作信息保存在所述申請(qǐng)的存儲(chǔ)空間中; 確定所述多個(gè)文件操作信息均已保存在對(duì)應(yīng)的存儲(chǔ)空間中; 將所述保存有所述多個(gè)文件操作信息的存儲(chǔ)空間中的數(shù)據(jù),保存在所述緩存保護(hù)區(qū)對(duì)應(yīng)的數(shù)據(jù)結(jié)構(gòu)中。3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述將所述文件處理請(qǐng)求對(duì)應(yīng)的多個(gè)文件操作信息全部寫(xiě)入所述緩存保護(hù)區(qū)包括: 依次將每個(gè)文件操作信息發(fā)送給所述緩存保護(hù)區(qū); 確定所述多個(gè)文件操作信息均已發(fā)送給所述緩存保護(hù)區(qū); 設(shè)置所述緩存保護(hù)區(qū)中接收的所述多個(gè)文件操作信息對(duì)應(yīng)的標(biāo)記,所述標(biāo)記用于表示所述多個(gè)文件操作信息已全部寫(xiě)入所述緩存保護(hù)區(qū)。4.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述存儲(chǔ)設(shè)備包括存儲(chǔ)器,所述存儲(chǔ)器包括保護(hù)區(qū); 所述方法還包括: 當(dāng)?shù)谝豢刂破靼l(fā)生故障時(shí),根據(jù)所述緩存保護(hù)區(qū)對(duì)應(yīng)的數(shù)據(jù)結(jié)構(gòu)確定所述緩存保護(hù)區(qū)中包括所述多個(gè)文件操作信息; 通過(guò)掉電保護(hù)程序?qū)⑺龆鄠€(gè)文件操作信息保存在所述存儲(chǔ)器的保護(hù)區(qū)。5.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述存儲(chǔ)設(shè)備包括存儲(chǔ)器,所述存儲(chǔ)器包括保護(hù)區(qū); 所述方法還包括: 當(dāng)?shù)谝豢刂破靼l(fā)生故障時(shí),根據(jù)所述標(biāo)記確定所述緩存保護(hù)區(qū)中包括所述多個(gè)文件操作信息; 通過(guò)掉電保護(hù)程序?qū)⑺龆鄠€(gè)文件操作信息保存在所述存儲(chǔ)器的保護(hù)區(qū)。6.根據(jù)權(quán)利要求4或5所述的方法,其特征在于,所述在所述緩存保護(hù)區(qū)中恢復(fù)所述多個(gè)文件操作信息包括: 從所述存儲(chǔ)器的保護(hù)區(qū)中獲得所述多個(gè)文件操作信息; 將所述多個(gè)文件操作信息寫(xiě)入所述緩存保護(hù)區(qū)。7.根據(jù)權(quán)利要求1所述的方法,所述在所述緩存保護(hù)區(qū)中恢復(fù)所述多個(gè)文件操作信息包括:跳過(guò)對(duì)所述緩存保護(hù)區(qū)執(zhí)行數(shù)據(jù)初始化的操作。8.根據(jù)權(quán)利要求1所述的方法,其特征在于,在所述根據(jù)所述文件操作信息獲得數(shù)據(jù)信息之后,還包括:刪除所述緩存保護(hù)區(qū)中保存的所述多個(gè)文件操作信息。9.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述存儲(chǔ)設(shè)備包括第二控制器,所述第二控制器包括第二寫(xiě)緩存; 所述方法還包括:第一控制器將所述多個(gè)文件操作信息發(fā)送給所述第二控制器,使得所述第二控制器根據(jù)所述多個(gè)文件操作信息獲得所述文件處理請(qǐng)求對(duì)應(yīng)的數(shù)據(jù)信息,并將所述數(shù)據(jù)信息寫(xiě)入所述第二寫(xiě)緩存。10.根據(jù)權(quán)利要求9所述的方法,其特征在于, 所述第一控制器將所述多個(gè)文件操作信息發(fā)送給所述第二控制器包括: 所述第一控制器向所述第二控制器發(fā)送第一鏡像消息,所述第一鏡像消息包括所述多個(gè)文件操作信息。11.根據(jù)權(quán)利要求9所述的方法,其特征在于, 所述第一控制器將所述多個(gè)文件操作信息發(fā)送給所述第二控制器包括: 所述第一控制器向所述第二控制器發(fā)送多個(gè)第二鏡像消息,每個(gè)所述第二鏡像消息包括所述多個(gè)文件操作信息中的一個(gè)文件操作信息。12.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述第一控制器還包括臨時(shí)緩存;所述方法還包括: 在分別對(duì)每個(gè)文件操作進(jìn)行文件處理,生成所述文件處理請(qǐng)求對(duì)應(yīng)的多個(gè)文件操作信息之后,將所述文件處理請(qǐng)求對(duì)應(yīng)的多個(gè)文件操作信息保存在所述臨時(shí)緩存中; 所述將所述文件處理請(qǐng)求對(duì)應(yīng)的多個(gè)文件操作信息全部寫(xiě)入所述緩存保護(hù)區(qū)包括: 當(dāng)保存在所述臨時(shí)緩存中的所述文件處理請(qǐng)求對(duì)應(yīng)的多個(gè)文件操作信息是所述文件處理請(qǐng)求對(duì)應(yīng)的所有的文件操作信息時(shí),將所述臨時(shí)緩存中保存的所述文件處理請(qǐng)求對(duì)應(yīng)的多個(gè)文件操作信息全部寫(xiě)入所述緩存保護(hù)區(qū)。13.一種數(shù)據(jù)存儲(chǔ)方法,其特征在于,所述方法應(yīng)用于存儲(chǔ)系統(tǒng)中,所述存儲(chǔ)系統(tǒng)包括存儲(chǔ)設(shè)備和主機(jī),所述存儲(chǔ)設(shè)備包括第一控制器、第二控制器和存儲(chǔ)器,所述第二控制器包括寫(xiě)緩存和緩存保護(hù)區(qū),所述緩存保護(hù)區(qū)具有數(shù)據(jù)保護(hù)功能,所述方法包括: 所述第一控制器接收文件處理請(qǐng)求,將所述文件處理請(qǐng)求拆分成多個(gè)文件操作,分別對(duì)每個(gè)文件操作進(jìn)行文件處理,生成所述文件處理請(qǐng)求對(duì)應(yīng)的多個(gè)文件操作信息;將所述文件處理請(qǐng)求對(duì)應(yīng)的多個(gè)文件操作信息發(fā)送給所述第二控制器; 所述第二控制器將所述文件處理請(qǐng)求對(duì)應(yīng)的多個(gè)文件操作信息全部寫(xiě)入所述緩存保護(hù)區(qū);當(dāng)所述第二控制器發(fā)生故障又上電時(shí),在所述緩存保護(hù)區(qū)中恢復(fù)所述多個(gè)文件操作信息;根據(jù)所述緩存保護(hù)區(qū)中保存的所述多個(gè)文件操作信息獲得數(shù)據(jù)信息,將所述數(shù)據(jù)信息寫(xiě)入寫(xiě)緩存,以供第一控制器發(fā)生故障時(shí),主機(jī)訪問(wèn)所述數(shù)據(jù)信息或者第二控制器根據(jù)所述數(shù)據(jù)信息對(duì)所述存儲(chǔ)器執(zhí)行與所述文件處理請(qǐng)求相應(yīng)的操作。14.根據(jù)權(quán)利要求13所述的方法,其特征在于,所述將所