群集唯一標識符的制作方法
【專利摘要】所描述的是用于跨服務器群集中的服務器為文件或對象提供唯一標識符的實施例。各實施例包括生成包括至少三個部分的唯一標識符。第一部分包括節(jié)點標識符,該節(jié)點標識符標識群集中創(chuàng)建該唯一標識符的特定服務器。第二部分包括主要序列號,該主要序列號在服務器被重新引導或者以其他方式離線并隨后回到在線時遞增。此外,主要序列號在包括在唯一標識符的第三部分中的所有次要序列號已被使用時遞增。第三部分中的次要序列號因所請求的每一個唯一文件或對象而遞增。
【專利說明】群集唯一標識符
【背景技術】
[0001]利用用于存儲一個或多個客戶機所訪問的信息的單個服務器的系統(tǒng)一般不存在生成對象(例如,文件)的唯一標識符的問題。然而,當系統(tǒng)擴展為包括例如具有多個服務器的服務器群集時,必需在適當的位置存在某種用于確保在服務器群集中各文件或各其他對象具有唯一的標識符的機制。應該理解,如果服務器群集中的一個服務器發(fā)生故障,則其他服務器必需能夠承載該故障服務器的負載。具有唯一標識符確保了之前訪問過該故障服務器的客戶機能夠向服務器群集中的任何服務器發(fā)送標識符,并訪問同一對象或文件。同樣,從性能角度來說,實現(xiàn)在生成群集中的所有節(jié)點的每一標識符之前檢查該標識符的系統(tǒng)不是切實可行的。
[0002]此外,群集以及群集中的服務器可以被配置為使用預定的協(xié)議集與客戶機通信。因此,除了必須生成跨服務器群集唯一的標識符之外,這些標識符還必須滿足這些協(xié)議的要求,諸如這些協(xié)議所指定的特定結構、大小、格式等。
[0003]各實施例正是對于這些和其它考慮事項而做出的。而且,盡管討論了相對具體的問題,但是應當理解,各實施例不應被限于解決本【背景技術】中所標識的具體問題。
【發(fā)明內容】
[0004]提供本
【發(fā)明內容】
來以簡化形式介紹將在以下詳細描述部分中進一步描述的一些概念。本
【發(fā)明內容】
并不旨在標識出所要求保護的主題的關鍵特征或必要特征,也不旨在用于幫助確定所要求保護的主題的范圍。
[0005]所描述的是用于跨服務器群集中的服務器為文件或對象提供唯一標識符的實施例。各實施例包括生成包括至少三個部分的64位標識符。第一部分包括節(jié)點標識符,該節(jié)點標識符標識服務器群集中創(chuàng)建該唯一標識符的特定服務器。第二部分包括主要序列號,該主要序列號在服務器被重新引導或者以其他方式離線并隨后回到在線時遞增。此外,主要序列號在包括在唯一標識符的第三部分中的所有次要序列號已被使用時遞增。第三部分中的次要序列號因所請求的每一個唯一文件或對象而遞增。次要序列號落在特定范圍內。當該范圍內的次要序列號全部被使用時,次要序列號遞增,并且該范圍內的次要序列號被重新使用。
[0006]實施例可被實現(xiàn)為計算機進程、計算系統(tǒng)、或者諸如計算機程序產品或計算機可讀介質等制品。計算機程序產品可以是計算機系統(tǒng)可讀并編碼了用于執(zhí)行計算機進程的指令的計算機程序的計算機存儲介質。計算機程序產品還可以是計算系統(tǒng)可讀并編碼了用于執(zhí)行計算機過程的指令的計算機程序的載體上的傳播信號。
【專利附圖】
【附圖說明】
[0007]參考以下附圖描述非限制性和非窮盡的實施例。
[0008]圖1示出了可用于實現(xiàn)各實施例的系統(tǒng)的一實施例。
[0009]圖2A示出了根據某些實施例的具有三個不同部分的唯一標識符。[0010]圖2B示出了根據某些實施例的供在創(chuàng)建唯一標識符時使用的主要序列號的使用和次要序列號范圍。
[0011]圖3示出了根據某些實施例的唯一會話標識符。
[0012]圖4示出了根據某些實施例的服務器群集的框圖。
[0013]圖5示出了根據某些實施例的用于確定是否保留主要序列號的操作流程。
[0014]圖6示出了根據某些實施例的用于提供唯一標識符的操作流程。
[0015]圖7示出了適于實現(xiàn)各實施例的計算環(huán)境的框圖。
【具體實施方式】
[0016]以下將參考形成本發(fā)明一部分并示出各具體示例性實施例的附圖更詳盡地描述各個實施例。然而實施例被實現(xiàn)為許多不同的形式并且不應將其解釋為限制在此處描述的實施例;相反地,提供這些實施例以使得本公開變得透徹和完整,并且將這些實施例的范圍完全傳達給本領域普通技術人員。各實施例可按照方法、系統(tǒng)或設備來實施。因此,這些實施例可采用硬件實現(xiàn)形式、全軟件實現(xiàn)形式或者結合軟件和硬件方面的實現(xiàn)形式。因此,以下詳細描述并非是局限性的。
[0017]圖1示出了可用于實現(xiàn)一些實施例的系統(tǒng)100。系統(tǒng)100包括客戶機102和104以及服務器集群106。客戶機102和104通過網絡108與服務器集群106通信。服務器群集106存儲信息,該信息被客戶端102和104上的應用訪問??蛻舳?02和104與群集106建立會話以訪問群集106上的信息。盡管在圖1中,僅有客戶機102和104被示為與集群106通信,但是在其他實施例中,可以存在兩個以上客戶機從服務器集群106訪問信息。
[0018]如圖1所示,服務器群集106包括服務器106A、106B和106C,這些服務器為存儲在群集106上的信息提供高可用性和冗余性二者。在實施例中,群集106可以具有文件系統(tǒng)、數據庫、或者由客戶機102和104訪問的其他信息。盡管圖1中示出了 3個服務器,但是在其他實施例中,群集106可以包括3個以上服務器或3個以下服務器。
[0019]根據一個實施例,群集106為客戶機102和104所訪問的文件或其他對象生成唯一標識符110唯一標識符110從群集106被傳遞到客戶機102和104。如以下將更詳細描述的,唯一標識符是跨服務器106AU06B和106C唯一的。在各實施例中,客戶機102和104建立用于訪問存儲在服務器群集106上的信息(諸如,文件或對象)的會話。建立與服務器106A、106B和106C之一的會話。作為建立該會話的一部分,服務器將發(fā)送會話標識給客戶機。
[0020]作為一個示例,客戶機102可以請求建立與服務器群集106的會話,以訪問存儲在服務器群集106上的文件信息。在這個示例中,服務器106A接收請求,并與客戶機102協(xié)商會話。在一個實施例中,會話是使用文件訪問協(xié)議來協(xié)商的,諸如服務器消息塊(SMB )協(xié)議的版本或網絡文件服務器(NFS)協(xié)議的版本。
[0021]在建立了會話后,客戶機102向服務器106A發(fā)送文件訪問請求。在服務器106A接收該請求時,它將唯一標識符分配給客戶機102所請求的文件,并將該標識符提供給客戶機102??蛻魴C102將使該唯一標識符包括在訪問該文件的任何后續(xù)請求中。服務器106A所提供的標識符是跨服務器106AU06B和106C唯一的。
[0022]服務器106A被配置為生成唯一標識符。圖2中示出唯一標識符200的一個實施例。在圖2所示的實施例中,唯一標識符200包括具有節(jié)點標識符的第一部分202,該節(jié)點標識符在前面的示例中標識服務器106A。標識符200的第一部分202允許服務器群集106中的任何服務器確定哪個服務器生成了該唯一標識符200。該部分確保服務器群集中生成的任何標識符200的唯一性。
[0023]唯一標識符200還包括具有主要序列號的第二部分204,和具有次要序列號的第三部分206。對于每一主要序列號,存在可使用的次要序列號范圍。應該理解,次要序列號可使用的數字范圍取決于唯一標識符200的特定結構。
[0024]在一個實施例中,唯一標識符200在長度上為64位。該長度可以由例如用于訪問文件的特定協(xié)議來確定。在一個示例中,如果SMB協(xié)議用于訪問文件,則服務器所生成的文件標識符必須為64位長。因此,為了符合SMB的要求,唯一標識符200將為64位長。在這個實施例中,唯一標識符200的第一部分202為8位長,而第二部分204為24位長,第三部分為32位長。各實施例在長度上并不限于64位。在其他實施例中,大小可以不同,而位劃分被改變以反映不同大小。
[0025]圖2B示出了主要序列號如何與次要序列號一起工作的概念。在概念上,主要序列號將具有取決于分配給該主要序列號的比特數的號范圍。在圖2B所示的實施例中,主要序列號在24位長的部分中,因此該主要序列號在O到224的范圍內。
[0026]同樣在圖2B中示出,次要序列號在32位長的部分中,因此該次要序列號可在O到232的范圍內。如圖2B所示,每一主要序列號與次要序列號范圍相關聯(lián)。S卩,對于每一主要序列號,可生成232個唯一標識符。一旦次要序列號范圍被使用,主要序列號可向上遞增,并且再次另外232個唯一標識符可通過使用該范圍內的所有次要序列號來生成。應該理解,這導致非常大數量的唯一標識符。
[0027]在某些實施例中,主要序列號將在每次存儲服務器重新引導或者服務器以其他方式離線并回到在線時向上遞增。主要序列號的使用在這些實施例中可用于對群集服務重啟的次數進行計數。
[0028]如上所述,客戶機102和104可以使用SMB協(xié)議的某版本來連接到服務器群集106。SMB協(xié)議的版本使用包含持久部分和易失性部分的文件標識符,前者跨斷開連接/重新連接保持相同,而后者在每次句柄被重新建立時改變。持久部分在第一次打開時被生成。在各實施例中,該標識符結構200 (圖2A)在具有節(jié)點標識符的第一部分202作為文件標識符的持久部分的一部分的情況下被使用,持久部分標識在其上最初打開該文件的服務器。由于SMB文件標識符的易失性部分在每一次打開時被重新生成,它保持當前使該打開活動的服務器的身份。
[0029]在各實施例中,與SMB協(xié)議的各版本一起使用的文件標識符可用于例如支持管理API,在該管理API處,管理員可以關閉文件,且服務器可以觀察文件標識符的具有節(jié)點標識符的部分,并確切地知道需要聯(lián)系哪個服務器以處理該關閉。這可用于管理API的例如NetSessionClose、NetFileClose,以允許將服務器組作為單個服務器來管理,并且服務器可以基于節(jié)點標識符來標識哪個服務器需要處理給定請求。
[0030]如上所述的諸如與具有8位長的第一部分、24位常的第二部分和32位長的第三部分的標識符200有關的特定實施例僅出于說明的目的而被提供。各實施例不限于64位標識符的這種特定分割。在其他實施例中,第一部分、第二部分和第三部分可取決于特定實施例而具有不同的比特長度。同樣,應該理解,標識符200可以具有任何長度而不限于64位,標識符200在各實施例中可比64位更短或更長。
[0031]圖3示出了可用于某些實施例的會話標識符300。圖3中示出的會話標識符300具有兩個部分,即第一部分302和第二部分304。在某些實施例中,會話標識符300在長度上也是64位,但是它可以具有不同的長度。在圖3所示的實施例中,第一部分302包括節(jié)點標識符,該節(jié)點標識符唯一地標識創(chuàng)建該會話標識符的服務器。對該第一部分中的節(jié)點標識符的使用在服務器群集中的某服務器接收到該節(jié)點標識符時為該服務器提供標識哪個服務器創(chuàng)建了給定ID的能力。該服務器可確定節(jié)點標識符,并且隨后如果必須進行清理工作等,則與那個服務器通信。該會話標識符是對建立該會話的節(jié)點的生存期而言為唯一的易失性標識符的示例,但如果該節(jié)點重新啟動或者被驅逐,則該會話標識符會被回收。
[0032]作為一個示例,如果客戶機和服務器使用SMB協(xié)議的一版本通信,則它們可以交換SESS10N_SETUP請求中的“PreviousSessionld”參數,以標識該客戶機之前連接過但后來斷開了連接,而現(xiàn)在正再次連接。服務器必須使在前會話斷開連接,如果它作為建立新會話的一部分存在的話。由于會話ID300的一部分包含創(chuàng)建該會話的服務器的節(jié)點標識符,因此它允許該服務器確切地知道必須聯(lián)系哪個服務器以使該會話斷開連接。
[0033]現(xiàn)轉至圖4,示出了服務器群集406的軟件環(huán)境400的框圖被示出在圖4中。示出了圖4以圖解說明用于實現(xiàn)各實施例的環(huán)境的一般示例。
[0034]如圖4所示,服務器群集406包括三個服務器,即406A、406B和406C。如圖4所示,服務器406A、406B和406C中的每一個都包括各個組件。例如,每個服務器都包括客戶機訪問模塊,該客戶機訪問模塊與諸如客戶機102和104 (圖1)之類的客戶機通信,以建立用于允許所述客戶機訪問存儲在服務器群集406上的文件信息的會話。在各實施例中,客戶機訪問組件可以實現(xiàn)諸如SMB協(xié)議的一版本的文件訪問協(xié)議。
[0035]在圖4所示的實施例中,服務器406A、406B和406C還包括與其他群集服務組件通信的群集服務組件。在各實施例中,群集406中的群集服務組件提供多個功能。例如,群集服務組件可以提供與服務器有關的信息,以允許群集406在服務器406A、406B和406C間平衡負載。作為另一示例,群集服務組件可用于為發(fā)生故障的任何服務器提供允許故障切換的信息。此外,群集服務組件用于保留各標識符(諸如圖2所示的標識符200)的主要序列號。
[0036]服務器406A、406B和406C中的每一個還包括標識符生成組件。標識符生成組件生成與向請求訪問文件的客戶機提供的文件或文件句柄相關聯(lián)的唯一標識符。唯一標識符是跨群集406中的所有服務器唯一的。即,沒有任何標識符將是正好相同的,其防止標識符間的沖突。標識符生成組件包括用于確定要包括在唯一文件標識符中的特定主要序列號和次要序列號所必須的邏輯此外,服務器406A、406B和406C中的每一個上的標識符生成組件與本地群集服務組件通信,以將附加的主要序列號保留在群集注冊表408中。
[0037]在圖4所示的實施例中,群集注冊表408在服務器406C上。群集注冊表408存儲群集服務的配置信息。因此,服務器406A、倒退空間(backspace)和服務器406B中的每一個上的群集服務組件與服務器406C上的群集服務組件通信,以將配置信息存儲在群集注冊表408中,或從群集注冊表408中檢索配置信息。在一個實施例中,群集注冊表408用于保留群集406中的標識符生成組件所使用的主要序列號以生成唯一標識符。因此,當次要序列號范圍已被使用時,服務器上的標識符生成組件將與本地群集服務組件通信,該本地群集服務組件通過服務器406C上的群集服務組件請求將下一主要序列號保留在注冊表408 中。
[0038]作為一個示例,假設服務器406A從客戶機接收訪問存儲在群集406上的文件信息的請求。服務器406A上的客戶機訪問組件將與客戶機通信,并建立允許客戶機訪問文件信息的會話。在建立了該會話后,客戶機將發(fā)送訪問文件的請求。響應于接收該請求,服務器406A上的客戶機訪問組件將請求來自服務器406A上的標識符生成模塊的標識符。標識符生成模塊將確定要包括在唯一標識符中的合適的節(jié)點標識符、主要序列號和次要序列號。在生成了唯一標識符之后,標識符生成組件會將該唯一標識符傳遞至客戶機訪問組件,客戶機訪問組件將進而將該唯一標識符提供給客戶機。
[0039]在來自客戶機的一系列請求之后,標識符生成組件將確定在在前的唯一標識符中所有次要序列號已被使用,并且隨后將通過服務器406A上的客戶機服務組件請求保留下一主要序列號。隨后,服務器406A上的群集服務組件將與服務器406C上的群集服務組件通信,以請求將下一主要序列號保留在注冊表408中。隨后,服務器406C上的群集服務組件將向406A上的群集服務組件提供指示該下一主要序列號已被保留在群集注冊表408中的響應。服務器406A中的群集服務組件將向標識符生成組件提供下一主要序列號已被保留在群集注冊表408中的指示。隨后,服務器406A上的標識符生成組件可以開始使用下一主要序列號,并從次要序列號范圍的開始處開始。
[0040]在某些實施例中,服務器406A或406B中的一個可發(fā)生故障,或以其他方式離線并隨后回到在線。當服務器回到在線,并且該服務器上的客戶機訪問組件接收對文件的請求時,該服務器上的標識符生成組件將通過本地群集服務器組件請求對下一主要序列號的請求。隨后,本地群集服務組件將遵循之前描述的用于通過群集注冊表408來保留下一主要序列號的過程。因此,在這些實施例中,群集注冊表408可用于跟蹤服務器已經歷的重新引導的次數。
[0041]僅為了解說各實施例而提供以上描述。應該理解,雖然圖4中的服務器群集406被示為具有僅三個服務器,但在其他實施例中,服務器群集406將包括多于三個服務器。同樣,在各實施例中,群集406可包括多于一個具有群集注冊表408的服務器。群集注冊表可被復制到其他服務器處,以允許與群集注冊表有關的故障切換及冗余。
[0042]圖5和圖6示出根據各實施例的操作流程500和600。操作流程500和600可以在任何合適的計算環(huán)境中執(zhí)行。例如,操作流程可因此由諸如圖1和圖4中所示的系統(tǒng)和環(huán)境來執(zhí)行,操作流程500和600的描述可以參考圖1和圖4的組件中的至少一個。然而,對圖1和4的組件的任何這類參考僅出于描述性目的,并且應當理解,圖1和4的實現(xiàn)是操作流程500和600的非限制性環(huán)境。
[0043]此外,盡管以特定次序順序地示出并描述了操作流程500和600,但在其它實施例中,各個操作能以不同的次序、多次和/或并行執(zhí)行。此外,在某些實施例中,一個或多個操作可被省略或組合。
[0044]操作流程500被解說為示出在確定要包括在唯一標識符中的合適的主要序列號和次要序列號時可執(zhí)行的各個步驟。在各實施例中,如上所述的服務器406A、406B和406C(圖4)的標識符生成組件可實現(xiàn)操作流程500。[0045]流程500在操作502處開始,在操作502處,接收訪問文件的請求。在各實施例中,操作502在多個其他步驟(諸如協(xié)商會話)之前。該會話可以使用文件訪問協(xié)議(諸如,SMB協(xié)議的一版本)來協(xié)商。在其他實施例中,操作502在訪問多個不同文件的多個在前請求之前。響應于步驟502處接收到的請求,必須生成標識正被訪問的文件的唯一標識符。
[0046]如圖5中的實施例所示,操作流程從操作502傳遞至判定504,在該判定處,作出要供唯一標識符使用的下一次要序列號是否在第一閾值位置處的判定。在某些實施例中,如結合圖4所述的,在次要序列號范圍已被使用時,主要序列號遞增。在各實施例中,保留下一主要序列號要求向群集中的另一服務器發(fā)送可包括用于保留該下一主要序列號的群集注冊表的消息。
[0047]為了避免進入其中生成唯一標識符必須被暫停直到存在對保留下一主要序列號的批準的情況,判定504確定下一次要序列號是否在距次要序列號范圍的末尾的閾值位置處。這允許保留請求被盡早并異步地發(fā)送。
[0048]如果在判定504處確定要被包括在唯一標識符中的下一次要序列號大于第一閾值位置,則流程傳遞至操作506,在操作506處,發(fā)送保留下一主要序列號的請求。在操作508,接收對保留的指示。操作508處接收到的指示可以是將允許在必要時(即,在次要序列號已全部被使用時)遞增主要序列號的批準指示在其他實施例中,操作508處接收到的指示可以不是對下一主要序列號的批準。這可在例如包括群集注冊表的服務器不可用的情況下發(fā)生。流程500從操作508傳遞至操作510,在操作501,生成唯一標識符。流程在512處結束。
[0049]如果在判定504處確定次要序列號不大于第一閾值位置,則流程500傳遞至判定514,在判定514處,確定是否要被包括在唯一標識符中的下一次要序列號大于第二閾值位置且最后一個主要序列號已在使用。與判定504中使用的第一閾值位置相比,第二閾值位置與次要序列號范圍的末尾更接近。與該范圍的末尾更接近對于保護對下一主要序列號的保留而言是更緊急的情況。如果次要序列號被用完,而尚未保留任何主要序列號,則不會生成更多的唯一標識符。這可導致在生成標識符時存在延遲并因此在對來自客戶機的訪問文件的請求作出響應時存在延遲的錯誤。
[0050]判定514還考慮最后一個主要序列號當前是否在使用。如圖2所示,主要序列號同樣限于特定的號范圍。因此,一旦主要序列號已全部被使用,則它們必須被復位。因此,如果在判定514處確定要使用的下一次要序列號大于第二閾值位置,并且最后一個主要序列號當前被使用,則流程500傳遞到操作516。在操作516處,發(fā)送復位主要序列號的請求。在某些實施例中,該請求可以被群集服務組件發(fā)送到包括群集注冊表的另一服務器。
[0051]在操作516,流程傳遞至操作518,在操作518處,接收主要序列號是否已被復位的指示。流程從操作518傳遞至判定520,在判定520處,確定在518處接收到的指示是否指示主要序列號已被成功復位。如果在判定520處確定主要序列號被成功復位,則流程傳遞至操作510,在操作510處生成唯一標識符。流程隨后在512處結束。
[0052]然而,如果在520處確定來自操作518的指示指示主要序列號尚未被復位,則流程傳遞至操作522,在操作522,提供本地保留。操作522旨在處理其中例如訪問群集注冊表以及保留主要序列號或復位主要序列號的能力存在問題的情況。當面對這種情況時,各實施例將仍能夠通過在本地保留或復位主要序列號來生成某種類型的標識符。這避免了其中沒有任何唯一標識符可被生成以及系統(tǒng)停止生成用于訪問請求的標識符的情況。
[0053]在各實施例中,在不作為群集的一部分的服務器上,唯一文件標識符以與作為群集的一部分的服務器相同的方式被生成。然而,節(jié)點標識符等于零,并且主要序列號被存儲在常規(guī)注冊表中。在作為群集的一部分的服務器上,如果群集注冊表未能在第一閾值被達到后更新,且群集服務不在運行,則本地注冊表密鑰(非群集注冊表密鑰)被讀取以獲得用于生成下一唯一文件標識符的主要序列號。當第二閾值被達到時,唯一標識符將使用節(jié)點標識符O來生成。如果在發(fā)送第一請求時群集服務正在運行,則可以發(fā)送更新群集注冊表的另一請求,但是如果群集注冊表這次未能更新,則沒有任何新的唯一文件標識符將被生成。相反,事件將被激發(fā),使得管理員可通過重啟群集服務或機器來解決該問題,因為這樣的情況指示嚴重錯誤。
[0054]再一次參考圖5,流程從操作522傳遞到524,在524處,接收關于在本地保留或復位主要序列號的指示。在操作524后,流程傳遞到判定526,在判定526處,確定操作524處接收到的指示是否指示主要序列號已被成功復位或保留。如果存在主要序列號已在本地被復位或保留的指示,則流程傳遞到操作510,在操作510處,生成唯一標識符。流程隨后在512處結束。
[0055]如果在判定526處確定對主要序列號的復位或保留不成功,則流程傳遞到操作528,在操作528處,錯誤指示發(fā)生。這可導致例如向管理員通知糾正該錯誤的某一其他動作或事件。流程隨后在512處結束。
[0056]參考回判定514,如果確定生成唯一標識符時要使用的下一次要序列號不大于第二閾值,或者當前在使用的主要序列號不是最后一個主要序列號,則流程500傳遞到判定530。在判定530處,確定是否要被包括在唯一標識符中的下一次要序列號大于第二閾值位置,且下一主要序列號尚未被保留。如前所述,在與次要序列號范圍的末尾更接近的第二閾值處是更緊急的情況。如果保留下一主要序列號的在前嘗試已被作出但尚未成功,則將阻止生成任何標識符,并由此可能導致不提供對文件訪問請求的響應的情況可潛在地發(fā)生。如可看見地,如果在判定530處確定下一次要序列號大于第二閾值位置,并且下一主要序列號尚未被保留,則流程傳遞到如上所述的操作522、操作524、判定526和操作528。
[0057]然而,如果在判定530處確定要被使用的下一次要序列號不大于第二閾值,或者下一主要序列并非尚未被保留,則流程500傳遞到操作510,在操作510處生成唯一標識符。流程然后在操作512處結束。
[0058]圖5中示出的實施例的一個特征是針對多數情況作出確定的快速性。例如,如果要在唯一標識符中使用的下一次要序列號不大于第一閾值或第二閾值,則流程將快速地從判定504傳遞到判定514、到判定530,最后到生成唯一標識符的操作510。該實施例允許唯一標識符將在多數情況下被快速地生成。
[0059]如上所述,在各實施例中,流程圖500由群集中的多個服務器上包括的標識符生成組件來執(zhí)行。應該理解,在某些實施例中,除圖1和圖4中示出的環(huán)境外,流程500還可以以其他類型的環(huán)境來實現(xiàn)。
[0060]操作流程600示出了用于將唯一標識符發(fā)送或提供給客戶機的步驟。在各實施例中,流程600的各操作可以與在圖5中示出并且如上所述的流程500的一個或多個不同操作組合。例如,如以下更詳細描述地,流程600包括用于生成標識符的操作。這個操作可以作為如上所述并在圖5中示出的操作510與流程500組合。這僅僅是一個示例,流程500和600中的操作的不同組合是可能的。
[0061]流程600在操作602處開始,在602處,建立與客戶機的會話,以允許該服務器訪問文件信息。該會話可以使用例如SMB協(xié)議的某版本來建立。操作602處建立的會話可以使用會話標識符來標識。該會話標識符可被包括在來自客戶機的通信中,使得服務器,甚至群集的不同服務器,可以標識出已經建立的與客戶機的特定會話。
[0062]在操作602之后,流程600傳遞到操作604,在操作604,接收對文件信息的請求。該請求可根據同一文件訪問協(xié)議(例如,SMB協(xié)議的某版本)而被格式化。如上所述,在各實施例,用于標識被請求的文件的唯一標識符被生成。操作606生成唯一標識符。
[0063]如圖6所示,在操作606處生成標識符可包括多個子操作。在圖6所示的實施例中,操作606包括子操作608,在該子操作608中,節(jié)點標識符被包括在唯一標識符的第一部分中。操作606還包括子操作610,在該子操作610處,主要序列號被包括在唯一標識符的第二部分中。在子操作612處,次要序列號被包括在唯一標識符的第三部分中。在各實施例中,流程500的各操作可以在生成標識符操作606之前執(zhí)行。即,在生成唯一標識符之前,可確定主要序列號是否應被保留,以用于生成將來的唯一標識符。
[0064]在其他實施例中,不執(zhí)行這三個可選的子操作(608-612)。相反,在第一次唯一標識符被生成時,節(jié)點標識符就被設置,并且剩余部分(諸如,序列號)在每次新的唯一文件標識符被生成時被遞增??纱嬖跈z查閾值及邊界的邏輯,該邏輯可導致如果諸如改變節(jié)點標識符部分的新判定被作出則創(chuàng)建全新的唯一文件標識符,隨后新的64位標識符可被創(chuàng)建并被用于通過簡單地遞增該標識符來創(chuàng)建所請求的下一唯一文件標識符。
[0065]如圖6的實施例所示,操作流程從操作606傳遞到操作614,在操作614處,用于標識客戶機已請求的文件的標識符被發(fā)送給該客戶機,或者以其他方式被提供給該客戶機。流程600在616處結束。
[0066]圖7示出可用于實現(xiàn)本文所描述的實施例的通用計算機系統(tǒng)700。計算機系統(tǒng)700僅是計算環(huán)境的一個示例,而非旨在對計算機和網絡架構的使用范圍或功能提出任何限制。計算機系統(tǒng)700也不應被解釋成對于在示例計算機系統(tǒng)700中所示出的任一組件或其組合有任何依賴或要求。在實施例中,系統(tǒng)700可用作上面參照圖1所述的客戶端和/或服務器。
[0067]在其最基本配置中,系統(tǒng)700通常包括至少一個處理單元702和存儲器704。取決于計算設備的確切配置和類型,存儲器704可以是易失性的(如RAM)、非易失性的(如ROM、閃存等)或是兩者的某種組合。該最基本配置在圖7中由虛線706來示出。系統(tǒng)存儲器704存儲在系統(tǒng)700上執(zhí)行的應用程序。例如,存儲器704可以存儲生成被請求的文件的唯一標識符的標識符生成組件720。存儲器704還可包括唯一標識符722。
[0068]如這里所使用的術語計算機可讀介質可以包括計算機存儲介質。計算機存儲介質可包括以用于存儲諸如計算機可讀指令、數據結構、程序模塊、或其他數據等信息的任何方法或技術實現(xiàn)的易失性和非易失性、可移動和不可移動介質。系統(tǒng)存儲器704、可移動存儲和不可移動存儲708都是計算機存儲介質示例(即,存儲器存儲)。計算機存儲介質可以包括,但不限于,RAM、ROM、電可擦除只讀存儲器(EEPR0M)、閃存或其他存儲器技術、CD-ROM、數字多功能盤(DVD)或其他光存儲、磁帶盒、磁帶、磁盤存儲或其他磁性存儲設備、或可用于存儲信息且可以由計算設備700訪問的任何其他介質。任何這樣的計算機存儲介質都可以是 設備700的一部分。計算設備700還可以具有輸入設備714,如鍵盤、鼠標、筆、聲音輸入設 備、觸摸輸入設備等。還可包括諸如顯示器、揚聲器、打印機等輸出設備716。上述設備是示 例且可以使用其他設備。
[0069]如這里所使用的術語計算機可讀介質還包括通信介質。通信介質由諸如載波或其 他傳輸機制等已調制數據信號中的計算機可讀指令、數據結構、程序模塊或其他數據來體 現(xiàn),并包括任何信息傳遞介質。術語“已調制數據信號”可以描述以對該信號中的信息進行 編碼的方式設定或者改變其一個或多個特征的信號。作為示例而非限制,通信介質包括諸 如有線網絡或直接線連接等有線介質,以及諸如聲學、射頻(RF)、紅外線和其他無線介質等 無線介質。
[0070]本說明書通篇引述了“一個實施例”或“一實施例”,這意味著在至少一個實施例中 包括特定描述的特征、結構或特性。因此,對這樣短語的使用可指的是一個以上的實施例。 而且,在一個或多個實施例中,可以用任何合適的方式組合所描述的特征、結構或特性。
[0071]然而,本領域技術人員會認識到本實施例也可在沒有一個或多個具體細節(jié)的情況 下實施,或者采用其他方法、資源、材料等來實現(xiàn)。在其他情況中,僅為了避免模糊實施例的 各方面,未詳細示出和描述公知的結構、資源或操作。
[0072]雖然示出和描述了示例實施例和應用,但是應該理解本實施例不限于上述精確配 置和資源??梢詫Υ颂幑_的方法和系統(tǒng)的排列、操作以及細節(jié)作出對本領域技術人員顯 而易見的各種修改、改變和變化,而不背離所要求保護的本實施例的范圍。
【權利要求】
1.一種提供標識符的計算機實現(xiàn)的方法,所述方法包括: 在群集的第一服務器處接收對第一文件的第一請求; 生成與所述文件相關聯(lián)的第一標識符,其中所述第一標識符包括: 所述第一標識符的第一部分中標識所述第一服務器的節(jié)點標識符; 在所述第一標識符的第二部分中的第一主要序列號,該主要序列號在第一數字范圍內;以及 在所述第一標識符的第三部分中的第一次要序列號,該次要序列號在第二數字范圍內;以及 發(fā)送所述第一標識符。
2.如權利要求1所述的計算機實現(xiàn)的方法,其特征在于,所述方法還包括: 在所述群集的所述第一服務器處接收對第二文件的第二請求; 確定所述第一標識符中使用的所述第一次要序列號不在距所述第二數字范圍的末尾的第一位置處;
生成與所述第二文件相關聯(lián)的第二標識符,其中所述第二標識符包括: 在所述第二標識符的第一部分中的所述節(jié)點標識符; 在所述第二標識符的第二部分中的所述主要序列號; 在所述第二標識符的第三部分中的經遞增的次要序列號;以及發(fā)送所述第二標識符。
3.如權利要求1所述的計算機實現(xiàn)的方法,其特征在于,所述方法還包括: 在所述群集的所述第一服務器處接收對第二文件的第二請求; 確定所述主要序列號應被遞增; 生成與所述第二文件相關聯(lián)的第二標識符,其中所述第二標識符包括: 在所述第二標識符的第一部分中的所述節(jié)點標識符; 在所述第二標識符的第二部分中的經遞增的主要序列號; 在所述第二標識符的第三部分中的次要序列號,該次要序列號在所述第二數字范圍的開始處;以及 發(fā)送所述第二標識符。
4.如權利要求3所述的方法,其特征在于,所述確定包括確定所述第一標識符中使用的次要序列號在距所述第二數字范圍的末尾的預定位置處。
5.如權利要求3所述的方法,其特征在于,所述確定包括確定所述群集上的群集服務已因所述生成所述第一標識符而被重啟。
6.如權利要求3所述的方法,其特征在于,還包括,在所述確定后: 向群集服務發(fā)送保留所述經遞增的主要序列號的請求; 從所述群集服務器接收指示所述經遞增的主要序列號已被保留的響應。
7.一種包括計算機可執(zhí)行指令的計算機可讀存儲介質,所述指令在由處理器執(zhí)行時執(zhí)行向客戶機提供標識符的方法,所述方法包括: 生成與文件相關聯(lián)的第一 64位標識符,其中所述第一標識符包括: 在所述第一 64位標識符的第一部分中的節(jié)點標識符; 在所述第一 64位標識符的第二部分中的第一主要序列號,該主要序列號在第一數字范圍內;以及在所述第一 64位標識符的第三部分中的第一次要序列號,該次要序列號在第二數字范圍內;以及 將所述第一 64位標識符提供給客戶機。
8.如權利要求7所述的計算機可讀存儲介質,其特征在于,所述方法還包括: 將會話標識符提供給客戶機以建立用于交換信息的會話,其中所述會話標識符包括節(jié)點標識符。
9.如權利要求8所述的計算機可讀存儲介質,其特征在于,所述會話是使用服務器消息塊(SMB)協(xié)議的版本來建立的,并且所述會話用于將文件信息提供給所述客戶機。
10.一種用于向客戶機提供文件信息的計算機系統(tǒng),所述系統(tǒng)包括: 群集中的多個服務器,其中所述多個服務器中的至少一部分被配置為: 建立與客戶機的會話以提供對存儲在所述群集上的文件信息的訪問; 接收來自客戶機的訪問第 一文件的第一請求; 響應于接收所述第一請求,生成與所述第一文件相關聯(lián)的第一 64位標識符,其中所述第一 64位標識符包括: 在所述第一 64位標識符的第一部分中的服務器標識符; 在所述第一 64位標識符的第二部分中的第一主要序列號,該主要序列號在第一數字范圍內;以及 在所述第一 64位標識符的第三部分中的第一次要序列號,該次要序列號在第二數字范圍內;以及 將所述第一 64位標識符提供給客戶機。
【文檔編號】G06F15/16GK103460203SQ201280016717
【公開日】2013年12月18日 申請日期:2012年4月6日 優(yōu)先權日:2011年4月7日
【發(fā)明者】D·M·克魯斯, D·E·法薩拉 申請人:微軟公司