Method and apparatus for transparent distributed network-attached storage with web cache communication protocol/anycast and file handle redundancy
First Claim
1. In a first filer proxy, a method for handling a client request, comprising the steps of:
- peering with a router in a computer network to provide a path directed to a filesystem attached to said computer network, said filesystem having a network address;
receiving a client request from a client for a file in said filesystem, said client request including said network address;
determining in response to said client request an accepted file transfer protocol for said network address; and
forwarding said client request using said accepted file transfer protocol to a destination based on said network address;
wherein said determining step further comprises the steps of;
determining a client request file transfer protocol of said client request; and
determining a requester identity;
wherein the method further comprises the step of;
creating a file handle to represent an open file opened in response to said client request, said file handle including said client request file transfer protocol and said requestor identity;
wherein creating the file handle further comprises;
including within the file handle an object identification number temporarily assigned to the file opened in response to said client request;
including within the file handle a network location of the file opened in response to said client request, the network location of the file identifying the location within the computer network where the file is stored;
including within the file handle a first filer proxy identification number and a second filer proxy identification number, the first filer proxy identification number identifying the first filer proxy, and the second filer proxy identification number identifying a second filer proxy;
including within the file handle a generation count of the file opened in response to said client request;
including within the file handle a verifying code; and
including within the file handle a client identification number.
1 Assignment
0 Petitions
Accused Products
Abstract
A distributed network-attached storage network provides content distribution using conventional file transfer protocols such as NFS and CIFS. A filer proxy accepts a client request and translates the client request to a file transfer protocol accepted at the file system having the file requested in the client request. The filer proxy generates a file handle for the file containing redundant filer proxy information to be used for failover to a backup filer proxy in the event of a network error or failure of an original filer proxy. The file handle also contains information for network security purposes such as detection of forged file handles.
359 Citations
44 Claims
-
1. In a first filer proxy, a method for handling a client request, comprising the steps of:
-
peering with a router in a computer network to provide a path directed to a filesystem attached to said computer network, said filesystem having a network address; receiving a client request from a client for a file in said filesystem, said client request including said network address; determining in response to said client request an accepted file transfer protocol for said network address; and forwarding said client request using said accepted file transfer protocol to a destination based on said network address; wherein said determining step further comprises the steps of; determining a client request file transfer protocol of said client request; and determining a requester identity; wherein the method further comprises the step of; creating a file handle to represent an open file opened in response to said client request, said file handle including said client request file transfer protocol and said requestor identity; wherein creating the file handle further comprises; including within the file handle an object identification number temporarily assigned to the file opened in response to said client request; including within the file handle a network location of the file opened in response to said client request, the network location of the file identifying the location within the computer network where the file is stored; including within the file handle a first filer proxy identification number and a second filer proxy identification number, the first filer proxy identification number identifying the first filer proxy, and the second filer proxy identification number identifying a second filer proxy; including within the file handle a generation count of the file opened in response to said client request; including within the file handle a verifying code; and including within the file handle a client identification number. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29)
-
-
30. A filer proxy, comprising:
-
at least one communications interface for receiving a client request and for transmitting data in response to said client request; a protocol stack connected to said at least one communications interface, said protocol stack to determine an accepted file transfer protocol at a filesystem specified in said client request; a file operation controller connected to said protocol stack to forward said client request to said filesystem in said accepted file transfer protocol through said at least one communications interface; and a file handle and connection state table connected to said file operation controller, said file handle and connection state table to hold a file handle of an open file opened in response to said client request in association with a connection state of said open file; wherein the file handle includes; an object identification number temporarily assigned to the file opened in response to said client request; a network location of the file opened in response to said client request, the network location of the file identifying the location within the computer network where the file is stored; a first filer proxy identification number and a second filer proxy identification number, the first filer proxy identification number identifying the filer proxy, and the second filer proxy identification number identifying a second filer proxy; a generation count of the file opened in response to said client request; a verifying code; and a client identification number. - View Dependent Claims (31, 32, 33, 34, 35, 36, 37)
-
-
38. A master filer, comprising:
-
a memory; and a controller coupled to said memory, said controller configured to; manage filesystems attached to a computer network, manage filer proxies attached to said computer network, and manage open files from said filesystems, the master filer to receive a client request forwarded from a filer proxy, the client request transferred to the master filer in a file transfer protocol, the master filer to open a requested file and to provide information to said filer proxy with which to generate a file handle containing redundant proxy information, the file transfer protocol being determined by the filer proxy; wherein the file handle includes; an object identification number temporarily assigned to the requested file; a network location of the requested file, the network location of the file identifying the location within the computer network where the file is stored; a first filer proxy identification number and a second filer proxy identification number; a generation count of the requested file; a verifying code; and a client identification number. - View Dependent Claims (39, 40, 41, 42)
-
-
43. A distributed network-attached storage network, comprising:
-
at least one network-attached storage system attached to the network; a master filer attached to the network, the master filer to manage said at least one network-attached storage system; a first filer proxy attached to the network, said first filer proxy to translate a client request to a file protocol accepted by a filesystem in said at least one network-attached storage system said file system to generate with said master filer a file handle for a file opened in response to said client request, the file handle having redundant file proxying information; and a second filer proxy attached to said network, said second filer proxy capable of proxying said file using said redundant file proxying information in said file handle in the event that said first filer proxy is unable to continue proxying said file; wherein the file handle includes; an object identification number temporarily assigned to the file opened in response to said client request; a network location of the file opened in response to said client request, the network location of the file identifying the location within the computer network where the file is stored; a first filer proxy identification number and a second filer proxy identification number, the first filer proxy identification number identifying the first filer proxy, and the second filer proxy identification number identifying the second filer proxy; a generation count of the file opened in response to said client request; a verifying code; and a client identification number.
-
-
44. A computer program product having a computer-readable medium including computer program logic encoded thereon that, when performed on a computer system directs the computer system to perform the method of:
-
providing a path to a first filer proxy through a computer network, said path directed to a filesystem attached to said computer network, said filesystem having a network address; receiving a client request from a client for a file in said filesystem, said client request including said network address; determining in response to said client request an accepted file transfer protocol for said network address; and forwarding said client request using said accepted file transfer protocol to a destination based on said network address; wherein said determining step further comprises the steps of; determining a client request file transfer protocol of said client request; and determining a requester identity; wherein the method performed on the computer system further comprises the step of; creating a file handle to represent an open file opened in response to said client request, said file handle including said client request file transfer protocol and said requester identity; wherein creating the file handle further comprises; including within the file handle an object identification number temporarily assigned to the file opened in response to said client request; including within the file handle a network location of the file opened in response to said client request, the network location of the file identifying the location within the computer network where the file is stored; including within the file handle a first filer proxy identification number and a second filer proxy identification number, the first filer proxy identification number identifying the first filer proxy, and the second filer proxy identification number identifying a second filer proxy; including within the file handle a generation count of the file opened in response to said client request; including within the file handle a verifying code; and including within the file handle a client identification number.
-
Specification