專利名稱:經(jīng)由持久保留的用于共享寫訪問的資源仲裁的制作方法
經(jīng)由持久保留的用于共享寫訪問的資源仲裁背景服務器群集一般是被這樣安排的一組服務器(節(jié)點)如果任何服務器失敗,則該群集的其他服務器可以透明地接管失敗的服務器的工作,即,重啟其應用程序并進而在沒有顯著中斷的情況下繼續(xù)服務客戶機。該操作一般被稱為故障轉移,或故障轉移群集。在群集中,每一存儲設備(硬盤驅動器)由一個節(jié)點擁有。如果正確地操作,所有者節(jié)點針對其他節(jié)點對所有權的挑戰(zhàn)來防護對存儲設備的所有權,從而使得如果所有者失敗則另一節(jié)點可以接管所有權。為了實現(xiàn)該挑戰(zhàn)-防護模型,使用了如美國專利第7,277,952號所描述的持久保留所有權算法。然而,該持久保留所有權算法實現(xiàn)無共享模型,其中擁有盤的節(jié)點具有獨占所有權和對盤的完全訪問,而其他節(jié)點具有只讀訪問。共享群集的存儲卷技術(在序列號為12/147,956的相關專利申請中描述)的一個方面在于其他健康的群集節(jié)點需要能夠同時寫入共享的群集盤。結果,需要一種向健康節(jié)點授予對存儲設備的訪問同時排除未正確參與群集的任何節(jié)點的方式。概述提供本概述以便以簡化形式介紹將在以下的詳細描述中進一步描述的一些代表性概念。本概述不旨在標識出所要求保護的主題的關鍵特征或必要特征,也不旨在以限制所要求保護的主題的范圍的任何方式來使用。簡言之,此處描述的主題的各方面涉及一種使服務器群集中的所有者節(jié)點獨占地擁有存儲機制(例如,盤或其他存儲設備)但允許非擁有節(jié)點對該存儲機制具有共享的讀和寫訪問的技術。在一方面,一個節(jié)點包括所有者節(jié)點,該所有者節(jié)點通過將密鑰與同存儲機制相關聯(lián)的注冊表相關聯(lián)(例如,寫入)的持久保留機制來維護存儲機制的所有權。非擁有節(jié)點將共享密鑰與注冊表相關聯(lián)。所有者節(jié)點對照群集成員數(shù)據(jù)來確認共享密鑰,并且取代(例如,移除)被認為無效的任何密鑰,使得無效節(jié)點不再具有對該存儲機制訪問。在一方面,所有者節(jié)點防護對所有權的挑戰(zhàn)。非擁有節(jié)點將挑戰(zhàn)密鑰寫入存儲機制,并等待一段防護時間。如果所有者節(jié)點正確地操作,則它在防護時間內檢測到該挑戰(zhàn)密鑰,并取代該挑戰(zhàn)密鑰來維護所有權。如果所有者節(jié)點未正確地操作,則所有者節(jié)點不能在防護時間內防護該挑戰(zhàn),由此該挑戰(zhàn)節(jié)點成為新的所有者。結合附圖閱讀以下詳細描述,本發(fā)明的其他優(yōu)點會變得顯而易見。附圖簡述作為示例而非限制,在附圖中示出了本發(fā)明,附圖中相同的附圖標記指示相同或相似的元素,附圖中圖IA和IB是表示帶有共享盤的服務器群集環(huán)境中的示例組件的框圖。圖2是示出用于經(jīng)由持久保留來實現(xiàn)資源仲裁和共享寫盤訪問的示例組件的框圖。圖3是示出保留和/或訪問群集共享卷所采取的示例步驟的流程圖。圖4和5包括示出SCSI環(huán)境中的保留和/或訪問群集共享卷所采取的示例步驟的流程圖。圖6示出可以將本發(fā)明的各方面并入其中的計算環(huán)境的說明性示例。詳細描述此處描述的技術的各方面一般涉及允許群集節(jié)點與其他節(jié)點共享對盤(例如,被配置為存儲卷)的訪問,包括共享讀和寫訪問。一般而言,存儲設備(或者被稱為“盤”或 “硬盤”,無論實際上是否是盤類型的存儲設備)由單個群集節(jié)點擁有;然而,如此處所描述的,移除了其他節(jié)點對讀和寫I/O操作的限制。這允許在群集中的任意節(jié)點上運行的經(jīng)群集的應用程序和服務訪問任何共享卷上的數(shù)據(jù)。在一個示例實現(xiàn)中,通過允許節(jié)點向所擁有的盤注冊SCSI持久保留(PR)密鑰來使這種共享成為可能。更具體地,所有者節(jié)點注冊獨占I3R密鑰來聲稱其所有權,而其余節(jié)點各自注冊其中編碼了該節(jié)點的標識符的“共享”ra密鑰。一般而言,有效節(jié)點的共享ra 密鑰授予該節(jié)點對由另一節(jié)點擁有的盤的讀和寫訪問。如果注冊了共享I3R密鑰的節(jié)點變得不再有效(例如,失敗或以其他方式被認為無效),則所有者節(jié)點清除該節(jié)點的共享ra密鑰,從而阻止無效節(jié)點對盤的進一步I/O。在一個示例實現(xiàn)中,該技術與將Microsoft NTFS用作文件系統(tǒng)的 Microsoft Windows 服務器故障轉移群集和SCSI盤一起工作。然而,應該理解這些僅是示例。事實上,可以使用其他環(huán)境、文件系統(tǒng)和/或存儲技術來實現(xiàn)此處描述的技術的一個或多個方面。如此,本發(fā)明不限于此處所描述的任何特定實施例、方面、概念、結構、功能或示例。相反,在此所描述的實施例、方面、概念、結構、功能或示例中的任何一個都是非限制性的,并且本發(fā)明可以按一般在計算、群集和數(shù)據(jù)訪問中提供益處和優(yōu)點的各種方式來使用。轉向
圖1A,示出了群集環(huán)境的簡化框圖,包括三個節(jié)點,NO、Nl和N2,各自分別擁有盤100-102。群集節(jié)點通常經(jīng)由SCSI、光纖通道、ISCSI或其他高速通信鏈路被連接到群集的盤。注意,圖IA僅示出了一個可能的配置,因為節(jié)點可能擁有一個盤,節(jié)點可能擁有一個以上的盤,以此類推。例如,在圖IB中,節(jié)點N2失敗了(或者無法用某種方式進行通信),從而節(jié)點NO經(jīng)由其保留機制取得了盤102的所有權,如以下概括地描述的。其他節(jié)點 Nl和N2 一般分別具有相同的保留機制111和112。為了使擁有盤的節(jié)點提供對該盤的共享訪問,提供了允許從多個群集節(jié)點的并發(fā)訪問的經(jīng)改變的保留方案。為此,如圖2概括地表示的,每一節(jié)點(諸如節(jié)點Ni)包括含有保留機制111的群集盤驅動程序220(例如,包括內核驅動程序的群集盤系統(tǒng))。如以下所述,另一節(jié)點(例如,由框222表示)的類似群集盤驅動程序參與保留機制/算法來訪問盤 101,而擁有節(jié)點的群集盤驅動程序m參與保留機制/算法來維護和保護所有權。所例示的群集盤驅動程序220與群集服務組件2M —起工作,如下所述。作為背景,在美國專利第7,277,952號中描述的傳統(tǒng)持久保留所有權算法實現(xiàn)無分享模型,即,擁有盤的節(jié)點具有獨占的所有權和完全訪問,而其他節(jié)點具有只讀訪問。所有者節(jié)點通過使用保留密鑰(被稱為I3R密鑰)來將寫獨占的、僅注冊者的持久保留放置在盤上的I3R保留表中來聲稱所有權。擁有節(jié)點通過周期性地(例如,默認地每三秒)檢查ra 注冊表來維護/防護該所有權;其他節(jié)點通過在ra注冊表中注冊它們自己的密鑰來挑戰(zhàn)所有權(如果擁有節(jié)點崩潰則接管)。如果擁有節(jié)點可用并且在表中只找到它自己的I3R密鑰, 則不必采取動作,然而如果它在I3R注冊表中找到除了它自己的密鑰之外的任何密鑰,則擁有節(jié)點取代該密鑰(例如,將其從表中移除;如果擁有節(jié)點不可用并且挑戰(zhàn)節(jié)點的密鑰保留,由此挑戰(zhàn)節(jié)點通過用它自己的密鑰來取代當前所有者的I3R保留來接管所有權)。在穩(wěn)定且正常工作的群集之下,盤的ra保留表具有一個密鑰,其ra注冊表具有M個密鑰(全部都來自同一個所有者節(jié)點),其中M是到MIPO系統(tǒng)的盤的I/O路徑的數(shù)量;對于非MPIO系統(tǒng),M為1。對于分配在群集共享卷中的盤,如此處所述地將該持久保留算法修改為允許群集中的節(jié)點以讀-寫模式用安全的方式基本上同時地訪問盤。群集外部的機器不具有對群集共享卷盤的訪問。如圖2概括地表示的,物理盤資源2 管理群集中的共享盤,并且特別地確保經(jīng)群集的盤被安全地訪問并被保護免受惡化,包括便于基本上同時訪問同一個共享盤。這通過使用共享持久保留(PR)密鑰以及群集成員的知識來實現(xiàn),如此處所描述的。對于群集共享卷盤保留算法,在一個示例實現(xiàn)中,(例如,群集服務224的)盤控制管理器2 調用物理盤資源2 來為經(jīng)群集的盤101設置新的保留策略。更具體地,經(jīng)群集的盤101需要允許從其他節(jié)點的讀-寫1/0,但不違背上述所有者的概念。為此,所有者節(jié)點保留對盤的控制,但經(jīng)由共享I3R密鑰230來放松基于每節(jié)點的I/O策略。在該共享 I3R密鑰機制/保留算法111之下,N節(jié)點群集中的群集共享卷盤101在其注冊表240中具有臓個密鑰,其中M是從MPIO配置中的節(jié)點到盤的I/O路徑的數(shù)量;對于非MPIO系統(tǒng), M為1。所有者節(jié)點在注冊表232中具有M個密鑰而在注冊表M2中具有一個密鑰,即I3R 密鑰231。這些表不必在物理上分開并且可以用任何方式來保存,而事實上,注冊表可以包含對于其密鑰中的哪個在注冊表242 “中”(哪個因此不必在物理上存在)的某些指示(例如,標志或指令)。一個方面因此提供了控制對群集盤的訪問的算法,由此參與到群集中的所有群集節(jié)點具有對該盤的讀-寫訪問。注意,這向該群集中的所有節(jié)點授予了對群集盤的讀-寫訪問,并且,同時允許對聲譽良好的其他群集節(jié)點的讀-寫I/O訪問,其保留了當前算法的安全特性。它還保留了活躍度和性能特性,以及盤最多由一個群集節(jié)點擁有和控制的概念。如此處所述,非所有者節(jié)點將共享ra密鑰插入到盤ra注冊表Mo中。該共享密鑰不由所有的節(jié)點共享;相反,它表示插入該密鑰的節(jié)點與其他節(jié)點共享對盤101的讀-寫訪問。在密鑰中編碼插入該密鑰的節(jié)點的標識符(id)。因此,N節(jié)點群集中由該算法仲裁的盤101將在其注冊表240中具有N個共享PR密鑰。在一個實現(xiàn)中,第一個密鑰是由所有者節(jié)點插入的獨占(PR)密鑰231。其余N-I個密鑰是由非所有者節(jié)點插入的共享I5R密鑰。擁有節(jié)點周期性地查詢PR注冊表240來評估密鑰。如果密鑰是共享密鑰,則所有者從該密鑰中提取插入該密鑰的節(jié)點的id。如果節(jié)點有效(在群集中“聲譽良好”),則所有者允許該密鑰保留在注冊表240中。如果節(jié)點聲譽不良,則所有者取代該密鑰,進而將其從注冊表MO中移除。如果密鑰不是共享密鑰,則所有權遭受挑戰(zhàn)。所有者取代該密鑰,進而將其從注冊表240中移除。圖3是示出經(jīng)由例如圖2的所例示的組件實現(xiàn)的一個這樣的算法的示例步驟的一般流程圖。對于諸如經(jīng)由步驟300所表示的任何非所有者節(jié)點,盤控制管理器2 請求物理盤資源2 將共享I3R密鑰230插入到注冊表MO中(步驟302)。該密鑰不在節(jié)點之間共享,相反它指示它所表示的節(jié)點與所有者節(jié)點以及任何其他節(jié)點共享對盤的讀-寫訪問。該節(jié)點的標識符(例如,節(jié)點Id)是該共享ra密鑰230的一部分。在所有者節(jié)點上,如經(jīng)由示例步驟300所區(qū)分的,步驟304向物理盤資源2 通知群集節(jié)點成員數(shù)據(jù)254。這可以經(jīng)由表示群集中共享盤的活動節(jié)點(例如,通常是所有節(jié)點,但不必要)的簡單位掩碼來實現(xiàn)。物理盤資源2 將該成員數(shù)據(jù)邪4傳遞給群集盤驅動程序220。如步驟306所表示的,當所有者節(jié)點上的群集盤驅動程序220看見注冊表MO中 (除了其自己的獨占ra密鑰之外)的一個或多個額外密鑰時,如步驟308所表示的,群集盤驅動程序220對照群集成員數(shù)據(jù)2M來確認這些密鑰中的每一個的節(jié)點Id。如果密鑰有效(步驟310),則允許該密鑰保留在注冊表MO中,否則取代它(步驟312)。步驟314重復對其他密鑰的確認;對于其中每一節(jié)點參與共享卷訪問的N節(jié)點群集,存在N-I個這樣的共享I3R密鑰。圖4和5包括帶有SCSI命令環(huán)境的其他細節(jié)的示例流程圖。步驟402和404是節(jié)點的保留機制的輸入,包括PR_KEY(例如,包括隨機生成的數(shù)字)和用戶可配置間隔(例如,有三秒的默認值)。步驟406表示在保留之前執(zhí)行的試圖注冊。如果注冊成功(步驟408),則在步驟 410處作出保留嘗試。如果保留成功,則過程前進至圖5來如下所述地維護該保留。否則, 過程分支到步驟414來執(zhí)行持久保留仲裁。步驟414讀取注冊表。如果只存在一個I3R注冊并且是獨占-僅注冊者的類型,則存在受到該節(jié)點挑戰(zhàn)的所有者;該機制在挑戰(zhàn)所有權之前等待兩倍的間隔。該間隔允許所有者節(jié)點防護該挑戰(zhàn)的時間。步驟422對應于該挑戰(zhàn)。圖5表示如果在步驟502和504之后節(jié)點在注冊表中檢測到其I3R密鑰,關于持久保留的各個維護方面。如果未列出,則它已經(jīng)由另一節(jié)點的密鑰所替代,并且需要再次挑戰(zhàn)。如果未列出其他密鑰(步驟506),則不必防護,并且該過程結束。否則,過程繼續(xù)到步驟518來維持保留,如以下所述。步驟508評估在步驟506處所檢測到的其他密鑰是否是來自有效節(jié)點的共享密鑰。如果有任何密鑰不是來自有效節(jié)點,則在步驟510處取代它。這移除了任何無效節(jié)點對盤的訪問。如果在步驟512處未成功,則運行該過程的節(jié)點不具有移除其的能力并結束該過程。如果成功,則過程繼續(xù)至步驟514。步驟514表示評估該節(jié)點是否保持在線并繼續(xù)操作。注意,在任何時刻可能從用戶模式盤資源發(fā)出結束在線的請求,并因此步驟514表示一個邏輯流。如果離線,則執(zhí)行步驟516來移除該節(jié)點的保留。步驟518表示在等待特定時間間隔之后,過程的正常繼續(xù)以確保保留仍然存在, 并且針對任何挑戰(zhàn)保留來防護該保留。示例性操作環(huán)境圖6示出其上可實現(xiàn)圖1A-5的各示例的合適的計算和聯(lián)網(wǎng)環(huán)境600的示例。計算系統(tǒng)環(huán)境600只是合適計算環(huán)境的一個示例,而非意在暗示對本發(fā)明使用范圍或功能有任何限制。也不應該將計算環(huán)境600解釋為對示例性操作環(huán)境600中示出的任一組件或其組合有任何依賴性或要求。本發(fā)明可用各種其他通用或專用計算系統(tǒng)環(huán)境或配置來操作。適用于本發(fā)明的公知計算系統(tǒng)、環(huán)境、和/或配置的示例包括但不限于個人計算機、服務器計算機、手持式或膝上型設備、平板設備、多處理器系統(tǒng)、基于微處理器的系統(tǒng)、機頂盒、可編程消費電子產品、網(wǎng)絡PC、微型計算機、大型計算機、包括任何以上系統(tǒng)或設備的分布式計算環(huán)境等等。本發(fā)明可在諸如程序模塊等由計算機執(zhí)行的計算機可執(zhí)行指令的通用上下文中描述。一般而言,程序模塊包括執(zhí)行特定任務或實現(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、對象、 組件、數(shù)據(jù)結構等等。本發(fā)明也可以在其中任務由通過通信網(wǎng)絡鏈接的遠程處理設備執(zhí)行的分布式計算環(huán)境中實現(xiàn)。在分布式計算環(huán)境中,程序模塊可以位于包括存儲器存儲設備在內的本地和/或遠程計算機存儲介質中。參考圖6,用于實現(xiàn)本發(fā)明的各方面的示例性系統(tǒng)可包括計算機610形式的通用計算設備。計算機610的組件可以包括但不限于處理單元620、系統(tǒng)存儲器630和將包括系統(tǒng)存儲器在內的各種系統(tǒng)組件耦合至處理單元620的系統(tǒng)總線621。系統(tǒng)總線621可以是幾種類型的總線結構中的任何一種,包括存儲器總線或存儲控制器、外圍總線、以及使用各種總線體系結構中的任一種的局部總線。作為示例而非限制,這樣的體系結構包括工業(yè)標準體系結構(ISA)總線、微通道體系結構(MCA)總線、增強型ISA(EISA)總線、視頻電子技術標準協(xié)會(VESA)局部總線和外圍部件互連(PCI)總線(也稱為夾層(Mezzanine)總線)。計算機610通常包括各種計算機可讀介質。計算機可讀介質可以是能由計算機 610訪問的任何可用介質,并包含易失性和非易失性介質以及可移動、不可移動介質。作為示例而非限制,計算機可讀介質可以包括計算機存儲介質和通信介質。計算機存儲介質包括以存儲諸如計算機可讀的指令、數(shù)據(jù)結構、程序模塊或其他數(shù)據(jù)之類的信息的任何方法或技術實現(xiàn)的易失性和非易失性、可移動和不可移動介質。計算機存儲介質包括,但不僅限于,RAM、ROM、EEPR0M、閃存或其他存儲器技術、CD-ROM、數(shù)字多功能盤(DVD)或其他光盤存儲、磁帶盒、磁帶、磁盤存儲或其他磁存儲設備,或可以用來存儲所需信息并可以被計算機610訪問的任何其他介質。通信介質通常以諸如載波或其他傳輸機制等已調制數(shù)據(jù)信號來體現(xiàn)計算機可讀指令、數(shù)據(jù)結構、程序模塊或其他數(shù)據(jù),并包括任一信息傳送介質。術語 “已調制數(shù)據(jù)信號”指的是其一個或多個特征以在信號中編碼信息的方式被設定或更改的信號。作為示例而非限制,通信介質包括有線介質,如有線網(wǎng)絡或直接線連接,以及諸如聲學、射頻(RF)、紅外線及其他無線介質之類的無線介質。上面各項中的任何項的組合也包括在計算機可讀介質的范圍內。系統(tǒng)存儲器630包括易失性和/或非易失性存儲器形式的計算機存儲介質,如只讀存儲器(ROM) 631和隨機存取存儲器(RAM) 632?;据斎?輸出系統(tǒng)633 ¢10 包括如在啟動時幫助在計算機610內的元件之間傳輸信息的基本例程,它通常儲存在ROM 631中。 RAM 632通常包含處理單元620可以立即訪問和/或目前正在操作的數(shù)據(jù)和/或程序模塊。 作為示例而非限制,圖6示出了操作系統(tǒng)634、應用程序635、其他程序模塊636和程序數(shù)據(jù) 637。計算機610還可以包括其他可移動/不可移動、易失性/非易失性計算機存儲介質。僅作為示例,圖6示出了從不可移動、非易失性磁介質中讀取或向其寫入的硬盤驅動器 641,從可移動、非易失性磁盤652中讀取或向其寫入的磁盤驅動器651,以及從諸如⑶ROM 或其他光學介質等可移動、非易失性光盤656中讀取或向其寫入的光盤驅動器655??梢栽谑纠圆僮鳝h(huán)境中使用的其他可移動/不可移動、易失性/非易失性計算機存儲介質包括但不限于,磁帶盒、閃存卡、數(shù)字多功能盤、數(shù)字錄像帶、固態(tài)RAM、固態(tài)ROM等等。硬盤驅動器641通常由不可移動存儲器接口,諸如接口 640連接至系統(tǒng)總線621,磁盤驅動器651和光盤驅動器655通常由可移動存儲器接口,諸如接口 650連接至系統(tǒng)總線621。以上描述并在圖6中示出的驅動器及其相關聯(lián)的計算機存儲介質為計算機610提供了對計算機可讀指令、數(shù)據(jù)結構、程序模塊和其他數(shù)據(jù)的存儲。例如,在圖6中,硬盤驅動器641被示為存儲操作系統(tǒng)644、應用程序645、其他程序模塊646和程序數(shù)據(jù)647。注意, 這些組件可以與操作系統(tǒng)634、應用程序635、其他程序模塊636和程序數(shù)據(jù)637相同,也可以與它們不同。操作系統(tǒng)644、應用程序645、其他程序模塊646和程序數(shù)據(jù)647在這里被標注了不同的附圖標記是為了說明至少它們是不同的副本。用戶可通過諸如平板或電子數(shù)字化儀664、話筒663、鍵盤662和定點設備661 (通常指的是鼠標、跟蹤球或觸摸墊)等輸入設備向計算機610輸入命令和信息。圖6中未示出的其他輸入設備可以包括操縱桿、游戲手柄、圓盤式衛(wèi)星天線、掃描儀等。這些和其他輸入設備通常由耦合至系統(tǒng)總線的用戶輸入接口 660連接至處理單元620,但也可以由其他接口和總線結構,諸如并行端口、游戲端口或通用串行總線(USB),來連接。監(jiān)視器691或其他類型的顯示設備也經(jīng)由接口,諸如視頻接口 690,連接至系統(tǒng)總線621。監(jiān)視器691也可以與觸摸屏面板等集成。注意,監(jiān)視器和/ 或觸摸屏面板可以在物理上耦合至其中包括計算設備610的外殼,諸如在平板型個人計算機中。此外,諸如計算設備610等計算機還可以包括其他外圍輸出設備,諸如揚聲器695和打印機696,它們可以通過輸出外圍接口 694等連接。計算機610可使用至一個或多個遠程計算機,諸如遠程計算機680的邏輯連接在網(wǎng)絡化環(huán)境中操作。遠程計算機680可以是個人計算機、服務器、路由器、網(wǎng)絡PC、對等設備或其他常見網(wǎng)絡節(jié)點,并且通常包括許多或所有以上關于計算機610所描述的元件,盡管在圖6中僅示出了存儲器存儲設備681。圖6中所示的邏輯連接包括一個或多個局域網(wǎng) (LAN)671和一個或多個廣域網(wǎng)(WAN)673,但也可以包括其他網(wǎng)絡。這樣的聯(lián)網(wǎng)環(huán)境在辦公室、企業(yè)范圍計算機網(wǎng)絡、內聯(lián)網(wǎng)和因特網(wǎng)中是常見的。當在LAN聯(lián)網(wǎng)環(huán)境中使用時,計算機610通過網(wǎng)絡接口或適配器670連接至LAN 671。當在WAN聯(lián)網(wǎng)環(huán)境中使用時,計算機610通常包括調制解調器672或用于通過諸如因特網(wǎng)等WAN 673建立通信的其他裝置??蔀閮戎没蚩蔀橥庵玫恼{制解調器672可以經(jīng)由用戶輸入接口 660或其他合適的機制連接至系統(tǒng)總線621。諸如包括接口和天線的無線聯(lián)網(wǎng)組件674可以通過諸如接入點或對等計算機等合適的設備耦合到WAN或LAN。在網(wǎng)絡化環(huán)境中,相對于計算機610所描述的程序模塊或其部分可被儲存在遠程存儲器存儲設備中。 作為示例而非限制,圖6示出遠程應用程序685駐留在存儲器設備681上??梢岳斫?,所示的網(wǎng)絡連接是示例性的,也可以使用在計算機之間建立通信鏈路的其他手段。輔助子系統(tǒng)699(例如,用于內容的輔助顯示)可經(jīng)由用戶接口 660連接,從而即使計算機系統(tǒng)的主要部分處于低功率狀態(tài)中,也允許諸如程序內容、系統(tǒng)狀態(tài)和事件通知等數(shù)據(jù)被提供給用戶。輔助子系統(tǒng)699可連接至調制解調器672和/或網(wǎng)絡接口 670,從而在主處理單元620處于低功率狀態(tài)中時,也允許在這些系統(tǒng)之間進行通信。結論盡管本發(fā)明易于作出各種修改和替換構造,但其某些說明性實施例在附圖中示出并在上面被詳細地描述。然而應當了解,這不旨在將本發(fā)明限于所公開的具體形式,而是相反地,旨在覆蓋落入本發(fā)明的精神和范圍之內的所有修改、替換構造和等效方案。
權利要求
1.一種在服務器群集環(huán)境中的方法,所述方法包括持久保存(410)群集中的存儲機制101的所有權,包括將對應于擁有節(jié)點m的所有者密鑰與共享存儲機制101相關聯(lián),并允許(308、310)至少一個其他節(jié)點N2經(jīng)由每一其他節(jié)點與所述存儲機制相關聯(lián)的共享密鑰來訪問所述存儲機制。
2.如權利要求1所述的方法,其特征在于,將所述所有者密鑰相關聯(lián)包括將所述所有者密鑰寫入所述存儲機制的數(shù)據(jù)結構中。
3.如權利要求2所述的方法,其特征在于,寫入所述所有者密鑰包括試圖(406)向所述存儲機制注冊所述所有者密鑰,并且如果成功,發(fā)出(410)保留命令。
4.如權利要求1所述的方法,其特征在于,所述共享密鑰中的每一個包含標識哪個節(jié)點對應于該密鑰的信息,并且還包括接收(308)標識所述群集中的每一有效節(jié)點的群集成員數(shù)據(jù)(254),并使用所述信息對照所述群集成員數(shù)據(jù)來評估所述數(shù)據(jù)結構中的共享密鑰。
5.如權利要求4所述的方法,其特征在于,還包括取代(312)對應于經(jīng)由所述信息和所述群集成員數(shù)據(jù)未被標識為有效群集成員的群集節(jié)點的任何密鑰。
6.如權利要求1所述的方法,其特征在于,還包括在時間間隔(518)之后確定(504、 506)所述所有者密鑰仍然與所述共享存儲機制相關聯(lián),并且如果否,則將所述所有者密鑰與所述共享存儲機制重新相關聯(lián)。
7.—種在服務器群集環(huán)境中的系統(tǒng),包括多個節(jié)點(Ni、N2),每一節(jié)點包括試圖取得存儲機制(101)的所有權的機制(111),并且對于每一節(jié)點,如果成功地取得所述存儲機制(111)的所有權,則針對任何其他節(jié)點作出的取得所有權的企圖來防護所述所有權,以及如果不成功,將共享密鑰(230)與所述存儲機制(111)相關聯(lián)來向該節(jié)點提供對所述存儲機制的讀和寫訪問。
8.如權利要求7所述的系統(tǒng),其特征在于,每一節(jié)點在試圖取得所述存儲機制的所有權之前向所述存儲機制注冊006)。
9.如權利要求7所述的系統(tǒng),其特征在于,所述存儲機制(111)與SCSI請求兼容,并且所述保留機制試圖經(jīng)由SCSI保留(410)請求來取得所有權。
10.如權利要求7所述的系統(tǒng),其特征在于,所述共享密鑰(230)包括相對于所述群集中的其他節(jié)點標識所述節(jié)點的信息。
11.如權利要求10所述的系統(tǒng),其特征在于,所述所有者節(jié)點獲得指示所述群集中的每一有效節(jié)點的群集成員數(shù)據(jù)0 ),并使用(308、310)所述群集成員數(shù)據(jù)來評估標識所述節(jié)點的信息,以取代(31 在所述群集中未被標識為有效的任何節(jié)點的共享密鑰。
12.如權利要求7所述的系統(tǒng),其特征在于,每一節(jié)點試圖取得存儲機制(111)的所有權是通過確定節(jié)點是否已經(jīng)有所有權,并且如果是,則通過將挑戰(zhàn)保留密鑰與所述存儲機制相關聯(lián)(410、422)來挑戰(zhàn)所有權,等待(420) —段時間,在所述一段時間期間防護節(jié)點可能取代所述挑戰(zhàn)保留密鑰,并且如果未被防護則取得所有權。
13.如權利要求7所述的系統(tǒng),其特征在于,成功取得所述存儲機制的所有權的節(jié)點防護所述所有權是通過確定(502、506)另一節(jié)點是否將挑戰(zhàn)保留密鑰與所述存儲機制相關聯(lián),并且如果是,則取代(510)所述挑戰(zhàn)保留密鑰并通過使用所有者密鑰來重新建立所有權。
14.一種在服務器群集環(huán)境中的方法,包括在第一節(jié)點處,獲得(410)存儲機制的所有權;在第二節(jié)點處,獲得(30 對所述存儲機制讀和寫數(shù)據(jù)的訪問權;在所述第一節(jié)點處在防護時間內防護(510)所述群集的所有權;以及在第二節(jié)點處在長于所述防護時間的時間(420)之后挑戰(zhàn)(422)所有權,從而使得如果所述第一節(jié)點無法在所述防護時間內防護所有權,則所述第二節(jié)點獲得所述存儲機制的所有權。
15.如權利要求14所述的方法,其特征在于,獲得所述存儲機制的所有權包括將所有者密鑰031)與所述存儲機制相關聯(lián)。
16.如權利要求14所述的方法,其特征在于,獲得所述存儲機制的訪問權包括將共享密鑰與所述存儲機制相關聯(lián)(302)。
17.如權利要求14所述的方法,其特征在于,將所述所有者密鑰相關聯(lián)包括試圖(406) 向所述存儲機制注冊所述所有者密鑰,并且如果成功008),發(fā)出(410)保留命令。
18.如權利要求17所述的方法,其特征在于,所述存儲機制與SCSI請求兼容,并且試圖注冊和發(fā)出所述保留命令包括作出SCSI請求。
19.如權利要求14所述的方法,其特征在于,所述共享密鑰包含標識所述第二節(jié)點的信息,并且還包括,在所述第一節(jié)點處接收(304)標識所述群集中的每一有效節(jié)點的群集成員數(shù)據(jù),對照標識所述第二節(jié)點的所述共享密鑰信息來評估(308、310)所述群集成員數(shù)據(jù),并且如果所述群集成員數(shù)據(jù)未指示所述第二節(jié)點是有效節(jié)點,則取代(31 所述共享密鑰來移除所述第二節(jié)點對所述存儲機制讀和寫數(shù)據(jù)的訪問權。
20.如權利要求14所述的方法,其特征在于,第三節(jié)點的共享密鑰與所述存儲機制相關聯(lián),并且其中所述群集成員數(shù)據(jù)指示(310)所述第三節(jié)點是有效節(jié)點,并且還包括,允許所述第三節(jié)點的共享密鑰保持與所述存儲機制相關聯(lián),從而允許所述第三節(jié)點繼續(xù)具有對所述存儲機制讀和寫數(shù)據(jù)的訪問權。
全文摘要
描述了一種使服務器群集中的所有者節(jié)點通過持久保留機制來維護存儲機制的所有權,同時允許非擁有節(jié)點對該存儲機制的讀和寫訪問的技術。所有者節(jié)點將保留密鑰寫入與該存儲機制相關聯(lián)的注冊表。非擁有節(jié)點寫入賦予它們讀和寫訪問的共享密鑰。所有者節(jié)點對照群集成員數(shù)據(jù)來確認共享密鑰,并取代(例如,移除)被認為無效的任何密鑰。所有者節(jié)點還針對由其他節(jié)點作出的對所有權的挑戰(zhàn)來防護所有權,從而使得如果(原先的)擁有節(jié)點例如因為故障而無法防護,則另一節(jié)點可以接管所有權。
文檔編號H04L9/14GK102160047SQ200980137176
公開日2011年8月17日 申請日期2009年8月19日 優(yōu)先權日2008年9月19日
發(fā)明者D·A·迪昂, R·達斯 申請人:微軟公司