Delegation of metadata management in a storage system by leasing of free file system blocks and i-nodes from a file system owner
First Claim
1. A method of operating a primary data processor and a secondary data processor for access to a file system in data storage, said method comprising:
- the primary data processor managing locks upon objects in the file system, and managing allocation of free blocks and free inodes of the file system; and
the secondary data processor accessing objects of the file system by obtaining an allocation of free blocks and free inodes of the file system from the primary data processor, obtaining locks on the objects of the file system from the primary data processor, using the free blocks and free inodes to create new structure in the file system, and writing new metadata of the file system objects to storage over a data path that bypasses the primary data processor.
9 Assignments
0 Petitions
Accused Products
Abstract
Metadata management in a file server or storage network is delegated from a primary data processor to a secondary data processor in order to reduce data traffic between the primary data processor and the secondary data processor. The primary data processor retains responsibility for managing locks upon objects in the file system that it owns, and also retains responsibility for allocation of free blocks and inodes of the file system. By leasing free blocks and inodes to the secondary and granting locks to the secondary, the secondary can perform the other metadata management tasks such as appending blocks to a file, truncating a file, creating a file, and deleting a file.
80 Citations
26 Claims
-
1. A method of operating a primary data processor and a secondary data processor for access to a file system in data storage, said method comprising:
-
the primary data processor managing locks upon objects in the file system, and managing allocation of free blocks and free inodes of the file system; and the secondary data processor accessing objects of the file system by obtaining an allocation of free blocks and free inodes of the file system from the primary data processor, obtaining locks on the objects of the file system from the primary data processor, using the free blocks and free inodes to create new structure in the file system, and writing new metadata of the file system objects to storage over a data path that bypasses the primary data processor. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method of operating a primary data processor and a secondary data processor for access to a file system in data storage, said method comprising:
-
the primary data processor managing locks upon objects in the file system, and managing allocation of free blocks and free inodes of the file system; and the secondary data processor creating a new file of the file system by; the secondary data processor obtaining an allocation of a free inode and at least one free block from the primary data processor, the secondary data processor writing file attributes to the free inode and linking said at least one free block to the free inode, the secondary data processor obtaining, from the primary data processor, a lock on a directory of the file system to contain an entry for the new file, and the secondary data processor inserting the entry for the new file into the directory. - View Dependent Claims (9, 10, 11)
-
-
12. A method of operating a primary data processor and a secondary data processor for access to a file system in data storage, said method comprising:
-
the primary data processor managing locks upon files in the file system, and managing allocation of free blocks of the file system; and the secondary data processor appending new data to a file in the file system by obtaining an allocation of at least one free block from the primary data processor, writing the new data to the free block, obtaining a lock on the file from the primary data processor, and linking the free block to the file; which includes the secondary data processor requesting and obtaining the allocation of the free block before the secondary data processor determines the file of the file system to be written to, so that the writing to the file of the file system is not delayed by the secondary data processor obtaining the allocation of the free block of the file system from the primary data processor.
-
-
13. A method of operating a primary data processor and a secondary data processor for access to a file system in data storage, said method comprising:
-
the primary data processor managing locks upon files in the file system, and managing allocation of free blocks of the file system; and the secondary data processor appending new data to a file in the file system by obtaining an allocation of at least one free block from the primary data processor, writing the new data to the free block, obtaining a lock on the file from the primary data processor, and linking the free block to the file; which further includes the secondary data processor deleting a specified file by obtaining from the primary data processor a lock on the specified file and a lock on a directory having an entry for the specified file, and the secondary data processor removing the entry for the specified file from the directory. - View Dependent Claims (14)
-
-
15. A method of operating a primary data processor and a secondary data processor for access to a file system in data storage, said method comprising:
-
the primary data processor managing locks upon files in the file system, and managing allocation of free blocks of the file system; and the secondary data processor appending new data to a file in the file system by obtaining an allocation of at least one free block from the primary data processor, writing the new data to the free block, obtaining a lock on the file from the primary data processor, and linking the free block to the file; which further includes the primary data processor managing allocation of free inodes of the file system, and the secondary data processor creating a new file in the file system by the secondary data processor obtaining an allocation of a free inode from the primary data processor, and the secondary data processor writing attributes of the new file to the free inode. - View Dependent Claims (16, 17)
-
-
18. A storage system comprising:
-
data storage containing a file system; a primary data processor linked to the data storage for access to metadata of the file system for locking files of the file system and allocating free blocks in the file system; and a secondary data processor linked to the data storage for access to data and metadata of the file system over a data path that bypasses the primary data processor, and linked to the primary data processor for requesting and obtaining locks on the files in the file system and requesting and obtaining allocations of free blocks in the file system; wherein the secondary data processor is programmed for writing data to a specified file in the file system by obtaining an allocation of at least one free block from the primary data processor, writing data to said at least one free block, obtaining a lock on the specified file from the primary data processor, and appending said at least one free block to the specified file by writing new metadata for the specified file to the file system in the data storage over the data path that bypasses the primary data processor; and wherein the secondary data processor is programmed to request and obtain the allocation of the free blocks before the file to be written to is specified to the secondary data processor, so that the writing to the specified file of the file system is not delayed by the secondary data processor obtaining an allocation of said at least one of free block of the file system from the primary data processor.
-
-
19. A storage system comprising:
-
data storage containing a file system; a primary data processor linked to the data storage for access to metadata of the file system for locking files of the file system and allocating free blocks in the file system; and a secondary data processor linked to the data storage for access to data and metadata of the file system over a data path that bypasses the primary data processor, and linked to the primary data processor for requesting and obtaining locks on the files in the file system and requesting and obtaining allocations of free blocks in the file system; wherein the secondary data processor is programmed for writing data to a specified file in the file system by obtaining an allocation of at least one free block from the primary data processor, writing data to said at least one free block, obtaining a lock on the specified file from the primary data processor, and appending said at least one free block to the specified file by writing new metadata for the specified file to the file system in the data storage over the data path that bypasses the primary data processor; wherein the secondary data processor is programmed to write to a specified directory of the file system by obtaining a lock on the specified directory from the primary data processor, and writing to the specified directory in the data storage over the data path that bypasses the primary data processor; and wherein the secondary data processor is further programmed to delete the specified file by obtaining from the primary data processor a lock on the specified file and a lock on a directory having an entry for the specified file, and removing the entry for the specified file from the directory by writing to the directory in the data storage over the data path that bypasses the primary data processor. - View Dependent Claims (20)
-
-
21. A storage system comprising:
-
data storage containing a file system; a primary data processor linked to the data storage for access to metadata of the file system for locking files of the file system and allocating free blocks in the file system; and a secondary data processor linked to the data storage for access to data and metadata of the file system over a data path that bypasses the primary data processor, and linked to the primary data processor for requesting and obtaining locks on the files in the file system and requesting and obtaining allocations of free blocks in the file system; wherein the secondary data processor is programmed for writing data to a specified file in the file system by obtaining an allocation of at least one free block from the primary data processor, writing data to said at least one free block, obtaining a lock on the specified file from the primary data processor, and appending said at least one free block to the specified file by writing new metadata for the specified file to the file system in the data storage over the data path that bypasses the primary data processor; and wherein the primary data processor manages allocation of free inodes of the file system, and the secondary data processor is programmed to create a new file in the file system by obtaining an allocation of a free inode from the primary data processor, and writing attributes of the new file to the free inode in the data storage over the data path that bypasses the primary data processor. - View Dependent Claims (22)
-
-
23. A file server comprising:
-
a cached disk array containing a plurality of file systems; and a plurality of data mover computers each linked to the cached disk array over a respective data path that bypasses the other data mover computers for accessing data and metadata of the file systems, each of the data mover computers also having a port for connection to a data network for receiving file system access requests from clients in the data network, locks upon files in each file system being exclusively managed by a respective one of the data movers that is primary with respect to said each file system, the data mover that is primary with respect to said each file system also allocating free blocks of said each file system;
whereineach data mover computer that is secondary with respect to said each file system is programmed to obtain an allocation of free blocks of said each file system from the data mover computer that is primary with respect to said each file system, and said each data mover computer that is secondary with respect to said each file system is programmed to respond to a client request for writing data to a specified file in said each file system by said each data mover computer that is secondary with respect to said each file system appending the data to the specified file in said each file system by requesting the data mover computer that is primary with respect to said each file system to grant a lock upon the specified file to said each data mover computer that is secondary with respect to said each file system, writing the data to at least one of the free blocks of said each file system allocated to said each data mover computer that is secondary with respect to said each file system, and once the data mover computer that is primary with respect to said each file system grants the requested lock upon the specified file, said each data mover computer that is secondary with respect to said each file system appending said at least one of the free blocks of said each file system to the specified file by writing new metadata for the specified file to said each file system in the cached disk array over the respective data path that bypasses the data mover computer that is primary with respect to said each file system. - View Dependent Claims (24, 25, 26)
-
Specification