專(zhuān)利名稱:計(jì)算機(jī)系統(tǒng)、盤(pán)裝置以及數(shù)據(jù)更新控制方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)系統(tǒng)中的數(shù)據(jù)更新控制技術(shù),所述計(jì)算機(jī)系統(tǒng)包括確保數(shù)據(jù)完整性的日志文件系統(tǒng)。
背景技術(shù):
近年來(lái),隨著互聯(lián)網(wǎng)普及度的增加,涉及公司和客戶之間的事務(wù)或者公司之間的事務(wù)的大多數(shù)工作已經(jīng)使用計(jì)算機(jī)處理。對(duì)事務(wù)進(jìn)行計(jì)算機(jī)處理需要存儲(chǔ)各種數(shù)據(jù)的存儲(chǔ)裝置具有高可靠性和高響應(yīng)性。
RAID系統(tǒng)使兩個(gè)或更多個(gè)盤(pán)驅(qū)動(dòng)器能夠作為一個(gè)邏輯卷,并且提供高可靠性和性能。已經(jīng)提出了用于增強(qiáng)RAID系統(tǒng)的響應(yīng)性的其他多種技術(shù)(參見(jiàn),例如,Jpn.Pat.Appln.KOKAI出版物Nos.11-53235和2001-75741)。
另一方面,已經(jīng)開(kāi)發(fā)出多種技術(shù),所述多種技術(shù)用于即使在包括例如應(yīng)用RAID系統(tǒng)的存儲(chǔ)裝置以及在所述存儲(chǔ)裝置中存儲(chǔ)數(shù)據(jù)的主機(jī)的計(jì)算機(jī)系統(tǒng)中發(fā)生故障時(shí),也會(huì)維持文件系統(tǒng)的一致性。日志系統(tǒng)是這些技術(shù)中的一種。
在日志文件系統(tǒng)中,文件系統(tǒng)的元數(shù)據(jù)將會(huì)被更新,更新之前和更新期間的數(shù)據(jù)內(nèi)容被記錄在日志中。因此,即使在因意外掉電等引起系統(tǒng)異常終止的情況下,當(dāng)系統(tǒng)重新啟動(dòng)時(shí),在系統(tǒng)異常終止時(shí)正在進(jìn)行更新的數(shù)據(jù)可以在日志中被指定,并且可以快速恢復(fù)到一致的狀態(tài)。
已經(jīng)提出了另一種方法,其中在日志中不僅包括元數(shù)據(jù)而且包括用戶數(shù)據(jù)。在所述方法中,在掉電或者系統(tǒng)異常終止的情況下也可以確保數(shù)據(jù)的完整性。
在元數(shù)據(jù)和用戶數(shù)據(jù)都被存儲(chǔ)在日志中的方法中,在元數(shù)據(jù)和用戶數(shù)據(jù)被作為日志寫(xiě)入盤(pán)之后,實(shí)際的元數(shù)據(jù)和用戶數(shù)據(jù)才被寫(xiě)入盤(pán)。這種二級(jí)寫(xiě)入提供原子性單個(gè)用戶數(shù)據(jù)寫(xiě)入操作被成功地完成或者被取消而沒(méi)有改變。如果直接嘗試寫(xiě)入實(shí)際的元數(shù)據(jù)和用戶數(shù)據(jù)并且寫(xiě)入失敗,那么將不可能恢復(fù)由于不完全寫(xiě)入而丟失的數(shù)據(jù)(例如,用更新數(shù)據(jù)來(lái)改變的數(shù)據(jù))。
由于這一原因,在這種方法中,元數(shù)據(jù)和用戶數(shù)據(jù)在盤(pán)中寫(xiě)入兩次。因此,存在這樣的問(wèn)題,即,與不使用日志的普通文件系統(tǒng)相比較,對(duì)盤(pán)的數(shù)據(jù)傳送量增加一倍,并且在該過(guò)程中執(zhí)行了兩次寫(xiě)入。在包括上述的Jpn.Pat.Appln.KOKAI出版物Nos.11-53235和2001-75741的現(xiàn)有技術(shù)中,已注意到如何滿足關(guān)于單獨(dú)寫(xiě)入操作的高可靠性和高響應(yīng)性的要求。而還沒(méi)有注意到對(duì)整個(gè)系統(tǒng)中的寫(xiě)入效率的增強(qiáng),對(duì)所述整個(gè)系統(tǒng)應(yīng)用在日志中存儲(chǔ)元數(shù)據(jù)和用戶數(shù)據(jù)的文件系統(tǒng)。
發(fā)明內(nèi)容
已經(jīng)考慮到上述問(wèn)題而做出本發(fā)明,并且本發(fā)明的目的是提供一種計(jì)算機(jī)系統(tǒng)、盤(pán)裝置和數(shù)據(jù)更新控制方法,其增強(qiáng)記錄用戶數(shù)據(jù)作為日志的日志系統(tǒng)的寫(xiě)入性能,同時(shí)維持日志系統(tǒng)的高可靠性。
為了實(shí)現(xiàn)該目的,根據(jù)本發(fā)明的一個(gè)方面,提供一種包括盤(pán)裝置和包括日志文件系統(tǒng)的主機(jī)的計(jì)算機(jī)系統(tǒng),所述日志文件系統(tǒng)在預(yù)處理過(guò)程中在所述盤(pán)裝置中記錄日志,所述日志包括用于當(dāng)更新所述盤(pán)裝置上的數(shù)據(jù)時(shí)確保所述盤(pán)裝置上的數(shù)據(jù)完整性的更新數(shù)據(jù),所述盤(pán)裝置包括能夠永久存儲(chǔ)所述日志的存儲(chǔ)單元、被配置在存儲(chǔ)單元中存儲(chǔ)從主機(jī)發(fā)送的日志的存儲(chǔ)控制單元、以及被配置根據(jù)來(lái)自主機(jī)的指令來(lái)執(zhí)行與存儲(chǔ)單元中存儲(chǔ)的日志相對(duì)應(yīng)的數(shù)據(jù)更新的更新單元,而所述主機(jī)的日志文件系統(tǒng)包括被配置每次更新所述盤(pán)裝置上的數(shù)據(jù)時(shí)執(zhí)行寫(xiě)入與所述更新數(shù)據(jù)相對(duì)應(yīng)的日志的寫(xiě)入單元、以及被配置向所述盤(pán)裝置通知執(zhí)行與被寫(xiě)入的日志相對(duì)應(yīng)的數(shù)據(jù)更新的指令的通知單元。
根據(jù)本發(fā)明的另一個(gè)方面,提供一種包括盤(pán)裝置和包括日志文件系統(tǒng)的主機(jī)的計(jì)算機(jī)系統(tǒng),所述日志文件系統(tǒng)在預(yù)處理過(guò)程中在所述盤(pán)裝置中記錄日志,所述日志包括用于當(dāng)更新所述盤(pán)裝置上的數(shù)據(jù)時(shí)確保所述盤(pán)裝置上的數(shù)據(jù)完整性的更新數(shù)據(jù),所述盤(pán)裝置包括轉(zhuǎn)換映射表,所述轉(zhuǎn)換映射表存儲(chǔ)盤(pán)上的邏輯地址和盤(pán)上的物理地址之間的對(duì)應(yīng)關(guān)系;存儲(chǔ)控制單元,其被配置在盤(pán)上的空白區(qū)域中存儲(chǔ)從主機(jī)發(fā)送的日志,在所述盤(pán)上執(zhí)行與所述日志對(duì)應(yīng)的數(shù)據(jù)更新;以及操作單元,其被配置基于來(lái)自主機(jī)的指令來(lái)操作所述轉(zhuǎn)換映射表,以便將存儲(chǔ)在盤(pán)上空白區(qū)域的日志中包括的更新數(shù)據(jù)改變?yōu)閷?shí)際的更新數(shù)據(jù),而所述主機(jī)的日志文件系統(tǒng)包括被配置每次更新所述盤(pán)裝置上的數(shù)據(jù)時(shí)執(zhí)行寫(xiě)入與更新數(shù)據(jù)相對(duì)應(yīng)的日志的寫(xiě)入單元、以及被配置向所述盤(pán)裝置通知執(zhí)行與被寫(xiě)入的日志相對(duì)應(yīng)的數(shù)據(jù)更新的指令的通知單元。
本發(fā)明可以提供一種計(jì)算機(jī)系統(tǒng)、盤(pán)裝置和數(shù)據(jù)更新控制方法,其增強(qiáng)記錄用戶數(shù)據(jù)作為日志的日志系統(tǒng)的寫(xiě)入性能,同時(shí)維持日志系統(tǒng)的高可靠性。
本發(fā)明的其它目的和優(yōu)點(diǎn)將在隨后的描述中闡述并且將在描述中部分地變得明顯,或者可以從本發(fā)明的實(shí)施中了解本發(fā)明的目的和優(yōu)點(diǎn)??梢酝ㄟ^(guò)下文中具體指出的手段和組合而實(shí)現(xiàn)和獲得本發(fā)明的目的和優(yōu)點(diǎn)。
被并入并構(gòu)成說(shuō)明書(shū)的一部分的
了本發(fā)明的實(shí)施例,并且與上面給出的一般描述和以下給出的實(shí)施例的詳細(xì)描述一起用來(lái)解釋本發(fā)明的原理。
圖1示出根據(jù)本發(fā)明的第一實(shí)施例的計(jì)算機(jī)系統(tǒng)的配置;圖2是說(shuō)明由第一實(shí)施例的計(jì)算機(jī)系統(tǒng)執(zhí)行的提交過(guò)程的具體處理過(guò)程的流程圖;圖3示出第一實(shí)施例的計(jì)算機(jī)系統(tǒng)中記錄的日志的結(jié)構(gòu);圖4是說(shuō)明由第一實(shí)施例的計(jì)算機(jī)系統(tǒng)執(zhí)行的檢查點(diǎn)過(guò)程的具體處理過(guò)程的流程圖;
圖5是說(shuō)明由第一實(shí)施例的計(jì)算機(jī)系統(tǒng)執(zhí)行的用于向盤(pán)中寫(xiě)入日志內(nèi)容的寫(xiě)入過(guò)程的具體過(guò)程的流程圖;圖6A和6B是用于說(shuō)明第一實(shí)施例的計(jì)算機(jī)系統(tǒng)中減少數(shù)據(jù)傳輸?shù)姆桨傅氖疽鈭D;圖7是說(shuō)明由第一實(shí)施例的計(jì)算機(jī)系統(tǒng)執(zhí)行的恢復(fù)過(guò)程的具體處理過(guò)程的流程圖;圖8示出第一實(shí)施例的計(jì)算機(jī)系統(tǒng)的修改的配置;圖9示出根據(jù)本發(fā)明的第二實(shí)施例的計(jì)算機(jī)系統(tǒng)的配置;圖10示出在第二實(shí)施例的計(jì)算機(jī)系統(tǒng)中使用的轉(zhuǎn)換映射表的條目的示例;以及圖11是由第二實(shí)施例的計(jì)算機(jī)系統(tǒng)的盤(pán)控制單元執(zhí)行的與轉(zhuǎn)換映射表相關(guān)的過(guò)程的流程圖。
具體實(shí)施例方式
本發(fā)明的實(shí)施例將參照附圖進(jìn)行描述。
(第一實(shí)施例)描述本發(fā)明的第一實(shí)施例。圖1示出根據(jù)第一實(shí)施例的計(jì)算機(jī)系統(tǒng)的配置。
主機(jī)1包括日志文件系統(tǒng)、應(yīng)用程序、存儲(chǔ)器管理功能、過(guò)程管理功能、網(wǎng)絡(luò)管理功能和用于管理到盤(pán)裝置的連接的設(shè)備驅(qū)動(dòng)器。圖1僅僅示出了與第一實(shí)施例的描述相關(guān)的文件系統(tǒng)高速緩存11和日志文件系統(tǒng)12。
主機(jī)1通過(guò)總線(例如SCSI總線、光纖信道)或者通過(guò)傳輸媒體與盤(pán)裝置2連接。主機(jī)1將盤(pán)裝置2識(shí)別作為塊設(shè)備并訪問(wèn)它。
在主機(jī)1的存儲(chǔ)器上提供文件系統(tǒng)高速緩存11,并且其被用作為存儲(chǔ)盤(pán)裝置2上呈現(xiàn)的數(shù)據(jù)的高速緩存。日志文件系統(tǒng)12是處理來(lái)自應(yīng)用程序和操作系統(tǒng)的對(duì)盤(pán)的訪問(wèn)請(qǐng)求的文件系統(tǒng)。一接收到訪問(wèn)請(qǐng)求,日志文件系統(tǒng)12就根據(jù)所述訪問(wèn)請(qǐng)求訪問(wèn)文件系統(tǒng)高速緩存11或者盤(pán)裝置2并且返回響應(yīng)。
另一方面,盤(pán)裝置2包括盤(pán)控制單元21、非易失性存儲(chǔ)媒體22和盤(pán)23。盤(pán)控制單元21從主機(jī)1接收訪問(wèn)命令,例如SCSI命令,訪問(wèn)盤(pán)23并且把響應(yīng)返回到主機(jī)1。
非易失性存儲(chǔ)媒體22存儲(chǔ)包括文件操作和被稱作″日志″的數(shù)據(jù)的控制信息。存儲(chǔ)器被用作為存儲(chǔ)媒體22,其內(nèi)容即使在掉電等情況下仍不會(huì)丟失。例如,諸如NVRAM的非易失性存儲(chǔ)媒體或者具有備用電池的存儲(chǔ)器可被用作為存儲(chǔ)媒體22。簡(jiǎn)而言之,可以使用可永久存儲(chǔ)數(shù)據(jù)的任何類(lèi)型的存儲(chǔ)器。在本說(shuō)明書(shū)中,使用術(shù)語(yǔ)″非易失性存儲(chǔ)媒體″的目的是為了易于理解。
在本實(shí)施例的計(jì)算機(jī)系統(tǒng)中,涉及文件系統(tǒng)的過(guò)程不是必需的。因此,下面的描述集中于涉及日志的過(guò)程。
涉及日志的過(guò)程包括下面的主要過(guò)程(1)文件數(shù)據(jù)或者文件系統(tǒng)元數(shù)據(jù)的更新過(guò)程,(a)當(dāng)在文件上執(zhí)行操作時(shí),生成日志并寫(xiě)入盤(pán)中(提交過(guò)程),(b)將實(shí)際數(shù)據(jù)反映到盤(pán)上(檢查點(diǎn)過(guò)程),以及(2)在發(fā)生意外掉電后,基于日志進(jìn)行文件系統(tǒng)的恢復(fù)(恢復(fù)過(guò)程)。
下面將說(shuō)明這些過(guò)程。
*提交過(guò)程提交過(guò)程是將作為文件操作結(jié)果而生成的盤(pán)數(shù)據(jù)的更新部分寫(xiě)入日志的過(guò)程。當(dāng)完成文件數(shù)據(jù)或者文件系統(tǒng)元數(shù)據(jù)的更新時(shí),所請(qǐng)求操作的結(jié)果最后由提交過(guò)程提交。即使在意外掉電或者系統(tǒng)崩潰的情況下,仍能確保反映出所請(qǐng)求操作的結(jié)果。
通常情況下,在不受掉電等影響的非易失性存儲(chǔ)媒體中存儲(chǔ)更新數(shù)據(jù)。從而執(zhí)行提交過(guò)程。無(wú)需將更新數(shù)據(jù)反映在真實(shí)的盤(pán)上。如果數(shù)據(jù)保持與后面過(guò)程操作一致并且不因?yàn)榈綦姷榷鴣G失,則這樣的數(shù)據(jù)可以以任何形式存儲(chǔ)。
圖2是說(shuō)明提交過(guò)程具體處理過(guò)程的流程圖。
如果主機(jī)1的日志文件系統(tǒng)12接收到對(duì)文件進(jìn)行更新的更新請(qǐng)求(步驟A1),則日志文件系統(tǒng)12首先更新在主機(jī)1的存儲(chǔ)器上提供的文件系統(tǒng)高速緩存11上的數(shù)據(jù)(步驟A2)。然后,日志文件系統(tǒng)12指示盤(pán)裝置2的盤(pán)控制單元21存儲(chǔ)盤(pán)裝置2中將由步驟A1的操作而改變的數(shù)據(jù)作為日志。另一方面,已接收該指令的盤(pán)裝置2的盤(pán)控制單元21在非易失性存儲(chǔ)媒體22中存儲(chǔ)日志(步驟A3)。日志文件系統(tǒng)12返回響應(yīng),其指示完成與步驟A1中的操作有關(guān)的操作(步驟A4)。
文件系統(tǒng)高速緩存11中的數(shù)據(jù)將由隨后要描述的檢查點(diǎn)過(guò)程反映到盤(pán)裝置2上。與通常的文件系統(tǒng)不同,不用執(zhí)行在適當(dāng)?shù)臅r(shí)間把文件系統(tǒng)高速緩存11中的數(shù)據(jù)輸出到盤(pán)的這樣的過(guò)程。
當(dāng)在完成步驟A1到A3的過(guò)程以前可能發(fā)生的掉電的情況時(shí),仍不返回指示操作完成的響應(yīng),并且對(duì)盤(pán)上數(shù)據(jù)的處理沒(méi)有在完成狀態(tài)下中斷。因此,即使數(shù)據(jù)處理操作的結(jié)果沒(méi)有反映到盤(pán)上,也不會(huì)發(fā)生問(wèn)題。另一方面,在從步驟A3過(guò)程的完成到檢查點(diǎn)過(guò)程的完成期間,數(shù)據(jù)被記錄在高速緩存和日志中(稍后描述)。在這種情況下,如果發(fā)生掉電,則文件系統(tǒng)高速緩存11上的數(shù)據(jù)就會(huì)丟失。然而,如將要稍后描述的那樣,數(shù)據(jù)本身不會(huì)丟失,因?yàn)椴襟EA1的操作通過(guò)基于非易失性存儲(chǔ)媒體22中存儲(chǔ)的日志來(lái)更新盤(pán)上的數(shù)據(jù)而被反映到盤(pán)裝置2中。
圖3示出步驟A3中記錄的日志的結(jié)構(gòu)。如圖3所示,日志包括頭部和主體。頭部存儲(chǔ)關(guān)于盤(pán)裝置2上的位置和存儲(chǔ)在日志主體中的數(shù)據(jù)的大小的記錄信息。另一方面,所述主體存儲(chǔ)將在盤(pán)裝置2中存儲(chǔ)的塊的映象。因此,所述主體由用于存取盤(pán)裝置2的最小存取單元(例如就盤(pán)來(lái)說(shuō)為扇區(qū))的多種大小的數(shù)據(jù)組成。
*檢查點(diǎn)過(guò)程檢查點(diǎn)過(guò)程是用于將操作請(qǐng)求的結(jié)果反映到盤(pán)裝置2的實(shí)際位置上的文件系統(tǒng)或者文件的過(guò)程。在現(xiàn)有技術(shù)的檢查點(diǎn)過(guò)程中,將文件系統(tǒng)高速緩存11的數(shù)據(jù)寫(xiě)入盤(pán)裝置2中,從而使盤(pán)裝置2中的數(shù)據(jù)與過(guò)程操作的結(jié)果相對(duì)應(yīng)。相比之下,在本實(shí)施例的計(jì)算機(jī)系統(tǒng)的檢查點(diǎn)過(guò)程中,盤(pán)裝置2的盤(pán)控制單元21引用日志的數(shù)據(jù)并執(zhí)行向盤(pán)中寫(xiě)入。從而,減少了主機(jī)1和盤(pán)裝置2之間的數(shù)據(jù)傳輸。這一點(diǎn)體現(xiàn)在本實(shí)施例的計(jì)算機(jī)系統(tǒng)中。
圖4是說(shuō)明檢查點(diǎn)過(guò)程的具體處理過(guò)程的流程圖。
開(kāi)始時(shí),主機(jī)1的日志文件系統(tǒng)12檢查是否滿足啟動(dòng)檢查點(diǎn)過(guò)程的條件(步驟B1)。啟動(dòng)檢查點(diǎn)過(guò)程的條件的例子如下。
(1)日志存儲(chǔ)區(qū)滿,不能存儲(chǔ)更多的日志。
由于缺少空白空間禁用了對(duì)文件系統(tǒng)或者文件的操作請(qǐng)求的執(zhí)行,因此所述條件是必要的,以在日志區(qū)域中創(chuàng)建空白空間。
(2)在文件系統(tǒng)高速緩存中不存在空白空間。
如上面(1)中所述,缺少空白空間禁用了對(duì)文件系統(tǒng)或者文件的操作請(qǐng)求的執(zhí)行。
(3)其它(例如預(yù)定時(shí)間間隔的流逝)。
從可靠性的角度,需要在例如預(yù)定時(shí)間間隔內(nèi)維持盤(pán)中的數(shù)據(jù)的匹配。
如果滿足上述啟動(dòng)檢查點(diǎn)過(guò)程的條件中的任何一個(gè)(步驟B1中為是),則日志文件系統(tǒng)12指示盤(pán)裝置2的盤(pán)控制單元21執(zhí)行檢查點(diǎn)過(guò)程(步驟B2)。另一方面,當(dāng)接收到指令時(shí),盤(pán)控制單元21將與非易失性存儲(chǔ)媒體22中存儲(chǔ)的所有日志相對(duì)應(yīng)的內(nèi)容寫(xiě)入盤(pán)23中(步驟B3),并且返回指示檢查點(diǎn)過(guò)程完成的響應(yīng)(步驟B4)。
圖5是說(shuō)明步驟B3中執(zhí)行的將日志的內(nèi)容寫(xiě)入盤(pán)23中的詳細(xì)處理過(guò)程的流程圖。
開(kāi)始時(shí),盤(pán)控制單元21檢查是否存在仍要處理的未處理日志(步驟C1)。如果存在未處理的日志(步驟C1中為是),則盤(pán)控制單元21引用未處理日志的頭部并且根據(jù)盤(pán)23上的數(shù)據(jù)位置和數(shù)據(jù)大小將在主體中存儲(chǔ)的數(shù)據(jù)寫(xiě)入盤(pán)23中(步驟C2)。只要仍留有未處理日志,盤(pán)控制單元21就重復(fù)從步驟C1開(kāi)始的過(guò)程。如果部存在未處理的日志(步驟C1中為否),則盤(pán)控制單元21記錄所有日志中的數(shù)據(jù)的無(wú)效性(步驟C3)。執(zhí)行此步驟以便完成對(duì)于盤(pán)的數(shù)據(jù)匹配過(guò)程。
具體而言,通過(guò)執(zhí)行根據(jù)此過(guò)程的檢查點(diǎn)過(guò)程,可以減少在主機(jī)1和盤(pán)裝置2之間的數(shù)據(jù)傳輸。圖6A和6B是說(shuō)明在本實(shí)施例的計(jì)算機(jī)系統(tǒng)中減少數(shù)據(jù)傳輸?shù)姆桨傅氖疽鈭D。圖6A說(shuō)明根據(jù)上面所描述的過(guò)程執(zhí)行檢查點(diǎn)過(guò)程的情況下的數(shù)據(jù)傳輸,而圖6B說(shuō)明根據(jù)傳統(tǒng)過(guò)程執(zhí)行檢查點(diǎn)過(guò)程的情況下的數(shù)據(jù)傳輸。如圖6A和圖6B所示,在現(xiàn)有技術(shù)中,當(dāng)要執(zhí)行檢查點(diǎn)過(guò)程時(shí),直到某一時(shí)間點(diǎn)時(shí)已經(jīng)寫(xiě)入的所有數(shù)據(jù)需要重新傳輸。相比之下,在本實(shí)施例的計(jì)算機(jī)系統(tǒng)中,當(dāng)日志文件系統(tǒng)12只向盤(pán)控制單元21傳輸指示執(zhí)行檢查點(diǎn)過(guò)程的通知時(shí)它也應(yīng)該有上述能力。
在這個(gè)例子中,日志存儲(chǔ)在非易失性存儲(chǔ)媒體22中。即使日志存儲(chǔ)在盤(pán)23中遠(yuǎn)離實(shí)際數(shù)據(jù),本發(fā)明的計(jì)算機(jī)系統(tǒng)的數(shù)據(jù)更新控制方法也可以被有效地實(shí)現(xiàn)。
*恢復(fù)過(guò)程恢復(fù)過(guò)程是用于恢復(fù)由于意外掉電、系統(tǒng)異常終止等導(dǎo)致的對(duì)文件系統(tǒng)或者文件的操作過(guò)程沒(méi)有完全完成時(shí)的狀態(tài)的過(guò)程。日志文件系統(tǒng)12通過(guò)向盤(pán)裝置2寫(xiě)入作為日志而記錄的數(shù)據(jù)來(lái)執(zhí)行恢復(fù)過(guò)程。在通常情況下,當(dāng)在啟動(dòng)時(shí)檢測(cè)到全部過(guò)程在上一次操作時(shí)沒(méi)有被正常執(zhí)行時(shí),執(zhí)行所述恢復(fù)過(guò)程。
圖7是說(shuō)明恢復(fù)過(guò)程的具體處理過(guò)程的流程圖。
開(kāi)始時(shí),主機(jī)1的日志文件系統(tǒng)12指示盤(pán)裝置2的盤(pán)控制單元21執(zhí)行恢復(fù)過(guò)程(步驟D1)。另一方面,在接收到所述指令時(shí),盤(pán)控制單元21向盤(pán)23中寫(xiě)入對(duì)應(yīng)于存儲(chǔ)在非易失性存儲(chǔ)媒體22中的所有日志的內(nèi)容(步驟D2)。然后,盤(pán)控制單元21返回指示恢復(fù)過(guò)程完成的響應(yīng)(步驟D3)。步驟D2中執(zhí)行的向盤(pán)中寫(xiě)入日志的過(guò)程與和檢查點(diǎn)過(guò)程有關(guān)的已經(jīng)描述的圖4中的步驟B3的操作過(guò)程相同。
如上面所描述的,根據(jù)本實(shí)施例的計(jì)算機(jī)系統(tǒng),在保證以記錄用戶數(shù)據(jù)作為日志的日志系統(tǒng)的高可靠性的同時(shí),能夠提高日志系統(tǒng)的效率。
同時(shí),通常情況下,盤(pán)裝置2包括用于存儲(chǔ)要向盤(pán)23中寫(xiě)入的數(shù)據(jù)的高速緩存。為增強(qiáng)盤(pán)裝置2的可靠性,采取措施來(lái)防止由于掉電等導(dǎo)致的高速緩存中數(shù)據(jù)的丟失并且保護(hù)高速緩存中的數(shù)據(jù)。因此,如圖8所示,作為所述實(shí)施例的修改,把高速緩存分配在非易失性存儲(chǔ)媒體22中是有效的。即,存儲(chǔ)日志的非易失性存儲(chǔ)媒體22的區(qū)域也用作盤(pán)23的高速緩存。
在該修改中,應(yīng)注意到在相同的非易失性存儲(chǔ)媒體上存在日志和盤(pán)高速緩存這樣的事實(shí)。該修改意在快速執(zhí)行向盤(pán)23中寫(xiě)入日志的寫(xiě)入過(guò)程。更具體地,在通過(guò)盤(pán)裝置2的盤(pán)控制單元21寫(xiě)入日志數(shù)據(jù)的寫(xiě)入過(guò)程中,非易失性存儲(chǔ)媒體22上的日志數(shù)據(jù)不會(huì)被再次寫(xiě)入盤(pán)23,但是日志數(shù)據(jù)仍然同樣地保留在盤(pán)高速緩存的區(qū)域中。這通過(guò)使盤(pán)控制單元21更新用于管理盤(pán)高速緩存的區(qū)域的管理數(shù)據(jù)(例如,盤(pán)高速緩存目錄)來(lái)實(shí)現(xiàn)。
作為盤(pán)高速緩存來(lái)管理的日志數(shù)據(jù)經(jīng)延遲后被寫(xiě)入盤(pán)23中,和通常的高速緩存數(shù)據(jù)被寫(xiě)入盤(pán)中的情況下所使用的方式相同。甚至在意外掉電等情況下,盤(pán)控制單元21也執(zhí)行用于在高速緩存中的數(shù)據(jù)和盤(pán)中的數(shù)據(jù)之間建立匹配的過(guò)程,作為用于高速緩存數(shù)據(jù)的恢復(fù)過(guò)程。
如上面所述,通過(guò)將日志數(shù)據(jù)轉(zhuǎn)換為盤(pán)高速緩存數(shù)據(jù),檢查點(diǎn)過(guò)程可以被高速執(zhí)行而無(wú)需等待用于向盤(pán)中實(shí)際寫(xiě)入日志數(shù)據(jù)的過(guò)程完成。
(第二實(shí)施例)接下來(lái),描述本發(fā)明的第二實(shí)施例。圖9示出根據(jù)第二實(shí)施例的計(jì)算機(jī)系統(tǒng)的配置。
在第一實(shí)施例的計(jì)算機(jī)系統(tǒng)中,如果在非易失性存儲(chǔ)媒體中提供日志,則它應(yīng)該有上述能力,并且沒(méi)有必要將日志作為文件存儲(chǔ)在盤(pán)23上。另一方面,在第二實(shí)施例的計(jì)算機(jī)系統(tǒng)中,日志作為文件被存儲(chǔ)在盤(pán)23上,以便應(yīng)付更新數(shù)據(jù)的量非常大以至于日志量也變得非常大的情況。因此,在第二實(shí)施例的計(jì)算機(jī)系統(tǒng)中,是否在盤(pán)裝置2中提供被用作為高速緩存的非易失性存儲(chǔ)媒體無(wú)關(guān)緊要。
首先,給出轉(zhuǎn)換映射表24和使用轉(zhuǎn)換映射表24的第二實(shí)施例的計(jì)算機(jī)系統(tǒng)的盤(pán)控制單元21的操作原理的說(shuō)明。
轉(zhuǎn)換映射表24存儲(chǔ)從主機(jī)1訪問(wèn)的盤(pán)23的地址(邏輯地址)和盤(pán)23中的實(shí)際存儲(chǔ)位置(物理地址)。通常,邏輯地址與物理地址相對(duì)應(yīng)。在轉(zhuǎn)換映射表24包括如圖10所示的條目的情況下,位于邏輯地址A1的數(shù)據(jù)被存儲(chǔ)在物理地址B1。因此,至于對(duì)邏輯地址A的訪問(wèn),盤(pán)控制單元21實(shí)際上執(zhí)行的是對(duì)物理地址B的訪問(wèn)。圖11是說(shuō)明涉及轉(zhuǎn)換映射表24的盤(pán)控制單元21的過(guò)程的流程圖。
盤(pán)控制單元21檢查是否在轉(zhuǎn)換映射表24中提供邏輯地址(步驟E1)。如果提供了邏輯地址(步驟E1中為是),則盤(pán)控制單元21從轉(zhuǎn)換映射表24中獲得相應(yīng)的物理地址,并且確定所述物理地址是要訪問(wèn)的地址(步驟E2)。如果在轉(zhuǎn)換映射表24中不提供邏輯地址(步驟E1中為否),則盤(pán)控制單元21確定邏輯地址是要訪問(wèn)的地址(步驟E3)。盤(pán)控制單元21執(zhí)行步驟E2或者步驟E3中所確定的對(duì)要訪問(wèn)地址的實(shí)際訪問(wèn)(步驟E4)。
以下,將只描述不同于第一實(shí)施例的計(jì)算機(jī)系統(tǒng)的操作的部分。
提交過(guò)程、檢查點(diǎn)過(guò)程和恢復(fù)過(guò)程所使用的日志數(shù)據(jù)存儲(chǔ)在盤(pán)23上提供的日志文件中。這相當(dāng)于將第一實(shí)施例中存儲(chǔ)在非易失性存儲(chǔ)媒體22中的日志數(shù)據(jù)移到盤(pán)23中的情況。由于保證了盤(pán)23上文件的非易失性,因此確保了與上面所描述的情況相同的可靠性。
對(duì)于在檢查點(diǎn)過(guò)程中將反映盤(pán)23上的日志數(shù)據(jù)的過(guò)程,第二實(shí)施例的計(jì)算機(jī)系統(tǒng)不同于第一實(shí)施例的計(jì)算機(jī)系統(tǒng)。
在檢查點(diǎn)過(guò)程中,盤(pán)控制單元21在轉(zhuǎn)換映射表24中登記一對(duì)邏輯地址以及一個(gè)物理地址,所述邏輯地址與頭部中存儲(chǔ)的有關(guān)日志文件的日志數(shù)據(jù)中的每一個(gè)的地址相對(duì)應(yīng),所述物理地址與盤(pán)23上的日志主體中存儲(chǔ)的地址相對(duì)應(yīng)(這個(gè)過(guò)程在圖4的步驟B3中執(zhí)行)。
簡(jiǎn)而言之,僅通過(guò)操作轉(zhuǎn)換映射表24就可以將日志文件上的數(shù)據(jù)登記為盤(pán)上的實(shí)際數(shù)據(jù),而不需要執(zhí)行新的數(shù)據(jù)寫(xiě)入或者復(fù)制。從減少主機(jī)1和盤(pán)裝置2之間的數(shù)據(jù)傳輸?shù)慕嵌?,第二?shí)施例的計(jì)算機(jī)系統(tǒng)與第一實(shí)施例的計(jì)算機(jī)系統(tǒng)類(lèi)似。但是可以減少盤(pán)裝置2中對(duì)盤(pán)23的數(shù)據(jù)寫(xiě)入量。
本領(lǐng)域的技術(shù)人員將很容易地想到其他優(yōu)點(diǎn)和修改。因此,本發(fā)明在其更廣的方面中并不局限于這里所示出和描述的典型實(shí)施例和具體細(xì)節(jié)。因此,在不脫離由所附權(quán)利要求及其等價(jià)物所定義的主要發(fā)明概念的精神和范圍的情況下,可以做出多種修改。
權(quán)利要求
1.一種計(jì)算機(jī)系統(tǒng),包括盤(pán)裝置和主機(jī),所述主機(jī)包括在預(yù)處理過(guò)程中在盤(pán)裝置中記錄日志的日志文件系統(tǒng),所述日志包括更新數(shù)據(jù)以確保當(dāng)更新盤(pán)裝置上的數(shù)據(jù)時(shí)盤(pán)裝置上的數(shù)據(jù)的完整性,所述盤(pán)裝置的特征在于包括存儲(chǔ)器單元,所述存儲(chǔ)器單元能夠永久存儲(chǔ)日志;存儲(chǔ)控制單元,所述存儲(chǔ)控制單元被配置將從主機(jī)發(fā)送的日志存儲(chǔ)到所述存儲(chǔ)器單元中;以及更新單元,所述更新單元被配置根據(jù)來(lái)自主機(jī)的指令來(lái)執(zhí)行與所述存儲(chǔ)器單元中存儲(chǔ)的日志相對(duì)應(yīng)的數(shù)據(jù)更新,以及所述主機(jī)的日志文件系統(tǒng)包括寫(xiě)入單元,所述寫(xiě)入單元被配置每當(dāng)更新盤(pán)裝置上的數(shù)據(jù)時(shí),執(zhí)行向盤(pán)裝置寫(xiě)入與所述數(shù)據(jù)更新相對(duì)應(yīng)的日志;以及通知單元,所述通知單元被配置向盤(pán)裝置通知執(zhí)行與被寫(xiě)入的日志相對(duì)應(yīng)的數(shù)據(jù)更新的指令。
2.一種計(jì)算機(jī)系統(tǒng),包括盤(pán)裝置和主機(jī),所述主機(jī)包括在預(yù)處理過(guò)程中在盤(pán)裝置中記錄日志的日志文件系統(tǒng),所述日志包括更新數(shù)據(jù)以確保當(dāng)更新盤(pán)裝置上的數(shù)據(jù)時(shí)盤(pán)裝置上的數(shù)據(jù)的完整性,所述盤(pán)裝置的特征在于包括轉(zhuǎn)換映射表,所述轉(zhuǎn)換映射表存儲(chǔ)盤(pán)上的邏輯地址和盤(pán)上的物理地址之間的對(duì)應(yīng)關(guān)系;存儲(chǔ)控制單元,所述存儲(chǔ)控制單元被配置在所述盤(pán)上的空白區(qū)域中存儲(chǔ)從主機(jī)發(fā)送的日志,在所述盤(pán)上執(zhí)行與所述日志對(duì)應(yīng)的數(shù)據(jù)更新;以及操作單元,所述操作單元被配置基于來(lái)自主機(jī)的指令來(lái)操作所述轉(zhuǎn)換映射表,以便將存儲(chǔ)在所述盤(pán)上的空白區(qū)域中的日志中包括的更新數(shù)據(jù)改變?yōu)閷?shí)際的更新數(shù)據(jù),以及所述主機(jī)的日志文件系統(tǒng)包括寫(xiě)入單元,所述寫(xiě)入單元被配置每當(dāng)更新盤(pán)裝置上的數(shù)據(jù)時(shí),執(zhí)行向盤(pán)裝置寫(xiě)入與所述數(shù)據(jù)更新相對(duì)應(yīng)的日志;以及通知單元,所述通知單元被配置向盤(pán)裝置通知執(zhí)行與被寫(xiě)入的日志相對(duì)應(yīng)的數(shù)據(jù)更新的指令。
3.一種盤(pán)裝置,其特征在于包括存儲(chǔ)器單元,所述存儲(chǔ)器單元能夠永久存儲(chǔ)包括更新數(shù)據(jù)的日志,所述更新數(shù)據(jù)在數(shù)據(jù)更新時(shí)在預(yù)處理過(guò)程中進(jìn)行記錄,從而確保數(shù)據(jù)的完整性;存儲(chǔ)控制單元,所述存儲(chǔ)控制單元被配置將從主機(jī)發(fā)送的日志存儲(chǔ)到所述存儲(chǔ)器單元中;以及更新單元,所述更新單元被配置根據(jù)來(lái)自主機(jī)的指令來(lái)執(zhí)行與所述存儲(chǔ)器單元中存儲(chǔ)的日志相對(duì)應(yīng)的數(shù)據(jù)更新。
4.根據(jù)權(quán)利要求3所述的盤(pán)裝置,其特征在于還包括分配單元,所述分配單元被配置動(dòng)態(tài)地為對(duì)所述日志所存儲(chǔ)的存儲(chǔ)器單元上的區(qū)域的盤(pán)訪問(wèn)分配高速緩存區(qū)域。
5.一種盤(pán)裝置,其特征在于包括轉(zhuǎn)換映射表,所述轉(zhuǎn)換映射表存儲(chǔ)盤(pán)上的邏輯地址和盤(pán)上的物理地址之間的對(duì)應(yīng)關(guān)系;存儲(chǔ)控制單元,所述存儲(chǔ)控制單元被配置在所述盤(pán)上的空白區(qū)域中存儲(chǔ)從主機(jī)發(fā)送的日志,在所述盤(pán)上執(zhí)行與所述日志對(duì)應(yīng)的數(shù)據(jù)更新,所述日志包括更新數(shù)據(jù),所述更新數(shù)據(jù)在數(shù)據(jù)更新時(shí)在預(yù)處理過(guò)程中進(jìn)行記錄,從而確保數(shù)據(jù)的完整性;以及操作單元,所述操作單元被配置基于來(lái)自主機(jī)的指令來(lái)操作所述轉(zhuǎn)換映射表,以便將存儲(chǔ)在所述空白區(qū)域中的日志中包括的更新數(shù)據(jù)改變?yōu)閷?shí)際的更新數(shù)據(jù)。
6.一種用于計(jì)算機(jī)系統(tǒng)的數(shù)據(jù)更新控制方法,所述計(jì)算機(jī)系統(tǒng)包括盤(pán)裝置和主機(jī),所述盤(pán)裝置包括能夠永久存儲(chǔ)數(shù)據(jù)的存儲(chǔ)器單元,所述主機(jī)包括在預(yù)處理過(guò)程中在盤(pán)裝置中記錄日志的日志文件系統(tǒng),所述日志包括更新數(shù)據(jù)以確保當(dāng)更新盤(pán)裝置上的數(shù)據(jù)時(shí)盤(pán)裝置上的數(shù)據(jù)的完整性,所述方法的特征在于包括每次更新數(shù)據(jù)時(shí),執(zhí)行向所述盤(pán)裝置寫(xiě)入與所述數(shù)據(jù)更新相對(duì)應(yīng)的日志;以及使所述盤(pán)裝置執(zhí)行與在存儲(chǔ)器單元中的被寫(xiě)入日志相對(duì)應(yīng)的數(shù)據(jù)更新。
7.一種用于計(jì)算機(jī)系統(tǒng)的數(shù)據(jù)更新控制方法,所述計(jì)算機(jī)系統(tǒng)包括盤(pán)裝置和主機(jī),所述盤(pán)裝置包括存儲(chǔ)盤(pán)上的邏輯地址和盤(pán)上物理地址之間的對(duì)應(yīng)關(guān)系的轉(zhuǎn)換映射表,所述主機(jī)包括在預(yù)處理過(guò)程中在盤(pán)裝置中記錄日志的日志文件系統(tǒng),所述日志包括更新數(shù)據(jù)以確保當(dāng)更新盤(pán)裝置上的數(shù)據(jù)時(shí)盤(pán)裝置上的數(shù)據(jù)的完整性,所述方法的特征在于包括每次更新數(shù)據(jù)時(shí),在所述盤(pán)裝置的空白區(qū)域中存儲(chǔ)與所述數(shù)據(jù)更新相對(duì)應(yīng)的日志;以及操作所述轉(zhuǎn)換映射表以便將存儲(chǔ)在所述空白區(qū)域中的日志中包括的更新數(shù)據(jù)改變?yōu)閷?shí)際的更新數(shù)據(jù)。
全文摘要
一種計(jì)算機(jī)系統(tǒng)包括盤(pán)裝置(2)和包括日志文件系統(tǒng)(12)的主機(jī)(1)。所述盤(pán)裝置包括能夠永久存儲(chǔ)日志的存儲(chǔ)器單元(22),將從主機(jī)發(fā)送的日志存儲(chǔ)到所述存儲(chǔ)器單元中的存儲(chǔ)控制單元(21),以及根據(jù)來(lái)自主機(jī)的指令來(lái)執(zhí)行與所述存儲(chǔ)器單元中存儲(chǔ)的日志對(duì)應(yīng)的數(shù)據(jù)更新的更新單元(21)。所述主機(jī)的日志文件系統(tǒng)包括寫(xiě)入單元和通知單元,所述寫(xiě)入單元在每次更新盤(pán)裝置上的數(shù)據(jù)時(shí)執(zhí)行向盤(pán)裝置寫(xiě)入與所述數(shù)據(jù)更新相對(duì)應(yīng)的日志,所述通知單元向所述盤(pán)裝置通知執(zhí)行與被寫(xiě)入的日志相對(duì)應(yīng)的數(shù)據(jù)更新的指令。
文檔編號(hào)G06F11/14GK1848071SQ20061008203
公開(kāi)日2006年10月18日 申請(qǐng)日期2006年3月24日 優(yōu)先權(quán)日2005年3月24日
發(fā)明者友田正憲 申請(qǐng)人:株式會(huì)社東芝, 東芝解決方案株式會(huì)社