IP Library Granted Patent US 10,691,637
Granted Patent B2
US 10,691,637 · App. 15/522,307 · Granted Jun 23, 2020

Management of cloned objects in file systems

Inventors: Zahra Badey (Palo Alto, CA); Daniel Picken (Palo Alto, CA); Jon Smith (Bracknell, GB); Chris Aston (Hughenden Valley, GB); Joseph Smith (Reading, GB); Namita Lal (Palo Alto, CA)
Assignee: HITACHI VANTARA LLC
G06F16/128G06F16/162G06F16/178G06F16/184G06F16/2246
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,691,637
App. No.
15/522,307
Granted
Jun 23, 2020
Kind
B2
Abstract

The present disclosure relates to management of cloned objects and corresponding snapshot objects in file systems by a file server. Aspects may relate to one or more processes for managing file system objects of a file system in a data storage system comprising a file system server, wherein the file system server comprises: a computer system including a processor configured to execute an operating system and further software components executed on the operating system, and a programmable logic device interfacing with the computer system and including a file system management unit configured to manage a file system.

Claims (66)

1. A non-transitory computer-readable medium storing program instructions which, when running on or loaded into a file system server or computer connected to a file system server or when being executed by one or more processors or processing units of the file system server or the computer, cause the file system server to execute a method for managing file system objects of a file system in a data storage system comprising the file system server;

wherein the file system server comprises:

a computer system including a processor configured to execute an operating system and further software components executed on the operating system, and

a programmable logic device interfacing with the computer system and including a file system management unit configured to manage a file system;

the method performing to remove a parent snapshot object, which previously referenced a first clone object that has been deleted and is currently referencing a single child snapshot object, where the parent snapshot object and the child snapshot object are not visible to a user of the file system server and where the child snapshot object references a second clone object which has not been deleted and is visible to the user, comprising:

identifying the parent snapshot object as a candidate for deletion by determining that the parent snapshot object does not currently reference any existing clone object that are visible to the user,

identifying one or more data blocks which are owned by the parent snapshot object and which are shared between the parent snapshot object and the child snapshot object,

transferring ownership of the identified data blocks from the parent snapshot object to the child snapshot object, and

deleting at least portions of the parent snapshot object after performing the transfer of ownership,

wherein deleting at least portions of the parent snapshot object comprises deleting one or more data blocks which are still owned by the parent snapshot object after performing the transfer of ownership and which are not related to any previous parent snapshot of the file system managed by the file system server;

and preserving data of one or more data blocks which are still owned by the parent snapshot object after performing the transfer of ownership, if the respective one or more data blocks are related to a previous parent snapshot of the file system managed by the file system server.

2. The non-transitory computer readable medium according to claim 1 , wherein:

deleting at least portions of the parent snapshot object comprises freeing one or more data blocks which are still owned by the parent snapshot object after performing the transfer of ownership, if the respective one or more data blocks are not related to the previous parent snapshot of the file system managed by the file system server.

3. The non-transitory computer readable medium according to claim 1 , the method further comprising:

relocating data of one or more data blocks which are still owned by the parent snapshot object after performing the transfer of ownership, if the respective one or more data blocks are related to the previous parent snapshot of the file system managed by the file system server, and

freeing the respective one or more data blocks after relocating the data; and/or

determining whether data blocks, which are still owned by the parent snapshot object after performing the transfer of ownership, are related to the previous parent snapshot of the file system based on a comparison of their associated block pointer's second-type checkpoint numbers and a first-type checkpoint number being associated with the previous parent snapshot of the file system.

4. The non-transitory computer readable medium according to claim 1 , wherein the transferring ownership of the identified data blocks from the parent snapshot object to the child snapshot object comprises:

setting the checkpoint number of the pointers of the parent snapshot-file, that point to unshared blocks, equal to or larger than a first-type checkpoint number of the child snapshot-file; and

exchanging the first-type checkpoint number of the parent snapshot-file with the first-type checkpoint number of the child snapshot-file.

5. A non-transitory computer-readable medium having program instructions which, when running on or loaded into a file system server or computer connected to a file system server or when being executed by one or more processors or processing units of the file system server or the computer, cause the file system server to execute a method for managing file system objects of a file system in a data storage system comprising the file system server;

wherein the file system server comprises:

a computer system including a processor configured to execute an operating system and further software components executed on the operating system, and

a programmable logic device interfacing with the computer system and including a file system management unit configured to manage a file system;

the method performing to remove a parent snapshot object, which previously referenced a first clone object that has been deleted and is currently referencing a single child snapshot object, where the parent snapshot object and the child snapshot object are not visible to a user of the file system server and where the child snapshot object references a second clone object which has not been deleted and is visible to the user, comprising:

identifying the parent snapshot object as a candidate for deletion by determining that the parent snapshot object does not currently reference any existing clone object that are visible to the user,

identifying one or more data blocks which are owned by the parent snapshot object and which are shared between the parent snapshot object and the child snapshot object,

transferring ownership of the identified data blocks from the parent snapshot object to the child snapshot object, and

deleting at least portions of the parent snapshot object after performing the transfer of ownership by deleting one or more data blocks which are still owned by the parent snapshot object after performing the transfer of ownership and which are not related to any previous parent snapshot of the file system managed by the file system server,

wherein transferring ownership of the identified data blocks from the parent snapshot object to the child snapshot object is performed successively for plural groups of data blocks,

the method comprising, for each group of data blocks, holding off client access to the data blocks of the respective group of data blocks before transferring ownership of the data blocks of the respective group of data blocks.

6. The non-transitory computer readable medium according to claim 5 , further comprising:

for each group of data blocks, releasing the data blocks of the respective group of data blocks for client access after transferring ownership of the data blocks of the respective group of data blocks and/or before transferring ownership of data blocks of a next group of data blocks.

7. The non-transitory computer readable medium according to claim 5 , wherein:

identifying one or more data blocks which are owned by the parent snapshot object and which are shared between the parent snapshot object and the child snapshot object include:

identifying, by the computer system, one or more data blocks which are owned by the parent snapshot object and which are initially shared between the parent snapshot object prior to holding off client access to the respective data blocks, and

identifying, by the programmable logic device and among the identified initially shared data blocks, one or more data blocks which are no longer shared between the parent snapshot object and the child snapshot object based on a checkpoint number being associated with the respective data block,

wherein transferring ownership from the parent snapshot object to the child snapshot object is performed for the initially identified data blocks which are determined to be still shared when identifying, among the identified initially shared data blocks, one or more data blocks which are no longer shared between the parent snapshot object and the child snapshot object.

8. The non-transitory computer readable medium according to claim 5 , wherein the transferring ownership of the identified data blocks from the parent snapshot object to the child snapshot object comprises:

setting the checkpoint number of the pointers of the parent snapshot-file, that point to unshared blocks, equal to or larger than a first-type checkpoint number of the child snapshot-file; and

exchanging the first-type checkpoint number of the parent snapshot-file with the first-type checkpoint number of the child snapshot-file.

9. A method for managing file system objects of a file system in a data storage system comprising a file system server, wherein the file system server comprises:

a computer system including a processor configured to execute an operating system and further software components executed on the operating system, and

a programmable logic device interfacing with the computer system and including a file system management unit configured to manage a file system;

the method performing to remove a parent snapshot object, which previously referenced a first clone object that has been deleted and is currently referencing a single child snapshot object, where the parent snapshot object and the child snapshot object are not visible to a user of the file system server and where the child snapshot object references a second clone object which has not been deleted and is visible to the user, comprising:

identifying the parent snapshot object as a candidate for deletion by determining that the parent snapshot object does not currently reference any existing clone object that are visible to the user,

identifying one or more data blocks which are owned by the parent snapshot object and which are shared between the parent snapshot object and the child snapshot object,

transferring ownership of the identified data blocks from the parent snapshot object to the child snapshot object, and

deleting at least portions of the parent snapshot object after performing the transfer of ownership,

wherein deleting at least portions of the parent snapshot object comprises deleting one or more data blocks which are still owned by the parent snapshot object after performing the transfer of ownership and which are not related to any previous parent snapshot of the file system managed by the file system server; and preserving data of one or more data blocks which are still owned by the parent snapshot object after performing the transfer of ownership, if the respective one or more data blocks are related to a previous parent snapshot of the file system managed by the file system server.

10. The method according to claim 9 , wherein the transferring ownership of the identified data blocks from the parent snapshot object to the child snapshot object comprises:

setting the checkpoint number of the pointers of the parent snapshot-file, that point to unshared blocks, equal to or larger than a first-type checkpoint number of the child snapshot-file; and

exchanging the first-type checkpoint number of the parent snapshot-file with the first-type checkpoint number of the child snapshot-file.

11. A method for managing file system objects of a file system in a data storage system comprising a file system server, wherein the file system server comprises:

a computer system including a processor configured to execute an operating system and further software components executed on the operating system, and

a programmable logic device interfacing with the computer system and including a file system management unit configured to manage a file system;

the method performing to remove a parent snapshot object, which previously referenced a first clone object that has been deleted and is currently referencing a single child snapshot object, where the parent snapshot object and the child snapshot object are not visible to a user of the file system server and where the child snapshot object references a second clone object which has not been deleted and is visible to the user, comprising:

identifying the parent snapshot object as a candidate for deletion by determining that the parent snapshot object does not currently reference any existing clone object that are visible to the user,

identifying one or more data blocks which are owned by the parent snapshot object and which are shared between the parent snapshot object and the child object,

transferring ownership of the identified data blocks from the parent snapshot object to the child snapshot object, and

deleting at least portions of the parent snapshot object after performing the transfer of ownership by deleting one or more data blocks which are still owned by the parent snapshot object after performing the transfer of ownership and which are not related to any previous parent snapshot of the file system managed by the file system server,

wherein transferring ownership of the identified data blocks from the parent snapshot object to the child snapshot object is performed successively for plural groups of data blocks,

the method comprising, for each group of data blocks, holding off client access to the data blocks of the respective group of data blocks before transferring ownership of the data blocks of the respective group of data blocks.

12. The method according to claim 11 , wherein the transferring ownership of the identified data blocks from the parent snapshot object to the child snapshot object comprises:

setting the checkpoint number of the pointers of the parent snapshot-file, that point to unshared blocks, equal to or larger than a first-type checkpoint number of the child snapshot-file; and

exchanging the first-type checkpoint number of the parent snapshot-file with the first-type checkpoint number of the child snapshot-file.

Assignments (3)
MERGER Recorded Jan 28, 2020
From: HITACHI VANTARA CORPORATION
To: HITACHI VANTARA LLC
Reel/Frame 051719/0202 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 9, 2019
From: HITACHI DATA SYSTEMS ENGINEERING UK LIMITED
To: HITACHI VANTARA CORPORATION
Reel/Frame 048825/0506 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 27, 2017
From: BADEY, ZAHRA; PICKEN, DANIEL; SMITH, JON; ASTON, CHRIS; SMITH, JOSEPH; LAL, NAMITA
To: HITACHI DATA SYSTEMS ENGINEERING UK LIMITED
Reel/Frame 042159/0329 →