群集中的分布式存儲防御的制作方法
【專利說明】群集中的分布式存儲防御
[0001]背景
[0002]在其中節(jié)點群集具有對存儲設(shè)備的訪問權(quán)的典型的共享存儲情形中,該群集中的至少一個節(jié)點連接到存儲設(shè)備。因此,連接到存儲設(shè)備的節(jié)點負(fù)責(zé)處理該存儲設(shè)備的防御。然而,在其中群集具有對多個存儲設(shè)備的訪問權(quán)的情形中,該群集中的單個節(jié)點可能未連接到每一存儲設(shè)備。因此,一些存儲設(shè)備可能是不受保護的。
[0003]各實施例正是對于這些和其它一般考慮事項而做出的。而且,盡管討論了相對具體的問題,但是應(yīng)當(dāng)理解,各實施例不應(yīng)被限于解決本【背景技術(shù)】中所標(biāo)識的具體問題。
[0004]概述
[0005]提供本概述來以簡化形式介紹將在以下詳細(xì)描述部分中進一步描述的一些概念。本概述并不旨在標(biāo)識出所要求保護的主題的關(guān)鍵特征或必要特征,也不旨在用于幫助確定所要求保護的主題的范圍。
[0006]本公開的各實施例提供了用于使得能夠訪問存儲設(shè)備以及用于保護可由群集中的各個節(jié)點訪問的一個或多個存儲設(shè)備的方法和系統(tǒng)。具體而言,一個或多個實施例描述了節(jié)點可如何被準(zhǔn)入群集并由此獲取對連接到節(jié)點群集中的至少一個節(jié)點的存儲設(shè)備的讀和寫訪問權(quán)。另外,一個或多個實施例提供了各節(jié)點可監(jiān)視與群集相關(guān)聯(lián)的注冊表并移除來自未經(jīng)識別的節(jié)點的條目。對于那些被移除的節(jié)點,該節(jié)點可嘗試向注冊表重新注冊以尋求對群集的重新準(zhǔn)入。
[0007]如將在以下解釋的,尋求訪問存儲設(shè)備的節(jié)點使用群集通信協(xié)議來進入群集。一旦被準(zhǔn)入該群集,節(jié)點就有資格獲取對該群集所利用的一個或多個存儲設(shè)備的訪問權(quán)。為了獲取對存儲設(shè)備的訪問權(quán),尋求訪問存儲設(shè)備的節(jié)點向存儲設(shè)備發(fā)送注冊碼。在向存儲設(shè)備注冊后,節(jié)點設(shè)置注冊定時器。在各實施例中,注冊定時器等同于期間群集中的每一節(jié)點有機會確定尋求訪問存儲設(shè)備的節(jié)點是否應(yīng)被授予所請求的訪問權(quán)的時間段。在注冊定時器期滿之際,尋求訪問存儲設(shè)備的節(jié)點從存儲設(shè)備接收注冊表。一旦接收到注冊表,該節(jié)點就確定其注冊碼是否被存儲在該注冊表中。如果注冊碼被存儲在注冊表中,則該節(jié)點被準(zhǔn)許訪問存儲設(shè)備。更具體而言,該節(jié)點被授予對存儲設(shè)備的寫訪問權(quán)。
[0008]各實施例可被實現(xiàn)為計算機進程、計算系統(tǒng)、或者諸如計算機程序產(chǎn)品或計算機可讀介質(zhì)等制品。計算機程序產(chǎn)品可以是計算機系統(tǒng)可讀的并編碼了用于執(zhí)行計算機進程的指令的計算機程序的計算機存儲介質(zhì)。計算機程序產(chǎn)品還可以是計算系統(tǒng)可讀并編碼了用于執(zhí)行計算機過程的指令的計算機程序的載體上的傳播信號。
[0009]附圖簡述
[0010]參考以下附圖描述非限制性和非窮盡的實施例,其中:
[0011]圖1示出了根據(jù)本公開的一個或多個實施例的其中群集中的多個節(jié)點連接到相應(yīng)存儲設(shè)備的系統(tǒng);
[0012]圖2示出了根據(jù)本公開的一個或多個實施例的用于請求群集中的成員資格的方法。
[0013]圖3示出了根據(jù)本公開的一個或多個實施例的用于確定對與節(jié)點群集相關(guān)聯(lián)的存儲設(shè)備的訪問權(quán)的方法;
[0014]圖4示出了根據(jù)本公開的一個或多個實施例的用于請求群集中的重新準(zhǔn)入的方法;
[0015]圖5是示出根據(jù)本公開的一個或多個實施例的群集中的各個節(jié)點可如何連接到物理存儲設(shè)備的框圖;
[0016]圖6是解說可以與本公開的一個或多個實施例一起使用的計算設(shè)備的示例物理組件的框圖;
[0017]圖7A和7B是可以與本公開的一個或多個實施例一起使用的移動計算設(shè)備的簡化框圖;以及
[0018]圖8是解說可以與本公開的一個或多個實施例一起使用的分布式計算系統(tǒng)的簡化框圖;
[0019]詳細(xì)描述
[0020]以下將參考形成本發(fā)明一部分并示出各具體示例性實施例的附圖更詳盡地描述各個實施例。然而,各實施例可以以許多不同的形式來實現(xiàn),并且不應(yīng)將其解釋為限制此處所闡述的各實施例;相反地,提供這些實施例以使得本公開變得透徹和完整,并且將這些實施例的范圍完全傳達(dá)給本領(lǐng)域普通技術(shù)人員。各實施例可按照方法、系統(tǒng)或設(shè)備來實施。因此,這些實施例可采用硬件實現(xiàn)形式、全軟件實現(xiàn)形式或者結(jié)合軟件和硬件方面的實現(xiàn)形式。因此,以下詳細(xì)描述并非是局限性的。
[0021]圖1示出了根據(jù)本公開的一個或多個實施例的其中群集102中的多個節(jié)點連接到相應(yīng)存儲設(shè)備的系統(tǒng)100。如圖1所示,群集102可包括多個節(jié)點102A-102D。盡管示出了四個節(jié)點,但構(gòu)想群集102可具有多于四個節(jié)點或少于四個節(jié)點。在特定實施例中,節(jié)點可以是計算設(shè)備,諸如例如個人計算機、平板、膝上型計算機、智能電話、個人數(shù)字助理等。在其它實施例中,節(jié)點可以是服務(wù)器計算設(shè)備。
[0022]圖1還示出群集102中的每一節(jié)點連接到一個或多個存儲設(shè)備。在特定實施例中,存儲設(shè)備可以是直接附連的存儲設(shè)備(即,直接連接到主機系統(tǒng)或設(shè)備的存儲設(shè)備)。還構(gòu)想存儲設(shè)備可由群集中的多個節(jié)點使用一條或多條路徑來訪問。例如,一個或多個節(jié)點可以物理地連接到存儲設(shè)備,而群集中的其它節(jié)點可以使用遠(yuǎn)程路徑來連接到存儲設(shè)備。另夕卜,單個節(jié)點可具有到各個存儲設(shè)備的多個物理連接以及到各個存儲設(shè)備的一個或多個遠(yuǎn)程連接。還構(gòu)想群集中的每一節(jié)點能夠查看該群集中的每一其它節(jié)點的活動和連接。綜上,系統(tǒng)100可以是非對稱的,這表現(xiàn)在一些存儲設(shè)備對一些節(jié)點可用,而其它存儲設(shè)備對這些節(jié)點不可用。
[0023]例如,如圖1所示,節(jié)點102A和102B連接到存儲設(shè)備104,節(jié)點102C連接到存儲設(shè)備104和存儲設(shè)備106,而節(jié)點102D連接到存儲設(shè)備106和存儲設(shè)備108。在特定實施例中,存儲設(shè)備104 - 108包括存儲池。由于在群集102中不存在可訪問存儲池中的每一存儲設(shè)備的單個節(jié)點,因此群集102中的每一節(jié)點負(fù)責(zé)運行防御算法以確保只有作為該群集的一部分的節(jié)點才可具有對存儲設(shè)備的讀和寫訪問權(quán)。由此,群集102中的每一節(jié)點并發(fā)地保護存儲池中的它們連接到的存儲設(shè)備。
[0024]回頭參考圖1,節(jié)點102A、102B和102C中的每一節(jié)點連接到存儲設(shè)備104。如所討論的,這些節(jié)點中的每一節(jié)點可具有到存儲設(shè)備104的物理連接或遠(yuǎn)程連接(即,經(jīng)由具有到存儲設(shè)備104的物理連接的節(jié)點的到存儲設(shè)備104的連接)。因為節(jié)點102A、102B和102C連接到存儲設(shè)備104,所以每一節(jié)點都具有對存儲設(shè)備104的讀和寫訪問權(quán)。此外,群集102中的節(jié)點102A、102B和102C中的每一節(jié)點都能檢測到群集102中的其它節(jié)點的存在并確定該群集中的每一其它節(jié)點的活動。
[0025]在各實施例中,對特定存儲設(shè)備的權(quán)限通過持久保留來確定。即,甚至當(dāng)存儲設(shè)備(諸如例如存儲設(shè)備104)離線或已被重啟時,該存儲設(shè)備也維持特定節(jié)點的保留。出于討論目的,特定節(jié)點的保留在節(jié)點保留特定存儲設(shè)備并防止另一未經(jīng)授權(quán)的節(jié)點訪問該存儲設(shè)備時發(fā)生。
[0026]回頭參考上述示例,節(jié)點102A、102B和102C中的每一節(jié)點具有對存儲設(shè)備104的讀和寫訪問權(quán),因為節(jié)點102A、102B和102C中的每一節(jié)點都是群集102的一部分。如將在下文中詳細(xì)解釋的,群集102中的每一節(jié)點在時間t運行一個防御算法以確定群集102中的任一其它節(jié)點是否已丟失到以下各項任一個的連接:(i)群集中的其它節(jié)點或者(ii)存儲設(shè)備104。
[0027]例如,如果節(jié)點102A丟失到節(jié)點102B和102C的連接或者到存儲設(shè)備104的連接,則節(jié)點102B和102C獨立地確定節(jié)點102A應(yīng)不再具有對存儲設(shè)備104的(至少)寫訪問權(quán)并由此應(yīng)被禁止訪問該存儲設(shè)備。當(dāng)連接已被丟失時,節(jié)點102B和102C承擔(dān)節(jié)點102A的工作負(fù)載并且還采取各個步驟來確保節(jié)點102A不再能夠?qū)Υ鎯υO(shè)備104進行寫入,因為準(zhǔn)許節(jié)點102A對該存儲設(shè)備進行寫入可能損壞存儲設(shè)備104上的數(shù)據(jù)。構(gòu)想盡管節(jié)點102A可能已經(jīng)丟失到節(jié)點102B和102C的連接,但節(jié)點102A仍然可能具有到存儲設(shè)備104的連接。同樣,構(gòu)想如果節(jié)點102A丟失到存儲設(shè)備104的連接,則節(jié)點102A仍然可能連接到節(jié)點102B和/或節(jié)點102C。
[0028]返回到上述示例,為了禁止節(jié)點102A對存儲設(shè)備104進行寫入,節(jié)點102B或102C向存儲設(shè)備104發(fā)送將節(jié)點102A從節(jié)點注冊表中清除的請求。更具體而言,向存儲設(shè)備發(fā)送將與節(jié)點102A相關(guān)聯(lián)的注冊碼從節(jié)點注冊表中清除的請求。結(jié)果,存儲設(shè)備104將不再接受來自與節(jié)點102A相關(guān)聯(lián)的物理路徑或遠(yuǎn)程路徑的寫入命令。在特定實施例中,盡管節(jié)點102A將不具有對存儲設(shè)備104的寫訪問權(quán),但節(jié)點102A仍將具有對存儲設(shè)備104的讀訪問權(quán)。
[0029]在特定實施例中,節(jié)點102B或102C中的任一節(jié)