The present application relates to computer systems, and particularly to distributed computer systems.
In traditional computing architecture, storage devices such as hard disks and floppy disks have been directly attached to the computer systems that access the storage devices. Recent development in technology, however, has led to a topology of systems where storage devices are attached to various switched fabrics, instead of being directly attached to a particular computer system. Examples of switched fabrics include a switched fabric implementing network protocols such as the TCP/IP, software and/or hardware stacks, and wireless networks. The devices attached to these switched fabrics, referred to as networked devices (NDs), are able to operate, for example, on IP networks, and provide file sharing and storage services. Although these NDs have the capability to communicate over such fabrics, the NDs often lack the intelligence of the systems that historically hosted storage or other devices directly.
For example, NDs are typically part of a larger set of devices, systems, and components making up what is sometimes referred to as the enterprise. In an enterprise, it is desirable both to share resources and to preclude sharing of resources. For instance, a storage device in some cases may be shared among multiple consumers, while at other times, it is desirable to have the storage device accessed or controlled by one consumer or process at a time. Further, the entities that are accessed often do not have the intelligence to know when or what accesses are appropriate.
Accordingly, there is a need for a locking method and system, for example to control, manage, and/or provide access control to the various NDs, for example, to preclude multiple entities from accessing the NDs when a situation calls for it.
A system and method for distributed locking in networked device management is provided. The method in one aspect receives a request for a resource attached to a switched fabric and determines if the resource is available. If the resource is available, a lock is granted on the resource so that a requestor may access the resource. The resource is locked so that no other entities may use the resource while the requester accesses and operates on the resource. In one embodiment, if the resource is already locked, the request may be queued or may be failed.
In another aspect, the method includes creating a lock domain comprising a plurality of requesters and one or more resources attached to a switched fabric. A lock manager is provided to control the use of the one or more resources by the plurality of requestors. The lock manager, in one aspect, receives requests for the one or more resources from the plurality of requesters, and grants a lock for the one or more resources to the plurality of requestors in response to the requests.
Further yet, the method in one aspect determines if the lock manager is not responding, and if it is determined that the lock manager is not responding, attempts to terminate the lock manager. A new lock domain is created and the plurality of requesters and one or more resources attached to a switched fabric in the lock domain are notified of the new lock domain. A new lock manager is invoked, and the existing lock information is collected so that the new lock manager may resume the lock management operations seamlessly.
A system for distributed locking for networked device management in one aspect includes a lock manager in response to receiving requests for a resource attached to a switched fabric, operable to determine whether the resource is available. If the resource is available, the lock manager is further operable to grant lock to the resource to allow a requestor to use the resource. The resource is unavailable to other requesters while the requester is using the resource.
Further features as well as the structure and operation of various embodiments are described in detail below with reference to the accompanying drawings. In the drawings, like reference numbers indicate identical or functionally similar elements.
The present disclosure describes a system and method for distributed locking for networked device management.
The lock manager 102, in one embodiment, grants a lock for the resource so that the operation or set of operations may be performed on the resource. For example, the lock manager 102 may grant a lock to a requester 106a . . . 106n when the resource being requested is free.
A group of managed objects 104a . . . 104n and clients 106a . . . 106n, also referred to as management requestors 106a . . . 106n, performing management operations on managed objects is referred to as a lock domain. The requestors 106a . . . 106n may be any computing devices or servers that need to use the resources 104a . . . 104n. In one aspect, the requestors 106a . . . 106n typically are non-cooperative, that is, one is not aware of another's requests for the resources 104a . . . 104n. In one embodiment, a requestor 106a . . . 106n obtains necessary locks prior to performing non-passive operations on managed objects 104a . . . 104n. Typically, the objects or resources 104a . . . 104n being managed do not take part in the lock enforcement. In one embodiment, the objects or resources 104a . . . 104n being managed are unaware of the locks that they did not obtain on their own behalf.
At 204, the lock manager receives this request, and validates that the request originated from a valid member of its lock management group by, for example, checking the requestor name. Further, the lock manager may check the inheritance bit sent in the lock request to determine the type of a lock to grant. Inheritance means that a lock granted for any managed object applies to its children as well. In one embodiment, inheritance is implied in a lock. For example, if a lock is granted for disk array controller XYZ, the lock applies to the volumes alpha and beta that are controlled by XYZ. To override this implication or default functionality, an inheritance bit may be used. When an inheritance bit is set, inheritance is turned off, that is, the lock applies only to the parent object.
At 206, the lock manager determines if the resource being requested is available. At 208, if the resource is available, a lock is granted. At 214, a message may be sent to the requestor so that the requester may begin to use the resource. At 210, if the resource is already locked, for example, because it is in use, or otherwise unavailable, a message is sent to the requestor that the resource is currently unavailable. At 212, the request is either queued or is failed.
In one embodiment, locks are persistent. That is, there is no timeout for a lock. Accordingly, in one embodiment, locks need to be explicitly freed to allow other requesters to use the resource.
In one embodiment, abnormal lock freeing may occur, for example, on a timeout basis. Referring back to
Referring back to
In one embodiment, lock state is maintained by the lock manager and by the requestor of a lock.
In one embodiment, the distributed locking for networked devices of the present disclosure provides a lock manager recovery method, for example, to institute when it is discovered that the lock manager is not functioning.
The system and method of the present disclosure may be implemented and run on a general-purpose computer. The embodiments described above are illustrative examples and it should not be construed that the present invention is limited to these particular embodiments. Various changes and modifications may be effected by one skilled in the art without departing from the spirit or scope of the invention as defined in the appended claims. For example, although particular formats for lock states have been described, it should be appreciated that the lock states may include other formats, and therefore is not limited only to the formats shown.
This application is a Continuation of U.S. Ser. No. 10/889,714 filed on Jul. 12, 2004 now abandoned and claims the benefit of U.S. Provisional Application No. 60/487,066 entitled DISTRIBUTED LOCKING METHOD AND SYSTEM FOR NETWORKED DEVICE MANAGEMENT filed on Jul. 11, 2003, the entire disclosure of which is incorporated herein by reference.
Number | Name | Date | Kind |
---|---|---|---|
5933825 | McClaughry et al. | Aug 1999 | A |
6385613 | Grewell et al. | May 2002 | B1 |
6529983 | Marshall et al. | Mar 2003 | B1 |
6539446 | Chan | Mar 2003 | B1 |
6701438 | Prabandham | Mar 2004 | B1 |
6751616 | Chan | Jun 2004 | B1 |
6959337 | McLaughlin et al. | Oct 2005 | B2 |
6988130 | Blumenau et al. | Jan 2006 | B2 |
7069317 | Colrain et al. | Jun 2006 | B1 |
7113995 | Beukema et al. | Sep 2006 | B1 |
20030065760 | Casper et al. | Apr 2003 | A1 |
20030079155 | Kingsbury | Apr 2003 | A1 |
20030167420 | Parsons | Sep 2003 | A1 |
20040066741 | Dinker et al. | Apr 2004 | A1 |
20040088396 | Hammons et al. | May 2004 | A1 |
20040220933 | Walker | Nov 2004 | A1 |
Entry |
---|
European Patent Office (EPO) Communication/Search Report regarding Application PCT/US2004022623 (5 pages), Jul. 8, 2010. |
Cardoza, et al.; “Overview of Digital UNIX Cluster System Architecture”;Digital Equipment Corporation, pp. 254-259, 1996. |
Nishio, et al.; “A Time-Out Based Resilient Token Transfer Algorithm for Mutual Exclusion in Computer Networks”; pp. 386-393), 1989. |
Hastings, Andrew B.; “Distributed Lock Management in a Transaction Processing Environment”; Carnegie Mellon University, pp. 22-31, 1990. |
European Patent Office (EPO) Communication regarding Application 04 778 228.9-2211 (6 pages), Dec. 30, 2010. |
European Patent Office (EPO) Communication regarding Application 04 778 228.9-2211 (5 pages) dated Mar. 15, 2012, received Mar. 29, 2012. |
European Patent Office (EPO) Communication regarding Application 04 778 228.9-2211 (45 pages) dated Jul. 13, 2012, received Aug. 8, 2012. |
Number | Date | Country | |
---|---|---|---|
20060053111 A1 | Mar 2006 | US |
Number | Date | Country | |
---|---|---|---|
60487066 | Jul 2003 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 10889714 | Jul 2004 | US |
Child | 11092851 | US |