The present invention relates to locating data stored on distributed computer systems.
Computer data is stored to permit the data to be accessed at a later time, from a different location, as well as by a different user. Data is stored on a variety of media including magnetic devices such as disks and tapes, optical media, magneto-optical media, and the like. Data may also be stored in a variety of formats. Traditionally, data has been stored in files with each file composed of one or more extents. An extent is a variable length contiguous region of the storage medium. Alternatively, data may be encapsulated as an object. For convenience, the term file will be used to represent both traditional files and objects.
In order to provide more efficient use of storage space and to increase accessibility by multiple users, data is typically held at one or more hosts or servers interconnected to users or clients. Such a system, known as a distributed file system, may support many host types, user communities, and storage facilities. Locating data becomes increasingly complicated when hosts and users implement different naming schemes resulting from the use of different file naming standards, the use of different operating systems and from different storage access requirements.
Traditional distributed file systems consist of clients accessing storage through a server. The client provides a file name to the server. The server responds by providing a file identifier to the client. The client then issues data access requests to the server using the file identifier. Such a system is implemented in the Unix-based NFS (Network File System) and in the CIFS (Common Internet File System) found in the Microsoft WINDOWS NT® server.
Recently, another technique has been proposed which separates the data in one or more logical volumes from the supporting information such as metadata, data locations, and file name mapping in a separate logical volume. A client first accesses the support information to obtain the file location and file identifier. The client then accesses the data using the file identifier. Such a system is implemented in the C
While each of these systems offers many advantages, none satisfactorily solve the problem of data location in heterogenous distributed file systems. What is needed is a file system implementation flexible enough to accommodate the dynamism of a heterogenous distributed file system. The file system should scale well to large numbers of participating components and offer protection from component outages by allowing redundant providers of critical services and replication of user data. The system should allow administration activities to occur without undue disruption of general system operation. The file system should allow available resources to be used in ways optimized for the particular policy goals of the owning organization. Further, these features should be as transparent as possible to the users of client systems.
It is an object of the present invention to provide a file system for locating data accessible through more than one naming scheme.
It is another object of the present invention to provide a file system that is scalable.
It is still another object of the present invention to provide a file system that is fault tolerant.
It is yet another object of the present invention to provide data location in a heterogenous distributed file system.
It is a further object of the present invention to provide data location for a plurality of host types, user communities, and storage facilities.
In carrying out the above objects and other objects and features of the present invention, a file system for storing data is provided. The file system includes storage devices operative to store at least one copy of at least one file. One or more location servers map a file identifier for each file into the location of each copy of the file. One or more name servers map a file name to the file identifier referenced by the file name.
In an embodiment of the present invention, each file is stored as at least one file extent. The file identifier includes a file handle. A file may also be represented in storage as an object, with the file identifier being an object identifier.
In another embodiment of the present invention, each location database stores metadata associated with each file identifier.
In still another embodiment of the present invention, the file system includes at least one client. The client requests a file identifier for a new file from a location server. The client receives the requested file identifier. The client registers the file identifier and a new file name with at least one name server. When data is to be written, a client sends a requested file name to the name server. A file identifier corresponding to the requested file name and an indicated location server are received from the name server. Updated locations for the write operation are requested from the indicated location server. Data is then written into the received updated locations. Similarly, when data is to be read, a client sends a requested file name to the name server. A file identifier corresponding to the requested file name and an indicated location server is received from the name server. The location of data corresponding to the file identifier is requested from the indicated location server. Data is then read from the received requested locations. A new name for an existing file may be registered by first sending an existing file name to the name server. A file identifier corresponding to the existing file is received from the name server. The file identifier and the new name for the existing file are sent to one or more name servers.
A method for accessing a file referenced by a file name is also provided. The method includes sending the file name to a name server. A file identifier corresponding to the file name is received from the name server. The file identifier is sent to a location server separate from the name server. File location information corresponding to the file identifier is received from the location server. The file is then accessed using the location information.
The above objects and other objects, features, and advantages of the present invention are readily apparent from the following detailed description of the best mode for carrying out the invention when taken in connection with the accompanying drawings.
Referring to
There are several problems associated with the traditional client-server system. First, server 26 may not have sufficient resources to support an increasing number of clients 22. Second, the failure of server 26 makes storage device 24 inaccessible by clients 22. Third, a client 22 not directly connected to server 26 may have difficulty locating and accessing a file stored on storage device 24 connected to server 26. Finally, server 26 may not be able to properly respond to client 22 requesting a file using a naming scheme different than the scheme used by server 26.
Referring now to
Location server 66 is in communication with clients 52. This may be accomplished by connecting location server 66 to network 64. Location server 66 maintains location database 68 which maps a file identifier into specific information about the location of each copy of the file represented by the file identifier. In an embodiment of the present invention, location database 68 also includes metadata, such as file creation information, file edit information, file authorization information, and the like associated with each file identifier. File system 50 may include more than one location server 66 and location database 68 to provide redundancy and to distribute the task of location mapping.
Clients 52 are in communication with data storage devices 54. This may be accomplished, for example, through storage area network 70. Data storage devices 54 may be connected directly to storage area network 70 or may be connected through storage server 72. Once the file identifier is mapped by location server 66, client 52 accesses the file on data storage device 54. Networks 58, 64, 70 may be the same network or may be different networks and may be implemented as local area networks (LANs), wide area networks (WANs), storage are networks, (SANs), and the like.
Referring now to
Each name database 62 may contain one or more logical names 88 for a given file. The format for names 88 may vary within and between name databases 62 depending on the file access standards supported. Each logical name 88 is associated with a file identifier. Hence, name database 62 permits a mapping of logical name 88 to the file identifier referenced by file name 88.
Referring now to
Referring now to
Referring now to
Referring now to
While embodiments of the invention have been illustrated and described, it is not intended that these embodiments illustrate and describe all possible forms of the invention. Rather, the words used in the specification are words of description rather than limitation, and it is understood that various changes may be made without departing from the spirit and scope of the invention.
Number | Name | Date | Kind |
---|---|---|---|
4104718 | Poublan et al. | Aug 1978 | A |
5113519 | Johnson et al. | May 1992 | A |
5163131 | Row et al. | Nov 1992 | A |
5313646 | Hendricks et al. | May 1994 | A |
5355453 | Row et al. | Oct 1994 | A |
5379424 | Morimoto et al. | Jan 1995 | A |
5434975 | Allen | Jul 1995 | A |
5559984 | Nakano et al. | Sep 1996 | A |
5561799 | Khalidi et al. | Oct 1996 | A |
5577252 | Nelson et al. | Nov 1996 | A |
5611065 | Alferness et al. | Mar 1997 | A |
5623666 | Pike et al. | Apr 1997 | A |
5627996 | Bauer | May 1997 | A |
5634028 | Brady et al. | May 1997 | A |
5634048 | Ryu et al. | May 1997 | A |
5689701 | Ault et al. | Nov 1997 | A |
5694568 | Harrison, III et al. | Dec 1997 | A |
5701462 | Whitney et al. | Dec 1997 | A |
5737549 | Hersch et al. | Apr 1998 | A |
5761498 | Ooe et al. | Jun 1998 | A |
5787498 | Lee et al. | Jul 1998 | A |
5802366 | Row et al. | Sep 1998 | A |
5832510 | Ito et al. | Nov 1998 | A |
5842214 | Whitney et al. | Nov 1998 | A |
5845126 | Ju et al. | Dec 1998 | A |
5860156 | Williams | Jan 1999 | A |
5873085 | Enoki et al. | Feb 1999 | A |
5923846 | Gage et al. | Jul 1999 | A |
5948062 | Tzelnic et al. | Sep 1999 | A |
5978791 | Farber et al. | Nov 1999 | A |
5987476 | Imai et al. | Nov 1999 | A |
5987506 | Carter et al. | Nov 1999 | A |
5991763 | Long et al. | Nov 1999 | A |
6029168 | Frey | Feb 2000 | A |
6081807 | Story et al. | Jun 2000 | A |
6122631 | Berbec et al. | Sep 2000 | A |
6161111 | Mutalik et al. | Dec 2000 | A |
6230246 | Lee et al. | May 2001 | B1 |
6336115 | Tominaga et al. | Jan 2002 | B1 |
Number | Date | Country |
---|---|---|
0398493 | Nov 1990 | EP |
0 774 723 | May 1997 | EP |
2357171 | Jun 2001 | GB |
WO-96-23268 | Aug 1996 | WO |