CN103460203A - 群集唯一标识符 - Google Patents
群集唯一标识符 Download PDFInfo
- Publication number
- CN103460203A CN103460203A CN2012800167174A CN201280016717A CN103460203A CN 103460203 A CN103460203 A CN 103460203A CN 2012800167174 A CN2012800167174 A CN 2012800167174A CN 201280016717 A CN201280016717 A CN 201280016717A CN 103460203 A CN103460203 A CN 103460203A
- Authority
- CN
- China
- Prior art keywords
- identifier
- sequence number
- server
- file
- main sequence
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
- G06F16/164—File meta data generation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/11—File system administration, e.g. details of archiving or snapshots
- G06F16/122—File system administration, e.g. details of archiving or snapshots using management policies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/275—Synchronous replication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Computer And Data Communications (AREA)
- Information Transfer Between Computers (AREA)
Abstract
所描述的是用于跨服务器群集中的服务器为文件或对象提供唯一标识符的实施例。各实施例包括生成包括至少三个部分的唯一标识符。第一部分包括节点标识符,该节点标识符标识群集中创建该唯一标识符的特定服务器。第二部分包括主要序列号,该主要序列号在服务器被重新引导或者以其他方式离线并随后回到在线时递增。此外,主要序列号在包括在唯一标识符的第三部分中的所有次要序列号已被使用时递增。第三部分中的次要序列号因所请求的每一个唯一文件或对象而递增。
Description
背景技术
利用用于存储一个或多个客户机所访问的信息的单个服务器的系统一般不存在生成对象(例如,文件)的唯一标识符的问题。然而,当系统扩展为包括例如具有多个服务器的服务器群集时,必需在适当的位置存在某种用于确保在服务器群集中各文件或各其他对象具有唯一的标识符的机制。应该理解,如果服务器群集中的一个服务器发生故障,则其他服务器必需能够承载该故障服务器的负载。具有唯一标识符确保了之前访问过该故障服务器的客户机能够向服务器群集中的任何服务器发送标识符,并访问同一对象或文件。同样,从性能角度来说,实现在生成群集中的所有节点的每一标识符之前检查该标识符的系统不是切实可行的。
此外,群集以及群集中的服务器可以被配置为使用预定的协议集与客户机通信。因此,除了必须生成跨服务器群集唯一的标识符之外,这些标识符还必须满足这些协议的要求,诸如这些协议所指定的特定结构、大小、格式等。
各实施例正是对于这些和其它考虑事项而做出的。而且,尽管讨论了相对具体的问题,但是应当理解,各实施例不应被限于解决本背景技术中所标识的具体问题。
发明内容
提供本发明内容来以简化形式介绍将在以下详细描述部分中进一步描述的一些概念。本发明内容并不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。
所描述的是用于跨服务器群集中的服务器为文件或对象提供唯一标识符的实施例。各实施例包括生成包括至少三个部分的64位标识符。第一部分包括节点标识符,该节点标识符标识服务器群集中创建该唯一标识符的特定服务器。第二部分包括主要序列号,该主要序列号在服务器被重新引导或者以其他方式离线并随后回到在线时递增。此外,主要序列号在包括在唯一标识符的第三部分中的所有次要序列号已被使用时递增。第三部分中的次要序列号因所请求的每一个唯一文件或对象而递增。次要序列号落在特定范围内。当该范围内的次要序列号全部被使用时,次要序列号递增,并且该范围内的次要序列号被重新使用。
实施例可被实现为计算机进程、计算系统、或者诸如计算机程序产品或计算机可读介质等制品。计算机程序产品可以是计算机系统可读并编码了用于执行计算机进程的指令的计算机程序的计算机存储介质。计算机程序产品还可以是计算系统可读并编码了用于执行计算机过程的指令的计算机程序的载体上的传播信号。
附图说明
参考以下附图描述非限制性和非穷尽的实施例。
图1示出了可用于实现各实施例的系统的一实施例。
图2A示出了根据某些实施例的具有三个不同部分的唯一标识符。
图2B示出了根据某些实施例的供在创建唯一标识符时使用的主要序列号的使用和次要序列号范围。
图3示出了根据某些实施例的唯一会话标识符。
图4示出了根据某些实施例的服务器群集的框图。
图5示出了根据某些实施例的用于确定是否保留主要序列号的操作流程。
图6示出了根据某些实施例的用于提供唯一标识符的操作流程。
图7示出了适于实现各实施例的计算环境的框图。
具体实施方式
以下将参考形成本发明一部分并示出各具体示例性实施例的附图更详尽地描述各个实施例。然而实施例被实现为许多不同的形式并且不应将其解释为限制在此处描述的实施例;相反地,提供这些实施例以使得本公开变得透彻和完整,并且将这些实施例的范围完全传达给本领域普通技术人员。各实施例可按照方法、系统或设备来实施。因此,这些实施例可采用硬件实现形式、全软件实现形式或者结合软件和硬件方面的实现形式。因此,以下详细描述并非是局限性的。
图1示出了可用于实现一些实施例的系统100。系统100包括客户机102和104以及服务器集群106。客户机102和104通过网络108与服务器集群106通信。服务器群集106存储信息,该信息被客户端102和104上的应用访问。客户端102和104与群集106建立会话以访问群集106上的信息。尽管在图1中,仅有客户机102和104被示为与集群106通信,但是在其他实施例中,可以存在两个以上客户机从服务器集群106访问信息。
如图1所示,服务器群集106包括服务器106A、106B和106C,这些服务器为存储在群集106上的信息提供高可用性和冗余性二者。在实施例中,群集106可以具有文件系统、数据库、或者由客户机102和104访问的其他信息。尽管图1中示出了3个服务器,但是在其他实施例中,群集106可以包括3个以上服务器或3个以下服务器。
根据一个实施例,群集106为客户机102和104所访问的文件或其他对象生成唯一标识符110唯一标识符110从群集106被传递到客户机102和104。如以下将更详细描述的,唯一标识符是跨服务器106A、106B和106C唯一的。在各实施例中,客户机102和104建立用于访问存储在服务器群集106上的信息(诸如,文件或对象)的会话。建立与服务器106A、106B和106C之一的会话。作为建立该会话的一部分,服务器将发送会话标识给客户机。
作为一个示例,客户机102可以请求建立与服务器群集106的会话,以访问存储在服务器群集106上的文件信息。在这个示例中,服务器106A接收请求,并与客户机102协商会话。在一个实施例中,会话是使用文件访问协议来协商的,诸如服务器消息块(SMB)协议的版本或网络文件服务器(NFS)协议的版本。
在建立了会话后,客户机102向服务器106A发送文件访问请求。在服务器106A接收该请求时,它将唯一标识符分配给客户机102所请求的文件,并将该标识符提供给客户机102。客户机102将使该唯一标识符包括在访问该文件的任何后续请求中。服务器106A所提供的标识符是跨服务器106A、106B和106C唯一的。
服务器106A被配置为生成唯一标识符。图2中示出唯一标识符200的一个实施例。在图2所示的实施例中,唯一标识符200包括具有节点标识符的第一部分202,该节点标识符在前面的示例中标识服务器106A。标识符200的第一部分202允许服务器群集106中的任何服务器确定哪个服务器生成了该唯一标识符200。该部分确保服务器群集中生成的任何标识符200的唯一性。
唯一标识符200还包括具有主要序列号的第二部分204,和具有次要序列号的第三部分206。对于每一主要序列号,存在可使用的次要序列号范围。应该理解,次要序列号可使用的数字范围取决于唯一标识符200的特定结构。
在一个实施例中,唯一标识符200在长度上为64位。该长度可以由例如用于访问文件的特定协议来确定。在一个示例中,如果SMB协议用于访问文件,则服务器所生成的文件标识符必须为64位长。因此,为了符合SMB的要求,唯一标识符200将为64位长。在这个实施例中,唯一标识符200的第一部分202为8位长,而第二部分204为24位长,第三部分为32位长。各实施例在长度上并不限于64位。在其他实施例中,大小可以不同,而位划分被改变以反映不同大小。
图2B示出了主要序列号如何与次要序列号一起工作的概念。在概念上,主要序列号将具有取决于分配给该主要序列号的比特数的号范围。在图2B所示的实施例中,主要序列号在24位长的部分中,因此该主要序列号在0到224的范围内。
同样在图2B中示出,次要序列号在32位长的部分中,因此该次要序列号可在0到232的范围内。如图2B所示,每一主要序列号与次要序列号范围相关联。即,对于每一主要序列号,可生成232个唯一标识符。一旦次要序列号范围被使用,主要序列号可向上递增,并且再次另外232个唯一标识符可通过使用该范围内的所有次要序列号来生成。应该理解,这导致非常大数量的唯一标识符。
在某些实施例中,主要序列号将在每次存储服务器重新引导或者服务器以其他方式离线并回到在线时向上递增。主要序列号的使用在这些实施例中可用于对群集服务重启的次数进行计数。
如上所述,客户机102和104可以使用SMB协议的某版本来连接到服务器群集106。SMB协议的版本使用包含持久部分和易失性部分的文件标识符,前者跨断开连接/重新连接保持相同,而后者在每次句柄被重新建立时改变。持久部分在第一次打开时被生成。在各实施例中,该标识符结构200(图2A)在具有节点标识符的第一部分202作为文件标识符的持久部分的一部分的情况下被使用,持久部分标识在其上最初打开该文件的服务器。由于SMB文件标识符的易失性部分在每一次打开时被重新生成,它保持当前使该打开活动的服务器的身份。
在各实施例中,与SMB协议的各版本一起使用的文件标识符可用于例如支持管理API,在该管理API处,管理员可以关闭文件,且服务器可以观察文件标识符的具有节点标识符的部分,并确切地知道需要联系哪个服务器以处理该关闭。这可用于管理API的例如NetSessionClose、NetFileClose,以允许将服务器组作为单个服务器来管理,并且服务器可以基于节点标识符来标识哪个服务器需要处理给定请求。
如上所述的诸如与具有8位长的第一部分、24位常的第二部分和32位长的第三部分的标识符200有关的特定实施例仅出于说明的目的而被提供。各实施例不限于64位标识符的这种特定分割。在其他实施例中,第一部分、第二部分和第三部分可取决于特定实施例而具有不同的比特长度。同样,应该理解,标识符200可以具有任何长度而不限于64位,标识符200在各实施例中可比64位更短或更长。
图3示出了可用于某些实施例的会话标识符300。图3中示出的会话标识符300具有两个部分,即第一部分302和第二部分304。在某些实施例中,会话标识符300在长度上也是64位,但是它可以具有不同的长度。在图3所示的实施例中,第一部分302包括节点标识符,该节点标识符唯一地标识创建该会话标识符的服务器。对该第一部分中的节点标识符的使用在服务器群集中的某服务器接收到该节点标识符时为该服务器提供标识哪个服务器创建了给定ID的能力。该服务器可确定节点标识符,并且随后如果必须进行清理工作等,则与那个服务器通信。该会话标识符是对建立该会话的节点的生存期而言为唯一的易失性标识符的示例,但如果该节点重新启动或者被驱逐,则该会话标识符会被回收。
作为一个示例,如果客户机和服务器使用SMB协议的一版本通信,则它们可以交换SESSION_SETUP请求中的“PreviousSessionId”参数,以标识该客户机之前连接过但后来断开了连接,而现在正再次连接。服务器必须使在前会话断开连接,如果它作为建立新会话的一部分存在的话。由于会话ID300的一部分包含创建该会话的服务器的节点标识符,因此它允许该服务器确切地知道必须联系哪个服务器以使该会话断开连接。
现转至图4,示出了服务器群集406的软件环境400的框图被示出在图4中。示出了图4以图解说明用于实现各实施例的环境的一般示例。
如图4所示,服务器群集406包括三个服务器,即406A、406B和406C。如图4所示,服务器406A、406B和406C中的每一个都包括各个组件。例如,每个服务器都包括客户机访问模块,该客户机访问模块与诸如客户机102和104(图1)之类的客户机通信,以建立用于允许所述客户机访问存储在服务器群集406上的文件信息的会话。在各实施例中,客户机访问组件可以实现诸如SMB协议的一版本的文件访问协议。
在图4所示的实施例中,服务器406A、406B和406C还包括与其他群集服务组件通信的群集服务组件。在各实施例中,群集406中的群集服务组件提供多个功能。例如,群集服务组件可以提供与服务器有关的信息,以允许群集406在服务器406A、406B和406C间平衡负载。作为另一示例,群集服务组件可用于为发生故障的任何服务器提供允许故障切换的信息。此外,群集服务组件用于保留各标识符(诸如图2所示的标识符200)的主要序列号。
服务器406A、406B和406C中的每一个还包括标识符生成组件。标识符生成组件生成与向请求访问文件的客户机提供的文件或文件句柄相关联的唯一标识符。唯一标识符是跨群集406中的所有服务器唯一的。即,没有任何标识符将是正好相同的,其防止标识符间的冲突。标识符生成组件包括用于确定要包括在唯一文件标识符中的特定主要序列号和次要序列号所必须的逻辑此外,服务器406A、406B和406C中的每一个上的标识符生成组件与本地群集服务组件通信,以将附加的主要序列号保留在群集注册表408中。
在图4所示的实施例中,群集注册表408在服务器406C上。群集注册表408存储群集服务的配置信息。因此,服务器406A、倒退空间(backspace)和服务器406B中的每一个上的群集服务组件与服务器406C上的群集服务组件通信,以将配置信息存储在群集注册表408中,或从群集注册表408中检索配置信息。在一个实施例中,群集注册表408用于保留群集406中的标识符生成组件所使用的主要序列号以生成唯一标识符。因此,当次要序列号范围已被使用时,服务器上的标识符生成组件将与本地群集服务组件通信,该本地群集服务组件通过服务器406C上的群集服务组件请求将下一主要序列号保留在注册表408中。
作为一个示例,假设服务器406A从客户机接收访问存储在群集406上的文件信息的请求。服务器406A上的客户机访问组件将与客户机通信,并建立允许客户机访问文件信息的会话。在建立了该会话后,客户机将发送访问文件的请求。响应于接收该请求,服务器406A上的客户机访问组件将请求来自服务器406A上的标识符生成模块的标识符。标识符生成模块将确定要包括在唯一标识符中的合适的节点标识符、主要序列号和次要序列号。在生成了唯一标识符之后,标识符生成组件会将该唯一标识符传递至客户机访问组件,客户机访问组件将进而将该唯一标识符提供给客户机。
在来自客户机的一系列请求之后,标识符生成组件将确定在在前的唯一标识符中所有次要序列号已被使用,并且随后将通过服务器406A上的客户机服务组件请求保留下一主要序列号。随后,服务器406A上的群集服务组件将与服务器406C上的群集服务组件通信,以请求将下一主要序列号保留在注册表408中。随后,服务器406C上的群集服务组件将向406A上的群集服务组件提供指示该下一主要序列号已被保留在群集注册表408中的响应。服务器406A中的群集服务组件将向标识符生成组件提供下一主要序列号已被保留在群集注册表408中的指示。随后,服务器406A上的标识符生成组件可以开始使用下一主要序列号,并从次要序列号范围的开始处开始。
在某些实施例中,服务器406A或406B中的一个可发生故障,或以其他方式离线并随后回到在线。当服务器回到在线,并且该服务器上的客户机访问组件接收对文件的请求时,该服务器上的标识符生成组件将通过本地群集服务器组件请求对下一主要序列号的请求。随后,本地群集服务组件将遵循之前描述的用于通过群集注册表408来保留下一主要序列号的过程。因此,在这些实施例中,群集注册表408可用于跟踪服务器已经历的重新引导的次数。
仅为了解说各实施例而提供以上描述。应该理解,虽然图4中的服务器群集406被示为具有仅三个服务器,但在其他实施例中,服务器群集406将包括多于三个服务器。同样,在各实施例中,群集406可包括多于一个具有群集注册表408的服务器。群集注册表可被复制到其他服务器处,以允许与群集注册表有关的故障切换及冗余。
图5和图6示出根据各实施例的操作流程500和600。操作流程500和600可以在任何合适的计算环境中执行。例如,操作流程可因此由诸如图1和图4中所示的系统和环境来执行,操作流程500和600的描述可以参考图1和图4的组件中的至少一个。然而,对图1和4的组件的任何这类参考仅出于描述性目的,并且应当理解,图1和4的实现是操作流程500和600的非限制性环境。
此外,尽管以特定次序顺序地示出并描述了操作流程500和600,但在其它实施例中,各个操作能以不同的次序、多次和/或并行执行。此外,在某些实施例中,一个或多个操作可被省略或组合。
操作流程500被解说为示出在确定要包括在唯一标识符中的合适的主要序列号和次要序列号时可执行的各个步骤。在各实施例中,如上所述的服务器406A、406B和406C(图4)的标识符生成组件可实现操作流程500。
流程500在操作502处开始,在操作502处,接收访问文件的请求。在各实施例中,操作502在多个其他步骤(诸如协商会话)之前。该会话可以使用文件访问协议(诸如,SMB协议的一版本)来协商。在其他实施例中,操作502在访问多个不同文件的多个在前请求之前。响应于步骤502处接收到的请求,必须生成标识正被访问的文件的唯一标识符。
如图5中的实施例所示,操作流程从操作502传递至判定504,在该判定处,作出要供唯一标识符使用的下一次要序列号是否在第一阈值位置处的判定。在某些实施例中,如结合图4所述的,在次要序列号范围已被使用时,主要序列号递增。在各实施例中,保留下一主要序列号要求向群集中的另一服务器发送可包括用于保留该下一主要序列号的群集注册表的消息。
为了避免进入其中生成唯一标识符必须被暂停直到存在对保留下一主要序列号的批准的情况,判定504确定下一次要序列号是否在距次要序列号范围的末尾的阈值位置处。这允许保留请求被尽早并异步地发送。
如果在判定504处确定要被包括在唯一标识符中的下一次要序列号大于第一阈值位置,则流程传递至操作506,在操作506处,发送保留下一主要序列号的请求。在操作508,接收对保留的指示。操作508处接收到的指示可以是将允许在必要时(即,在次要序列号已全部被使用时)递增主要序列号的批准指示在其他实施例中,操作508处接收到的指示可以不是对下一主要序列号的批准。这可在例如包括群集注册表的服务器不可用的情况下发生。流程500从操作508传递至操作510,在操作501,生成唯一标识符。流程在512处结束。
如果在判定504处确定次要序列号不大于第一阈值位置,则流程500传递至判定514,在判定514处,确定是否要被包括在唯一标识符中的下一次要序列号大于第二阈值位置且最后一个主要序列号已在使用。与判定504中使用的第一阈值位置相比,第二阈值位置与次要序列号范围的末尾更接近。与该范围的末尾更接近对于保护对下一主要序列号的保留而言是更紧急的情况。如果次要序列号被用完,而尚未保留任何主要序列号,则不会生成更多的唯一标识符。这可导致在生成标识符时存在延迟并因此在对来自客户机的访问文件的请求作出响应时存在延迟的错误。
判定514还考虑最后一个主要序列号当前是否在使用。如图2所示,主要序列号同样限于特定的号范围。因此,一旦主要序列号已全部被使用,则它们必须被复位。因此,如果在判定514处确定要使用的下一次要序列号大于第二阈值位置,并且最后一个主要序列号当前被使用,则流程500传递到操作516。在操作516处,发送复位主要序列号的请求。在某些实施例中,该请求可以被群集服务组件发送到包括群集注册表的另一服务器。
在操作516,流程传递至操作518,在操作518处,接收主要序列号是否已被复位的指示。流程从操作518传递至判定520,在判定520处,确定在518处接收到的指示是否指示主要序列号已被成功复位。如果在判定520处确定主要序列号被成功复位,则流程传递至操作510,在操作510处生成唯一标识符。流程随后在512处结束。
然而,如果在520处确定来自操作518的指示指示主要序列号尚未被复位,则流程传递至操作522,在操作522,提供本地保留。操作522旨在处理其中例如访问群集注册表以及保留主要序列号或复位主要序列号的能力存在问题的情况。当面对这种情况时,各实施例将仍能够通过在本地保留或复位主要序列号来生成某种类型的标识符。这避免了其中没有任何唯一标识符可被生成以及系统停止生成用于访问请求的标识符的情况。
在各实施例中,在不作为群集的一部分的服务器上,唯一文件标识符以与作为群集的一部分的服务器相同的方式被生成。然而,节点标识符等于零,并且主要序列号被存储在常规注册表中。在作为群集的一部分的服务器上,如果群集注册表未能在第一阈值被达到后更新,且群集服务不在运行,则本地注册表密钥(非群集注册表密钥)被读取以获得用于生成下一唯一文件标识符的主要序列号。当第二阈值被达到时,唯一标识符将使用节点标识符0来生成。如果在发送第一请求时群集服务正在运行,则可以发送更新群集注册表的另一请求,但是如果群集注册表这次未能更新,则没有任何新的唯一文件标识符将被生成。相反,事件将被激发,使得管理员可通过重启群集服务或机器来解决该问题,因为这样的情况指示严重错误。
再一次参考图5,流程从操作522传递到524,在524处,接收关于在本地保留或复位主要序列号的指示。在操作524后,流程传递到判定526,在判定526处,确定操作524处接收到的指示是否指示主要序列号已被成功复位或保留。如果存在主要序列号已在本地被复位或保留的指示,则流程传递到操作510,在操作510处,生成唯一标识符。流程随后在512处结束。
如果在判定526处确定对主要序列号的复位或保留不成功,则流程传递到操作528,在操作528处,错误指示发生。这可导致例如向管理员通知纠正该错误的某一其他动作或事件。流程随后在512处结束。
参考回判定514,如果确定生成唯一标识符时要使用的下一次要序列号不大于第二阈值,或者当前在使用的主要序列号不是最后一个主要序列号,则流程500传递到判定530。在判定530处,确定是否要被包括在唯一标识符中的下一次要序列号大于第二阈值位置,且下一主要序列号尚未被保留。如前所述,在与次要序列号范围的末尾更接近的第二阈值处是更紧急的情况。如果保留下一主要序列号的在前尝试已被作出但尚未成功,则将阻止生成任何标识符,并由此可能导致不提供对文件访问请求的响应的情况可潜在地发生。如可看见地,如果在判定530处确定下一次要序列号大于第二阈值位置,并且下一主要序列号尚未被保留,则流程传递到如上所述的操作522、操作524、判定526和操作528。
然而,如果在判定530处确定要被使用的下一次要序列号不大于第二阈值,或者下一主要序列并非尚未被保留,则流程500传递到操作510,在操作510处生成唯一标识符。流程然后在操作512处结束。
图5中示出的实施例的一个特征是针对多数情况作出确定的快速性。例如,如果要在唯一标识符中使用的下一次要序列号不大于第一阈值或第二阈值,则流程将快速地从判定504传递到判定514、到判定530,最后到生成唯一标识符的操作510。该实施例允许唯一标识符将在多数情况下被快速地生成。
如上所述,在各实施例中,流程图500由群集中的多个服务器上包括的标识符生成组件来执行。应该理解,在某些实施例中,除图1和图4中示出的环境外,流程500还可以以其他类型的环境来实现。
操作流程600示出了用于将唯一标识符发送或提供给客户机的步骤。在各实施例中,流程600的各操作可以与在图5中示出并且如上所述的流程500的一个或多个不同操作组合。例如,如以下更详细描述地,流程600包括用于生成标识符的操作。这个操作可以作为如上所述并在图5中示出的操作510与流程500组合。这仅仅是一个示例,流程500和600中的操作的不同组合是可能的。
流程600在操作602处开始,在602处,建立与客户机的会话,以允许该服务器访问文件信息。该会话可以使用例如SMB协议的某版本来建立。操作602处建立的会话可以使用会话标识符来标识。该会话标识符可被包括在来自客户机的通信中,使得服务器,甚至群集的不同服务器,可以标识出已经建立的与客户机的特定会话。
在操作602之后,流程600传递到操作604,在操作604,接收对文件信息的请求。该请求可根据同一文件访问协议(例如,SMB协议的某版本)而被格式化。如上所述,在各实施例,用于标识被请求的文件的唯一标识符被生成。操作606生成唯一标识符。
如图6所示,在操作606处生成标识符可包括多个子操作。在图6所示的实施例中,操作606包括子操作608,在该子操作608中,节点标识符被包括在唯一标识符的第一部分中。操作606还包括子操作610,在该子操作610处,主要序列号被包括在唯一标识符的第二部分中。在子操作612处,次要序列号被包括在唯一标识符的第三部分中。在各实施例中,流程500的各操作可以在生成标识符操作606之前执行。即,在生成唯一标识符之前,可确定主要序列号是否应被保留,以用于生成将来的唯一标识符。
在其他实施例中,不执行这三个可选的子操作(608-612)。相反,在第一次唯一标识符被生成时,节点标识符就被设置,并且剩余部分(诸如,序列号)在每次新的唯一文件标识符被生成时被递增。可存在检查阈值及边界的逻辑,该逻辑可导致如果诸如改变节点标识符部分的新判定被作出则创建全新的唯一文件标识符,随后新的64位标识符可被创建并被用于通过简单地递增该标识符来创建所请求的下一唯一文件标识符。
如图6的实施例所示,操作流程从操作606传递到操作614,在操作614处,用于标识客户机已请求的文件的标识符被发送给该客户机,或者以其他方式被提供给该客户机。流程600在616处结束。
图7示出可用于实现本文所描述的实施例的通用计算机系统700。计算机系统700仅是计算环境的一个示例,而非旨在对计算机和网络架构的使用范围或功能提出任何限制。计算机系统700也不应被解释成对于在示例计算机系统700中所示出的任一组件或其组合有任何依赖或要求。在实施例中,系统700可用作上面参照图1所述的客户端和/或服务器。
在其最基本配置中,系统700通常包括至少一个处理单元702和存储器704。取决于计算设备的确切配置和类型,存储器704可以是易失性的(如RAM)、非易失性的(如ROM、闪存等)或是两者的某种组合。该最基本配置在图7中由虚线706来示出。系统存储器704存储在系统700上执行的应用程序。例如,存储器704可以存储生成被请求的文件的唯一标识符的标识符生成组件720。存储器704还可包括唯一标识符722。
如这里所使用的术语计算机可读介质可以包括计算机存储介质。计算机存储介质可包括以用于存储诸如计算机可读指令、数据结构、程序模块、或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。系统存储器704、可移动存储和不可移动存储708都是计算机存储介质示例(即,存储器存储)。计算机存储介质可以包括,但不限于,RAM、ROM、电可擦除只读存储器(EEPROM)、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光存储、磁带盒、磁带、磁盘存储或其他磁性存储设备、或可用于存储信息且可以由计算设备700访问的任何其他介质。任何这样的计算机存储介质都可以是设备700的一部分。计算设备700还可以具有输入设备714,如键盘、鼠标、笔、声音输入设备、触摸输入设备等。还可包括诸如显示器、扬声器、打印机等输出设备716。上述设备是示例且可以使用其他设备。
如这里所使用的术语计算机可读介质还包括通信介质。通信介质由诸如载波或其他传输机制等已调制数据信号中的计算机可读指令、数据结构、程序模块或其他数据来体现,并包括任何信息传递介质。术语“已调制数据信号”可以描述以对该信号中的信息进行编码的方式设定或者改变其一个或多个特征的信号。作为示例而非限制,通信介质包括诸如有线网络或直接线连接等有线介质,以及诸如声学、射频(RF)、红外线和其他无线介质等无线介质。
本说明书通篇引述了“一个实施例”或“一实施例”,这意味着在至少一个实施例中包括特定描述的特征、结构或特性。因此,对这样短语的使用可指的是一个以上的实施例。而且,在一个或多个实施例中,可以用任何合适的方式组合所描述的特征、结构或特性。
然而,本领域技术人员会认识到本实施例也可在没有一个或多个具体细节的情况下实施,或者采用其他方法、资源、材料等来实现。在其他情况中,仅为了避免模糊实施例的各方面,未详细示出和描述公知的结构、资源或操作。
虽然示出和描述了示例实施例和应用,但是应该理解本实施例不限于上述精确配置和资源。可以对此处公开的方法和系统的排列、操作以及细节作出对本领域技术人员显而易见的各种修改、改变和变化,而不背离所要求保护的本实施例的范围。
Claims (10)
1.一种提供标识符的计算机实现的方法,所述方法包括:
在群集的第一服务器处接收对第一文件的第一请求;
生成与所述文件相关联的第一标识符,其中所述第一标识符包括:
所述第一标识符的第一部分中标识所述第一服务器的节点标识符;
在所述第一标识符的第二部分中的第一主要序列号,该主要序列号在第一数字范围内;以及
在所述第一标识符的第三部分中的第一次要序列号,该次要序列号在第二数字范围内;以及
发送所述第一标识符。
2.如权利要求1所述的计算机实现的方法,其特征在于,所述方法还包括:
在所述群集的所述第一服务器处接收对第二文件的第二请求;
确定所述第一标识符中使用的所述第一次要序列号不在距所述第二数字范围的末尾的第一位置处;
生成与所述第二文件相关联的第二标识符,其中所述第二标识符包括:
在所述第二标识符的第一部分中的所述节点标识符;
在所述第二标识符的第二部分中的所述主要序列号;
在所述第二标识符的第三部分中的经递增的次要序列号;以及发送所述第二标识符。
3.如权利要求1所述的计算机实现的方法,其特征在于,所述方法还包括:
在所述群集的所述第一服务器处接收对第二文件的第二请求;
确定所述主要序列号应被递增;
生成与所述第二文件相关联的第二标识符,其中所述第二标识符包括:
在所述第二标识符的第一部分中的所述节点标识符;
在所述第二标识符的第二部分中的经递增的主要序列号;
在所述第二标识符的第三部分中的次要序列号,该次要序列号在所述第二数字范围的开始处;以及
发送所述第二标识符。
4.如权利要求3所述的方法,其特征在于,所述确定包括确定所述第一标识符中使用的次要序列号在距所述第二数字范围的末尾的预定位置处。
5.如权利要求3所述的方法,其特征在于,所述确定包括确定所述群集上的群集服务已因所述生成所述第一标识符而被重启。
6.如权利要求3所述的方法,其特征在于,还包括,在所述确定后:
向群集服务发送保留所述经递增的主要序列号的请求;
从所述群集服务器接收指示所述经递增的主要序列号已被保留的响应。
7.一种包括计算机可执行指令的计算机可读存储介质,所述指令在由处理器执行时执行向客户机提供标识符的方法,所述方法包括:
生成与文件相关联的第一64位标识符,其中所述第一标识符包括:
在所述第一64位标识符的第一部分中的节点标识符;
在所述第一64位标识符的第二部分中的第一主要序列号,该主要序列号在第一数字范围内;以及
在所述第一64位标识符的第三部分中的第一次要序列号,该次要序列号在第二数字范围内;以及
将所述第一64位标识符提供给客户机。
8.如权利要求7所述的计算机可读存储介质,其特征在于,所述方法还包括:
将会话标识符提供给客户机以建立用于交换信息的会话,其中所述会话标识符包括节点标识符。
9.如权利要求8所述的计算机可读存储介质,其特征在于,所述会话是使用服务器消息块(SMB)协议的版本来建立的,并且所述会话用于将文件信息提供给所述客户机。
10.一种用于向客户机提供文件信息的计算机系统,所述系统包括:
群集中的多个服务器,其中所述多个服务器中的至少一部分被配置为:
建立与客户机的会话以提供对存储在所述群集上的文件信息的访问;
接收来自客户机的访问第一文件的第一请求;
响应于接收所述第一请求,生成与所述第一文件相关联的第一64位标识符,其中所述第一64位标识符包括:
在所述第一64位标识符的第一部分中的服务器标识符;
在所述第一64位标识符的第二部分中的第一主要序列号,该主要序列号在第一数字范围内;以及
在所述第一64位标识符的第三部分中的第一次要序列号,该次要序列号在第二数字范围内;以及
将所述第一64位标识符提供给客户机。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/082,315 US10108630B2 (en) | 2011-04-07 | 2011-04-07 | Cluster unique identifier |
US13/082,315 | 2011-04-07 | ||
PCT/US2012/032630 WO2012139064A2 (en) | 2011-04-07 | 2012-04-06 | Cluster unique identifier |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103460203A true CN103460203A (zh) | 2013-12-18 |
CN103460203B CN103460203B (zh) | 2017-01-18 |
Family
ID=46966939
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201280016717.4A Active CN103460203B (zh) | 2011-04-07 | 2012-04-06 | 群集唯一标识符 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10108630B2 (zh) |
EP (1) | EP2695083B1 (zh) |
CN (1) | CN103460203B (zh) |
WO (1) | WO2012139064A2 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108647193A (zh) * | 2018-04-20 | 2018-10-12 | 河南中烟工业有限责任公司 | 一种可应用于分布式系统的唯一标识符生成方法及装置 |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8856540B1 (en) * | 2010-12-29 | 2014-10-07 | Amazon Technologies, Inc. | Customized ID generation |
US20120259870A1 (en) * | 2011-04-07 | 2012-10-11 | Infosys Technologies Limited | Method and system for establishing sorting order for events |
US10454997B2 (en) * | 2012-09-07 | 2019-10-22 | Avigilon Corporation | Distributed physical security system |
US10547693B2 (en) | 2012-09-07 | 2020-01-28 | Avigilon Corporation | Security device capability discovery and device selection |
US9841929B1 (en) * | 2012-09-28 | 2017-12-12 | EMC IP Holding Company LLC | Distributed system software infrastructure |
EP2928501B1 (en) * | 2012-12-07 | 2020-05-06 | Ascendis Pharma A/S | Carrier-linked prostanoid prodrugs |
CN103167017B (zh) * | 2013-01-09 | 2016-06-29 | 北京奇虎科技有限公司 | Web轮询方法、装置及系统 |
US9613119B1 (en) * | 2013-03-14 | 2017-04-04 | Nutanix, Inc. | Unique identifiers for data replication, migration, failover operations and failback operations |
US20140344411A1 (en) * | 2013-05-15 | 2014-11-20 | Piazza Technologies, Inc. | Method for delivering long polling push messages in a multi-server environment |
US9641614B2 (en) * | 2013-05-29 | 2017-05-02 | Microsoft Technology Licensing, Llc | Distributed storage defense in a cluster |
EP2808804A1 (en) | 2013-05-29 | 2014-12-03 | Fujitsu Ltd. | Database controller, method, and program for handling range queries |
US10404520B2 (en) | 2013-05-29 | 2019-09-03 | Microsoft Technology Licensing, Llc | Efficient programmatic memory access over network file access protocols |
US9634951B1 (en) * | 2014-06-12 | 2017-04-25 | Tripwire, Inc. | Autonomous agent messaging |
US10313257B1 (en) | 2014-06-12 | 2019-06-04 | Tripwire, Inc. | Agent message delivery fairness |
US9665432B2 (en) | 2014-08-07 | 2017-05-30 | Microsoft Technology Licensing, Llc | Safe data access following storage failure |
US9847918B2 (en) | 2014-08-12 | 2017-12-19 | Microsoft Technology Licensing, Llc | Distributed workload reassignment following communication failure |
US9936048B2 (en) | 2014-09-10 | 2018-04-03 | International Business Machines Corporation | Client system communication with a member of a cluster of server systems |
US9959335B2 (en) * | 2014-09-22 | 2018-05-01 | Netapp, Inc. | System and method for avoiding object identifier collisions in a peered cluster environment |
US9507678B2 (en) * | 2014-11-13 | 2016-11-29 | Netapp, Inc. | Non-disruptive controller replacement in a cross-cluster redundancy configuration |
US9959109B2 (en) | 2015-04-10 | 2018-05-01 | Avigilon Corporation | Upgrading a physical security system having multiple server nodes |
US10635648B2 (en) | 2016-11-30 | 2020-04-28 | Nutanix, Inc. | Entity identifier generation in distributed computing systems |
US11893064B2 (en) * | 2020-02-05 | 2024-02-06 | EMC IP Holding Company LLC | Reliably maintaining strict consistency in cluster wide state of opened files in a distributed file system cluster exposing a global namespace |
WO2022087946A1 (en) * | 2020-10-29 | 2022-05-05 | Comcast Cable Communications, Llc | Generating unique identifiers |
US11303712B1 (en) * | 2021-04-09 | 2022-04-12 | International Business Machines Corporation | Service management in distributed system |
CN113342851B (zh) * | 2021-05-28 | 2024-04-02 | 北京银行股份有限公司 | 序列扩容方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101238680A (zh) * | 2005-05-31 | 2008-08-06 | 国际商业机器公司 | 产生唯一且持久的标识符的系统和方法 |
US20080243950A1 (en) * | 2007-03-28 | 2008-10-02 | Erez Webman | Advanced clock synchronization technique |
WO2009029783A2 (en) * | 2007-08-29 | 2009-03-05 | Nirvanix, Inc. | Load based file allocation among a plurality of storage devices |
CN101883181A (zh) * | 2010-06-18 | 2010-11-10 | 中兴通讯股份有限公司 | 处理短消息的方法及终端 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5828876A (en) | 1996-07-31 | 1998-10-27 | Ncr Corporation | File system for a clustered processing system |
US6047332A (en) | 1997-06-30 | 2000-04-04 | Sun Microsystems, Inc. | Global file system-based system and method for rendering devices on a cluster globally visible |
US6694335B1 (en) * | 1999-10-04 | 2004-02-17 | Microsoft Corporation | Method, computer readable medium, and system for monitoring the state of a collection of resources |
US6622163B1 (en) | 2000-03-09 | 2003-09-16 | Dell Products L.P. | System and method for managing storage resources in a clustered computing environment |
US7185076B1 (en) | 2000-05-31 | 2007-02-27 | International Business Machines Corporation | Method, system and program products for managing a clustered computing environment |
US7502860B1 (en) * | 2001-07-09 | 2009-03-10 | Cisco Technology, Inc. | Method and apparatus for client-side flow control in a transport protocol |
US8078505B2 (en) | 2002-06-10 | 2011-12-13 | Ebay Inc. | Method and system for automatically updating a seller application utilized in a network-based transaction facility |
US8005979B2 (en) | 2002-10-28 | 2011-08-23 | Oracle America, Inc. | System and method for uniquely identifying processes and entities in clusters |
US7526515B2 (en) | 2004-01-21 | 2009-04-28 | International Business Machines Corporation | Method and system for a grid-enabled virtual machine with movable objects |
US7272654B1 (en) * | 2004-03-04 | 2007-09-18 | Sandbox Networks, Inc. | Virtualizing network-attached-storage (NAS) with a compact table that stores lossy hashes of file names and parent handles rather than full names |
WO2005098627A1 (ja) | 2004-03-31 | 2005-10-20 | Matsushita Electric Industrial Co., Ltd. | ファイル名生成装置 |
KR100663412B1 (ko) * | 2004-06-07 | 2007-01-02 | 삼성전자주식회사 | 차대번호를 이용하여 인터넷 프로토콜 주소를 설정하는 방법 |
US20060067244A1 (en) | 2004-09-30 | 2006-03-30 | Microsoft Corporation | Registration identifier reuse |
US8290899B2 (en) * | 2007-03-28 | 2012-10-16 | Netapp, Inc. | Group stamping style asynchronous replication utilizing a loosely-accurate global clock |
US7627706B2 (en) | 2007-09-06 | 2009-12-01 | Intel Corporation | Creation of logical APIC ID with cluster ID and intra-cluster ID |
US20090193210A1 (en) | 2008-01-29 | 2009-07-30 | Hewett Jeffrey R | System for Automatic Legal Discovery Management and Data Collection |
US20110196900A1 (en) * | 2010-02-09 | 2011-08-11 | Alexandre Drobychev | Storage of Data In A Distributed Storage System |
-
2011
- 2011-04-07 US US13/082,315 patent/US10108630B2/en active Active
-
2012
- 2012-04-06 CN CN201280016717.4A patent/CN103460203B/zh active Active
- 2012-04-06 WO PCT/US2012/032630 patent/WO2012139064A2/en active Application Filing
- 2012-04-06 EP EP12768552.7A patent/EP2695083B1/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101238680A (zh) * | 2005-05-31 | 2008-08-06 | 国际商业机器公司 | 产生唯一且持久的标识符的系统和方法 |
US20080243950A1 (en) * | 2007-03-28 | 2008-10-02 | Erez Webman | Advanced clock synchronization technique |
WO2009029783A2 (en) * | 2007-08-29 | 2009-03-05 | Nirvanix, Inc. | Load based file allocation among a plurality of storage devices |
CN101883181A (zh) * | 2010-06-18 | 2010-11-10 | 中兴通讯股份有限公司 | 处理短消息的方法及终端 |
Non-Patent Citations (1)
Title |
---|
韩润萍等: "Windows 2000中的高可用性特征--群集服务", 《北京服装学院学报(自然科学版)》, vol. 21, no. 1, 30 April 2001 (2001-04-30) * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108647193A (zh) * | 2018-04-20 | 2018-10-12 | 河南中烟工业有限责任公司 | 一种可应用于分布式系统的唯一标识符生成方法及装置 |
CN108647193B (zh) * | 2018-04-20 | 2021-11-19 | 河南中烟工业有限责任公司 | 一种可应用于分布式系统的唯一标识符生成方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
US10108630B2 (en) | 2018-10-23 |
WO2012139064A3 (en) | 2013-03-07 |
EP2695083A2 (en) | 2014-02-12 |
EP2695083A4 (en) | 2014-12-17 |
US20120259912A1 (en) | 2012-10-11 |
EP2695083B1 (en) | 2021-06-09 |
WO2012139064A2 (en) | 2012-10-11 |
CN103460203B (zh) | 2017-01-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103460203A (zh) | 群集唯一标识符 | |
US11088903B2 (en) | Hybrid cloud network configuration management | |
US10701177B2 (en) | Automatic data request recovery after session failure | |
US9979784B2 (en) | Method for cloud data backup and recovery | |
CN111314125A (zh) | 用于容错通信的系统和方法 | |
US9152441B2 (en) | Systems and methods involving virtual machine host isolation over a network via a federated downstream cluster | |
CN108289034B (zh) | 一种故障发现方法和装置 | |
CN109582335B (zh) | 一种无中断存储集群节点在线升级方法、装置及设备 | |
CN102946405A (zh) | Smb2扩展 | |
CN110289999B (zh) | 一种数据处理方法、系统及装置 | |
CN111400777B (zh) | 一种网络存储系统、用户认证方法、装置及设备 | |
CN110602108B (zh) | 基于区块链网络的数据通信方法、装置、设备及存储介质 | |
CN107666493B (zh) | 一种数据库配置方法及其设备 | |
US8407329B2 (en) | Reporting information to a network | |
CN107665141B (zh) | 一种数据库配置方法及其设备 | |
US11544119B2 (en) | Business rules processing framework for implementing new desired functionality in a telecommunication application | |
KR20150033454A (ko) | 빅데이터 처리 장치 관리 방법 및 이를 수행하는 관리 시스템 | |
CN114430894A (zh) | 通过扫描规则引擎最小化生产中断 | |
CN114172821B (zh) | 服务状态的同步方法、装置及服务器 | |
US11290318B2 (en) | Disaster recovery of cloud resources | |
CN110677497B (zh) | 一种网络介质分发方法及装置 | |
CN103023697B (zh) | 一种阵列多路径的管理方法、装置及系统 | |
CN109428752B (zh) | 校验方法及装置 | |
CN107332679B (zh) | 一种无中心信息同步方法及装置 | |
CN107342942B (zh) | 一种多节点控制器集群的信息传输方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
ASS | Succession or assignment of patent right |
Owner name: MICROSOFT TECHNOLOGY LICENSING LLC Free format text: FORMER OWNER: MICROSOFT CORP. Effective date: 20150729 |
|
C41 | Transfer of patent application or patent right or utility model | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20150729 Address after: Washington State Applicant after: Micro soft technique license Co., Ltd Address before: Washington State Applicant before: Microsoft Corp. |
|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |