国产精品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)和方法

      文檔序號:6561642閱讀:111來源:國知局
      專利名稱:用于置換資源控制器鎖的所有權的裝置、系統(tǒng)和方法
      技術領域
      本發(fā)明涉及共享的可控制資源并且更特別地涉及自行置換共享可控制資源的全局資源鎖。
      背景技術
      在以聯(lián)合或是交替的方式對多個可控制資源(例如,諸如硬盤驅動器、磁帶驅動器和光存儲驅動器之類的存儲資源)進行共享的服務器環(huán)境中,對部分可控制資源的訪問可以由單一的資源控制器(例如,服務器)排它地進行,從而執(zhí)行處理,同時確保相符的數據保持一致和準確。通常該服務器環(huán)境包括兩個或多個資源控制器,這些控制器互相共享來自多個相連接的主機適配器的請求,并且在多個相連接的存儲適配器(例如,可控制資源)上執(zhí)行這些請求。對于資源控制器的一個要求就是能夠對共享多個可控制資源的并行處理進行協(xié)調。
      通常,當資源控制器接收到執(zhí)行處理的請求時,該資源控制器就會獲得資源鎖。該資源鎖對于資源控制器執(zhí)行特定處理所需要的可控制資源進行臨時排它控制。該資源鎖可以對于單一可控制資源的一部分、全部可控制資源或是連接到系統(tǒng)的所有可控制資源的一部分進行排它訪問。如果所請求的可控制資源的一部分當前正在使用,則對該資源鎖請求進行排隊,直到所請求的可控制資源的所有部分為可用時為止。當確保資源鎖后,處理得以執(zhí)行,隨后釋放該資源鎖。
      在持續(xù)發(fā)展的信息時代,有一件事情保持不變對于任務關鍵的(mission-critical)數據和應用程序的百分之百的可用性的需求。無論是對于股票市場、公司薪金名冊、電子商務、企業(yè)數據庫、醫(yī)療記錄、因特網銀行還是出于國家安全的原因,這些任務關鍵的資源的可用性隨著對增加的存儲容量的需求而增長。
      對于服務器環(huán)境中所有權的較低的總成本來說最大的障礙之一就是與管理涉及存儲的問題相關聯(lián)的工作量。由系統(tǒng)資源自動地管理存儲資源和數據而不是手工管理可以幫助使該成本最小化。然而,確保任務關鍵的數據和應用程序在系統(tǒng)范圍內的可用性繼續(xù)提出了獨特的管理挑戰(zhàn)。任務關鍵的商業(yè)系統(tǒng)通??缭街鳈C和分布式的計算環(huán)境,為了組織的成功而管理著很多商業(yè)處理。在該環(huán)境下與其它的戰(zhàn)略性的系統(tǒng)和應用程序共享來自商業(yè)處理的數據要求全面的解決方案。然而,這種解決方案應當足夠簡單從而通過管理員最小限度的監(jiān)管就可以自行并入而無需過度增加系統(tǒng)運行的負擔。
      用于這種需要對大規(guī)模數據庫進行管理的任務關鍵的應用程序的主導服務器仍然是大型機。例如IBM z9-109系列企業(yè)服務器之類的大型機是為高可靠性、高性能、基礎廣泛的連通性選擇以及廣泛的企業(yè)存儲解決方案而設計的。然而,雖然在存儲管理中有大量的優(yōu)勢,但是在任務關鍵的資源的高可靠性方面仍然有改進的余地。當將用于對所有合并的可控制資源的排它性訪問的資源鎖給予單一的資源控制器而該控制器發(fā)生了故障但同時卻保持著該鎖的所有權時就會產生問題。
      例如,當在兩組資源控制器之間進行通信時,或是當多個資源控制器中的一個資源控制器崩潰時,對于資源控制器存在協(xié)議用以競爭所有可控制資源的全局所有權,即取代所有現(xiàn)有資源鎖的全局排它性。贏得競爭的第一資源控制器得到對于所有可控制資源的所有權,而實際上輸掉了競爭的資源控制器則變?yōu)榉腔顒拥?,并被鎖在外面不能再訪問任何可控制資源。這個全局排它性不能被清除,直到兩個資源控制器被重新啟動并且變得具有全部的功能,或是輸掉了競爭的資源控制器變回聯(lián)機狀態(tài),具有完整的功能性并且通信被恢復。
      除了包括死鎖、匱乏以及優(yōu)先級倒置的共有排它算法的一般副作用之外,在全局排它算法的情況下存在一個問題。例如,當持有全局資源鎖的資源控制器意外地死機(例如,崩潰)時,其它的資源控制器不能自行接管可控制資源的全部所有權。對于所有可控制資源的訪問丟失,導致了任務關鍵的數據和應用程序的可用性的全然喪失,繼而引發(fā)了為了恢復系統(tǒng)資源而增加的管理工作量和存儲管理成本。例如,假設服務器A和服務器B競爭所有權而服務器A贏得了關于得到對于所有可控制資源的全局排它性的競爭。接著服務器A崩潰并且由于硬件問題而不能變回聯(lián)機狀態(tài)。在這些情況下,服務器B被孤立,并且由于在脫機的服務器A的內部丟失了釋放所有權鎖的能力,因此服務器B被阻止接管全局資源鎖的所有權。
      存在傳統(tǒng)的程序用以解決丟失鎖的場景。一種方法涉及同時一起啟動兩個資源控制器從而清除全局資源鎖,恢復對于系統(tǒng)資源的共有訪問,以及生成可用于將來的競爭的全局資源鎖。然而,除了要求兩個資源控制器對于系統(tǒng)管理員來說可用從而手工地將其帶回到全功能狀態(tài)下之外,對于任務關鍵的數據和應用程序的高可用性不能得以維持。其它傳統(tǒng)的恢復使得作為全局資源鎖的當前所有者的資源控制器必須自己鎖定回聯(lián)機狀態(tài)。然而,這就要求具有全局資源排它性的資源控制器緊接在導致其崩潰的故障之后處于全功能狀態(tài)下。恢復僅僅是建立相同的場景,只不過現(xiàn)在持有全局資源鎖的資源控制器最近崩潰過,從而使得丟失鎖的場景的重復很有可能再次發(fā)生。
      鑒于以上討論,很明顯的是需要一種裝置、系統(tǒng)和方法,其能夠克服傳統(tǒng)的手工介入鎖置換方法的局限性。特別地,這種裝置、系統(tǒng)和方法有益地獨立于管理監(jiān)督,從而提供了自主的設備級的恢復。該裝置、系統(tǒng)和方法還有益地降低了管理工作量并且維持了對于任務關鍵的數據和應用程序的高可用性。

      發(fā)明內容
      本發(fā)明的多個實施例是針對現(xiàn)有技術的現(xiàn)狀,并且特別地,是針對現(xiàn)有技術中尚未完全被當今可獲得的鎖恢復方法解決的問題和需要而研發(fā)的。相應地,已經對本發(fā)明進行了研發(fā)以提供一種用于自行置換全局資源鎖的裝置、系統(tǒng)和方法,其克服了上面所討論的現(xiàn)有技術的許多和全部缺點。
      該用以恢復全局資源鎖的裝置具有邏輯單元,該邏輯單元包含多個模塊,這些模塊配置為從功能上執(zhí)行對于全局資源鎖的自主恢復所必需的操作。在所描述的實施例中的這些模塊包括判斷模塊、置換模塊以及聲明模塊。進一步的實施例包括全局資源鎖、驗證模塊、檢測模塊以及實現(xiàn)模塊。
      全局資源鎖包括鎖指示符以及活動性指示符。該全局資源鎖準許對于作為存儲系統(tǒng)的一部分的所連接的所有可控制資源的全局的排它的訪問。該鎖指示符可以包括一個字段,該字段配置為保持持有全局資源鎖的資源控制器的唯一ID(標識符)。當資源控制器獲取了全局資源鎖時,一個唯一地標識該資源控制器的數字被存儲到鎖指示符中。在一個實施例中,資源控制器的該唯一標識數字是硬件序列號,或是類似的唯一標識數字。
      活動性指示符指示持有全局資源鎖的資源控制器一旦取得全局資源鎖的所有權后就具有該全局資源鎖的活動的所有權(activeownership)?;顒拥乃袡喟ㄔ陬A定間隔內周期性地更新活動性指示符。
      判斷模塊可以包括驗證模塊和檢測模塊。判斷模塊判斷全局資源鎖是否由資源控制器擁有。如果資源控制器還擁有全局資源鎖,則判斷模塊還判斷該資源控制器為脫機。當活動性指示符未能在預定的間隔內改變時,資源控制器被認為是脫機的。響應于關于全局資源鎖由脫機的資源控制器持有的判斷,該判斷模塊可以發(fā)送恢復命令到置換模塊。在一個實施例中,系統(tǒng)管理員可以通過發(fā)布恢復命令來試圖重啟第二資源控制器。
      驗證模塊包括檢查間隔。該驗證模塊被配置為兩部分驗證處理中的一部分,該兩部分驗證處理由在這里也被稱為恢復設施的恢復裝置的鎖恢復協(xié)議來定義。在一個實施例中,該驗證模塊驗證存儲在鎖指示符中的唯一ID包含當前擁有全局資源鎖的資源控制器的唯一標識數字。
      在一個實施例中,驗證模塊驗證活動性指示符未能在預定的檢查間隔內改變。該檢查間隔可以配置為活動性指示符的期望改變率的周期的兩倍。響應于關于已經取得全局資源鎖的判斷,驗證模塊檢驗活動性指示符的當前值并且驗證在預定檢查間隔的跨度內該活動性指示符保持不變。如果活動性指示符保持不變,該驗證模塊驗證具有全局資源鎖的所有權的資源控制器為脫機。
      檢測模塊可以檢測資源控制器之間消息業(yè)務量的中斷。響應于所檢測到的消息業(yè)務量的中斷,該檢測模塊可以向每一個資源控制器發(fā)送信號以競爭全局資源鎖的所有權。
      置換模塊包括清除模塊和寫入模塊。該置換模塊響應于接收到來自判斷模塊的恢復命令而不可分割地(atomically)置換全局資源鎖的所有權。清除模塊清除存儲在鎖指示符中的唯一ID,并且寫入模塊寫入當前取得全局資源鎖的資源控制器的唯一ID。
      在一個實施例中,清除模塊和寫入模塊作為不可分割的操作(atomic operation)的一部分而執(zhí)行,從而防止除了清除和寫入鎖指示符之外的任何其它操作,直到該不可分割的操作結束。
      聲明模塊可以包括實現(xiàn)模塊。聲明模塊聲明取得了全局資源鎖的所有權的資源控制器對于全局資源鎖的活動的所有權。如上所述,活動的所有權包括在預定的心跳間隔內周期性地更新活動性指示符。實現(xiàn)模塊包括心跳間隔。該實現(xiàn)模塊在預定的心跳間隔內遞增活動性指示符。
      心跳間隔是期望在其間活動性指示符會發(fā)生改變的周期。檢查間隔基于心跳間隔的周期。在一個實施例中,檢查間隔配置為心跳間隔的周期的兩倍。這樣,在驗證模塊緊接在活動性指示符的更新之后對活動性指示符進行檢查的情況下,驗證模塊將仍然檢測到活動性指示符在檢查間隔的周期內的至少一次改變,指示該全局資源鎖的活動的所有權。
      本發(fā)明還提出了用于自行置換全局資源鎖的系統(tǒng)。該系統(tǒng)可以實現(xiàn)為資源控制器,該資源控制器配置為分配多個可控制資源的各部分。
      特別地,在一個實施例中,該系統(tǒng)包括與多個可控制資源相連接的第一資源控制器,該第一資源控制器配置為分配多個可控制資源。該系統(tǒng)還包括與該多個可控制資源相連接的第二資源控制器,該第二資源控制器配置為分配該多個可控制資源;以及與該第一資源控制器和該第二資源控制器相連接的全局資源鎖,該全局資源鎖具有多個寄存器。該系統(tǒng)還包括與第一資源控制器和第二資源控制器進行通信的恢復裝置,該恢復裝置配置為響應于關于該第一資源控制器未能更新活動性指示符的判斷而自行地將全局資源鎖的所有權從第一資源控制器轉移到第二資源控制器。
      在另一個實施例中,該系統(tǒng)可以包括ID持有器和計數器,該ID持有器連接到全局資源鎖,且可以配置為存儲唯一標識信息的字符串,該計數器連接到全局資源鎖,且可以配置為在預定的心跳間隔內改變。
      還提出了一種信號承載介質用以存儲程序,當被執(zhí)行時,該程序執(zhí)行操作以自行置換全局資源鎖。在一個實施例中,這些操作包括判斷全局資源鎖是否由第一資源控制器擁有并且響應于第一資源控制器擁有全局資源鎖而判斷該第一資源控制器為脫機。在另一個實施例中,這些操作包括不可分割地從第一資源控制器置換全局資源鎖的所有權并且聲明第二資源控制器對于全局資源鎖的活動的所有權。
      在另一個實施例中,該操作可以包括驗證鎖指示符包含第一資源控制器的唯一ID,檢測第一資源控制器和第二資源控制器之間消息業(yè)務量的中斷,指示當前擁有全局資源鎖的資源控制器的唯一ID,以及指示第一資源控制器具有全局資源鎖的活動的所有權。
      在另一個實施例中,這些操作可以包括在預定的心跳間隔內周期性地更新活動性指示符,驗證該活動性指示符未能在檢查間隔內改變,作為不可分割的操作的一部分而清除鎖指示符并且將資源控制器的唯一ID寫入鎖指示符中,并且響應于第二資源控制器取得全局資源鎖的所有權而在預定心跳間隔內遞增活動性指示符。
      在本說明書中所提及的特征、優(yōu)勢或是類似的語句并不暗示著可以利用本發(fā)明實現(xiàn)的所有特征和優(yōu)勢都應當在或處于本發(fā)明任意單一實施例中。相反,提及特征和優(yōu)勢的語句應當被理解為意味著結合一個實施例所描述的特定的特征、優(yōu)勢或特性應當被包括在本發(fā)明的至少一個實施例中。這樣,貫穿本說明書的對于特征和優(yōu)勢所進行的討論或是類似的語句可以但并不一定是指相同的實施例。
      此外,所描述的本發(fā)明的特征、優(yōu)勢以及特性可以以任意適當的方式合并在一個或多個實施例中。本領域的技術人員應當認識到,本發(fā)明可以在沒有特定實施例中的一個或多個特定的特征或優(yōu)勢的情況下實現(xiàn)。在其他情況下,在特定實施例中可以認識到的附加特征和優(yōu)勢可以不出現(xiàn)在本發(fā)明所有的實施例中。
      根據下面的描述和所附的權利要求書,本發(fā)明的這些特征和優(yōu)勢將變得更為明顯,或是可以通過如后面所提出的本發(fā)明的實現(xiàn)來得知這些特征和優(yōu)勢。


      為了使本發(fā)明的優(yōu)勢更容易理解,以下將通過參考由附圖所例示的特定實施例而對上面簡要描述的本發(fā)明進行更為具體的描述。在理解這些附圖僅僅描述了本發(fā)明的典型實施例并且因此不應當被認為對本發(fā)明的范圍造成了限制的前提下,將通過使用附圖來對本發(fā)明的附加特征和細節(jié)進行描述和說明,在這些附圖中圖1是描述存儲系統(tǒng)的一個實施例的示意性框圖;圖2是描述恢復設施的一個實施例的示意性框圖;圖3是描述存儲設備的一個實施例的示意性框圖;圖4是描述雙重資源控制器初始化方法的一個實施例的示意性流程圖;圖5是描述鎖置換方法的一個實施例的示意性流程圖。
      具體實施例方式
      在本說明書中所描述的許多功能性單元被標示為模塊,從而更確切地強調了其實現(xiàn)的獨立性。例如,模塊可以實現(xiàn)為包括定制VLSI電路(超大規(guī)模集成電路)或門陣列的硬件電路,例如邏輯芯片、晶體管之類的現(xiàn)成的半導體,或其它分立組件。模塊還可以在例如現(xiàn)場可編程門陣列、可編程陣列邏輯、可編程邏輯設備等等可編程硬件設備中實現(xiàn)。
      模塊還可以在由各種類型的處理器執(zhí)行的軟件中實現(xiàn)。可執(zhí)行代碼的識別的模塊(identified module)可以例如包括一個或多個計算機指令的物理塊或邏輯塊,該物理決或邏輯塊可以例如被組織為對象、程序或功能。然而,識別的模塊的可執(zhí)行內容不一定在物理上放置在一起,而是可以包括存儲在不同位置上的全異指令,當邏輯地聯(lián)合在一起時,這些指令包括該模塊并且達到該模塊所規(guī)定的目的。
      實際上,可執(zhí)行代碼的模塊可以是單一指令或多個指令并且甚至可以分布在多個不同代碼片斷上、不同的程序中以及跨多個存儲設備。類似地,操作數據可以是被識別的并且在此在模塊內描述,可以以任何適當的形式實現(xiàn)并且可以組織在任何合適類型的數據結構中。操作數據可以集中為單一數據集,或是可以分布在不同的位置上(包括分布在不同的存儲設備中),并且可以(至少部分地)僅作為電子信號而存在于系統(tǒng)或網絡上。
      圖1描述了存儲系統(tǒng)100的一個實施例的示意性框圖。所表示的存儲系統(tǒng)100包括第一資源控制器102、第二資源控制器104、通信信道106、多個可控制資源108以及全局資源鎖110。存儲系統(tǒng)100可以根據第一資源控制器102和第二資源控制器104或者兩者的I/O操作來存儲并且訪問多個可控制資源108上的數據。在一個實施例中,存儲系統(tǒng)100可以包括兩個或多個資源控制器。在另一個實施例中,存儲系統(tǒng)100可以包括單一的可控制資源108或多個可控制資源108。
      所表示的第一資源控制器102和第二資源控制器104可以包括恢復設施112。該第一資源控制器102和第二資源控制器104可以配置為具有通信接口,用以通過存儲區(qū)域網絡(SAN)或例如網絡、背板或總線之類的類似的通信信道106與多個可控制資源108進行通信。該通信信道106可以在通信網絡上發(fā)送消息業(yè)務量。作為替代,第一資源控制器102和第二資源控制器104可以各自直接與多個可控制資源108相連接。
      在一個實施例中,通信信道106可以利用以下的接口來實現(xiàn)小型計算機系統(tǒng)接口(SCSI)、因特網小型計算機系統(tǒng)接口(iSCSI)、串行高級技術附件(SATA)、集成驅動電子設備/高級技術附件(IDE/ATA)、美國電氣和電子工程師協(xié)會標準1394(IEEE 1394)、通用串行總線(USB)、通用因特網文件系統(tǒng)(CIFS)、網絡文件系統(tǒng)(NFS/NetWFS)、超文本傳輸協(xié)議(HTTP)、文件傳輸協(xié)議(FTP)、傳輸控制協(xié)議/網際協(xié)議(TCP/IP)、光纖連接(FICON)、企業(yè)系統(tǒng)連接(ESCON)、固態(tài)存儲器總線或是任意其它類似的接口。
      第一資源控制器102和第二資源控制器104可以配置為用作主計算機(未示出)和多個可控制資源108之間的通信接口。第一資源控制器102和第二資源控制器104可以使用通信信道106以根據主計算機的請求而訪問可控制資源108的一部分。第一資源控制器102和第二資源控制器104以聯(lián)合或是交替的方式訪問該多個可控制資源108。只要執(zhí)行處理需要,第一資源控制器102和第二資源控制器104就可以排它地持有所訪問的可控制資源108的一部分,從而使得相符的數據保持一致和準確。該多個可控制資源108可以包括例如硬盤驅動器、磁帶驅動器和光存儲驅動器和/或任意其它類似的存儲設備。
      在一個實施例中,第一資源控制器102和第二資源控制器104持續(xù)地來回發(fā)送消息,很象通信心跳,從而確認在第一資源控制器102和第二資源控制器104之間存在活動的通信鏈路。當第一資源控制器102和第二資源控制器104中的一個資源控制器在預定的通信超時間隔內沒有檢測到來自另一個資源控制器的活動的通信心跳時,在這兩個資源控制器之間的通信鏈路就會超時。
      當第一資源控制器102或第二資源控制器104崩潰或是當通信鏈路發(fā)生故障時就會發(fā)生通信故障。響應于第一資源控制器102和第二資源控制器104之間的通信鏈路超時,每一個資源控制器進行競爭以擁有用于由第二資源控制器104對多個可控制資源108的排它控制的全局資源鎖110。
      為了易于說明,第一資源控制器102被認為是贏得了全局資源鎖110的所有權的資源控制器。而第一資源控制器102進一步被認為是這樣的資源控制器,其可能在持有全局資源鎖110的所有權的同時崩潰或是變?yōu)槊摍C,從而陷住(trapping)了全局資源鎖110并且阻擋第二資源控制器104對多個全部可控制資源108的訪問。
      為了進一步易于說明,第二資源控制器104被認為是輸掉了關于全局資源鎖110的所有權的競爭的資源控制器。第二資源控制器104進一步被認為是恢復被陷住的全局資源鎖110的所有權并從而重新獲得對該多個可控制資源108的訪問的資源控制器。這樣,響應于第二資源控制器104取得全局資源鎖110的所有權,該第二資源控制器104則被認為是第一資源控制器102。并且第一資源控制器102在持有全局資源鎖110的同時崩潰后,則被認為是第二資源控制器104,因為它不再持有全局資源鎖110??傊?,在恢復之前或之后持有全局資源鎖的資源控制器是第一資源控制器102。
      在一個實施例中,全局資源鎖110獨立于第一資源控制器102或第二資源控制器104或是同時獨立于二者。在另一個實施例中,全局資源鎖110包括在恢復設施112中。參照圖2示出并更加詳細地描述了全局資源鎖110的一個例子。
      在一個實施例中,響應于第二資源控制器104輸掉了關于全局資源鎖110的所有權的競爭,該第二資源控制器104被手工地重新啟動并且對其到第一資源控制器102的通信進行測試。在另一個實施例中,第二資源控制器104自行重新啟動。如果在第一資源控制器102和第二資源控制器104之間重新建立通信,則該第一資源控制器102釋放全局資源鎖110的所有權。該第一資源控制器102和第二資源控制器104接著返回正常運行環(huán)境,共享對多個可控制資源108的訪問。
      然而,如果沒有重新建立通信,并且第一資源控制器102在持有全局資源鎖110的同時崩潰,則該第二資源控制器104可以配置為利用恢復設施112從而根據由恢復設施112所建立的鎖恢復協(xié)議取得對于被陷住的全局資源鎖110的控制。在一個實施例中,恢復設施112作為存儲在第二資源控制器104上并且從第二資源控制器104進行執(zhí)行的固件的一部分被執(zhí)行。在另一個實施例中,恢復設施112是第二資源控制器104內的完整且自行的操作。在另一個實施例中,恢復設施112獨立于第二資源控制器104進行操作,例如由系統(tǒng)用戶或是管理員進行操作。
      圖2描述了可以基本上類似于圖1的恢復設施112的恢復設施200的一個實施例。所例示的恢復設施200包括全局資源鎖202、判斷模塊204、置換模塊206以及聲明模塊208。一旦第二資源控制器104判斷全局資源鎖202被第一資源控制器102陷住,恢復設施200就被激活。如圖1所描述,恢復設施200根據鎖恢復協(xié)議恢復被陷住的全局資源鎖202。該鎖恢復協(xié)議建立第二資源控制器104可以恢復被陷住的全局資源鎖202的方式。
      所例示的全局資源鎖202包括鎖指示符210和活動性指示符212。全局資源鎖202是由第一資源控制器102持有或是由第二資源控制器104取得的排它鎖。該全局資源鎖202準許到作為存儲系統(tǒng)100的一部分的所有連接的可控制資源108的全局的排它訪問。鎖指示符210包括一個字段,其配置為持有當前持有全局資源鎖202的第一資源控制器102的唯一ID 214,由此向用戶或是系統(tǒng)管理員指示哪一個資源控制器當前持有全局資源鎖202。
      鎖指示符210可能還包含除了唯一ID 214之外的其他字段。當第一資源控制器102獲取了全局資源鎖202時,將唯一地標識第一資源控制器102的數字存儲在鎖指示符210中。當第二資源控制器104取得了全局資源鎖202時,將唯一地標識第二資源控制器104的數字存儲在鎖指示符210中。在一個實施例中,資源控制器的該唯一標識數字是硬件序列號,或是類似的唯一標識數字。
      活動性指示符212指示第一資源控制器102具有全局資源鎖202的活動的所有權?;顒拥乃袡嘁馕吨陬A定的間隔內周期性地更新活動性指示符212。換句話說,為了表明活動性所有權,第一資源控制器102在預定的間隔內周期性地更新活動性指示符212。
      所例示的判斷模塊204包括驗證模塊216和檢測模塊218。判斷模塊204判斷全局資源鎖202是否為第一資源控制器102所擁有。該判斷模塊204還判斷第一資源控制器102在持有全局資源鎖202的同時為脫機。當第二資源控制器104未能檢測到活動性指示符212在預定的檢查間隔220內的變化時,該第一資源控制器102被認為是脫機的。換句話說,判斷模塊204判斷全局資源鎖202被第一資源控制器102陷住。響應于關于全局資源鎖202被陷住的判斷,判斷模塊204可以向置換模塊206發(fā)送信號。
      驗證模塊216包括檢查間隔220。該驗證模塊216被配置為由恢復設施200的鎖恢復協(xié)議所定義的兩部分驗證處理的一部分。在一個實施例中,驗證模塊216驗證如果第一資源控制器102擁有全局資源鎖202,則存儲在鎖指示符210中的唯一ID 214包含第一資源控制器102的唯一標識數字。
      在一個實施例中,驗證模塊216驗證活動性指示符212未能在預定的檢查間隔220內改變。該檢查間隔220可以配置為活動性指示符212的期望改變率的周期的兩倍。響應于關于已經得到全局資源鎖202的判斷,驗證模塊216檢驗活動性指示符212的當前值并且驗證在預定的檢查間隔220的跨度內,該活動性指示符212保持不變。相反,如果驗證模塊216未能驗證活動性指示符212保持不變,但是活動性指示符212正在改變,則驗證模塊216驗證確實已經輸掉了關于全局資源鎖202的所有權的競爭。
      檢測模塊218檢測到第一資源控制器102和第二資源控制器104之間消息業(yè)務量的中斷。響應于所檢測到的消息業(yè)務量的中斷,該檢測模塊218向第一資源控制器102和/或第二資源控制器104發(fā)送信號以競爭全局資源鎖202的所有權。
      所例示的置換模塊206包括清除模塊222和寫入模塊224。該置換模塊206響應于來自判斷模塊204的信號而不可分割地從第一資源控制器102置換全局資源鎖202的所有權。在一個實施例中,判斷模塊204可能發(fā)送恢復命令到置換模塊206。響應于第一資源控制器102變?yōu)槊摍C而同時保持著全局資源鎖202從而陷住了該全局資源鎖202,清除模塊222清除存儲在鎖指示符210中的唯一ID 214,并且寫入模塊224將第二資源控制器104的唯一ID 214寫入鎖指示符210。
      如上所述,響應于第一資源控制器102擁有全局資源鎖202,當活動性指示符212被驗證為靜態(tài)時,該第一資源控制器102被認為是脫機的,也就是說,第一資源控制器102在持有全局資源鎖202的同時沒有遞增活動性指示符212。
      在一個實施例中,清除模塊222和寫入模塊224作為不可分割的操作的一部分而執(zhí)行,該不可分割的操作為這樣一種操作,其中置換模塊206能夠同時清除唯一ID 214并將其寫入鎖指示符210。從而防止除了清除和寫入鎖指示符210之外的任何其它操作,直到該不可分割的操作結束。
      所例示的聲明模塊208包括實現(xiàn)模塊226。該聲明模塊208響應于第二資源控制器104從第一資源控制器102處取得全局資源鎖202的所有權而聲明第二資源控制器104對于全局資源鎖202的活動的所有權。如上所述,活動的所有權包括在預定的心跳間隔228內周期性地更新活動性指示符212。該實現(xiàn)模塊226響應于第一資源控制器102或第二資源控制器104取得全局資源鎖202的所有權而在預定的心跳間隔228內遞增活動性指示符212。
      心跳間隔228是一個期望在其間活動性指示符212發(fā)生改變的時間周期。檢查間隔220基于心跳間隔228的周期。在一個實施例中,檢查間隔220配置為心跳間隔228的周期的兩倍。例如,如果心跳間隔228被確定為三十秒的間隔,則結果是檢查間隔220為一分鐘的間隔。這樣,在驗證模塊216緊接在活動性指示符212的更新之后對活動性指示符212進行檢查的情況下,驗證模塊216將仍然檢測到活動性指示符212在檢查間隔220的周期內的至少一次改變,暗示著全局資源鎖202的活動的所有權。在特定的實施例中,該檢查間隔220以及心跳間隔228可以由主計算機或管理員進行配置,可由編制好的軟件變量或任何其它類似的配置方案來確定。
      圖3描述了可以結合圖2的恢復設施200而實現(xiàn)的存儲設備300的一個實施例。在一個實施例中,該存儲設備300可以基本上類似于圖2的全局資源鎖202。所例示的存儲設備300包括硬件寄存器302。該存儲設備300可能包括一個或多個非易失半導體器件,例如閃速存儲器、靜態(tài)隨機存取存儲器(SRAM)、非易失性隨機存取存儲器(NVRAM)、電可擦除可編程只讀存儲器(EEPROM)、可擦除可編程只讀存儲器(EPROM)、NAND/AND、NOR、分裂位線NOR(DINOR)或任意其它類似的存儲設備。
      在一個實施例中,存儲設備300是構成第一資源控制器102和第二資源控制器104所需的一個部分。在另一個實施例中,存儲設備300是存儲系統(tǒng)100的分立的部分,獨立于第一資源控制器102和/或第二資源控制器104。硬件寄存器302可以包括ID幀304和計數器306。在一個實施例中,硬件寄存器302由圖2中的恢復設施200根據鎖恢復協(xié)議進行訪問。在特定的實施例中,ID幀304以及計數器306可以被包括在同一硬件寄存器302中,或者可以是單獨硬件寄存器302的一部分。
      ID幀304可以基本上類似于圖2中響應于第一資源控制器102擁有全局資源鎖202而包含第二資源控制器的唯一ID 214的鎖指示符210。計數器306可以基本上類似于圖2的活動性指示符212。在一個實施例中,計數器306可能為加計數器(遞增)、減計數器(遞減)、可以在D型或J-K觸發(fā)器中實現(xiàn)的異步(紋波(ripple))或同步計數器、Johnson或步查(walking)環(huán)形計數器或是有限狀態(tài)機(FSM)。在另一個實施例中,計數器306在聲明全局資源鎖202的活動的所有權的預定心跳間隔228內被更新。
      在另一個實施例中,活動性指示符212可以以序列實現(xiàn)。該序列可以是有限序列、無限序列、單調遞增或單調遞減序列、整數序列、多項式序列、線性序列或等差級數。在特定的實施例中,活動性指示符212可以實現(xiàn)為十六進制、二進制或是二進制編碼十進制。
      圖4描繪了可以由圖2的恢復設施200實現(xiàn)的雙重資源控制器初始化方法400的一個實施例。在此參考圖1的存儲系統(tǒng)100對該雙重資源控制器初始化方法400進行描述。雖然為了清楚起見以一特定的順序對該雙重資源控制器初始化方法400進行了描繪,但是存儲系統(tǒng)100可以并行地執(zhí)行該操作并且/或是不一定要按照所描繪的次序執(zhí)行該操作。
      雙重資源控制器初始化方法400開始,并且在一個實施例中檢測模塊218檢測(402)第一資源控制器102和第二資源控制器104之間消息業(yè)務量的中斷。接著,判斷模塊204判斷(404)是否取得了全局資源鎖202的所有權。在一個實施例中,驗證模塊216驗證是否取得了全局資源鎖202。如果判斷模塊204判斷(404)已經取得了全局資源鎖202的所有權,則該雙重資源控制器初始化方法400前進到恢復方法500。
      在一個實施例中,假定從脫機而又同時持有全局資源鎖202的狀態(tài)中重新啟動后,第一資源控制器102檢測(402)到第二資源控制器104的通信的繼續(xù)的中斷。接著第一資源控制器102可能判斷(404)已經取得了全局資源鎖202。這樣,在第二資源控制器104通過恢復全局資源鎖202的所有權而接管了第一資源控制器102的角色的同時,重新啟動的第一資源控制器102可能接管第二資源控制器104的角色并且前進到恢復方法500。
      如果判斷模塊204判斷(404)沒有取得全局資源鎖202,則該判斷模塊204可以向第一資源控制器102和第二資源控制器104發(fā)送信號以競爭(406)全局資源鎖的202所有權。接著,競爭的贏家變成了第一資源控制器102并且取得(408)全局資源鎖202。
      接著,系統(tǒng)管理員可能試圖通過發(fā)出恢復命令而重啟第二資源控制器104。在一個實施例中,第二資源控制器104從判斷模塊204接收(410)恢復命令,該命令可能命令第二資源控制器104發(fā)起該雙重資源控制器初始化方法400。
      第一資源控制器102接著在預定心跳間隔228內遞增(412)活動性指示符212。接著,判斷模塊218判斷(414)第一資源控制器102和第二資源控制器104之間的通信中斷是否在持續(xù)。如果通信中斷在第一資源控制器102和第二資源控制器104之間繼續(xù),則第一資源控制器102通過在預定的心跳間隔228內遞增(412)活動性指示符212而繼續(xù)表明全局資源鎖202的活動的所有權。
      相反,如果判斷模塊218判斷(414)第一資源控制器102和第二資源控制器104之間的通信中斷不再存在,并且該通信為已鏈接的,則第一資源控制器102進行到釋放(416)全局資源鎖202。在一個實施例中,清除模塊222通過清除唯一ID 214而釋放(416)全局資源鎖202。第一資源控制器102和第二資源控制器104返回到正常運行環(huán)境,共享對多個可控制資源108的訪問。
      圖5描述了可以通過圖2的恢復設施200實現(xiàn)的恢復方法500的一個實施例。在此參考圖1的存儲系統(tǒng)100對該恢復方法500進行描述。
      該恢復方法500包括操作判斷(502)活動性指示符212是否正在改變;清除(504)鎖指示符210;將唯一ID 214寫入(506)鎖指示符210;遞增(508)活動性指示符212;判斷(510)第一資源控制器102和第二資源控制器104是否重新建立通信;并且釋放(512)全局資源鎖202。
      該恢復方法500對與第二資源控制器104相關聯(lián)的恢復設施200的恢復能力進行初始化。雖然為了清楚起見以一特定的順序對該恢復方法500進行了描繪,但是存儲系統(tǒng)100可以并行地執(zhí)行該操作并且/或是不一定要按照所描繪的次序執(zhí)行該操作。
      首先,判斷模塊204判斷(502)活動性指示符212是否正在改變。如果判斷模塊204判斷(502)活動性指示符212正在改變,則第二資源控制器104驗證(504)第一資源控制器102具有全局資源鎖202的活動的所有權。在一個實施例中,驗證模塊216驗證(504)活動性指示符212在檢查間隔220內改變。接著,該恢復方法500可以終止。
      相反,如果判斷模塊204判斷(502)活動性指示符212在檢查間隔220內沒有改變,則置換模塊206進行到清除(506)鎖指示符210并且將第二資源控制器104的唯一ID 214寫入(508)鎖指示符210。在一個實施例中,在同時的操作中鎖指示符210由清除模塊222進行清除(506)并且由寫入模塊224進行寫入(508),其中清除模塊222以及寫入模塊224作為不可分割的操作的一部分而進行執(zhí)行。
      一旦恢復方法500不可分割地對鎖指示符210進行清除(506)和寫入(508),則實現(xiàn)模塊226遞增(510)活動性指示符212,從而聲明該全局資源鎖202的活動的所有權。在已經從第一資源控制器102取得了全局資源鎖202的所有權后,該第二資源控制器104憑借全局資源鎖202的所有權而承擔了第一資源控制器102的角色。
      接著,檢測模塊218判斷(512)第一資源控制器102和第二資源控制器104之間的通信中斷是否在持續(xù)。如果該通信中斷在第一資源控制器102和第二資源控制器104之間繼續(xù),則第一資源控制器102(之前的第二控制器104)通過在預定的心跳間隔228內遞增(510)活動性指示符212而繼續(xù)聲明全局資源鎖202的活動的所有權。
      相反,如果第一資源控制器102和第二資源控制器104之間的通信中斷不再存在,并且該通信為鏈接的,則第二資源控制器104進行到釋放(514)全局資源鎖202。該第一資源控制器102和第二資源控制器104返回到正常運行環(huán)境,共享對多個可控制資源108的訪問。
      由本發(fā)明所闡述的對于被陷住的全局資源鎖202的恢復對于整體的系統(tǒng)性能具有積極的影響。在特定的實施例中,本發(fā)明改善了正常運行時間、應用程序可用性以及實時業(yè)務性能,所有這些都使得將所有權的總成本變得更低。除了從發(fā)生故障的資源控制器恢復被陷住的全局資源鎖202之外,本發(fā)明的實施例向系統(tǒng)管理員提供了替換發(fā)生故障的資源控制器而不會影響故障時間的能力。在一個實施例中,本發(fā)明提供了全局資源鎖的自行置換,使得系統(tǒng)管理員的干預最小化。
      這里所包括的示意性的流程圖作為邏輯流程圖而概括地提出。這樣,所描述的順序和標注的操作象征著本方法的一個實施例??梢栽O想在功能、邏輯、或效果上等同于所例示的方法的一個或多個操作或其一部分的其它操作和方法。此外,所使用的格式和符號用以說明該方法的邏輯操作并且不應當理解為對本發(fā)明的范圍造成限制。雖然在流程圖中可以使用各種箭頭類型和線類型,但它們也不應當被理解為對相應方法的范圍造成限制。事實上,一些箭頭或是其它的連接物可以被用于僅僅指示該方法的邏輯流程。例如,箭頭可以指示所描述方法的所列舉的操作之間的未指定期間的等待期或是監(jiān)控期。此外,特定的方法發(fā)生所按照的順序可以或是可以不嚴格地遵循所示出的相應操作的順序。
      在本說明書中提及的“一個實施例”、“實施例”或是類似的語句意味著結合該實施例所描述的特定的特征、結構或是特性包括在本發(fā)明的至少一個實施例中。這樣,貫穿本說明書中的措詞“在一個實施例中”、“在實施例中”以及類似的語句可以但不一定全部是指相同的實施例。
      所提到的信號承載介質可以采取能夠生成信號、使得信號被生成或是使得在數字信號處理裝置上執(zhí)行機器可讀指令的程序的任意形式。信號承載介質可以由傳輸線路、壓縮光盤、數字視頻光盤、磁帶、伯努利驅動器、磁盤、穿孔卡片、閃速存儲器、集成電路或其它數字處理裝置的存儲設備。
      此外,所描述的本發(fā)明的特征、結構或特性可以以任意適合的方式合并在一個或多個實施例中。在下面的描述中,提供了眾多的特定細節(jié),例如編程、軟件模塊、用戶選擇、網絡交易、數據庫查詢、數據庫結構、硬件模塊、硬件電路、硬件芯片等的例子,從而提供了對于本發(fā)明實施例的透徹理解。然而,本領域的技術人員將認識到,本發(fā)明可以在沒有一個或多個特定的細節(jié)的情況下或是利用其它的方法、組件、材料等等而得以實現(xiàn)。在其它情況下,沒有示出或是詳細地描述公知的結構、材料或操作以避免淡化本發(fā)明的方面。
      在不偏離本發(fā)明的精神或本質特性的情況下,本發(fā)明可以以其它特定的形式實現(xiàn)。所描述的實施例應當被認為是說明性的而非限制性的。因此,本發(fā)明的范圍由所附的權利要求書而非上面的說明來指示。在權利要求書的等效的意義和范圍內的所有改變都應當包含在其范圍內。
      權利要求
      1.一種用以自行置換全局資源鎖的裝置,所述裝置包括判斷模塊,配置為判斷全局資源鎖是否由第一資源控制器擁有并且響應于所述第一資源控制器擁有所述全局資源鎖而判斷所述第一資源控制器為脫機;置換模塊,配置為響應于接收到來自所述判斷模塊的信號而不可分割地從所述第一資源控制器置換所述全局資源鎖的所有權;以及與該置換模塊進行通信的聲明模塊,所述聲明模塊配置為聲明第二資源控制器具有對于所述全局資源鎖的活動的所有權。
      2.根據權利要求1所述的裝置,其中所述全局資源鎖包括鎖指示符,配置為指示當前擁有所述全局資源鎖的所述第一資源控制器的唯一ID;以及活動性指示符,配置為指示所述第一資源控制器具有對于所述全局資源鎖的活動的所有權。
      3.根據權利要求2所述的裝置,其中活動的所有權包括在預定的心跳間隔內周期性地更新所述活動性指示符。
      4.根據權利要求2所述的裝置,其中所述判斷模塊包括驗證模塊,所述驗證模塊配置為驗證所述鎖指示符包含所述第一資源控制器的所述唯一ID。
      5.根據權利要求4所述的裝置,其中所述驗證模塊進一步地配置為驗證在檢查間隔內所述活動性指示符未能改變。
      6.根據權利要求2所述的裝置,進一步包括檢測模塊,所述檢測模塊配置為檢測所述第一資源控制器和所述第二資源控制器之間消息業(yè)務量的中斷。
      7.根據權利要求2所述的裝置,其中所述置換模塊包括清除模塊,配置為清除所述鎖指示符;寫入模塊,配置為將所述第二資源控制器的唯一ID寫入所述鎖指示符;并且其中所述清除模塊和所述寫入模塊作為不可分割的操作的一部分而執(zhí)行。
      8.根據權利要求1所述的裝置,其中所述聲明模塊包括實現(xiàn)模塊,所述實現(xiàn)模塊配置為響應于所述第二資源控制器取得所述全局資源鎖的所有權而在預定的心跳間隔內遞增活動性指示符。
      9.一種自行置換全局資源鎖的系統(tǒng),所述系統(tǒng)包括與多個可控制資源相連接的第一資源控制器,所述第一資源控制器配置為分配所述多個可控制資源;與所述多個可控制資源相連接的第二資源控制器,所述第二資源控制器配置為分配所述多個可控制資源;與所述第一資源控制器和所述第二資源控制器相連接的全局資源鎖,所述全局資源鎖具有多個寄存器;與所述第一資源控制器和所述第二資源控制器進行通信的恢復設施,所述恢復設施配置為響應于關于所述第一資源控制器未能更新活動性指示符的判斷而自行地將所述全局資源鎖的所有權從所述第一資源控制器轉移到所述第二資源控制器。
      10.根據權利要求9所述的系統(tǒng),還包括連接到所述全局資源鎖的ID持有器,所述ID持有器配置為存儲唯一標識信息的字符串。
      11.根據權利要求9所述的系統(tǒng),還包括連接到所述全局資源鎖的計數器,所述計數器配置為以預定的心跳間隔而改變。
      12.一種用以執(zhí)行操作以自行置換全局資源鎖的方法,所述操作包括判斷全局資源鎖是否由第一資源控制器擁有;響應于所述第一資源控制器擁有所述全局資源鎖而判斷所述第一資源控制器為脫機;不可分割地從所述第一資源控制器置換所述全局資源鎖的所有權;并且聲明第二資源控制器具有對全局資源鎖的活動的所有權。
      13.根據權利要求12所述的方法,其中判斷全局資源鎖是否由所述第一資源控制器擁有包括驗證鎖指示符包含所述第一資源控制器的唯一ID。
      14.根據權利要求13所述的方法,其中還包括檢測所述第一資源控制器和所述第二資源控制器之間消息業(yè)務量的中斷。
      15.根據權利要求13所述的方法,其中所述全局資源鎖包括鎖指示符,指示當前擁有所述全局資源鎖的所述第一資源控制器的唯一ID;以及活動性指示符,指示所述第一資源控制器擁有所述全局資源鎖的活動的所有權。
      16.根據權利要求15所述的方法,其中活動的所有權包括在預定的心跳間隔內周期性地更新所述活動性指示符。
      17.根據權利要求12所述的方法,其中關于所述第一資源控制器為脫機的判斷包括所述第二資源控制器驗證所述活動性指示符未能在檢查間隔內發(fā)生改變。
      18.根據權利要求12所述的方法,其中不可分割地從所述第一資源控制器置換所述全局資源鎖的所有權包括清除鎖指示符;將所述第二資源控制器的唯一ID寫入所述鎖指示符;并且將清除所述鎖指示符和將所述第二資源控制器的唯一ID寫入所述鎖指示符作為不可分割的操作的一部分而執(zhí)行。
      19.根據權利要求12所述的方法,其中聲明所述全局資源鎖的活動的所有權包括響應于所述第二資源控制器取得所述全局資源鎖的所有權而在預定的心跳間隔內遞增活動性指示符。
      20.一種用于部署用以自行置換全局資源鎖的軟件的方法,所述方法包括安裝所有權模塊,所述所有權模塊配置為建立并且保持全局資源鎖;并且執(zhí)行恢復設施,所述恢復設施配置為判斷所述全局資源鎖是否由第一資源控制器擁有;響應于所述第一資源控制器擁有所述全局資源鎖而判斷所述第一資源控制器為脫機;不可分割地從所述第一資源控制器置換所述全局資源鎖的所有權;并且聲明第二資源控制器具有對于所述全局資源鎖的活動的所有權。
      全文摘要
      公開了一種用于自行置換全局資源鎖的裝置、系統(tǒng)和方法。該裝置包括判斷模塊、置換模塊以及聲明模塊。該判斷模塊判斷全局資源鎖是否由對等資源控制器擁有,并且響應于該對等資源控制器擁有全局資源鎖而判斷該對等資源控制器為脫機。不可分割模塊不可分割地從該對等資源控制器置換全局資源鎖的所有權。該聲明模塊聲明全局資源鎖的活動的所有權。該裝置、系統(tǒng)和方法提供了全局資源鎖的自行置換,使得系統(tǒng)故障時間和用戶干預最小化。
      文檔編號G06F9/46GK1949178SQ20061012646
      公開日2007年4月18日 申請日期2006年8月31日 優(yōu)先權日2005年10月11日
      發(fā)明者邁卡·羅比森, 布賴恩·安東尼·里納爾迪 申請人:國際商業(yè)機器公司
      網友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1