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

備份操作期間確保有效日志文件系統(tǒng)元數(shù)據(jù)的方法和裝置的制作方法

文檔序號(hào):6429364閱讀:214來源:國知局
專利名稱:備份操作期間確保有效日志文件系統(tǒng)元數(shù)據(jù)的方法和裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及在具有日志或記錄文件系統(tǒng)的計(jì)算系統(tǒng)中實(shí)現(xiàn)備份操作的改進(jìn)方法。更具體而言,本發(fā)明提供了用于在備份操作期間確保日志文件系統(tǒng)元數(shù)據(jù)有效性的方法和裝置。
背景技術(shù)
事實(shí)上,所有計(jì)算機(jī)應(yīng)用(或程序)都依賴于存儲(chǔ)裝置。該存儲(chǔ)裝置可用于存儲(chǔ)計(jì)算機(jī)碼以及用于存儲(chǔ)由碼所操作的數(shù)據(jù)。術(shù)語“數(shù)據(jù)”指任何信息,包括格式化信息,可執(zhí)行碼和用于應(yīng)用程序操作的數(shù)據(jù)。存儲(chǔ)技術(shù)已在多個(gè)不同的方向得到發(fā)展。因此,可獲得廣泛多種存儲(chǔ)系統(tǒng)。
由于可獲得的存儲(chǔ)系統(tǒng)有廣泛多種,對(duì)于人們而言,寫入計(jì)算機(jī)應(yīng)用并對(duì)數(shù)據(jù)在存儲(chǔ)系統(tǒng)上如何存儲(chǔ)進(jìn)行詳細(xì)控制是并不現(xiàn)實(shí)的。由此或其它原因,應(yīng)用程序通常運(yùn)行在如Unix、Windows、MS DOS、Linux、以及以上多種不同的操作系統(tǒng)上。不過,另外,操作系統(tǒng)可能會(huì)適用于多種存儲(chǔ)系統(tǒng)。每當(dāng)對(duì)物理存儲(chǔ)進(jìn)行改變時(shí),應(yīng)改變操作系統(tǒng)或應(yīng)用程序?qū)⒎浅S行?。從而,考慮到將數(shù)據(jù)如何在存儲(chǔ)系統(tǒng)中進(jìn)行實(shí)際存儲(chǔ),提出了多個(gè)抽象層。
圖1表示一種看待抽象層的方式。在頂級(jí)10,應(yīng)用程序可認(rèn)為按照幾乎不對(duì)數(shù)據(jù)如何放置到物理設(shè)備上進(jìn)行處理的方式存儲(chǔ)數(shù)據(jù)。例如,應(yīng)用可將存儲(chǔ)系統(tǒng)視為包含有許多目錄以及目錄內(nèi)的數(shù)據(jù)文件。從而,在被寫入用于Unix操作系統(tǒng)的應(yīng)用中,應(yīng)用會(huì)認(rèn)為根據(jù)包含有分層目錄以及處在目錄內(nèi)文件的Unix目錄結(jié)構(gòu),對(duì)文件進(jìn)行存儲(chǔ)。這樣假定的物理存儲(chǔ)結(jié)構(gòu)可以幾乎不知道在實(shí)際存儲(chǔ)設(shè)備上如何將數(shù)據(jù)進(jìn)行實(shí)際存儲(chǔ)。這種看待方式可稱作“邏輯視圖”,這是由于,數(shù)據(jù)的邏輯視圖自應(yīng)用級(jí)別10與表明將數(shù)據(jù)在物理存儲(chǔ)設(shè)備上如何進(jìn)行物理存儲(chǔ)的任何視圖相分離。在邏輯級(jí)別,可將邏輯實(shí)體,如文件,數(shù)據(jù)庫或其它結(jié)構(gòu)稱為“邏輯對(duì)象”。
應(yīng)用級(jí)別10與文件系統(tǒng)級(jí)別12相接口。文件系統(tǒng)級(jí)別12涉及如何在盤上存儲(chǔ)文件以及如何使每樣?xùn)|西運(yùn)作有效并可靠。從而,文件系統(tǒng)級(jí)別12可用于存儲(chǔ)目錄結(jié)構(gòu),以及用于將文件分成連續(xù)的數(shù)據(jù)塊以便在物理存儲(chǔ)系統(tǒng)上進(jìn)行存儲(chǔ)。例如,在Unix的大多數(shù)實(shí)施中,每個(gè)文件具有相關(guān)聯(lián)的i節(jié)點(diǎn)。此i節(jié)點(diǎn)可包含有記賬和保護(hù)信息,另外還包含指向數(shù)據(jù)塊的一組指針。
在計(jì)算機(jī)系統(tǒng)發(fā)展的較早期,磁盤驅(qū)動(dòng)器成為主要的存儲(chǔ)設(shè)備。因此,已獲得發(fā)展的計(jì)算機(jī)操作系統(tǒng)假定存儲(chǔ)裝置將依賴于對(duì)磁盤驅(qū)動(dòng)器的輸入/輸出(“I/O”)。因此,文件系統(tǒng)12可假定有一個(gè)或多個(gè)與物理存儲(chǔ)單元如磁盤驅(qū)動(dòng)器,或任何其它存儲(chǔ)單元相對(duì)應(yīng)的“卷”,數(shù)據(jù)以塊的形式存儲(chǔ)在磁盤驅(qū)動(dòng)器上。對(duì)有效用于應(yīng)用的存儲(chǔ)需求極大增長(zhǎng)。從而,可能需要許多分離的物理設(shè)備適應(yīng)系統(tǒng)所需的總存儲(chǔ)量。另外,經(jīng)常對(duì)存儲(chǔ)系統(tǒng)進(jìn)行改變或重新配置。
為使操作系統(tǒng)不受在物理設(shè)備存儲(chǔ)系統(tǒng)內(nèi)的任何改變的影響,通常采用某些機(jī)制,靈活地使物理存儲(chǔ)的標(biāo)準(zhǔn)(卷)視圖映象到實(shí)際物理存儲(chǔ)系統(tǒng)。圖1所示的邏輯卷管理器(“LVM”)14,通過將數(shù)據(jù)存儲(chǔ)的文件系統(tǒng)視圖映象到中間層中,能有助于實(shí)現(xiàn)這種功能。
最后,在物理存儲(chǔ)系統(tǒng)級(jí)別16內(nèi)進(jìn)行實(shí)際存儲(chǔ)的讀出和寫入(以及可能到物理存儲(chǔ)設(shè)備上的附加映象),如圖1所示。因此,例如,邏輯卷管理器14可將數(shù)據(jù)的文件系統(tǒng)級(jí)別視圖映象到與固定物理存儲(chǔ)段大小相對(duì)應(yīng)的卷尺寸中,以用于在物理設(shè)備(如,塊尺寸)上的存儲(chǔ)。然后,物理存儲(chǔ)系統(tǒng)級(jí)別16將邏輯卷管理器14級(jí)別卷映象到物理存儲(chǔ)段(如后面所述的超卷)上。這樣,在上述示例中,將應(yīng)用級(jí)別數(shù)據(jù)到實(shí)際物理存儲(chǔ)的映象出現(xiàn)在四個(gè)級(jí)別上應(yīng)用級(jí)別10到文件系統(tǒng)級(jí)別12;文件系統(tǒng)級(jí)別12到LVM級(jí)別14;LVM級(jí)別14到物理存儲(chǔ)系統(tǒng)級(jí)別16;和物理存儲(chǔ)系統(tǒng)級(jí)別16到實(shí)際物理存儲(chǔ)設(shè)備。
當(dāng)存在失效時(shí),如系統(tǒng)崩潰,這可使存儲(chǔ)系統(tǒng)中的文件系統(tǒng)遭破壞,在存儲(chǔ)系統(tǒng)中會(huì)出現(xiàn)問題。也就是,當(dāng)將數(shù)據(jù)寫入到存儲(chǔ)系統(tǒng)時(shí),通常將數(shù)據(jù)發(fā)送到磁盤高速緩存。磁盤高速緩存是在主存中所分配的緩沖區(qū),用于提高I/O操作速度。當(dāng)將磁盤高速緩存中的數(shù)據(jù)寫入物理盤之前存在系統(tǒng)崩潰或失效時(shí),則會(huì)出現(xiàn)問題。在這種情形中,當(dāng)重新引導(dǎo)系統(tǒng)時(shí),由于系統(tǒng)認(rèn)為已將數(shù)據(jù)寫到磁盤驅(qū)動(dòng)器,而實(shí)際因系統(tǒng)失效未將其寫入到磁盤驅(qū)動(dòng)器,從而,系統(tǒng)以不一致的方式操作。例如,可檢測(cè)到文件處在磁盤高速緩存中,而實(shí)際在物理盤上不會(huì)實(shí)現(xiàn)這種檢測(cè),以致文件仍保留在物理盤上。
因這樣的問題,數(shù)據(jù)庫和文件系統(tǒng)提供有將系統(tǒng)恢復(fù)回到一致狀態(tài)的能力。盡管數(shù)據(jù)庫通?;謴?fù)很快,由于文件系統(tǒng)尺寸增長(zhǎng),恢復(fù)時(shí)間會(huì)加長(zhǎng)。例如,為將文件系統(tǒng)恢復(fù)到一致狀態(tài),對(duì)于ext2fs的fsck恢復(fù)工具必須掃描整個(gè)盤分區(qū)。這樣耗時(shí)的任務(wù)造成具有數(shù)百吉字節(jié)磁盤空間的大型服務(wù)器有效性變差。
為提供具有象數(shù)據(jù)庫那樣恢復(fù)機(jī)制的文件系統(tǒng),設(shè)計(jì)出日志或記錄文件系統(tǒng)。日志或記錄文件系統(tǒng)使用事務(wù)。事務(wù)是滿足數(shù)個(gè)特性的一組單個(gè)操作。這些特性常稱作事務(wù)的ACID特性。首字縮寫ACID表示原子性,一致性,隔離性和耐久性。其中用于本發(fā)明目的的最重要的一個(gè)特性是原子性。原子性意指使屬于單個(gè)事務(wù)的所有操作無錯(cuò)誤或被取消地完成,而且不會(huì)產(chǎn)生任何變化。該特性連同隔離性一起使事務(wù)呈現(xiàn)出不可分制性。
通過將事務(wù)中每單個(gè)操作記錄在記錄文件或日志中,日志或記錄文件系統(tǒng)以此來利用該原子性。事務(wù)的日志條目由事務(wù)的元數(shù)據(jù)組成。該元數(shù)據(jù)包括在文件系統(tǒng)內(nèi)部的控制結(jié)構(gòu),例如,i節(jié)點(diǎn),自由塊分配映象,i節(jié)點(diǎn)映象等。
在每單個(gè)事物之后,必須具有使磁盤高速緩存中的數(shù)據(jù)寫入到物理盤存儲(chǔ)的提交操作。因此,如果出現(xiàn)系統(tǒng)崩潰或其它失效,可將日志追溯到第一個(gè)提交狀態(tài),可完全撤銷由那些未提交事務(wù)所造成的改變。
即便由日志或記錄文件系統(tǒng)提供將系統(tǒng)恢復(fù)到一致性狀態(tài)的能力,問題仍可出現(xiàn)。一個(gè)重要問題是,當(dāng)多個(gè)內(nèi)相關(guān)設(shè)備的日志或記錄文件系統(tǒng)處于激活時(shí),獲得這些設(shè)備的有效設(shè)備級(jí)備份的能力。例如,如果正在執(zhí)行存儲(chǔ)系統(tǒng)的備份,且存儲(chǔ)系統(tǒng)的日志或記錄文件還處于激活,則當(dāng)在執(zhí)行備份操作時(shí),可存在發(fā)送到文件系統(tǒng)的事務(wù)。從而,在存儲(chǔ)系統(tǒng)備份拷貝中的數(shù)據(jù)可能與存儲(chǔ)系統(tǒng)中所存儲(chǔ)的數(shù)據(jù)不同。從而,造成文件系統(tǒng)中的不一致性。因此,最好具有一種在備份操作期間確保有效的日志文件系統(tǒng)元數(shù)據(jù)的方法和裝置。

發(fā)明內(nèi)容
本發(fā)明提供了一種用于在備份操作期間確保有效的日志文件系統(tǒng)元數(shù)據(jù)的方法和裝置。利用本發(fā)明的方法和裝置,提供了用于在實(shí)時(shí)點(diǎn)(point-in-time)備份操作期間掛起對(duì)存儲(chǔ)設(shè)備的寫I/O操作的機(jī)制。一旦完成實(shí)時(shí)點(diǎn)備份操作,釋放所掛起的寫I/O操作,然后可由存儲(chǔ)系統(tǒng)進(jìn)行處理。
在一個(gè)示例性實(shí)施例中,當(dāng)啟動(dòng)實(shí)時(shí)點(diǎn)操作時(shí),在邏輯卷管理器中設(shè)置實(shí)時(shí)點(diǎn)備份標(biāo)志。當(dāng)接收寫I/O操作時(shí),邏輯卷管理器檢查實(shí)時(shí)點(diǎn)備份標(biāo)志的狀態(tài),以確定當(dāng)前是否在執(zhí)行實(shí)時(shí)點(diǎn)備份操作。如果未設(shè)標(biāo)志,則在文件系統(tǒng)日志中對(duì)寫I/O操作進(jìn)行記錄,并按正常方式執(zhí)行寫I/O操作。一旦完成寫I/O操作,文件系統(tǒng)通知該完成,并使用寫I/O操作的日志條目來更新文件系統(tǒng)元數(shù)據(jù)。
如果設(shè)置了備份操作標(biāo)志,則將寫I/O操作的元數(shù)據(jù)存儲(chǔ)在文件系統(tǒng)日志中,并在邏輯卷管理器的保持隊(duì)列(hold queue)中存儲(chǔ)寫I/O操作。當(dāng)寫I/O被存儲(chǔ)在保持隊(duì)列中時(shí),不允許將其提交給邏輯卷。從而,直至完成備份操作之后才能完成寫I/O操作,從而,直至完成備份操作之后,才將文件系統(tǒng)元數(shù)據(jù)修改至反映完成寫I/O操作。
當(dāng)完成實(shí)時(shí)點(diǎn)備份操作時(shí),將實(shí)時(shí)點(diǎn)備份操作的完成通知給邏輯卷管理器,然后由邏輯卷管理器重新設(shè)置實(shí)時(shí)點(diǎn)備份標(biāo)志。另外,釋放在保持隊(duì)列中所掛起的寫I/O操作,從而在邏輯卷上可將其執(zhí)行。當(dāng)由邏輯卷的存儲(chǔ)設(shè)備提交寫I/O操作時(shí),存儲(chǔ)設(shè)備響應(yīng)已完成寫I/O的邏輯卷管理器,從而,使用存儲(chǔ)在文件系統(tǒng)中用于寫I/O操作的元數(shù)據(jù),來更新邏輯卷的文件系統(tǒng)元數(shù)據(jù)。這樣,允許將寫I/O發(fā)送到文件系統(tǒng)日志,但使之保持在邏輯卷管理器的保持隊(duì)列中,不向存儲(chǔ)設(shè)備提交,直到完成備份操作之后才可以。
這樣,通過本發(fā)明的操作,使得在備份操作期間,與存儲(chǔ)系統(tǒng)中數(shù)據(jù)實(shí)時(shí)點(diǎn)備份拷貝相關(guān)聯(lián)的元數(shù)據(jù),存儲(chǔ)系統(tǒng)中的數(shù)據(jù),和文件系統(tǒng)元數(shù)據(jù)保持一致性。僅在完成實(shí)時(shí)點(diǎn)備份操作之后,才允許將在實(shí)時(shí)點(diǎn)備份操作期間所接收的寫I/O操作提交給邏輯卷,從而,將文件系統(tǒng)的元數(shù)據(jù)更新為反映對(duì)邏輯卷的數(shù)據(jù)寫入。
結(jié)合后面對(duì)優(yōu)選實(shí)施例的詳細(xì)描述,將描述本發(fā)明的這些及其它特征和優(yōu)點(diǎn),并使本領(lǐng)域普通技術(shù)人員易于理解。


在所附權(quán)利要求中提出認(rèn)為是本發(fā)明特性的新穎特征。不過,結(jié)合附圖,參照以下說明性實(shí)施例的詳細(xì)描述,將更好地理解本發(fā)明本身,優(yōu)選實(shí)施方式,以及其目的和優(yōu)點(diǎn),其中圖1的示意圖說明存儲(chǔ)系統(tǒng)的抽象層;圖2的示意圖表示其中可實(shí)現(xiàn)本發(fā)明的分布式數(shù)據(jù)處理系統(tǒng);圖3的示意圖表示其中可實(shí)現(xiàn)本發(fā)明的服務(wù)器數(shù)據(jù)處理設(shè)備;圖4的示意圖表示其中可實(shí)現(xiàn)本發(fā)明的客戶機(jī)或獨(dú)立數(shù)據(jù)處理設(shè)備;圖5的示意圖表示其中可實(shí)現(xiàn)本發(fā)明的存儲(chǔ)系統(tǒng);圖6的示意圖表示其中根據(jù)本發(fā)明的邏輯卷管理器的主要操作部件;圖7的流程圖表示本發(fā)明關(guān)于在邏輯卷管理器中設(shè)置和重置實(shí)時(shí)點(diǎn)備份標(biāo)志的示例性操作;圖8的流程圖表示本發(fā)明關(guān)于在備份操作期間掛起寫I/O操作的示例性操作;
圖9的流程圖表示本發(fā)明關(guān)于釋放在邏輯卷管理器的保持隊(duì)列中所掛起的寫I/O操作的示例性操作。
具體實(shí)施例方式
本發(fā)明提供了用于在備份操作期間確保文件系統(tǒng)完整性的機(jī)制。更具體而言,本發(fā)明提供了,用于在備份操作期間確保文件系統(tǒng)的元數(shù)據(jù)與存儲(chǔ)系統(tǒng)的狀態(tài)以及備份的元數(shù)據(jù)相一致,以使日志或記錄文件系統(tǒng)可保持有效的機(jī)制。本發(fā)明的機(jī)制可用于分布式數(shù)據(jù)處理系統(tǒng)或單獨(dú)計(jì)算設(shè)備中。因此,為便于描述本發(fā)明的操作部件,下面參照?qǐng)D2~5簡(jiǎn)要描述分布式數(shù)據(jù)處理系統(tǒng)和單獨(dú)數(shù)據(jù)處理系統(tǒng)。
現(xiàn)在參照?qǐng)D進(jìn)行描述,圖2的示意圖表示其中可實(shí)現(xiàn)本發(fā)明的分布式數(shù)據(jù)處理系統(tǒng)的網(wǎng)絡(luò)。網(wǎng)絡(luò)數(shù)據(jù)處理系統(tǒng)200為其中可實(shí)現(xiàn)本發(fā)明的計(jì)算機(jī)網(wǎng)絡(luò)。網(wǎng)絡(luò)數(shù)據(jù)處理系統(tǒng)200包括網(wǎng)絡(luò)202,網(wǎng)絡(luò)202作為用于提供在網(wǎng)絡(luò)數(shù)據(jù)處理系統(tǒng)200內(nèi)連接在一起的多種設(shè)備和計(jì)算機(jī)之間通信鏈路的媒介。網(wǎng)絡(luò)202可包括連接,如有線,無線通信鏈路,或光纜。
在所述示例中,服務(wù)器204與網(wǎng)絡(luò)202,以及存儲(chǔ)單元206相連。另外,客戶機(jī)208,210和212與網(wǎng)絡(luò)202相連。這些客戶機(jī)208,210和212,例如,可為個(gè)人計(jì)算機(jī)或網(wǎng)絡(luò)計(jì)算機(jī)。在所述示例中,服務(wù)器204向客戶機(jī)208~212提供諸如引導(dǎo)文件,操作系統(tǒng)鏡像,和應(yīng)用的數(shù)據(jù)??蛻魴C(jī)208,210,和212為屬于服務(wù)器204的客戶機(jī)。網(wǎng)絡(luò)數(shù)據(jù)處理系統(tǒng)200可包括更多的服務(wù)器,客戶及其它設(shè)備,在此未顯示出。在所示示例中,網(wǎng)絡(luò)數(shù)據(jù)處理系統(tǒng)200為具有網(wǎng)絡(luò)202的Internet,網(wǎng)絡(luò)202表示使用傳輸控制協(xié)議/網(wǎng)際協(xié)議(TCP/IP)相互通信的網(wǎng)絡(luò)和網(wǎng)關(guān)的世界范圍集合。在Internet的核心,是處在主要節(jié)點(diǎn)或主機(jī),包括成千上萬個(gè)商業(yè),政府,教育及其它計(jì)算機(jī)系統(tǒng)之間的高速數(shù)據(jù)通信鏈路的骨干,用于路由數(shù)據(jù)和消息。當(dāng)然,網(wǎng)絡(luò)數(shù)據(jù)處理系統(tǒng)200還可用作多種不同類型的網(wǎng)絡(luò),如intranet,局域網(wǎng)(LAN),或廣域網(wǎng)(WAN)。圖2意在作為示例,并不是對(duì)本發(fā)明進(jìn)行在結(jié)構(gòu)上的限制。
參看圖3,圖3顯示出,根據(jù)本發(fā)明優(yōu)選實(shí)施例,可作為服務(wù)器,諸如圖2所示服務(wù)器204,的數(shù)據(jù)處理系統(tǒng)的方塊圖。數(shù)據(jù)處理系統(tǒng)300可以是包括多個(gè)與系統(tǒng)總線306相連的處理器302和304的對(duì)稱多處理器(SMP)系統(tǒng)?;蛘?,也可采用單處理器系統(tǒng)。與系統(tǒng)總線306相連的還有存儲(chǔ)器控制器/高速緩存308,存儲(chǔ)器控制器/高速緩存308提供到局部存儲(chǔ)器309的接口。I/O總線橋310與系統(tǒng)總線306相連,并提供到I/O總線312的接口??砂慈缟戏绞郊纱鎯?chǔ)器控制器/高速緩存308和I/O總線橋310。
與I/O總線312相連的外設(shè)部件互連(PCI)總線橋314提供到PCI局部總線316的接口。PCI局部總線316可連接多個(gè)調(diào)制解調(diào)器。典型PCI總線在實(shí)現(xiàn)上將支持四個(gè)PCI擴(kuò)展槽或內(nèi)插(add-in)連接器。到如圖2所示客戶機(jī)208~212的通信鏈路可通過由內(nèi)插板連接至PCI局部總線316的調(diào)制解調(diào)器318和網(wǎng)絡(luò)適配器320來提供。
附加的PCI總線橋322和324為附加的PCI局部總線326和328提供接口,并可由附加的PCI局部總線326和328支持附加更多的調(diào)制解調(diào)器和網(wǎng)絡(luò)適配器。這樣,數(shù)據(jù)處理系統(tǒng)300允許到多個(gè)網(wǎng)絡(luò)計(jì)算機(jī)的連接。還可按如上方式,或直接或間接地將存儲(chǔ)器映象圖形適配器330和硬盤332連接至I/O總線312。
本領(lǐng)域普通技術(shù)人員應(yīng)該理解,在圖3中所描述的硬件可存在多種變化。例如,除此之外還可使用其它外設(shè),如光盤驅(qū)動(dòng)器等,或者使用其代替所述的硬件。所述示例并不意在表示對(duì)本發(fā)明在結(jié)構(gòu)上的限定。
在圖3中所示的數(shù)據(jù)處理系統(tǒng)可以是,例如在Armonk的IBM公司的產(chǎn)品IBM eServer pSeries system,其運(yùn)行高級(jí)交互執(zhí)行程序(AIX)操作系統(tǒng)或LINUX操作系統(tǒng)。
現(xiàn)參照?qǐng)D4,圖4的方塊圖表示其中可實(shí)現(xiàn)本發(fā)明的數(shù)據(jù)處理系統(tǒng)。數(shù)據(jù)處理系統(tǒng)400為客戶機(jī)示例。數(shù)據(jù)處理系統(tǒng)400采用外設(shè)部件互連(PCI)局部總線結(jié)構(gòu)。盡管所示示例采用PCI總線,但也可使用其它總線結(jié)構(gòu),如加速圖形端口(AGP)和工業(yè)標(biāo)準(zhǔn)結(jié)構(gòu)(ISA)。處理器402和主存儲(chǔ)器404通過PCI橋408與PCI局部總線406連接。PCI橋408還可包括用于處理器402的集成存儲(chǔ)器控制器和高速緩存存儲(chǔ)器。通過直接部件連接或通過內(nèi)插板可構(gòu)成到PCI局部總線406的額外連接。在所示示例中,局域網(wǎng)(LAN)適配器410,SCSI主機(jī)總線適配器412,和擴(kuò)展總線接口414通過直接部件連接與PCI局部總線406連接。相反,音頻適配器416,圖形適配器418,和音頻/視頻適配器419通過插入擴(kuò)展槽的內(nèi)插板與PCI局部總線406連接。擴(kuò)展總線接口414提供用于鍵盤和鼠標(biāo)適配器420,調(diào)制解調(diào)器422,和附加存儲(chǔ)器424的連接。小型計(jì)算機(jī)系統(tǒng)接口(SCSI)主機(jī)總線適配器412提供用于硬盤驅(qū)動(dòng)器426,磁帶驅(qū)動(dòng)器428,和CD-ROM驅(qū)動(dòng)器430的連接。典型PCI局部總線在實(shí)施上應(yīng)支持三或四個(gè)PCI擴(kuò)展槽或內(nèi)插連接器。
操作系統(tǒng)運(yùn)行在處理器402上,并用于協(xié)調(diào)和提供在如圖4所示數(shù)據(jù)處理系統(tǒng)內(nèi)多個(gè)部件的控制。操作系統(tǒng)可為市場(chǎng)上可獲得的操作系統(tǒng),如Windows XP,它可從微軟公司獲得。面向?qū)ο蟮木幊滔到y(tǒng),如Java,可同操作系統(tǒng)一道運(yùn)行,并提供從執(zhí)行在數(shù)據(jù)處理系統(tǒng)400上的Java程序或應(yīng)用對(duì)操作系統(tǒng)的調(diào)用?!癑ava”是Sun Microsystems公司的商標(biāo)。對(duì)于操作系統(tǒng),面向?qū)ο缶幊滔到y(tǒng),和應(yīng)用或程序的指令處于存儲(chǔ)設(shè)備,如硬盤驅(qū)動(dòng)器426上,以及可加載到主存儲(chǔ)器404中用于由處理器402執(zhí)行。
本領(lǐng)域普通技術(shù)人員應(yīng)該理解,在圖4所示的硬件可依據(jù)應(yīng)用進(jìn)行變化。除此之外可使用其它內(nèi)部硬件或外設(shè),如閃存只讀存儲(chǔ)器(ROM),等效非易失性存儲(chǔ)器,或光盤驅(qū)動(dòng)器等,或者使用這些內(nèi)部硬件或外設(shè)來代替如圖4所示的硬件。此外,可將本發(fā)明的處理應(yīng)用到多處理器的數(shù)據(jù)處理系統(tǒng)。
作為另一示例,數(shù)據(jù)處理系統(tǒng)400可為配置成可不依賴于某些類型網(wǎng)絡(luò)通信接口進(jìn)行引導(dǎo)的單獨(dú)系統(tǒng)。作為另外的示例,數(shù)據(jù)處理系統(tǒng)400可為個(gè)人數(shù)字助理(PIDA)設(shè)備,其配置以ROM和/或閃存ROM,以為存儲(chǔ)操作系統(tǒng)文件和/或用戶生成的數(shù)據(jù)提供非易失性存儲(chǔ)器。
如圖4中的所示示例以及上述示例并不意在表示在結(jié)構(gòu)上的限制。例如,除采用PDA的形式外,數(shù)據(jù)處理系統(tǒng)400還可為筆記本電腦或手持式計(jì)算機(jī)。數(shù)據(jù)處理系統(tǒng)400還可為公用信息機(jī)(kiosk)和Web設(shè)備。
圖5顯示出利用其可實(shí)現(xiàn)本發(fā)明的存儲(chǔ)系統(tǒng)500??墒褂猛ǖ?,總線或通信鏈路510,將主機(jī)設(shè)備,如服務(wù)器或客戶機(jī)計(jì)算機(jī),與存儲(chǔ)設(shè)備連接。用于與主機(jī)設(shè)備通信的通道可為任何適宜的連接,如小型計(jì)算機(jī)系統(tǒng)接口(“SCSI”),企業(yè)系統(tǒng)連接體系結(jié)構(gòu)(“ESCON”)等?;蛘撸ㄐ沛溌?10可與網(wǎng)絡(luò)連接如intranet,LAN,WAN,Internet等相關(guān),以使存儲(chǔ)系統(tǒng)500可由主機(jī)設(shè)備通過至少一種網(wǎng)絡(luò)訪問。盡管在圖5中僅顯示出一個(gè)進(jìn)入存儲(chǔ)系統(tǒng)500的通信鏈路510,但還包括其它通道。
在存儲(chǔ)系統(tǒng)500中具有主機(jī)適配器520,主機(jī)適配器520負(fù)責(zé)管理來自基于虛盤結(jié)構(gòu)的主機(jī),如來自文件系統(tǒng)或邏輯卷管理器級(jí)別,的讀寫請(qǐng)求,并負(fù)責(zé)將其轉(zhuǎn)換成表示數(shù)據(jù)如何在存儲(chǔ)系統(tǒng)500的實(shí)際物理存儲(chǔ)設(shè)備540A~540D上進(jìn)行存儲(chǔ)的一個(gè)或更多的請(qǐng)求。主機(jī)適配器520可按任何多種方式實(shí)現(xiàn),包括使用通用目標(biāo)處理器或定制硬件工具。此外,可包括多個(gè)主機(jī)適配器,以便具有用于存儲(chǔ)系統(tǒng)500的附加I/O通道。
主機(jī)適配器520使用總線530與存儲(chǔ)系統(tǒng)500的其它部件通信??偩€530可為任何適宜的通信元件,包括使用SCSI,ESCON,以及其它總線協(xié)議。
對(duì)物理存儲(chǔ)設(shè)備540A~540D的訪問通過使用盤適配器550A~550D來控制。盤適配器550A~550D還可使用通用目標(biāo)處理器或定制硬件設(shè)計(jì)來實(shí)現(xiàn)。在圖5所示實(shí)施例中,對(duì)于每個(gè)物理存儲(chǔ)設(shè)備提供一盤適配器。當(dāng)然,盤適配器可附加有多于一個(gè)的存儲(chǔ)設(shè)備。此外,盤適配器可包括到另一盤適配器物理存儲(chǔ)設(shè)備的輔助連接。這允許通過將一個(gè)盤適配器的功能轉(zhuǎn)移至第二個(gè)盤適配器,而使其從失效中恢復(fù)。
在圖5的實(shí)施例中,通過使用高速緩存560,方便了通過盤適配器550A~550D對(duì)物理存儲(chǔ)設(shè)備540A~540D的讀出和寫入。高速緩存560可為比磁盤驅(qū)動(dòng)器具有更高速度的隨機(jī)存取存儲(chǔ)器。當(dāng)讀出數(shù)據(jù)時(shí),如果數(shù)據(jù)臨時(shí)存儲(chǔ)在高速緩存中,通過從高速緩存560取數(shù)據(jù),可更快地實(shí)現(xiàn)讀取請(qǐng)求。同樣,當(dāng)寫入數(shù)據(jù)時(shí),可將所要寫入的數(shù)據(jù)存儲(chǔ)在高速緩存中。當(dāng)將數(shù)據(jù)從高速緩存寫入適當(dāng)物理存儲(chǔ)設(shè)備時(shí),系統(tǒng)的其它部件可繼續(xù)處理。
可使用任何多種機(jī)制來實(shí)現(xiàn)和管理高速緩存560。在1996年7月16日申請(qǐng)的題名為“System for Dynamically Controlling Cache ManagerMaintaining Cache Index and Controlling Sequential Data Access”的美國專利No.5,537,568中,包括有這種機(jī)制的示例。
同樣,通過高速緩存560使用任何多種機(jī)制和策略可實(shí)現(xiàn)寫入。一種用于從高速緩存寫入的機(jī)制是,將所要寫入的數(shù)據(jù)存儲(chǔ)在高速緩存中,并標(biāo)記以“寫入未決(write pending)”位。當(dāng)遇到寫入未決位時(shí),可將合適的數(shù)據(jù)寫入到盤中。在1994年8月23日申請(qǐng)的題名為“DiskStorage System with Write Preservation During Power Failure”的美國專利No.5,341,493中一般性地描述了此項(xiàng)技術(shù)。當(dāng)然,在不偏離本發(fā)明精神和范圍的條件下,可使用其它已知機(jī)制來管理高速緩存560。
可將高速緩存560分成多于一個(gè)的區(qū)域。例如,高速緩存560可包括用于存儲(chǔ)自物理存儲(chǔ)設(shè)備540A~540D要讀取或?qū)懭霐?shù)據(jù)的區(qū)域560A。高速緩存還進(jìn)一步包括“郵箱”區(qū)域540B。可使用郵箱區(qū)域540B方便在盤適配器550A~550D之間以及與主機(jī)適配器520的通信。例如盤適配器550A~550D均在郵箱560B內(nèi)具有各自的區(qū)域。盤適配器550A~550D均可從適當(dāng)?shù)泥]箱區(qū)域560B計(jì)入或讀出信息,以傳遞狀態(tài)及其它信息。
還可向存儲(chǔ)系統(tǒng)500的總線530附加遠(yuǎn)程適配器570。遠(yuǎn)程適配器570可用于與遠(yuǎn)程數(shù)據(jù)設(shè)備(“RDF”)的通信,例如,與另一存儲(chǔ)設(shè)備的連接,以保持鏡像冗余組。從EMC公司可獲得的多種出版物中,包括SYMMETRIX Remote Data Facility Product Manual(P/N 200-999-554,rev.B,June 1995)描述了一種形式的RDF鏈路及實(shí)現(xiàn)方法。在美國專利No.5,544,347(Yanai)中和描述了RDF的實(shí)施例,由此,該專利在此引作參考。不過,應(yīng)該理解,本發(fā)明并不限于RDF的使用或采用SYMMETRIX盤陣列的系統(tǒng),而是能夠采用任何數(shù)種其它類型的存儲(chǔ)系統(tǒng)。
可將服務(wù)處理器580與存儲(chǔ)系統(tǒng)500的總線530連接。服務(wù)處理器580可包括顯示器,鍵盤及其它I/O設(shè)備,已允許操作者使用服務(wù)處理器580配置存儲(chǔ)系統(tǒng)500的部件以及運(yùn)行或啟動(dòng)設(shè)備的診斷和維護(hù).。
圖5的存儲(chǔ)系統(tǒng)500為可用于實(shí)現(xiàn)圖1所示物理存儲(chǔ)系統(tǒng)16的存儲(chǔ)系統(tǒng)的示例。如前所述,在如圖1所示的結(jié)構(gòu)中,如果在備份操作的實(shí)時(shí)點(diǎn)處不能保持文件系統(tǒng)狀態(tài)和日志設(shè)備之間的一致性,則會(huì)存在問題。從而,文件系統(tǒng)和日志設(shè)備具有不同的狀態(tài),并可能使數(shù)據(jù)受損。這是由于,在備份操作期間可執(zhí)行對(duì)日志設(shè)備,即物理存儲(chǔ)設(shè)備,的寫操作,結(jié)果使文件系統(tǒng)中用于日志設(shè)備的日志及元數(shù)據(jù)的拷貝不同于在日志設(shè)備上所存儲(chǔ)的實(shí)際數(shù)據(jù)。
當(dāng)文件系統(tǒng)和日志記錄駐留在多個(gè)單設(shè)備中時(shí),啟動(dòng)實(shí)時(shí)點(diǎn),或即時(shí)點(diǎn),這些設(shè)備的拷貝能導(dǎo)致日志和文件系統(tǒng)不同步,而不具有本發(fā)明的優(yōu)點(diǎn)。也就是,不使用本發(fā)明,仍可寫入日志,而文件系統(tǒng)的狀態(tài)可漸漸散失日志所表示的樣子。對(duì)于簡(jiǎn)化大型日志的情形,在多個(gè)設(shè)備上所包含的日志確實(shí)如此。本發(fā)明提供了即使在多個(gè)設(shè)備上寫入日志時(shí)保持日志和文件系統(tǒng)一致的機(jī)制。
本發(fā)明解決該問題是通過在邏輯卷管理器內(nèi)或與之相關(guān)聯(lián)地包括一種機(jī)制,該機(jī)制在備份操作期間掛起對(duì)邏輯卷的日志設(shè)備的寫操作。通過本發(fā)明,使對(duì)邏輯卷日志設(shè)備的寫操作在邏輯卷管理器設(shè)備驅(qū)動(dòng)器級(jí)別保持對(duì)日志設(shè)備備份的整個(gè)時(shí)期。由于不允許將新的寫操作發(fā)送到用于日志設(shè)備的存儲(chǔ)系統(tǒng),其中“日志設(shè)備”為可由多個(gè)物理存儲(chǔ)設(shè)備組成的邏輯存儲(chǔ)設(shè)備,在相同時(shí)期期間,還阻止對(duì)文件系統(tǒng)的新的元數(shù)據(jù)事務(wù)。這保證了,當(dāng)仍允許對(duì)已提交分配的文件中的塊進(jìn)行寫入訪問時(shí),在文件系統(tǒng)與日志設(shè)備之間的內(nèi)部一致性。
從而,通過本發(fā)明的操作,對(duì)于不作為部分當(dāng)前備份操作的,而被掛起至經(jīng)歷備份操作的存儲(chǔ)系統(tǒng)其它日志設(shè)備的日志設(shè)備,允許進(jìn)行寫操作。允許將寫操作發(fā)送到文件系統(tǒng)日志,不過,由于其被指向經(jīng)歷備份操作的日志設(shè)備從而需被掛起的那些,通過邏輯卷管理器來保持,直至完成備份操作之后。從而,在備份操作期間以保持文件系統(tǒng)元數(shù)據(jù)一致性的方式允許寫I/O操作。
為在備份操作(如實(shí)時(shí)點(diǎn)備份操作)期間掛起寫I/O操作,本發(fā)明的邏輯卷管理器將在備份操作期間所接收的任何寫I/O操作存儲(chǔ)在邏輯卷管理器內(nèi)的保持隊(duì)列(如鏈接表)中。從而,直到完成備份操作之后才在邏輯卷的物理存儲(chǔ)設(shè)備上執(zhí)行寫I/O操作。一旦完成備份操作,將寫I/O操作從在它們?cè)诒3株?duì)列中所掛起的狀態(tài)進(jìn)行釋放,并按接收它們的順序?qū)⑺鼈儓?zhí)行。從而,在備份操作期間,允許在文件系統(tǒng)日志中接收寫I/O操作,但不允許將之發(fā)送到日志設(shè)備。
作為上述操作的結(jié)果,在備份操作期間不改變文件系統(tǒng)的元數(shù)據(jù)。由于在備份操作期間不實(shí)現(xiàn)寫I/O操作,直到完成備份操作并在存儲(chǔ)系統(tǒng)上執(zhí)行寫I/O操作后,才會(huì)更新文件系統(tǒng)元數(shù)據(jù),以反映這些寫I/O操作。
圖6的示意圖表示本發(fā)明的主要操作部件。如圖6所示,提供文件系統(tǒng)610,邏輯卷管理器620和物理存儲(chǔ)系統(tǒng)650作為其中實(shí)現(xiàn)本發(fā)明的主要操作部件。本發(fā)明包括,在備份操作期間掛起對(duì)物理存儲(chǔ)系統(tǒng)650物理存儲(chǔ)設(shè)備的寫I/O操作中,文件系統(tǒng)610,邏輯卷管理器620,和物理存儲(chǔ)系統(tǒng)650的協(xié)同。該協(xié)同由在邏輯卷管理器620內(nèi)所提供的新機(jī)制來管理。
下面,將根據(jù)硬件實(shí)時(shí)點(diǎn)備份操作描述本發(fā)明,硬件實(shí)時(shí)點(diǎn)備份操作有時(shí)又稱瞬時(shí)拷貝操作(instant copy operation),快照拷貝操作等。應(yīng)該理解,在不偏離本發(fā)明精神和范圍的條件下,本發(fā)明可適用于除實(shí)時(shí)點(diǎn)備份操作,瞬時(shí)拷貝操作,或快照拷貝操作之外的其它備份操作。
實(shí)時(shí)點(diǎn)備份操作為對(duì)存儲(chǔ)設(shè)備(例如磁盤)全部?jī)?nèi)容的備份。從而,在文件系統(tǒng)日志中所存儲(chǔ)的元數(shù)據(jù)與在物理存儲(chǔ)設(shè)備上的數(shù)據(jù)相對(duì)應(yīng)很重要,否則,會(huì)出現(xiàn)數(shù)據(jù)損壞。從而,確保在實(shí)時(shí)點(diǎn)備份操作期間數(shù)據(jù)不會(huì)寫到包含文件系統(tǒng)日志的物理存儲(chǔ)塊很重要,這是由于這樣的寫I/O操作將導(dǎo)致在物理存儲(chǔ)設(shè)備上的數(shù)據(jù)與實(shí)時(shí)點(diǎn)備份拷貝的元數(shù)據(jù)不匹配。
本發(fā)明的機(jī)制,通過提供基于每個(gè)邏輯卷的實(shí)時(shí)點(diǎn)備份標(biāo)志625,在邏輯卷設(shè)備驅(qū)動(dòng)器630中的附加功能,和邏輯卷管理器620的保持隊(duì)列,確保不允許在實(shí)時(shí)點(diǎn)備份操作期間將寫I/O操作發(fā)送到包含文件系統(tǒng)元數(shù)據(jù)的物理存儲(chǔ)系統(tǒng)650塊,這將在后面進(jìn)行更詳細(xì)地描述。通過使用這些新機(jī)制和功能,對(duì)于文件系統(tǒng)日志邏輯卷將在實(shí)時(shí)點(diǎn)備份操作期間所接收的寫I/O操作掛起,直至完成實(shí)時(shí)點(diǎn)備份操作以后。這樣,在實(shí)時(shí)點(diǎn)備份操作期間,在與日志邏輯卷相關(guān)聯(lián)的物理存儲(chǔ)系統(tǒng)650中可不執(zhí)行任何寫操作,從而確保與物理存儲(chǔ)系統(tǒng)650的物理存儲(chǔ)設(shè)備中的數(shù)據(jù)相關(guān)聯(lián)的元數(shù)據(jù)與數(shù)據(jù)相一致。
如圖6所示,實(shí)時(shí)點(diǎn)備份應(yīng)用605可啟動(dòng)實(shí)時(shí)點(diǎn)備份操作,并向文件系統(tǒng)610發(fā)送讀拷貝操作。讀拷貝操作提供給邏輯卷管理器620,更具體而言,提供給邏輯卷管理器620的邏輯卷設(shè)備驅(qū)動(dòng)器630。邏輯卷設(shè)備驅(qū)動(dòng)器630是管理和處理對(duì)物理存儲(chǔ)系統(tǒng)650所有I/O操作的偽設(shè)備驅(qū)動(dòng)器。
響應(yīng)接收表明已啟動(dòng)實(shí)時(shí)點(diǎn)備份操作的讀拷貝操作,邏輯卷設(shè)備驅(qū)動(dòng)器630設(shè)置表明正在執(zhí)行實(shí)時(shí)點(diǎn)備份操作的實(shí)時(shí)點(diǎn)備份標(biāo)志625。然后,將讀拷貝操作記錄在日志614中,并允許將讀發(fā)送到物理存儲(chǔ)系統(tǒng)650。
在實(shí)時(shí)點(diǎn)備份操作期間允許其它應(yīng)用向文件系統(tǒng)610遞交I/O請(qǐng)求。通過本發(fā)明,如果所遞交的I/O請(qǐng)求為讀I/O請(qǐng)求,則允許以正常方式對(duì)I/O請(qǐng)求進(jìn)行處理。然而,如果所遞交的I/O請(qǐng)求為會(huì)導(dǎo)致改變文件系統(tǒng)元數(shù)據(jù)并寫到文件系統(tǒng)日志的寫I/O請(qǐng)求,則由本發(fā)明的機(jī)制掛起寫I/O請(qǐng)求,直至完成實(shí)時(shí)點(diǎn)備份操作之后。
從而,例如,應(yīng)用600可向文件系統(tǒng)610發(fā)送寫I/O請(qǐng)求,然后由文件系統(tǒng)610在文件系統(tǒng)日志614中產(chǎn)生與寫I/O請(qǐng)求相關(guān)的日志條目,并向邏輯卷管理器620提供寫I/O請(qǐng)求。邏輯卷設(shè)備驅(qū)動(dòng)器630接收寫I/O請(qǐng)求,并確定它是否為寫I/O請(qǐng)求。從而,邏輯卷設(shè)備驅(qū)動(dòng)器630讀出對(duì)于實(shí)時(shí)點(diǎn)備份標(biāo)志625的值,以確定是否設(shè)置了標(biāo)志。如果未設(shè)置標(biāo)志,則按照正常方式通過將對(duì)于寫I/O請(qǐng)求的條目寫到文件系統(tǒng)日志中來處理寫I/O請(qǐng)求,并向物理存儲(chǔ)系統(tǒng)650發(fā)送寫I/O請(qǐng)求,以便物理存儲(chǔ)設(shè)備可提交寫I/O操作。一旦提交了寫I/O操作,就使用在文件系統(tǒng)日志614中的日志條目更新文件系統(tǒng)元數(shù)據(jù)616。
然而,如果設(shè)置了實(shí)時(shí)點(diǎn)備份標(biāo)志625,即進(jìn)行實(shí)時(shí)點(diǎn)備份,則將寫I/O請(qǐng)求發(fā)送到保持隊(duì)列640。保持隊(duì)列640可為,例如,已掛起的且一旦去除其掛起狀態(tài)將要執(zhí)行的I/O請(qǐng)求的鏈接表。直到釋放在保持隊(duì)列640中的I/O請(qǐng)求條目,才會(huì)將通過放置在保持隊(duì)列640中而被掛起的任何I/O請(qǐng)求發(fā)送到物理存儲(chǔ)系統(tǒng)650。
一旦完成實(shí)時(shí)點(diǎn)備份操作,實(shí)時(shí)點(diǎn)備份應(yīng)用605,或文件系統(tǒng)610向邏輯卷管理器620發(fā)送表明完成實(shí)時(shí)點(diǎn)備份操作的消息。當(dāng)邏輯卷設(shè)備驅(qū)動(dòng)器630接收來自實(shí)時(shí)點(diǎn)備份應(yīng)用605或文件系統(tǒng)610的表明完成備份操作的消息時(shí),邏輯卷設(shè)備驅(qū)動(dòng)器630重置實(shí)時(shí)點(diǎn)備份標(biāo)志625,并釋放存儲(chǔ)在保持隊(duì)列640中的I/O請(qǐng)求。然后,將這些I/O請(qǐng)求按照接收它們的順序遞交給物理存儲(chǔ)系統(tǒng),以便可將它們提交。一旦提交I/O請(qǐng)求,通知邏輯卷管理器620關(guān)于I/O請(qǐng)求的提交,并使用在文件系統(tǒng)日志614的日志條目中與I/O請(qǐng)求相對(duì)應(yīng)的元數(shù)據(jù)來更新文件系統(tǒng)元數(shù)據(jù)616。
從而,通過本發(fā)明,對(duì)于包含有文件系統(tǒng)日志邏輯卷的塊,將對(duì)于存儲(chǔ)系統(tǒng)的物理存儲(chǔ)設(shè)備的寫I/O操作掛起至備份操作時(shí)期。這樣,確保與存儲(chǔ)在物理存儲(chǔ)設(shè)備上的數(shù)據(jù)相關(guān)聯(lián)的元數(shù)據(jù)與數(shù)據(jù)相一致。從而,日志將與文件系統(tǒng)相匹配,以便能重放日志。這意味著,文件系統(tǒng)元數(shù)據(jù)616將與文件系統(tǒng)日志614相匹配,從而在重放日志614后能信賴元數(shù)據(jù)616。如果未保持其元數(shù)據(jù)616的狀態(tài),則可認(rèn)為文件系統(tǒng)遭破壞以及可能丟失。如果保持該狀態(tài),則備份具有有效的元數(shù)據(jù)616,如果未保持該狀態(tài),則備份無效。本發(fā)明的一個(gè)目的以及一個(gè)主要優(yōu)點(diǎn)在于,通過確保文件系統(tǒng)元數(shù)據(jù)的有效性來獲得有效的備份。
圖7~9的流程圖表示根據(jù)本發(fā)明的多種示例性操作。應(yīng)該理解,通過計(jì)算機(jī)程序指令能夠?qū)崿F(xiàn)流程圖的每個(gè)方塊以及在流程圖中方塊的組合??蓪⑦@些計(jì)算機(jī)程序指令提供給處理器或其它可編程數(shù)據(jù)處理裝置,以制造機(jī)器,以使得執(zhí)行在處理器或其它可編程數(shù)據(jù)處理裝置上的指令產(chǎn)生用于實(shí)現(xiàn)在流程圖方塊中所指定功能的裝置。還可將這些計(jì)算機(jī)程序指令存儲(chǔ)在可指向處理器或其它可編程數(shù)據(jù)處理裝置的計(jì)算機(jī)可讀存儲(chǔ)器或存儲(chǔ)介質(zhì)中,以按特殊方式起作用,使得存儲(chǔ)在計(jì)算機(jī)可讀存儲(chǔ)器或存儲(chǔ)介質(zhì)中的指令產(chǎn)生包含有指令裝置的產(chǎn)品,所述指令裝置實(shí)現(xiàn)流程圖方塊中所指定的功能。
因此,流程圖的方塊支持用于執(zhí)行指定功能的裝置的組合,用于執(zhí)行指定功能的步驟的組合,和用于執(zhí)行指定功能的程序指令裝置。還應(yīng)該理解,通過可執(zhí)行指定功能或步驟的專用硬件基計(jì)算機(jī)系統(tǒng),或?qū)S糜布陀?jì)算機(jī)指令的組合,能夠?qū)崿F(xiàn)流程圖的每個(gè)方塊以及在流程圖中的方塊組合。
圖7的流程圖表示本發(fā)明關(guān)于在邏輯卷管理器中設(shè)置和重置實(shí)時(shí)點(diǎn)備份標(biāo)志的示例性操作。如圖7所示,操作由啟動(dòng)實(shí)時(shí)點(diǎn)備份操作開始(步驟710)。當(dāng)啟動(dòng)實(shí)時(shí)點(diǎn)備份操作時(shí),在邏輯卷管理器中設(shè)置實(shí)時(shí)點(diǎn)備份標(biāo)志(步驟720)。
然后在一個(gè)或多個(gè)物理存儲(chǔ)設(shè)備上執(zhí)行實(shí)時(shí)點(diǎn)備份操作(步驟730),并確定實(shí)時(shí)點(diǎn)備份操作是否完成(740)。如果未完成,操作返回至步驟730,繼續(xù)進(jìn)行實(shí)時(shí)點(diǎn)備份操作。如果完成實(shí)時(shí)點(diǎn)備份操作,則重置在邏輯卷管理器中的實(shí)時(shí)點(diǎn)標(biāo)志(步驟750),且操作結(jié)束。
圖8的流程圖表示本發(fā)明關(guān)于在備份操作期間掛起寫I/O操作的示例性操作。如圖8所示,操作以接收寫I/O請(qǐng)求開始(步驟830)。對(duì)于接收的寫I/O請(qǐng)求,將日志條目添加到文件系統(tǒng)的日志中(步驟815)。當(dāng)接收寫I/O請(qǐng)求時(shí),讀取實(shí)時(shí)點(diǎn)備份標(biāo)志,以確定其是否已被設(shè)置(步驟820)。
確定實(shí)時(shí)點(diǎn)備份標(biāo)志是否被設(shè)置(步驟830)。如果未設(shè)置,通過將其遞交給所要提交的存儲(chǔ)系統(tǒng),以正常方式處理寫I/O操作(步驟840)。如果設(shè)置了實(shí)時(shí)點(diǎn)備份標(biāo)志,將寫I/O操作發(fā)送到邏輯卷管理器中的保持隊(duì)列(步驟850)。然后,操作結(jié)束。
圖9的流程圖表示本發(fā)明關(guān)于釋放在邏輯卷管理器的保持隊(duì)列中所掛起的寫I/O操作的示例性操作。如圖9所示,操作以接收實(shí)時(shí)點(diǎn)備份標(biāo)志的重置開始(步驟910)。將邏輯卷管理器中的備份標(biāo)志重置到“未設(shè)置”狀態(tài)(步驟920)。
然后,將保持隊(duì)列中的寫I/O請(qǐng)求接接收它們的順序輸出到存儲(chǔ)系統(tǒng)(步驟930),并重新啟動(dòng)保持隊(duì)列(步驟940)。例如,可通過保持隊(duì)列的結(jié)構(gòu)來保持寫I/O操作的次序。也就是,可使用鏈接表來保持接收寫I/O請(qǐng)求次序。
當(dāng)由存儲(chǔ)系統(tǒng)提交每個(gè)寫I/O操作時(shí),接收提交寫I/O操作的確認(rèn)(步驟950)。從而,使用在文件系統(tǒng)日志中與寫I/O相對(duì)應(yīng)的條目來更新文件系統(tǒng)元數(shù)據(jù)(步驟960)。然后,操作結(jié)束。
這樣,本發(fā)明提供了,用于在存儲(chǔ)系統(tǒng)的存儲(chǔ)設(shè)備上所執(zhí)行的備份操作期間,確保日志文件系統(tǒng)元數(shù)據(jù)與存儲(chǔ)在相關(guān)聯(lián)存儲(chǔ)系統(tǒng)中的數(shù)據(jù)相一致的機(jī)制。從而,在備份操作期間幾乎不會(huì)因執(zhí)行寫操作使數(shù)據(jù)遭破壞。
盡管關(guān)于在備份操作期間由邏輯卷管理器所保持的對(duì)日志設(shè)備的所有寫I/O操作描述了本發(fā)明,但本發(fā)明并不限于此。相反,在可選實(shí)施例中,僅當(dāng)寫I/O操作與數(shù)據(jù)塊的指定范圍相對(duì)應(yīng)時(shí),可保持寫I/O操作。從而,盡管當(dāng)前正執(zhí)行備份操作,如果寫I/O操作與不在指定范圍內(nèi)的數(shù)據(jù)塊對(duì)應(yīng)時(shí),如對(duì)應(yīng)不同的邏輯卷,本發(fā)明的機(jī)制將不會(huì)保持寫I/O操作。
例如,當(dāng)啟動(dòng)備份操作時(shí),可確定經(jīng)歷備份操作的數(shù)據(jù)塊,即識(shí)別所備份的數(shù)據(jù)塊范圍。此后,在備份操作期間如果接收到指向該數(shù)據(jù)塊范圍的寫I/O操作,將按前述方式掛起寫I/O操作。然而,對(duì)于不指向該數(shù)據(jù)塊范圍的任何寫I/O操作,由于他們將不會(huì)影響所正備份的數(shù)據(jù)塊的元數(shù)據(jù),將按正常方式繼續(xù)進(jìn)行處理。從而,在此可選實(shí)施例中,在備份期間并不掛起所有寫I/O操作,而是僅掛起影響經(jīng)歷備份操作的一個(gè)或多個(gè)數(shù)據(jù)塊元數(shù)據(jù)的那些寫I/O操作。
重要的是應(yīng)注意,即便鑒于完全功能的數(shù)據(jù)處理系統(tǒng)來描述本發(fā)明,本領(lǐng)域普通技術(shù)人員應(yīng)該理解,本發(fā)明的處理能夠以指令性計(jì)算機(jī)可讀介質(zhì)的形式以及多種形式分布,且同樣本發(fā)明的應(yīng)用不在乎實(shí)際用于實(shí)現(xiàn)分布的信號(hào)承載介質(zhì)的具體類型。計(jì)算機(jī)可讀介質(zhì)的示例包括可讀類型介質(zhì),如軟盤,硬盤驅(qū)動(dòng)器,RAM,CD-ROM,DVD-ROM,和傳輸類型介質(zhì),諸如使用例如無線電頻率和光波傳輸?shù)膫鬏斝问降臄?shù)據(jù)和模擬通信鏈路,有線或無線通信鏈路。計(jì)算機(jī)可讀介質(zhì)可采用編碼形式,并在具體數(shù)據(jù)處理系統(tǒng)中為實(shí)際應(yīng)用要進(jìn)行解碼。
本發(fā)明的描述是出于說明及描述目的,并不意在以所批露的形式詳盡列舉出本發(fā)明或限制本發(fā)明。顯而易見,本領(lǐng)域普通技術(shù)人員能夠易于想到多種修改和變形。所選及所述實(shí)施例是出于更好地說明本發(fā)明的原理以及實(shí)際應(yīng)用,并能夠使本領(lǐng)域其它普通技術(shù)人員以多種修改的多種實(shí)施例想到本發(fā)明,這些修改的實(shí)施例適用于他們所想到的具體應(yīng)用。
權(quán)利要求
1.一種在備份操作期間在至少一個(gè)存儲(chǔ)設(shè)備上處理寫輸入/輸出(I/O)請(qǐng)求的方法,包括接收用于對(duì)邏輯卷執(zhí)行寫I/O操作的寫I/O請(qǐng)求,其中,至少一部分邏輯卷駐留在所述至少一個(gè)存儲(chǔ)設(shè)備上;在文件系統(tǒng)日志中記錄寫I/O請(qǐng)求,表明正將寫I/O請(qǐng)求遞交給所述至少一個(gè)存儲(chǔ)設(shè)備;確定是否正在所述至少一個(gè)存儲(chǔ)設(shè)備上執(zhí)行備份操作;和如果確定正在執(zhí)行備份操作,將寫I/O操作掛起在邏輯卷管理器中,直到完成備份操作,其中,在備份操作期間,對(duì)至少一個(gè)其它邏輯卷的寫I/O操作不會(huì)被掛起。
2.根據(jù)權(quán)利要求1的方法,其中,掛起寫I/O操作包括將寫I/O請(qǐng)求存儲(chǔ)在邏輯卷管理器中的保持隊(duì)列中,其中,當(dāng)寫I/O請(qǐng)求處在保持隊(duì)列中時(shí),不會(huì)將寫I/O請(qǐng)求發(fā)送到所述至少一個(gè)存儲(chǔ)設(shè)備。
3.根據(jù)權(quán)利要求1的方法,其中,確定是否在執(zhí)行備份操作包括確定在邏輯卷管理器中是否設(shè)置備份標(biāo)志。
4.根據(jù)權(quán)利要求3的方法,其中,響應(yīng)從備份應(yīng)用接收到表明已啟動(dòng)備份操作的消息,設(shè)置備份標(biāo)志。
5.根據(jù)權(quán)利要求1的方法,其中,備份操作為實(shí)時(shí)點(diǎn)備份操作。
6.根據(jù)權(quán)利要求2的方法,還包括接收表明完成備份操作的消息;和響應(yīng)接收到該消息,從保持隊(duì)列釋放寫I/O請(qǐng)求;和將寫I/O請(qǐng)求遞交給所述至少一個(gè)存儲(chǔ)設(shè)備。
7.根據(jù)權(quán)利要求2的方法,其中,保持隊(duì)列為鏈接表,在鏈接表中按邏輯卷管理器接收寫I/O請(qǐng)求的順序存儲(chǔ)寫I/O請(qǐng)求。
8.根據(jù)權(quán)利要求6的方法,其中,按邏輯卷管理器接收寫I/O請(qǐng)求的順序從保持隊(duì)列釋放在保持隊(duì)列中的寫I/O請(qǐng)求。
9.根據(jù)權(quán)利要求6的方法,還包括僅在完成備份操作并從保持隊(duì)列釋放寫I/O操作之后,基于文件系統(tǒng)日志更新文件系統(tǒng)元數(shù)據(jù)。
10.根據(jù)權(quán)利要求1的方法,其中,僅當(dāng)寫I/O請(qǐng)求為用于將導(dǎo)致文件系統(tǒng)元數(shù)據(jù)發(fā)生變化的寫I/O操作時(shí)掛起寫I/O請(qǐng)求。
11.根據(jù)權(quán)利要求1的方法,其中,僅當(dāng)寫I/O請(qǐng)求對(duì)應(yīng)于經(jīng)歷備份操作的數(shù)據(jù)塊時(shí)掛起寫I/O請(qǐng)求。
12.一種在計(jì)算機(jī)可讀介質(zhì)中用于在備份操作期間在至少一個(gè)存儲(chǔ)設(shè)備上處理寫輸入/輸出(I/O)請(qǐng)求的計(jì)算機(jī)程序產(chǎn)品,包括第一指令,用于接收對(duì)邏輯卷執(zhí)行寫I/O操作的寫I/O請(qǐng)求,其中,至少一部分邏輯卷駐留在所述至少一個(gè)存儲(chǔ)設(shè)備上;第二指令,用于在文件系統(tǒng)日志中記錄寫I/O請(qǐng)求,表明正將寫I/O請(qǐng)求遞交給所述至少一個(gè)存儲(chǔ)設(shè)備;第三指令,用于確定是否在所述至少一個(gè)存儲(chǔ)設(shè)備上正執(zhí)行備份操作;和第四指令,用于當(dāng)確定正在執(zhí)行備份操作時(shí),將寫I/O操作掛起在邏輯卷管理器中,直到完成備份操作,其中,在備份操作期間,對(duì)至少一個(gè)其它邏輯卷的寫I/O操作不會(huì)被掛起。
13.根據(jù)權(quán)利要求12的計(jì)算機(jī)程序產(chǎn)品,其中,用于掛起寫I/O操作的第三指令包括用于將寫I/O請(qǐng)求存儲(chǔ)在邏輯卷管理器中的保持隊(duì)列中的指令,其中,當(dāng)寫I/O請(qǐng)求處在保持隊(duì)列中時(shí),不會(huì)將寫I/O請(qǐng)求發(fā)送到所述至少一個(gè)存儲(chǔ)設(shè)備。
14.根據(jù)權(quán)利要求12的計(jì)算機(jī)程序產(chǎn)品,其中,用于確定是否在執(zhí)行備份操作的第二指令包括用于確定在邏輯卷管理器中是否設(shè)置備份標(biāo)志的指令。
15.根據(jù)權(quán)利要求14的計(jì)算機(jī)程序產(chǎn)品,其中,響應(yīng)從備份應(yīng)用接收到表明已啟動(dòng)備份操作的消息,設(shè)置備份標(biāo)志。
16.根據(jù)權(quán)利要求12的計(jì)算機(jī)程序產(chǎn)品,其中,備份操作為實(shí)時(shí)點(diǎn)備份操作。
17.根據(jù)權(quán)利要求13的計(jì)算機(jī)程序產(chǎn)品,還包括第四指令,用于接收表明完成備份操作的消息;和第五指令,用于響應(yīng)接收到該消息,從保持隊(duì)列釋放寫I/O請(qǐng)求;和第六指令,用于將寫I/O請(qǐng)求遞交給所述至少一個(gè)存儲(chǔ)設(shè)備。
18.根據(jù)權(quán)利要求13的計(jì)算機(jī)程序產(chǎn)品,其中,保持隊(duì)列為鏈接表,在鏈接表中按邏輯卷管理器接收寫I/O請(qǐng)求的順序存儲(chǔ)寫I/O請(qǐng)求。
19.根據(jù)權(quán)利要求17的計(jì)算機(jī)程序產(chǎn)品,其中,按邏輯卷管理器接收寫I/O請(qǐng)求的順序從保持隊(duì)列釋放在保持隊(duì)列中的寫I/O請(qǐng)求。
20.根據(jù)權(quán)利要求17的計(jì)算機(jī)程序產(chǎn)品,還包括第七指令,用于僅在完成備份操作并從保持隊(duì)列釋放寫I/O操作之后,基于文件系統(tǒng)日志更新文件系統(tǒng)元數(shù)據(jù)。
21.根據(jù)權(quán)利要求12的計(jì)算機(jī)程序產(chǎn)品,其中,僅當(dāng)寫I/O請(qǐng)求為用于將導(dǎo)致文件系統(tǒng)元數(shù)據(jù)發(fā)生變化的寫I/O操作時(shí),掛起寫I/O請(qǐng)求。
22.根據(jù)權(quán)利要求12的計(jì)算機(jī)程序產(chǎn)品,其中,僅當(dāng)寫I/O請(qǐng)求對(duì)應(yīng)于經(jīng)歷備份操作的數(shù)據(jù)塊時(shí),掛起寫I/O請(qǐng)求。
23.一種在備份操作期間在至少一個(gè)存儲(chǔ)設(shè)備上處理寫輸入/輸出(I/O)請(qǐng)求的裝置,包括用于接收對(duì)邏輯卷執(zhí)行寫I/O操作的寫I/O請(qǐng)求的裝置,其中,至少一部分邏輯卷駐留在所述至少一個(gè)存儲(chǔ)設(shè)備上;用于在文件系統(tǒng)日志中記錄寫I/O請(qǐng)求,表明正將寫I/O請(qǐng)求遞交給所述至少一個(gè)存儲(chǔ)設(shè)備的裝置;用于確定是否正在執(zhí)行備份操作的裝置;和用于當(dāng)確定正在執(zhí)行備份操作時(shí),將寫I/O操作掛起在邏輯卷管理器中,直到完成備份操作的裝置,其中,在備份操作期間,對(duì)至少一個(gè)其它邏輯卷的寫I/O操作不會(huì)被掛起。
全文摘要
一種在備份操作期間確保有效日志文件系統(tǒng)元數(shù)據(jù)的方法和裝置,提供了用于在實(shí)時(shí)點(diǎn)備份操作期間掛起對(duì)存儲(chǔ)設(shè)備寫I/O操作的機(jī)制。完成實(shí)時(shí)點(diǎn)備份操作后釋放所掛起的寫I/O操作,然后由存儲(chǔ)系統(tǒng)進(jìn)行處理。啟動(dòng)實(shí)時(shí)點(diǎn)操作時(shí)在邏輯卷管理器中設(shè)置實(shí)時(shí)點(diǎn)備份標(biāo)志。接收寫I/O操作時(shí),邏輯卷管理器檢查實(shí)時(shí)點(diǎn)備份標(biāo)志的狀態(tài),以確定當(dāng)前是否在執(zhí)行實(shí)時(shí)點(diǎn)備份操作。如果未設(shè)標(biāo)志,記錄寫I/O操作并按正常方式執(zhí)行。如果已設(shè)標(biāo)志,將寫I/O操作存儲(chǔ)在邏輯卷管理器的保持隊(duì)列中。當(dāng)保持隊(duì)列中存儲(chǔ)了寫I/O時(shí),不允許將其發(fā)送給存儲(chǔ)系統(tǒng)。完成實(shí)時(shí)點(diǎn)備份操作時(shí),允許將保持隊(duì)列中所掛起的寫I/O操作發(fā)送到存儲(chǔ)系統(tǒng),并更新對(duì)于文件系統(tǒng)的元數(shù)據(jù),以反映寫I/O操作的提交。
文檔編號(hào)G06F13/16GK1605989SQ20041007988
公開日2005年4月13日 申請(qǐng)日期2004年9月23日 優(yōu)先權(quán)日2003年10月9日
發(fā)明者容昌, 馬克·艾倫·格魯布斯, 杰拉爾德·弗蘭西斯·邁克布雷迪, 格羅維爾·赫爾伯特·紐曼 申請(qǐng)人:國際商業(yè)機(jī)器公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1