System and method for reclaiming unused space from a thinly provisioned data container
First Claim
Patent Images
1. A method for reclaiming unused space from a data container served by a storage system, comprising:
- maintaining a client computer interacting with the storage system;
maintaining the data container by the storage system;
executing on the client computer a computer program which stores data by writing the data to a file system on the client computer and to the data container of the storage system, the client computer program also freeing blocks on the client computer to create one or more freed blocks, the client computer program not informing the storage system that the one or more freed blocks were freed on the file system of the client computer;
executing an agent on the client computer, the agent examining metadata of the file system on the client computer to detect the one or more freed blocks;
sending, by the agent, a punch hole command to the storage system, the punch hole command having an operation code field, a number of ranges field and one or more range identifier fields which identify the one or more freed blocks; and
deallocating by the storage system, in response to receiving the punch hole command, blocks on the data container of the storage system which correspond to the one or more freed blocks that were freed on the client computer by the client computer program.
2 Assignments
0 Petitions
Accused Products
Abstract
A system and method for reclaiming unused space from a thinly provisioned data container served by a storage system. A host-side agent detects blocks of the data container that may be freed and sends a novel Punch Hole command to the storage system associated with the data container. The storage system allocates the appropriate blocks in response to the Punch Hole command.
133 Citations
18 Claims
-
1. A method for reclaiming unused space from a data container served by a storage system, comprising:
-
maintaining a client computer interacting with the storage system; maintaining the data container by the storage system; executing on the client computer a computer program which stores data by writing the data to a file system on the client computer and to the data container of the storage system, the client computer program also freeing blocks on the client computer to create one or more freed blocks, the client computer program not informing the storage system that the one or more freed blocks were freed on the file system of the client computer; executing an agent on the client computer, the agent examining metadata of the file system on the client computer to detect the one or more freed blocks; sending, by the agent, a punch hole command to the storage system, the punch hole command having an operation code field, a number of ranges field and one or more range identifier fields which identify the one or more freed blocks; and deallocating by the storage system, in response to receiving the punch hole command, blocks on the data container of the storage system which correspond to the one or more freed blocks that were freed on the client computer by the client computer program. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A system for reclaiming unused space from a data container served by a storage system, comprising:
-
means for maintaining a client computer interacting with the storage system; means for maintaining the data container by the storage system; means for executing on the client computer a computer program which stores data by writing the data to a file system on the client computer and to the data container of the storage system, the client computer program also freeing blocks on the client computer to create one or more freed blocks, the client computer program not informing the storage system that the one or more freed blocks were freed on the file system of the client computer; means for examining metadata of the file system on the client computer to detect, by an agent executing on the client computer, the one or more freed blocks; means for sending, by the agent, a punch hole command to the storage system, the punch hole command having an operation code field, a number of ranges field and one or more range identifier fields which identify the one or more freed blocks; and means for deallocating by the storage system, in response to receiving the punch hole command, blocks on the data container of the storage system which correspond to the one or more freed blocks that were freed on the client computer by the client computer program. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A system for reclaiming unused space from a data container served by a storage system, comprising:
a host-side agent executing on a client computer that interacts with the storage system, the client computer having a client computer program that stores data to a file system on the client computer and to the data container of the storage system, the client computer program to also free blocks on the client computer to create one or more freed blocks where the client computer program does not inform the storage system of the one or more freed blocks on the file system of the client computer, the host-side agent configured to examine metadata of the file system on the client computer to detect the one or more freed blocks on the client computer, the host-side agent to send a punch hole command to the storage system, the punch hole command has an operation code field, a number of ranges field and one or more range identifier fields which identifies the one or more freed blocks, and the storage system to deallocate, in response to the punch hole command, blocks on the data container which corresponds to the one or more freed blocks that were freed on the client computer. - View Dependent Claims (16, 17)
-
18. A computer readable medium containing executable program instructions executed by a processor, comprising:
-
program instructions that maintain a client computer interacting with the storage system; program instructions that maintain a data container by the storage system; program instructions that execute on the client computer a computer program which stores data by writing the data to a file system on the client computer and to the data container of the storage system, the client computer program also freeing blocks on the client computer to create one or more freed blocks, the client computer program not informing the storage system that the one or more freed blocks were freed on the file system of the client computer; program instructions that execute an agent on the client computer, the agent examining metadata of the file system on the client computer to detect the one or more freed blocks; program instructions that send, by the agent, a punch hole command to the storage system, the punch hole command having an operation code field, a number of ranges field and one or more range identifier fields which identify the one or more freed blocks; and program instructions that deallocate, by the storage system, in response to receiving the punch hole command, blocks on the data container of the storage system which correspond to the one or more freed blocks that were freed on the client computer by the client computer program.
-
Specification