Patent ID: 8190850

Claim:
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.