Virtual block mapping for relocating compressed and/or encrypted file data block blocks
First Claim
1. A method of operating a storage server in a data network for relocating one or more data blocks of a file, the file including multiple data blocks containing data of the file, and the file further being organized as a hierarchy of file system blocks including inodes, indirect blocks, and one or more data blocks, the file stored in a data storage including a production file having a first data block in the hierarchy of file system blocks, the first data block being a child of the production file inode in the hierarchy of file system blocks, the method comprising the steps of:
- creating a virtual block mapping pointer in response to a request by a client of the storage server to de-duplicate the file system data block or to create a snapshot copy of the production file, wherein the virtual block mapping pointer provides a mapping information to a logical block storing data of the file system block of the production file, wherein metadata of the file system data block includes a pointer pointing back to the metadata of the virtual block mapping pointer; and
relocating one or more file system data blocks from one part of the file system address space to another by using the virtual block mapping pointer providing the mapping information for the one or more file system data blocks containing compressed, encrypted or de-duplicated data;
wherein the metadata of the virtual block mapping pointer includes a total distributed weight, wherein the total distributed weight indicates the total reference count of all the file system data blocks that points to the virtual block mapping pointer.
9 Assignments
0 Petitions
Accused Products
Abstract
This invention is a system and a method for operating a storage server to provide read or write access to a data in a data network using a new architecture. The method of creating virtual block mapping pointer in response to a request by a client of the storage server to de-duplicate the file system data block or to allow compression of one or more file system data blocks into one or more physical data blocks. Further, the method relocates one or more file system data blocks from one part of the file system address space to another by using one or more virtual block mapping pointers that provides the mapping information for the one or more file system data blocks that are being relocated. The virtual block mapping pointer allows relocating of file system data blocks by same number of metadata operations regardless of number of files sharing the block that are being relocated and the state of those blocks (compressed or not).
105 Citations
23 Claims
-
1. A method of operating a storage server in a data network for relocating one or more data blocks of a file, the file including multiple data blocks containing data of the file, and the file further being organized as a hierarchy of file system blocks including inodes, indirect blocks, and one or more data blocks, the file stored in a data storage including a production file having a first data block in the hierarchy of file system blocks, the first data block being a child of the production file inode in the hierarchy of file system blocks, the method comprising the steps of:
-
creating a virtual block mapping pointer in response to a request by a client of the storage server to de-duplicate the file system data block or to create a snapshot copy of the production file, wherein the virtual block mapping pointer provides a mapping information to a logical block storing data of the file system block of the production file, wherein metadata of the file system data block includes a pointer pointing back to the metadata of the virtual block mapping pointer; and relocating one or more file system data blocks from one part of the file system address space to another by using the virtual block mapping pointer providing the mapping information for the one or more file system data blocks containing compressed, encrypted or de-duplicated data;
wherein the metadata of the virtual block mapping pointer includes a total distributed weight, wherein the total distributed weight indicates the total reference count of all the file system data blocks that points to the virtual block mapping pointer. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A method of operating a storage server in a data network for read or write access to data of a file, the file including multiple data blocks containing data of the file, and the file further being organized as a hierarchy of file system blocks including inodes, indirect blocks, and data blocks, the file stored in a data storage including a production file having a first data block in the hierarchy of file system blocks, the first data block being a child of the production file inode in the hierarchy of file system blocks, the method comprising the steps of:
-
creating a first virtual block mapping pointer in response to a request by a client of the storage server to de-duplicate the file system data block or to create a snapshot copy of the production file, wherein the first virtual block mapping pointer provides a mapping information to a logical block storing data of the file system block of the production file, wherein metadata of the file system data block includes a pointer pointing back to the metadata of the first virtual block mapping pointer; and compressing one or more file system data block into one or more physical data block by creating a second virtual block mapping pointer wherein the second virtual block mapping pointer provides the mapping information to the physical data block storing compressed data of the file system block of the production file and first virtual block mapping pointer provides the mapping information to the second virtual block mapping pointer, wherein metadata of the physical data block includes a pointer pointing back to the metadata of the second virtual block mapping pointer;
wherein the metadata of the virtual block mapping pointer includes a total distributed weight, wherein the total distributed weight indicates the total reference count of all the file system data blocks that points to the virtual block mapping pointer. - View Dependent Claims (15, 16, 17, 18, 19, 20, 21)
-
-
22. A system for accessing a data of a file in a data storage environment, the system comprising:
-
a data storage storing files, wherein the files stored on the data storage includes a production file having a first data block in the hierarchy of file system blocks, the first data block being a child of the production file inode in the hierarchy of file system blocks; a storage server, wherein the storage server access the files stored on the data storage, wherein the file includes multiple data blocks containing data of the file, and the file further being organized as a hierarchy of file system blocks including inodes, indirect blocks, and data blocks; and a program logic in communication with the data storage and the storage server for carrying out the steps of; creating a first virtual block mapping pointer in response to a request by a client of the storage server to de-duplicate the file system data block or to create a snapshot copy of the production file, wherein the first virtual block mapping pointer provides a mapping information to a logical block storing data of the file system block of the production file, wherein metadata of the file system data block includes a pointer pointing back to the metadata of the first virtual block mapping pointer; relocating one or more file system data blocks from one part of the file system address space to another by using the virtual block mapping pointer providing the mapping information for the one or more file system data blocks containing compressed, encrypted or de-duplicated data; and compressing one or more file system data block into one or more physical data block by creating a second virtual block mapping pointer wherein the second virtual block mapping pointer provides the mapping information to the physical data block storing compressed data of the file system block of the production file and first virtual block mapping pointer provides the mapping information to the second virtual block mapping pointer, wherein metadata of the physical data block includes a pointer pointing back to the metadata of the second virtual block mapping pointer;
wherein the metadata of the virtual block mapping pointer includes a total distributed weight, wherein the total distributed weight indicates the total reference count of all the file system data blocks that points to the virtual block mapping pointer.
-
-
23. A program product for accessing data of a file, the program product operating in a data storage environment that includes a data storage system in communication with a storage server providing logical disk storage to the storage server for storing files that includes multiple data blocks containing data of the files, and the file further being organized as a hierarchy of file system blocks including inodes, indirect blocks, and data blocks, wherein the program product includes computer-executable logic encoded on a computer-readable medium for executing the following steps:
-
creating a first virtual block mapping pointer in response to a request by a client of the storage server to de-duplicate the file system data block or to create a snapshot copy of the production file, wherein the first virtual block mapping pointer provides a mapping information to a logical block storing data of the file system block of the production file, wherein metadata of the file system data block includes a pointer pointing back to the metadata of the first virtual block mapping pointer; relocating one or more file system data blocks from one part of the file system address space to another by using the virtual block mapping pointer providing the mapping information for the one or more file system data blocks containing compressed, encrypted or de-duplicated data; and compressing one or more file system data block into one or more physical data block by creating a second virtual block mapping pointer wherein the second virtual block mapping pointer provides the mapping information to the physical data block storing compressed data of the file system block of the production file and first virtual block mapping pointer provides the mapping information to the second virtual block mapping pointer, wherein metadata of the physical data block includes a pointer pointing back to the metadata of the second virtual block mapping pointer;
wherein the metadata of the virtual block mapping pointer includes a total distributed weight, wherein the total distributed weight indicates the total reference count of all the file system data blocks that points to the virtual block mapping pointer.
-
Specification