Network file server sharing local caches of file access information in data processors assigned to respective file systems
First Claim
1. In a data network having clients and a network file server having an array of data processors receiving client requests for access to a plurality of read-write file systems wherein a respective one of the data processors is presently assigned to manage locks on each of the read-write file systems, a method used when any one of the data processors receives a client request for access to any one of the read-write file systems, the client request specifying said one of the read-write file systems to access, said method comprising the steps of:
- a) in response to said one of the data processors receiving the client request, accessing stored assignment information indicating the respective one of the data processors being presently assigned to manage locks on said one of the file systems; and
b) forwarding the client request from the data processor initially receiving the client request to the data processor indicated by the stored assignment information as being presently assigned to manage locks on said one of the file systems; and
c) the respective one of the data processors indicated by the stored assignment information as being presently assigned to manage locks on said one of the file systems receiving the client request and continuing the processing of the client request by performing lock management for said one of the file systems for access to said one of the file systems as requested by the client request.
7 Assignments
0 Petitions
Accused Products
Abstract
A network file server includes a first set of data processors for receiving requests from clients, and a second set of data processors for accessing read-write file systems. A respective data processor in the second set is assigned to each file system for exclusive management of read and write locks on the file system. Each data processor in the first set can authorize access to file systems directly accessed by more than one data processor in the second set. Processing of a request for access that is authorized is continued by the data processor that is assigned to manage the locks on the file system to be accessed. The exclusivity of lock management eliminates cache coherency problems, and dynamic load balancing can be used to prevent the lock management from becoming a bottleneck to performance. A preferred embodiment includes a cached disk storage subsystem linked to data mover computers. Each data mover has authorization and ownership information for a plurality of file systems, and maintains a local cache of locking information for file systems that the data mover can directly access. The data mover receives a client request, and if access is authorized, checks whether it can directly access the file, and if not, forwards the request to another data mover.
562 Citations
59 Claims
-
1. In a data network having clients and a network file server having an array of data processors receiving client requests for access to a plurality of read-write file systems wherein a respective one of the data processors is presently assigned to manage locks on each of the read-write file systems, a method used when any one of the data processors receives a client request for access to any one of the read-write file systems, the client request specifying said one of the read-write file systems to access, said method comprising the steps of:
-
a) in response to said one of the data processors receiving the client request, accessing stored assignment information indicating the respective one of the data processors being presently assigned to manage locks on said one of the file systems; and
b) forwarding the client request from the data processor initially receiving the client request to the data processor indicated by the stored assignment information as being presently assigned to manage locks on said one of the file systems; and
c) the respective one of the data processors indicated by the stored assignment information as being presently assigned to manage locks on said one of the file systems receiving the client request and continuing the processing of the client request by performing lock management for said one of the file systems for access to said one of the file systems as requested by the client request. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. A method of servicing a request from a client in a data network including a network server with an array of data processors for access to a read-write file, said method comprising the steps of:
-
a) one of the data processors in the array receiving the request;
decoding the request to identify the client and a requested data access operation and a file system to which access is requested;
accessing stored authorization information to obtain access requirements for the requested data access upon the file system; and
rejecting the request if access rights of the client do not satisfy the access requirements for the requested data access upon the file system, and if the access rights of the client satisfy the access requirements for the requested data access upon the file system, initiating continued processing for the request by another data processor in the array indicated by stored assignment information as presently assigned to access the file system;
b) the data processor indicated by the stored assignment information as presently assigned to access the file system accessing stored locking information indicating whether or not the requested data access operation by the client would be inconsistent with any pending data access operation upon the filing system; and
if the requested data access operation by the client would be inconsistent with a pending data access operation upon the file system, suspending the processing of the request, and if the requested data access operation by the client would not be inconsistent with any pending data access operation upon the file system, performing the requested data access operation upon the file system.- View Dependent Claims (17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31)
-
-
32. In a network file server having a plurality of data processors, a method employed by a file system service for responding to a request from a client on the network for access to a file in a file system, said method comprising the steps of:
-
a) a data processor on the network receiving the request; and
b) decoding the request, checking client authorization for access to the file in the file system, and checking whether the file is in a remote file system, and exporting the request to the remote file system when the file is in a remote file system, and when the file is not in a remote file system, forwarding the request for further processing by a data processor assigned to manage access to the file system, and the data processor assigned to manage access to the file system verifying that the file system is exported to the client, and then processing the request and sending a reply to the client, wherein the data processor having received the request in step a) accesses stored information indicating associations between file systems and a respective one of the data processors assigned to manage access to each of the file systems in order to find the data processor assigned to manage access to the file system including the file to be accessed and to forward the request for further processing by the data processor assigned to manage access to the file system including the file to be accessed. - View Dependent Claims (33, 34, 35, 36, 37, 38, 39, 40, 41, 42)
-
-
43. A network file server for providing clients with read-write access to read-write file systems, said network file server comprising, in combination:
-
a plurality of data processors, each of the data processors having a network interface for receiving requests from clients on a network, each of the data processors being assigned to access at least one of the read-write file systems, an assigned one of the data processors being programmed to perform access to each of the read-write file systems, wherein each of the data processor is programmed to respond to a request by a client on the network for access to any one of the read-write file systems by decoding the request to identify the client and a requested data access operation and a file system to which access is requested;
accessing stored assignment information about clients and about file systems to obtain access rights of the client and access requirements for the requested data access upon the file system; and
rejecting the request if the access rights of the client do not satisfy the access requirements for the requested data access upon the file system, and if the access rights of the client satisfy the access requirements for the requested data access upon the file system, accessing stored assignment information indicating the assigned one of the data processors presently assigned to access the file system, and initiating continued processing for the client request by the assigned one of the data processors indicated by the stored assignment information as being presently assigned to access the file system; and
each of the data processors is programmed to respond to initiation of continued processing for access to a file system to which said each data processor is presently assigned to access by accessing stored locking information indicating whether or not the access of the continued processing would be inconsistent with any pending data access operation upon the file system to which said each data processor is presently assigned to access; and
if the access of the continued processing would be inconsistent with a pending data access operation upon the file system to which said each data processor is presently assigned to access, suspending the continued processing, and if the access of the continued processing would not be inconsistent with any pending data access operation upon the file system to which said each data processor is presently assigned to access, performing the access of the continued processing upon the file system.- View Dependent Claims (44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59)
-
Specification