国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      在文件系統(tǒng)中提供透明故障切換的制作方法

      文檔序號(hào):7816912閱讀:133來(lái)源:國(guó)知局
      專利名稱:在文件系統(tǒng)中提供透明故障切換的制作方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及提供透明故障切換,尤其是在文件系統(tǒng)中提供透明故障切換。
      背景技術(shù)
      存在用于在網(wǎng)絡(luò)上的兩臺(tái)計(jì)算機(jī)之間共享文件、打印機(jī)及其他資源的各種技術(shù)。 例如,服務(wù)器消息塊(SMB)和網(wǎng)絡(luò)文件系統(tǒng)(NFS)是用于共享資源的兩個(gè)應(yīng)用層網(wǎng)絡(luò)協(xié)議。 微軟WINDOWS 和其他操作系統(tǒng)使用SMB來(lái)允許兩臺(tái)計(jì)算機(jī)或其他資源進(jìn)行通信、請(qǐng)求訪問(wèn)資源、指定對(duì)資源的預(yù)期訪問(wèn)(例如讀、寫等)、鎖定資源等。微軟WIND0WS Vist a引入了簡(jiǎn)化SMB I. 0的命令集并添加很多其他增強(qiáng)的SMB 2. O。微軟WIND0WS 7和Server 2008 R2引入了添加機(jī)會(huì)鎖定(oplock)及其他增強(qiáng)的SMB 2. I。用于遠(yuǎn)程共享資源的大多數(shù)協(xié)議假定連接和會(huì)話之間的一對(duì)一關(guān)系。會(huì)話表示訪問(wèn)資源的任何單個(gè)請(qǐng)求以及對(duì)該資源的后續(xù)訪問(wèn)直到連接被終止為止的生存期。會(huì)話還可以與特定的安全主體和已確認(rèn)的安全憑證相關(guān)聯(lián),已確認(rèn)的安全憑證確定在會(huì)話期間被授權(quán)的動(dòng)作。連接可包括傳輸控制協(xié)議(TCP)、用戶數(shù)據(jù)報(bào)協(xié)議(UDP)、或像SMB和NFS的更高層協(xié)議可以借助來(lái)通信以執(zhí)行命令的其他類型的連接。SMB或NFS會(huì)話通常涉及在請(qǐng)求源和請(qǐng)求目標(biāo)之間打開(kāi)TCP或UDP連接,發(fā)送一個(gè)或多個(gè)SMB或NFS命令以訪問(wèn)目標(biāo)資源, 以及隨后關(guān)閉該會(huì)話。有時(shí)在會(huì)話期間連接丟失(例如,由于網(wǎng)絡(luò)故障),破壞在連接期間建立的任何客戶機(jī)和服務(wù)器狀態(tài)。為了重新建立連接,客戶機(jī)和服務(wù)器通常必須再一次重復(fù)用于最初建立連接的所有步驟。SMB2協(xié)議提供恢復(fù)鍵,該恢復(fù)鍵允許在某一客戶機(jī)與服務(wù)器斷開(kāi)連接后客戶機(jī)快速地重新建立到服務(wù)器的文件句柄,使得在一客戶機(jī)重新連接時(shí)客戶機(jī)能夠減少到服務(wù)器的網(wǎng)絡(luò)往返并減少服務(wù)器上的負(fù)載。然而,如今恢復(fù)鍵在服務(wù)器故障切換事件中不提供對(duì)狀態(tài)的還原,在服務(wù)器故障切換事件中SMB2服務(wù)器在服務(wù)器重啟或機(jī)群的故障切換期間丟失易失性狀態(tài)。與現(xiàn)有的打開(kāi)(open)相關(guān)聯(lián)的狀態(tài)信息丟失并且必須被重新建立。另夕卜,恢復(fù)鍵是僅可在應(yīng)用的邊界內(nèi)被創(chuàng)建和使用但不被共享的應(yīng)用級(jí)概念。

      發(fā)明內(nèi)容
      此處描述了通過(guò)遠(yuǎn)程地存儲(chǔ)與恢復(fù)鍵相關(guān)聯(lián)的客戶機(jī)狀態(tài)信息允許客戶機(jī)恢復(fù)與服務(wù)器或不同的替換服務(wù)器的連接的連接狀態(tài)系統(tǒng)。系統(tǒng)提供在服務(wù)器處運(yùn)行的便于對(duì)易失性服務(wù)器狀態(tài)信息的存儲(chǔ)的恢復(fù)鍵過(guò)濾器。狀態(tài)信息可包括諸如機(jī)會(huì)鎖(oplock)、授予客戶機(jī)的租約、和對(duì)文件句柄的進(jìn)行中的(in-flight)操作之類的信息。恢復(fù)鍵過(guò)濾器驅(qū)動(dòng)器位于文件系統(tǒng)之上,這允許多個(gè)文件訪問(wèn)協(xié)議能夠使用該過(guò)濾器,并且許可該過(guò)濾器跨多個(gè)文件系統(tǒng)提供此功能。該系統(tǒng)向協(xié)議提供狀態(tài)信息而與實(shí)際協(xié)議無(wú)關(guān)。在諸如服務(wù)器停機(jī)或丟失到客戶機(jī)的連接等故障切換事件之后,系統(tǒng)可以提出另一個(gè)服務(wù)器或同一服務(wù)器并使用恢復(fù)鍵過(guò)濾器重新建立由各個(gè)客戶機(jī)所持有的文件句柄的狀態(tài)。過(guò)濾器于故障切換之后在活動(dòng)文件上實(shí)施管制窗口(blackout window),該管制窗口保證活動(dòng)文件狀態(tài)可被一致地還原以及其他客戶機(jī)不會(huì)在此期間介入以訪問(wèn)文件。在恢復(fù)階段,恢復(fù)鍵用于將現(xiàn)有的故障切換前(pre-failover)文件句柄映射到恢復(fù)鍵過(guò)濾器存儲(chǔ)的故障切換后 (post-failover)保存的文件狀態(tài)。由此,連接狀態(tài)系統(tǒng)允許同一或另一個(gè)服務(wù)器在故障切換事件后用對(duì)客戶機(jī)盡可能少的干擾來(lái)恢復(fù)與客戶機(jī)的先前會(huì)話的狀態(tài)。提供本發(fā)明內(nèi)容以便以簡(jiǎn)化的形式介紹將在以下具體實(shí)施方式
      中進(jìn)一步描述的一些概念。本發(fā)明內(nèi)容并不旨在標(biāo)識(shí)所要求保護(hù)主題的關(guān)鍵特征或必要特征,也不旨在用于限制所要求保護(hù)主題的范圍。



      圖I是示出在一個(gè)實(shí)施例中的連接狀態(tài)系統(tǒng)的組件的框圖。圖2是示出一個(gè)實(shí)施例中的連接狀態(tài)系統(tǒng)捕捉文件系統(tǒng)狀態(tài)信息的處理的流程圖。圖3是示出一個(gè)實(shí)施例中的連接狀態(tài)系統(tǒng)在故障切換之后恢復(fù)連接的處理的流程圖。圖4是示出在一個(gè)實(shí)施例中的連接狀態(tài)系統(tǒng)的操作環(huán)境的框圖。
      具體實(shí)施例方式此處描述了通過(guò)遠(yuǎn)程地存儲(chǔ)與恢復(fù)鍵相關(guān)聯(lián)的客戶機(jī)狀態(tài)信息允許客戶機(jī)恢復(fù)與服務(wù)器或不同的替換服務(wù)器的連接的連接狀態(tài)系統(tǒng)。系統(tǒng)提供在服務(wù)器處運(yùn)行的便于對(duì)易失性服務(wù)器狀態(tài)信息的存儲(chǔ)的恢復(fù)鍵過(guò)濾器。狀態(tài)信息可包括諸如機(jī)會(huì)鎖(oplock)、授予客戶機(jī)的租約、和對(duì)文件句柄的進(jìn)行中的操作之類的信息?;謴?fù)鍵過(guò)濾器驅(qū)動(dòng)器位于文件系統(tǒng)之上,這允許多個(gè)文件訪問(wèn)協(xié)議能夠使用該過(guò)濾器,并且許可該過(guò)濾器跨多個(gè)文件系統(tǒng)提供此功能。該系統(tǒng)向協(xié)議提供狀態(tài)信息而與實(shí)際協(xié)議無(wú)關(guān)。在諸如服務(wù)器停機(jī)或丟失到客戶機(jī)的連接等故障切換事件之后,系統(tǒng)可以(例如,經(jīng)由諸如冗余以太網(wǎng)連接等不同連接)提出另一個(gè)服務(wù)器或同一服務(wù)器并使用恢復(fù)鍵過(guò)濾器重新建立由各個(gè)客戶機(jī)所持有的文件句柄的狀態(tài)。系統(tǒng)提供在服務(wù)器丟失其到客戶機(jī)的連接之后可用于透明故障切換的恢復(fù)鍵過(guò)濾器?;謴?fù)鍵過(guò)濾器位于文件系統(tǒng)之上,并且因此獨(dú)立于用于訪問(wèn)文件系統(tǒng)的協(xié)議?;謴?fù)鍵過(guò)濾器記錄活動(dòng)文件狀態(tài),并且在故障切換之后隨后還原活動(dòng)文件狀態(tài)?;謴?fù)鍵過(guò)濾器可捕捉各種狀態(tài)信息。例如,過(guò)濾器記錄包括(恢復(fù)鍵靜態(tài)地引用的)打開(kāi)句柄、未提交的 (uncommitted)文件狀態(tài)(諸如關(guān)閉時(shí)刪除、刪除待決、和鎖定狀態(tài))、以及特定的進(jìn)行中的 /被中斷的文件操作的活動(dòng)文件系統(tǒng)狀態(tài)。濾波器在故障切換之后還原活動(dòng)文件系統(tǒng)狀態(tài), 使得打開(kāi)句柄被恢復(fù)為與故障切換之前的那些句柄相匹配,以及進(jìn)行中的操作可被一致地重放。過(guò)濾器為多個(gè)遠(yuǎn)程文件系統(tǒng)(RFS)提供存儲(chǔ)并檢索與通過(guò)恢復(fù)鍵引用的打開(kāi)文件句柄相關(guān)聯(lián)的私有不透明數(shù)據(jù)的手段。過(guò)濾器于故障切換之后在活動(dòng)文件上實(shí)施管制窗口 (blackout window),該管制窗口保證活動(dòng)文件狀態(tài)可被一致地還原以及其他客戶機(jī)不會(huì)在此期間介入訪問(wèn)文件。過(guò)濾器還允許當(dāng)前活動(dòng)文件被“掛起”,并且隨后無(wú)需故障切換而被恢復(fù),以便在節(jié)點(diǎn)發(fā)生故障切換的機(jī)群場(chǎng)景中支持SMB。遠(yuǎn)程文件系統(tǒng)(RFS)向恢復(fù)鍵提供每個(gè)文件創(chuàng)建操作作為創(chuàng)建期間的額外參數(shù)。鍵對(duì)RFS是唯一的。 恢復(fù)鍵過(guò)濾器使用恢復(fù)鍵和RFS識(shí)別鍵共同作為文件句柄的全局唯一標(biāo)識(shí)符(GUID)。在恢復(fù)階段,恢復(fù)鍵用于將現(xiàn)有的故障切換前(pre-failover)文件句柄映射到恢復(fù)鍵過(guò)濾器存儲(chǔ)的故障后切換(post-failover)保存的文件狀態(tài)。由此,連接狀態(tài)系統(tǒng)允許同一或另一個(gè)服務(wù)器在故障切換事件后用對(duì)客戶機(jī)盡可能少的干擾來(lái)恢復(fù)與客戶機(jī)的先前會(huì)話的狀態(tài)。圖I是示出在一個(gè)實(shí)施例中的連接狀態(tài)系統(tǒng)的組件的框圖。系統(tǒng)100包括狀態(tài)收集組件110、狀態(tài)存儲(chǔ)組件120、狀態(tài)數(shù)據(jù)存儲(chǔ)130、恢復(fù)檢測(cè)組件140、狀態(tài)檢索組件150、狀態(tài)還原組件160、管制(blackout)實(shí)施組件170、和資源掛起組件180。這些組件中的每一個(gè)都在此處進(jìn)一步詳細(xì)討論。狀態(tài)收集組件110為每個(gè)文件句柄創(chuàng)建狀態(tài)記錄,并且在客戶機(jī)使用文件句柄請(qǐng)求操作時(shí)收集狀態(tài)信息。組件110可以在服務(wù)器運(yùn)行并在服務(wù)器外部存儲(chǔ)狀態(tài)信息,使得如果服務(wù)器不可用也可訪問(wèn)狀態(tài)信息。例如,組件110可以在此處進(jìn)一步描述的狀態(tài)數(shù)據(jù)存儲(chǔ)130中存儲(chǔ)狀態(tài)信息。狀態(tài)收集組件110可在客戶機(jī)連接到服務(wù)器時(shí)從客戶機(jī)接收恢復(fù)鍵,并且組件110在狀態(tài)數(shù)據(jù)存儲(chǔ)130中將收集的狀態(tài)信息與該恢復(fù)鍵相關(guān)聯(lián)。如果客戶機(jī)在故障切換事件之后重新連接,那么客戶機(jī)將提供用于打開(kāi)最初連接的同一恢復(fù)鍵, 并且當(dāng)前的服務(wù)器可查找先前的服務(wù)器所存儲(chǔ)的狀態(tài)信息并從該狀態(tài)信息重新創(chuàng)建服務(wù)器狀態(tài)。狀態(tài)存儲(chǔ)組件120與客戶機(jī)所提供的恢復(fù)鍵相關(guān)聯(lián)地存儲(chǔ)收集的狀態(tài)信息。組件 120將狀態(tài)信息存儲(chǔ)在狀態(tài)數(shù)據(jù)存儲(chǔ)130中,并且保持與該恢復(fù)鍵有關(guān)的、在故障切換事件發(fā)生的情況下將被還原的操作的記錄。狀態(tài)信息可包括打開(kāi)文件句柄、授予的機(jī)會(huì)鎖、租約和租約信息、進(jìn)行中的文件操作、字節(jié)范圍鎖、以及無(wú)需客戶機(jī)重新建立全部先前狀態(tài)的情況下另一個(gè)服務(wù)器用來(lái)執(zhí)行客戶機(jī)的請(qǐng)求的任何其他信息。狀態(tài)數(shù)據(jù)存儲(chǔ)130持久地存儲(chǔ)文件系統(tǒng)狀態(tài)信息,進(jìn)行恢復(fù)的服務(wù)器使用該文件系統(tǒng)狀態(tài)信息來(lái)重新創(chuàng)建發(fā)生故障的服務(wù)器所存儲(chǔ)的狀態(tài)信息。在某些情形中,進(jìn)行恢復(fù)的服務(wù)器與發(fā)生故障的服務(wù)器可以是使用到客戶機(jī)的不同連接或在短暫中斷之后回來(lái)的同一服務(wù)器。在其他情形中,進(jìn)行恢復(fù)的服務(wù)器與發(fā)生故障的服務(wù)器是不同的服務(wù)器,并且在兩個(gè)服務(wù)器都可以訪問(wèn)的位置提供狀態(tài)數(shù)據(jù)存儲(chǔ)130以供共享狀態(tài)信息。狀態(tài)數(shù)據(jù)存儲(chǔ) 130可包括一個(gè)或多個(gè)文件、文件系統(tǒng)、硬盤驅(qū)動(dòng)器、數(shù)據(jù)庫(kù)、存儲(chǔ)區(qū)域網(wǎng)絡(luò)(SAN)、基于云的存儲(chǔ)服務(wù)、或用于持久存儲(chǔ)數(shù)據(jù)并可由發(fā)生故障的服務(wù)器和進(jìn)行恢復(fù)的服務(wù)器二者訪問(wèn)以交換信息的其他存儲(chǔ)設(shè)施。發(fā)生故障的服務(wù)器在執(zhí)行操作時(shí),它將關(guān)于操作進(jìn)度的狀態(tài)信息存儲(chǔ)到狀態(tài)數(shù)據(jù)存儲(chǔ)130中。在故障之后,發(fā)生故障的服務(wù)器將被中斷,并且進(jìn)行恢復(fù)的服務(wù)器訪問(wèn)該狀態(tài)信息以恢復(fù)狀態(tài)并繼續(xù)執(zhí)行未完成的任何操作?;謴?fù)檢測(cè)組件140檢測(cè)使發(fā)生故障的服務(wù)器不可用并且通知進(jìn)行恢復(fù)的服務(wù)器替代發(fā)生故障的服務(wù)器的條件。該檢測(cè)可以是客戶機(jī)驅(qū)動(dòng)的,使得系統(tǒng)不執(zhí)行任何恢復(fù)步驟直到客戶機(jī)重新連接到系統(tǒng)并提供先前使用的恢復(fù)鍵。系統(tǒng)標(biāo)識(shí)該鍵以及與該鍵相關(guān)聯(lián)地存儲(chǔ)的任何狀態(tài)信息,并且還原該狀態(tài)信息作為設(shè)置連接的一部分。進(jìn)行恢復(fù)的服務(wù)器可以是與發(fā)生故障的服務(wù)器相同或不同的服務(wù)器,恢復(fù)檢測(cè)組件140確保進(jìn)行恢復(fù)的服務(wù)器變?yōu)榛顒?dòng)的以處理客戶機(jī)的請(qǐng)求。在其他實(shí)施例中,檢測(cè)可以是服務(wù)器驅(qū)動(dòng)的,并且系統(tǒng)可以在檢測(cè)到發(fā)生故障的服務(wù)器已經(jīng)停機(jī)之后先行地提出進(jìn)行恢復(fù)的服務(wù)器。即使在客戶機(jī)請(qǐng)求連接到服務(wù)器之前,系統(tǒng)也可以使用存儲(chǔ)的狀態(tài)信息來(lái)預(yù)先填充進(jìn)行恢復(fù)的服務(wù)器。
      狀態(tài)檢索組件150從進(jìn)行恢復(fù)的服務(wù)器可以訪問(wèn)的位置檢索存儲(chǔ)的狀態(tài)信息,其中該狀態(tài)信息允許進(jìn)行恢復(fù)的服務(wù)器恢復(fù)被檢測(cè)到的故障條件中斷的任何先前請(qǐng)求的文件系統(tǒng)操作。狀態(tài)檢索組件150從狀態(tài)數(shù)據(jù)存儲(chǔ)130檢索狀態(tài)信息并調(diào)用狀態(tài)還原組件 160來(lái)將信息加載到進(jìn)行恢復(fù)的服務(wù)器,使得進(jìn)行恢復(fù)的服務(wù)器能夠繼續(xù)客戶機(jī)所請(qǐng)求的操作。狀態(tài)還原組件160將檢索到的狀態(tài)信息加載到進(jìn)行恢復(fù)的服務(wù)器,使得進(jìn)行恢復(fù)的服務(wù)器可以繼續(xù)客戶機(jī)先前請(qǐng)求的操作。還原還可包括刷新任何機(jī)會(huì)鎖和/或客戶機(jī)所持有的租約以確保其他客戶機(jī)遵守先前所請(qǐng)求的訪問(wèn)級(jí)別和/或授予客戶機(jī)的獨(dú)占性。狀態(tài)還原組件160允許新的服務(wù)器或節(jié)點(diǎn)代替發(fā)生故障的服務(wù)器或節(jié)點(diǎn),而不會(huì)通過(guò)重復(fù)過(guò)去的操作將較重的負(fù)荷置于客戶機(jī)以還原狀態(tài)信息。使用像SMB 2.0的協(xié)議的客戶機(jī)已經(jīng)知道如何使用恢復(fù)鍵來(lái)還原到同一服務(wù)器的連接,并且連接狀態(tài)系統(tǒng)允許替換服務(wù)器對(duì)客戶機(jī)透明地代替發(fā)生故障的服務(wù)器?;謴?fù)鍵也可與NFS—同使用。在NFS的情形中,恢復(fù)鍵的概念對(duì)客戶機(jī)是完全不透明的??蛻魴C(jī)不明確地涉及或參與恢復(fù)鍵的生成、管理和關(guān)聯(lián)。相反,恢復(fù)鍵是服務(wù)器側(cè)概念。管制實(shí)施組件170在對(duì)一個(gè)或多個(gè)文件或其他資源的訪問(wèn)上實(shí)施管制時(shí)間段,管制時(shí)間段阻止第二客戶機(jī)以將與恢復(fù)與進(jìn)行恢復(fù)的服務(wù)器的連接的第一客戶機(jī)相沖突的方式干擾資源。組件170可以自動(dòng)地選擇被視為足夠長(zhǎng)以避免大多數(shù)沖突操作的時(shí)間段 (例如,15或30秒),但不足以在第一客戶機(jī)不恢復(fù)連接的情況下阻止其他客戶機(jī)訪問(wèn)資源。該時(shí)間段在第一客戶機(jī)選擇的情況下給予第一客戶機(jī)恢復(fù)連接的時(shí)間。在某些實(shí)施例中,系統(tǒng)允許管理員或其他用戶配置管制時(shí)間段的持續(xù)時(shí)間以出于應(yīng)用專用的目的調(diào)諧系統(tǒng)。系統(tǒng)還可允許各個(gè)客戶機(jī)請(qǐng)求管制時(shí)間段作為創(chuàng)建/打開(kāi)請(qǐng)求或其他應(yīng)用編程接口 (API)的參數(shù)。響應(yīng)于訪問(wèn)受管制的資源的企圖,組件170可以提供在特定時(shí)間段之后再次嘗試的指示或簡(jiǎn)單地使請(qǐng)求失敗。管制時(shí)間段之后,如果沒(méi)有客戶機(jī)恢復(fù)了連接,則管制結(jié)束并且訪問(wèn)資源的請(qǐng)求將照常成功。資源掛起組件180允許當(dāng)前活動(dòng)的資源被掛起并在沒(méi)有故障切換事件的情況下被恢復(fù),以允許機(jī)群能夠以計(jì)劃的方式故障切換到另一個(gè)節(jié)點(diǎn)。一個(gè)示例是負(fù)載平衡。掛起允許狀態(tài)的子集被轉(zhuǎn)換到新節(jié)點(diǎn)的情形。例如,如果機(jī)群中的一個(gè)節(jié)點(diǎn)過(guò)載,則管理員可能希望將該節(jié)點(diǎn)的客戶機(jī)的一半遷移到新節(jié)點(diǎn)。掛起允許捕捉正被遷移的打開(kāi)(open)的狀態(tài),并且允許客戶機(jī)連接到新節(jié)點(diǎn)作為相同打開(kāi)的延續(xù)(例如,不用重新建立服務(wù)器狀態(tài))。作為另一個(gè)示例,SMB支持通用節(jié)點(diǎn)被帶入機(jī)群并可用于可交換地服務(wù)客戶機(jī)請(qǐng)求的群集場(chǎng)景。有時(shí)有理由使特定的節(jié)點(diǎn)停用,諸如為了維護(hù),并且期望干凈地掛起當(dāng)前節(jié)點(diǎn), 激活新節(jié)點(diǎn),停用舊節(jié)點(diǎn),隨后在已停用的節(jié)點(diǎn)上執(zhí)行任何維護(hù)操作。這可能對(duì)客戶機(jī)產(chǎn)生不期望的影響,但是使用此處描述的技術(shù),系統(tǒng)100可以以有組織的方式掛起節(jié)點(diǎn),并且允許客戶機(jī)高效地恢復(fù)與新節(jié)點(diǎn)的操作。在其上實(shí)現(xiàn)連接狀態(tài)系統(tǒng)的計(jì)算設(shè)備可包括中央處理單元、存儲(chǔ)器、輸入設(shè)備 (例如,鍵盤和定點(diǎn)設(shè)備)、輸出設(shè)備(例如,顯示設(shè)備),以及存儲(chǔ)設(shè)備(例如,磁盤驅(qū)動(dòng)器或其他非易失性存儲(chǔ)介質(zhì))。存儲(chǔ)器和存儲(chǔ)設(shè)備是可以用實(shí)現(xiàn)或啟用該系統(tǒng)的計(jì)算機(jī)可執(zhí)行指令(例如,軟件)來(lái)編碼的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)。此外,數(shù)據(jù)結(jié)構(gòu)和消息結(jié)構(gòu)可被存儲(chǔ)或經(jīng)由諸如通信鏈路上的信號(hào)等數(shù)據(jù)傳送介質(zhì)發(fā)送??梢允褂酶鞣N通信鏈路,諸如因特網(wǎng)、 局域網(wǎng)、廣域網(wǎng)、點(diǎn)對(duì)點(diǎn)撥號(hào)連接、蜂窩電話網(wǎng)絡(luò)等。
      該系統(tǒng)的實(shí)施例可以在各種操作環(huán)境中實(shí)現(xiàn),這些操作環(huán)境包括個(gè)人計(jì)算機(jī)、月艮務(wù)器計(jì)算機(jī)、手持式或膝上型設(shè)備、多處理器系統(tǒng)、基于微處理器的系統(tǒng)、可編程消費(fèi)電子產(chǎn)品、數(shù)碼照相機(jī)、網(wǎng)絡(luò)PC、小型計(jì)算機(jī)、大型計(jì)算機(jī)、包括任何上述系統(tǒng)或設(shè)備、機(jī)頂盒、片上系統(tǒng)(SOC)等中任一種的分布式計(jì)算環(huán)境等。計(jì)算機(jī)系統(tǒng)可以是蜂窩電話、個(gè)人數(shù)字助理、智能電話、個(gè)人計(jì)算機(jī)、可編程消費(fèi)電子設(shè)備、數(shù)碼相機(jī)等。該系統(tǒng)可以在由一個(gè)或多個(gè)計(jì)算機(jī)或其他設(shè)備執(zhí)行的諸如程序模塊等計(jì)算機(jī)可執(zhí)行指令的通用上下文中描述。一般而言,程序模塊包括執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、對(duì)象、組件、數(shù)據(jù)結(jié)構(gòu)等等。通常,程序模塊的功能可以在各個(gè)實(shí)施例中按需進(jìn)行組合或分布。圖2是示出一個(gè)實(shí)施例中的連接狀態(tài)系統(tǒng)捕捉文件系統(tǒng)狀態(tài)信息的處理的流程圖。始于框210,系統(tǒng)從客戶機(jī)接收訪問(wèn)存儲(chǔ)在服務(wù)器上的遠(yuǎn)程資源的請(qǐng)求。訪問(wèn)請(qǐng)求可包括一個(gè)或多個(gè)參數(shù),包括用于在某一連接失敗的情況下跨多個(gè)潛在的連接標(biāo)識(shí)會(huì)話的恢復(fù)鍵。資源訪問(wèn)請(qǐng)求可以是從客戶機(jī)發(fā)送的一系列訪問(wèn)請(qǐng)求中的第一個(gè),并且如果客戶機(jī)曾經(jīng)與服務(wù)器斷開(kāi)連接,則客戶機(jī)可在接下來(lái)的打開(kāi)請(qǐng)求中向同一或新的服務(wù)器提供相同的恢復(fù)鍵以恢復(fù)連接。恢復(fù)鍵通過(guò)在看起來(lái)是獨(dú)立的客戶機(jī)連接之間將由服務(wù)器(或跨服務(wù)器)維護(hù)的狀態(tài)信息相關(guān)來(lái)幫助服務(wù)器更快地響應(yīng)客戶機(jī)。繼續(xù)至框220,系統(tǒng)確定標(biāo)識(shí)與請(qǐng)求有關(guān)的客戶機(jī)會(huì)話的標(biāo)識(shí)符。在某些情形中, 標(biāo)識(shí)符是客戶機(jī)提供給耐久句柄的恢復(fù)鍵,耐久句柄允許恢復(fù)由于各種原因斷開(kāi)連接的會(huì)話。訪問(wèn)請(qǐng)求可在協(xié)議中明確定義的位置處包括一個(gè)或多個(gè)參數(shù),使得系統(tǒng)可以通過(guò)讀取請(qǐng)求中的適合位置來(lái)提取鍵。另選地或另外地,服務(wù)器可包括用于確定不包括客戶機(jī)明確地提供的信息的標(biāo)識(shí)符的自動(dòng)化過(guò)程。例如,服務(wù)器可以根據(jù)網(wǎng)際協(xié)議(IP)地址或向服務(wù)器指示客戶機(jī)連接與先前的會(huì)話相關(guān)的其他推斷數(shù)據(jù)來(lái)標(biāo)識(shí)客戶機(jī)。繼續(xù)至框230,系統(tǒng)創(chuàng)建由所提取的標(biāo)識(shí)符可搜索的恢復(fù)記錄,該恢復(fù)記錄將由客戶機(jī)所請(qǐng)求的操作創(chuàng)建的狀態(tài)信息與所提取的標(biāo)識(shí)符相關(guān)聯(lián)?;謴?fù)記錄可被存儲(chǔ)到處理當(dāng)前訪問(wèn)請(qǐng)求的服務(wù)器外部的位置,使得如果該服務(wù)器失敗,則另一個(gè)服務(wù)器將能夠讀取該記錄以恢復(fù)操作并取代原始服務(wù)器?;謴?fù)記錄可包括文件、數(shù)據(jù)庫(kù)記錄、或存儲(chǔ)的其他形式。記錄可包括打開(kāi)文件句柄的列表、客戶機(jī)獲得的機(jī)會(huì)鎖、租約、或其他文件系統(tǒng)狀態(tài)信肩、O繼續(xù)至框240,系統(tǒng)從客戶機(jī)接收文件操作,該文件操作請(qǐng)求訪問(wèn)通過(guò)服務(wù)器可以訪問(wèn)的文件。文件操作可以是對(duì)打開(kāi)文件、關(guān)閉文件、讀文件、寫文件、打印到共享打印機(jī)、 或其他文件系統(tǒng)操作的請(qǐng)求。已接收的操作涉及在服務(wù)器上被創(chuàng)建的一定量的狀態(tài)信息。 例如,如果客戶機(jī)打開(kāi)到文件的句柄,那么服務(wù)器跟蹤該句柄以管理與該文件有關(guān)的其他客戶機(jī)請(qǐng)求,并且管理生存期和/或清除對(duì)該句柄的處理。繼續(xù)至框250,系統(tǒng)將恢復(fù)狀態(tài)信息存儲(chǔ)在創(chuàng)建的恢復(fù)記錄中,如果客戶機(jī)丟失其與服務(wù)器的連接,則該恢復(fù)記錄提供信息以恢復(fù)接收到的文件操作。如果客戶機(jī)連接失敗, 則客戶機(jī)將通過(guò)再次打開(kāi)遠(yuǎn)程資源并指定相同的恢復(fù)鍵或其他會(huì)話標(biāo)識(shí)符來(lái)嘗試恢復(fù)連接。這將允許服務(wù)器或另一個(gè)服務(wù)器訪問(wèn)存儲(chǔ)的恢復(fù)記錄,并重新建立先前的狀態(tài)信息。繼續(xù)至框260,系統(tǒng)執(zhí)行所請(qǐng)求的文件操作。操作可以打開(kāi)文件,讀文件的內(nèi)容,向文件寫數(shù)據(jù),改變對(duì)文件的訪問(wèn)權(quán)限,或任何其他文件系統(tǒng)操作。操作的結(jié)果可以改變服務(wù)器所存儲(chǔ)的狀態(tài)。例如,如果客戶機(jī)嘗試關(guān)閉句柄并且服務(wù)器成功地關(guān)閉該句柄,那么服務(wù)器狀態(tài)將被更新以將句柄從服務(wù)器所跟蹤的句柄列表中移除。 繼續(xù)至框270,系統(tǒng)基于已執(zhí)行的文件操作的結(jié)果更新在已創(chuàng)建的恢復(fù)記錄中已存儲(chǔ)的恢復(fù)狀態(tài)信息。系統(tǒng)無(wú)法提前得知導(dǎo)致故障切換的失敗將何時(shí)發(fā)生,因此系統(tǒng)在恢復(fù)記錄中保持對(duì)服務(wù)器狀態(tài)的最新視圖,允許服務(wù)器重新建立盡可能與先前服務(wù)器的狀態(tài)接近的狀態(tài)。未被完成的操作可被重放以完成操作,而完成的操作將無(wú)需被重復(fù)(但服務(wù)器可以向客戶機(jī)重新發(fā)送結(jié)果)。由此,在改變服務(wù)器狀態(tài)信息的各種文件系統(tǒng)操作期間或之后,系統(tǒng)按需更新?tīng)顟B(tài)。繼續(xù)至框280,系統(tǒng)向客戶機(jī)發(fā)送指示所請(qǐng)求的文件操作的結(jié)果的響應(yīng)。如果客戶機(jī)和服務(wù)器仍然連接,那么操作如其被客戶機(jī)所請(qǐng)求的那樣繼續(xù),并且服務(wù)器繼續(xù)跟蹤更新的狀態(tài)信息。如果連接在任意時(shí)間丟失,則另一個(gè)服務(wù)器可被提出或現(xiàn)有的服務(wù)器被修復(fù),并且可從狀態(tài)存儲(chǔ)加載狀態(tài)信息以重新建立先前的服務(wù)器狀態(tài)。在從客戶機(jī)接收恢復(fù)會(huì)話的新請(qǐng)求之后,客戶機(jī)無(wú)需知道故障切換已經(jīng)發(fā)生以及客戶機(jī)正潛在地與不是原始服務(wù)器的不同的服務(wù)器進(jìn)行交互。在框280之后,這些步驟結(jié)束。圖3是示出一個(gè)實(shí)施例中的連接狀態(tài)系統(tǒng)在故障切換之后恢復(fù)連接的處理的流程圖。始于框310,系統(tǒng)從客戶機(jī)接收打開(kāi)存儲(chǔ)在服務(wù)器上的遠(yuǎn)程資源的請(qǐng)求。訪問(wèn)請(qǐng)求可包括一個(gè)或多個(gè)參數(shù),包括用于在某一連接失敗的情況下跨多個(gè)潛在連接標(biāo)識(shí)會(huì)話的恢復(fù)鍵。與參考圖2所討論的資源訪問(wèn)請(qǐng)求不同,該請(qǐng)求是重新連接到先前連接的會(huì)話的請(qǐng)求??蛻魴C(jī)提供與原始提供的相同的恢復(fù)鍵,使得服務(wù)器可將當(dāng)前會(huì)話請(qǐng)求與先前的會(huì)話相關(guān)。繼續(xù)至框320,系統(tǒng)確定標(biāo)識(shí)與請(qǐng)求有關(guān)的客戶機(jī)會(huì)話的會(huì)話標(biāo)識(shí)符。在某些情形中,標(biāo)識(shí)符是客戶機(jī)提供給耐久句柄的SMB 2恢復(fù)鍵,耐久句柄允許恢復(fù)由于各種原因斷開(kāi)連接的會(huì)話。訪問(wèn)請(qǐng)求可在協(xié)議中明確定義的位置處包括一個(gè)或多個(gè)參數(shù),使得系統(tǒng)可以通過(guò)讀取請(qǐng)求中的適合位置來(lái)提取鍵。在其他情形中,服務(wù)器可以基于關(guān)于客戶機(jī)的信息自動(dòng)地確定標(biāo)識(shí)符。繼續(xù)至框330,系統(tǒng)在狀態(tài)存儲(chǔ)中查找接收的會(huì)話標(biāo)識(shí)符以標(biāo)識(shí)與該會(huì)話標(biāo)識(shí)符相關(guān)聯(lián)的恢復(fù)記錄。使用可恢復(fù)的會(huì)話與客戶機(jī)交互的任何先前的服務(wù)器以進(jìn)行中的方式在與客戶機(jī)的整個(gè)交互過(guò)程中存儲(chǔ)狀態(tài)信息??蛻魴C(jī)嘗試重新建立連接時(shí),狀態(tài)信息對(duì)代替原始服務(wù)器的故障切換服務(wù)器是可用的。狀態(tài)信息可以被存儲(chǔ)在原始服務(wù)器的外部,使得該信息在原始服務(wù)器故障之后是可以被訪問(wèn)的。繼續(xù)至框340,系統(tǒng)從狀態(tài)存儲(chǔ)接收與恢復(fù)記錄相關(guān)聯(lián)的先前的狀態(tài)信息。狀態(tài)信息標(biāo)識(shí)諸如打開(kāi)文件句柄、已獲得的租約、已獲得的機(jī)會(huì)鎖等靜態(tài)狀態(tài),以及諸如可能尚未完成的進(jìn)行中的操作的動(dòng)態(tài)狀態(tài)。存儲(chǔ)的狀態(tài)信息允許故障切換服務(wù)器無(wú)需客戶機(jī)的專門處理而代替原始服務(wù)器??蛻魴C(jī)理解可恢復(fù)的句柄并且執(zhí)行步驟以使連接是可恢復(fù)的,但可能不知道在任何特定時(shí)間哪個(gè)服務(wù)器結(jié)束處理該連接??蛻魴C(jī)可以經(jīng)由可解析若干服務(wù)器中任一個(gè)的地址的域名或網(wǎng)絡(luò)文件共享來(lái)訪問(wèn)服務(wù)器,包括故障切換服務(wù)器。
      繼續(xù)至框350,系統(tǒng)通過(guò)將信息加載到跟蹤文件系統(tǒng)狀態(tài)的文件系統(tǒng)組件來(lái)還原已接收的先前的狀態(tài)信息。加載狀態(tài)之后,故障切換服務(wù)器的本地狀態(tài)類似于在全部先前的操作已經(jīng)發(fā)生在故障切換服務(wù)器的情況下?tīng)顟B(tài)看起來(lái)如何的情況。由此,對(duì)于客戶機(jī)繼續(xù)該系列操作來(lái)說(shuō),故障切換服務(wù)器像在連接沒(méi)有失敗的情況下原始服務(wù)器那樣有用。繼續(xù)至框360,系統(tǒng)響應(yīng)客戶機(jī)訪問(wèn)請(qǐng)求,指示服務(wù)器發(fā)現(xiàn)了恢復(fù)記錄并且準(zhǔn)備接收與先前的會(huì)話有關(guān)的客戶機(jī)操作?;诜?wù)器的響應(yīng),客戶機(jī)可以確定會(huì)話是否被恢復(fù)或者客戶機(jī)是否需要采取步驟以重復(fù)先前的操作。如果會(huì)話被成功地恢復(fù),那么客戶機(jī)可繼續(xù)了解先前的操作已完成或被重放以在服務(wù)器恢復(fù)之后完成。在某些情形中,系統(tǒng)可將具有與故障切換前文件句柄相同狀態(tài)的新文件句柄交給客戶機(jī)。在框360之后,這些步驟結(jié)束。圖4是示出在一個(gè)實(shí)施例中的連接狀態(tài)系統(tǒng)的操作環(huán)境的框圖。環(huán)境包括與文件系統(tǒng)交互的一個(gè)或多個(gè)操作系統(tǒng)服務(wù)或應(yīng)用。例如,微軟WINDOWS 包括被稱為SRV的服務(wù)器服務(wù)420,以及被稱為NFS的網(wǎng)絡(luò)文件系統(tǒng)服務(wù)410。網(wǎng)絡(luò)文件系統(tǒng)服務(wù)410和服務(wù)器服務(wù)420提供計(jì)算機(jī)系統(tǒng)之間對(duì)諸如文件和打印機(jī)等共享資源的訪問(wèn)。服務(wù)器服務(wù)420使用 WINDOWS 網(wǎng)絡(luò)常用的SMB協(xié)議,而網(wǎng)絡(luò)文件系統(tǒng)服務(wù)410提供對(duì)更常使用NFS的基于Unix 的系統(tǒng)的訪問(wèn)。無(wú)論協(xié)議如何,恢復(fù)鍵過(guò)濾器430捕捉文件操作,并且將用于恢復(fù)操作的狀態(tài)信息存儲(chǔ)到遠(yuǎn)程數(shù)據(jù)存儲(chǔ)中。操作穿過(guò)文件系統(tǒng)層440(例如,NTFS或其他文件系統(tǒng))并且影響一個(gè)或多個(gè)用戶數(shù)據(jù)文件450。同時(shí),恢復(fù)鍵過(guò)濾器430將狀態(tài)信息寫入另一個(gè)服務(wù)器可以訪問(wèn)以檢索狀態(tài)信息并恢復(fù)到客戶機(jī)的連接的日志文件460或其他數(shù)據(jù)存儲(chǔ)。系統(tǒng)可以獨(dú)立于所涉及的特定協(xié)議或文件系統(tǒng)而操作,并且各個(gè)組件可被更新以將它們自身的特定狀態(tài)信息保存到狀態(tài)數(shù)據(jù)存儲(chǔ)中。在某些實(shí)施例中,連接狀態(tài)系統(tǒng)存儲(chǔ)代表文件系統(tǒng)組件的不透明的數(shù)據(jù)團(tuán)塊以允許系統(tǒng)在不具備組件專用知識(shí)的情況下恢復(fù)連接。例如,此處描述的恢復(fù)鍵過(guò)濾器可以向服務(wù)器服務(wù)要求服務(wù)器服務(wù)重新創(chuàng)建其當(dāng)前狀態(tài)所需的任何數(shù)據(jù)。過(guò)濾器隨后可將任何接收到的數(shù)據(jù)作為不透明團(tuán)塊(即過(guò)濾器無(wú)需知道團(tuán)塊中有什么或其語(yǔ)義含義)存儲(chǔ)到狀態(tài)存儲(chǔ)中。故障切換條件下,在新的服務(wù)器上運(yùn)行的恢復(fù)鍵過(guò)濾器可以訪問(wèn)存儲(chǔ)的狀態(tài)信息, 檢索存儲(chǔ)的團(tuán)塊,并且將該團(tuán)塊提供給服務(wù)器服務(wù),使得服務(wù)器服務(wù)可還原其自身的狀態(tài)。 以此方式,可使系統(tǒng)與很多類型的協(xié)議一起工作,而不需要對(duì)為服務(wù)器實(shí)現(xiàn)每個(gè)協(xié)議的組件的內(nèi)部操作的具體知識(shí)。在某些實(shí)施例中,連接狀態(tài)系統(tǒng)以某一時(shí)間量(即管制時(shí)間段)阻止其他客戶機(jī)訪問(wèn)文件或與可恢復(fù)的句柄有關(guān)的其他資源。如果原始客戶機(jī)在管制時(shí)間段期間重新連接,那么原始客戶機(jī)找回帶有全部先前狀態(tài)的其連接,并且可恢復(fù)操作。如果另一個(gè)客戶機(jī)嘗試連接,則服務(wù)器可提供指示等待一時(shí)間量并重試的消息。意識(shí)到恢復(fù)的客戶機(jī)可以使用該信息來(lái)延遲重試直到管制時(shí)間段之后,而更早的客戶機(jī)可以簡(jiǎn)單地使連接失效并應(yīng)用戶的請(qǐng)求手動(dòng)地重試。如果原始客戶機(jī)在管制時(shí)間段內(nèi)沒(méi)有返回,則服務(wù)器清除恢復(fù)狀態(tài)信息并允許新的客戶機(jī)照常訪問(wèn)資源。 在某些實(shí)施例中,連接狀態(tài)系統(tǒng)可以使用用于加速恢復(fù)的各種存儲(chǔ)設(shè)備或策略。例如,系統(tǒng)可以使用用于存儲(chǔ)恢復(fù)狀態(tài)信息的快速非易失性存儲(chǔ)設(shè)備(例如固態(tài)盤 (SSD)),使得恢復(fù)更快地訪問(wèn)數(shù)據(jù)以避免進(jìn)一步延遲已被故障中斷的操作。作為另一個(gè)示例,系統(tǒng)可以向一組服務(wù)器廣播每個(gè)服務(wù)器作出的全部改變,使得每個(gè)服務(wù)器可以維護(hù)狀態(tài)信息的其自身的副本,并且可在發(fā)生原始服務(wù)器的故障時(shí)被選為故障切換服務(wù)器。從前面的描述,可以理解的是,此處描述的連接狀態(tài)系統(tǒng)的特定實(shí)施例只是出于說(shuō)明的目的,但是,在不偏離本發(fā)明的精神和范圍的情況下,可以進(jìn)行各種修改。因此,本發(fā)明只受所附權(quán)利要求限制
      權(quán)利要求
      1.一種用于捕捉文件系統(tǒng)狀態(tài)信息以便于恢復(fù)連接的計(jì)算機(jī)實(shí)現(xiàn)的方法,所述方法包括 從客戶機(jī)接收訪問(wèn)存儲(chǔ)在服務(wù)器上的遠(yuǎn)程資源的請(qǐng)求(210); 確定標(biāo)識(shí)與所述請(qǐng)求有關(guān)的客戶機(jī)會(huì)話的標(biāo)識(shí)符(220); 創(chuàng)建可由所提取的標(biāo)識(shí)符捜索的恢復(fù)記錄(230),所述恢復(fù)記錄將由所述客戶機(jī)所請(qǐng)求的操作創(chuàng)建的狀態(tài)信息與所提取的標(biāo)識(shí)符相關(guān)聯(lián); 從所述客戶機(jī)接收文件操作(240),所述文件操作請(qǐng)求訪問(wèn)通過(guò)所述服務(wù)器可訪問(wèn)的文件; 將恢復(fù)狀態(tài)信息存儲(chǔ)在所創(chuàng)建的恢復(fù)記錄中(250),如果所述客戶機(jī)丟失其與所述服務(wù)器的連接,則所述恢復(fù)記錄提供信息以恢復(fù)所接收的文件操作; 執(zhí)行所請(qǐng)求的文件操作(260); 基于執(zhí)行的文件操作的結(jié)果,更新所創(chuàng)建的恢復(fù)記錄中存儲(chǔ)的恢復(fù)狀態(tài)信息(270);以及 將指示所請(qǐng)求的文件操作的結(jié)果的響應(yīng)發(fā)送到所述客戶機(jī)(280); 其中,前面的各步驟由至少ー個(gè)處理器來(lái)執(zhí)行。
      2.如權(quán)利要求I所述的方法,其特征在于,所述訪問(wèn)請(qǐng)求包括ー個(gè)或多個(gè)參數(shù),所述ー個(gè)或多個(gè)參數(shù)包括在ー連接失敗的情況下跨多個(gè)潛在的連接標(biāo)識(shí)所述客戶機(jī)會(huì)話的恢復(fù)鍵,并且其中所述恢復(fù)鍵是所確定的標(biāo)識(shí)符的至少一部分。
      3.如權(quán)利要求I所述的方法,其特征在于,還包括在所述客戶機(jī)變?yōu)榕c所述服務(wù)器斷開(kāi)連接之后,在一故障切換服務(wù)器處接收新的訪問(wèn)請(qǐng)求,所述服務(wù)器可將該新的訪問(wèn)請(qǐng)求與原始訪問(wèn)請(qǐng)求相關(guān)以通過(guò)在多個(gè)客戶機(jī)連接之間將所述服務(wù)器維護(hù)的狀態(tài)信息相關(guān)來(lái)幫助所述故障切換服務(wù)器在ー連接故障后更快地響應(yīng)所述客戶機(jī)。
      4.如權(quán)利要求I所述的方法,其特征在干,網(wǎng)絡(luò)文件系統(tǒng)(NFS)服務(wù)器自動(dòng)地確定所述標(biāo)識(shí)符,而不從所述客戶機(jī)接收恢復(fù)鍵。
      5.如權(quán)利要求I所述的方法,其特征在于,所提取的標(biāo)識(shí)符是所述客戶機(jī)為耐久句柄提供的服務(wù)器消息塊(SMB)恢復(fù)鍵,所述耐久句柄允許恢復(fù)斷開(kāi)連接的會(huì)話。
      6.如權(quán)利要求I所述的方法,其特征在干,創(chuàng)建恢復(fù)記錄包括將所述恢復(fù)記錄存儲(chǔ)到處理當(dāng)前訪問(wèn)請(qǐng)求的所述服務(wù)器外部的位置,使得如果所述服務(wù)器失敗,則另一個(gè)服務(wù)器將能夠讀取記錄以恢復(fù)來(lái)自所述客戶機(jī)的任何操作并取代原始服務(wù)器。
      7.如權(quán)利要求I所述的方法,其特征在于,接收文件操作包括對(duì)執(zhí)行從包括打開(kāi)文件、關(guān)閉文件、讀文件、寫文件、獲得文件的租約以及獲得文件的鎖的組中選擇的操作的請(qǐng)求。
      8.如權(quán)利要求I所述的方法,其特征在于,還包括在所述客戶機(jī)變?yōu)榕c所述服務(wù)器斷開(kāi)連接之后,在故障切換服務(wù)器加載所存儲(chǔ)的恢復(fù)記錄,使得所述客戶機(jī)可連接到所述故障切換服務(wù)器并繼續(xù)任何先前的操作。
      9.如權(quán)利要求I所述的方法,其特征在于,執(zhí)行所請(qǐng)求的文件操作修改所述服務(wù)器存儲(chǔ)的狀態(tài),并且其中,更新所存儲(chǔ)的恢復(fù)狀態(tài)信息捕捉經(jīng)修改的狀態(tài)。
      10.如權(quán)利要求I所述的方法,其特征在于,更新所存儲(chǔ)的恢復(fù)狀態(tài)信息包括保持所述恢復(fù)記錄中的所述服務(wù)器狀態(tài)的最新視圖,所述最新視圖允許另ー個(gè)服務(wù)器重新建立狀態(tài)并代替原始服務(wù)器來(lái)處理客戶機(jī)請(qǐng)求,而不需要所述客戶機(jī)重新建立所述狀態(tài)信息中的至少一些。
      11.一種在文件系統(tǒng)中為客戶機(jī)提供透明故障切換的計(jì)算機(jī)系統(tǒng),所述系統(tǒng)包括被配置成執(zhí)行包含在以下組件內(nèi)的軟件指令的處理器和存儲(chǔ)器;狀態(tài)收集組件(110),為每個(gè)文件句柄創(chuàng)建狀態(tài)記錄并且在客戶機(jī)使用所述文件句柄請(qǐng)求操作時(shí)收集狀態(tài)信息;狀態(tài)存儲(chǔ)組件(120),與 所述客戶機(jī)提供的會(huì)話標(biāo)識(shí)符相關(guān)聯(lián)地存儲(chǔ)所收集的狀態(tài)信息;狀態(tài)數(shù)據(jù)存儲(chǔ)(130),持久地存儲(chǔ)文件系統(tǒng)狀態(tài)信息,進(jìn)行恢復(fù)的服務(wù)器使用所述文件系統(tǒng)狀態(tài)信息來(lái)重新創(chuàng)建由發(fā)生故障的服務(wù)器存儲(chǔ)的狀態(tài)信息;恢復(fù)檢測(cè)組件(140),檢測(cè)使發(fā)生故障的服務(wù)器不可用并且通知進(jìn)行恢復(fù)的服務(wù)器取代所述發(fā)生故障的服務(wù)器的條件;狀態(tài)檢索組件(150),從所述進(jìn)行恢復(fù)的服務(wù)器可以訪問(wèn)的位置檢索存儲(chǔ)的狀態(tài)信息, 其中所述狀態(tài)信息允許所述進(jìn)行恢復(fù)的服務(wù)器恢復(fù)被檢測(cè)到的故障條件中斷的任何先前所請(qǐng)求的文件系統(tǒng)操作;以及狀態(tài)還原組件(160),將檢索到的狀態(tài)信息加載到所述進(jìn)行恢復(fù)的服務(wù)器,使得所述進(jìn)行恢復(fù)的服務(wù)器可以繼續(xù)所述客戶機(jī)先前請(qǐng)求的操作。
      12.如權(quán)利要求11所述的系統(tǒng),其特征在于,所述狀態(tài)收集組件還被配置為在一服務(wù)器處運(yùn)行并在所述服務(wù)器外部存儲(chǔ)狀態(tài)信息,使得如果所述服務(wù)器不可用所述狀態(tài)信息也可被訪問(wèn)。
      13.如權(quán)利要求11所述的系統(tǒng),其特征在于,所述狀態(tài)收集組件還被配置為在所述客戶機(jī)連接到所述服務(wù)器時(shí)從所述客戶機(jī)接收恢復(fù)鍵,并且在所述狀態(tài)數(shù)據(jù)存儲(chǔ)中將所收集的狀態(tài)信息與所述恢復(fù)鍵相關(guān)聯(lián)。
      14.如權(quán)利要求11所述的系統(tǒng),其特征在于,所述狀態(tài)數(shù)據(jù)存儲(chǔ)為進(jìn)行恢復(fù)的服務(wù)器存儲(chǔ)并提供信息,所述進(jìn)行恢復(fù)的服務(wù)器是使用到所述客戶機(jī)的不同連接的、與所述發(fā)生故障的服務(wù)器相同的服務(wù)器。
      15.如權(quán)利要求11所述的系統(tǒng),其特征在于,所述狀態(tài)數(shù)據(jù)存儲(chǔ)在所述發(fā)生故障的服務(wù)器執(zhí)行操作時(shí)接收狀態(tài)信息,并且在故障之后向所述進(jìn)行恢復(fù)的服務(wù)器提供對(duì)先前接收的狀態(tài)信息的訪問(wèn),以恢復(fù)所述狀態(tài)并繼續(xù)執(zhí)行未完成的任何操作。
      全文摘要
      本發(fā)明涉及在文件系統(tǒng)中提供透明故障切換。此處描述了通過(guò)遠(yuǎn)程地存儲(chǔ)與恢復(fù)鍵相關(guān)聯(lián)的客戶機(jī)狀態(tài)信息允許客戶機(jī)恢復(fù)與服務(wù)器或不同的替換服務(wù)器的連接的連接狀態(tài)系統(tǒng)。系統(tǒng)提供在服務(wù)器處運(yùn)行的便于對(duì)易失性服務(wù)器狀態(tài)信息的存儲(chǔ)的恢復(fù)鍵過(guò)濾器。狀態(tài)信息可包括諸如機(jī)會(huì)鎖、授予客戶機(jī)的租約、和對(duì)文件句柄的進(jìn)行中的操作之類的信息?;謴?fù)鍵過(guò)濾器驅(qū)動(dòng)器位于文件系統(tǒng)之上,這允許多個(gè)文件訪問(wèn)協(xié)議能夠使用該過(guò)濾器。在諸如服務(wù)器停機(jī)或丟失到客戶機(jī)的連接等故障切換事件之后,系統(tǒng)可以提出另一個(gè)服務(wù)器或同一服務(wù)器并使用恢復(fù)鍵過(guò)濾器重新建立由各個(gè)客戶機(jī)所持有的文件句柄的狀態(tài)。
      文檔編號(hào)H04L12/24GK102624542SQ20111046279
      公開(kāi)日2012年8月1日 申請(qǐng)日期2011年12月9日 優(yōu)先權(quán)日2010年12月10日
      發(fā)明者D·M·克魯斯, M·C·約翰遜, M·喬治, P·R·斯旺, R·C·巴特帕蒂 申請(qǐng)人:微軟公司
      網(wǎng)友詢問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1