File sharing system with data mirroring by storage systems
First Claim
1. A system for optimizing data access, comprising:
- a file server capable of communicating with one or more clients; and
a plurality of storage elements organized into pairs for storing a plurality of files, each pair having a master storage element and at least one mirrored storage element, and each mirrored storage element being configured to receive a copy of data stored on the master storage element;
wherein the file server maintains file information on where each of the plurality of files is stored on which pair of storage elements, and maintains access load information regarding each one of the pair of storage elements;
wherein when a client requests access to file information for a requested file, the file server determines a pair of storage elements for accessing the requested file, and returns to the client a first identifier of a storage element within the pair of storage elements that is to be accessed for reading data, and a second identifier of the master storage element of the pair of storage elements that is to be accessed for writing data, the determination being based upon use of storage elements within the system,wherein the client initiates I/O operations with the pair of storage elements absent the file server,wherein write operations by the client are made using the first identifier and read operations by the client are made using the second identifier, andwherein data written to the master storage element is copied to the at least one mirrored storage element within each pair of storage elements.
2 Assignments
0 Petitions
Accused Products
Abstract
A system for optimizing data access is provided. The system includes a cluster file system server, a number of cluster file system clients, and a storage system. The storage system includes disk drives organized as paired master disk drive and one or more mirrored disk drives having copies of the data stored on the master disk drive. When a file is needed, the server determines which pair has the needed file, and then determines which disk drive within the pair should be accessed. The determination is made to balance the access load within the pair, and can select to retrieve the file from the drive which is least frequently accessed. The identification of the disk drive to be accessed is then forwarded to the client thereby allowing the client to access the appropriate disk drive to retrieve the file.
-
Citations
34 Claims
-
1. A system for optimizing data access, comprising:
-
a file server capable of communicating with one or more clients; and a plurality of storage elements organized into pairs for storing a plurality of files, each pair having a master storage element and at least one mirrored storage element, and each mirrored storage element being configured to receive a copy of data stored on the master storage element; wherein the file server maintains file information on where each of the plurality of files is stored on which pair of storage elements, and maintains access load information regarding each one of the pair of storage elements; wherein when a client requests access to file information for a requested file, the file server determines a pair of storage elements for accessing the requested file, and returns to the client a first identifier of a storage element within the pair of storage elements that is to be accessed for reading data, and a second identifier of the master storage element of the pair of storage elements that is to be accessed for writing data, the determination being based upon use of storage elements within the system, wherein the client initiates I/O operations with the pair of storage elements absent the file server, wherein write operations by the client are made using the first identifier and read operations by the client are made using the second identifier, and wherein data written to the master storage element is copied to the at least one mirrored storage element within each pair of storage elements. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A system for optimizing data access comprising:
-
a first host computer having a file system server, the first host computer capable of communicating with a second host computer having a file system client; a storage system having a plurality of disk drives organized into pairs for storing a plurality of files, each pair having a master disk drive and at least one mirrored disk drive, each mirrored disk drive being configured to receive a copy of data stored on the master disk drive; wherein the file system server maintains file information on where each of the plurality of files is stored on each pair of disk drives and further maintains access load information on each pair of disk drives; wherein when a file system client requests access to file information for a requested file, the file server determines a pair of storage elements for accessing the requested file, and returns to the file system client a first identifier of a storage element within the pair of storage elements that is to be accessed for reading data, and a second identifier of the master storage element of the pair of storage elements that is to be accessed for writing data, the determination being based upon use of storage elements within the system, wherein the file system client, absent the file system server, initiates I/O operations with the identified disk drive to access the requested file, wherein write operations by the file system client are made using the first identifier and read operations by the file system client are made using the second identifier, and wherein data written to the master storage element is copied to the at least one mirrored storage element within each pair of storage elements. - View Dependent Claims (15, 16, 17, 18)
-
-
19. A system for optimizing data access comprising:
-
a first host computer having a file system server, the first host computer capable of communicating with a second host computer having a file system client; a plurality of storage systems, each of the plurality of storage systems having a plurality of disk drives, the plurality of disk drives from the plurality of storage systems being collectively organized into pairs for storing a plurality of files, each pair having a master disk drive and at least one mirrored disk drive, each mirrored disk drive being configured to receive a copy of data stored on the master disk drive; wherein the file system server maintains file information on where each of the plurality of files is stored on which pair of disk drives and further maintains access load information on each pair of disk drives; wherein when a file system client requests access to file information for a requested file, the file server determines a pair of storage elements for accessing the requested file, and returns to the file system client a first identifier of a storage element within the pair of storage elements that is to be accessed for reading data, and a second identifier of the master storage element of the pair of storage elements that is to be accessed for writing data, the determination being based upon use of storage elements within the system, wherein the file system client, absent the file system server, initiates I/O operations with the identified disk drive to access the requested file, wherein write operations by the file system client are made using the first identifier and read operations by the file system client are made using the second identifier, and wherein data written to the master storage element is copied to the at least one mirrored storage element within each pair of storage elements. - View Dependent Claims (20, 21, 22, 23, 24, 25)
-
-
26. A method for optimizing data access comprising:
-
organizing a plurality of storage elements into pairs for storing a plurality of files, each pair having a master storage element and at least one mirrored storage elements, each mirrored storage element being configured to receive a copy of data stored on the master storage element; maintaining file information on where each of the plurality of files is stored on each pair of storage elements; maintaining access load information on each one of the pair of storage elements; upon receiving a request for a requested file, determining a pair of storage elements for accessing the requested file, returning file access information including a first identifier of a storage element within the pair of storage elements that is to be accessed for reading data, and a second identifier of the master storage of the pair of storage elements that is to be accessed for writing data, the first identifier being selected based upon use of the storage elements, wherein said file access information is returned to a client thereby allowing the client to retrieve the requested file absent a file server, wherein write operations by the client are made using the first identifier and read operations by the client are made using the second identifier, and wherein data written to the master storage element is copied to the at least one mirrored storage element within each pair of storage elements. - View Dependent Claims (27, 28, 29, 30, 31, 32, 33)
-
-
34. A method for optimizing data access between a file server and at least one or more clients comprising:
-
organizing a plurality of disk drives into pairs for storing a plurality of files, each pair having a master disk drive and at least one mirrored disk drive, and each mirrored disk drive being configured to receive a copy of data stored on the master drive; maintaining file information on where each of the plurality of files is stored on which pair of disk drives; maintaining access load information on each pair of disk drives, wherein the file information and the access load information are maintained at the file server; upon receiving a request for a requested file, determining a pair of storage elements for accessing the requested file based upon a usage level of its corresponding storage elements, and forwarding to the client a first identifier of a storage element within the pair of storage elements that is to be accessed for reading data, and a second identifier of the master storage within the pair of storage elements for writing data thereby allowing the client to initiate I/O operations, absent the file server, to access the requested file.
-
Specification