Uniquely identifying block context signatures in a storage volume hierarchy
AssigneeNetApp, Inc.
InventorsAshish Prakash, Robert M. English, Eric Hamilton
Life of this patent
Estimating the term…
Abstract
A technique uniquely identifies block context signatures in a storage volume hierarchy of a storage system. In particular, the technique assigns unique volume identifiers (“IDs,” e.g., buffer tree or “bufftree” IDs) to volumes of the storage volume hierarchy, and allows clone volumes to determine that data blocks belong to an appropriate ancestor volume (e.g., and were written by the ancestor volume prior to creation of the clone). In this manner, the novel technique may uniquely identify and accurately determine whether an accessed data block is a correct data block (e.g., alleviating occurrences of data ID aliasing).
Claims21
A computer-implemented method, comprising:
- assigning, by a processor executing a storage operating system of a computer, a first unique buffer tree identifier (bufftree ID) to a first volume of the computer and assigning a second unique bufftree ID to an ancestor volume of the first volume;
- accessing a data block of the first volume by the storage operating system, and in response, determining whether a data ID of the data block matches an expected data ID for the first volume;
- if the data ID of the data block matches the expected data ID, determining whether a volume ID of the data block matches the first unique bufftree ID of the first volume;
- if the volume ID of the data block matches the first unique bufftree ID of the first volume, determining that the data block is a correct data block;
- if the volume ID of the data block does not match the first unique bufftree ID of the first volume, determining whether the volume ID of the data block matches the second unique bufftree ID of the ancestor volume;
- if the volume ID of the data block match the second unique bufftree ID of the ancestor volume, determining that the data block is the correct data block;
- and
- if at least one of the data ID and the volume ID of the data block do not match, determining that the data block is an incorrect data block.
A computer-implemented method, comprising:
- creating, by a processor executing a storage operating system of a computer, a clone volume from a parent volume, the parent volume comprising a first unique bufftree identifier (ID);
- assigning a second unique bufftree ID to the clone volume that is unique from the first unique bufftree ID and unique from any other unique bufftree IDs of ancestor volumes within a volume hierarchy of the clone;
- accessing a data block within the volume hierarchy of the clone;
- and
- determining that the data block is a correctly accessed data block if a volume ID of where the data block is stored matches one of the unique bufftree IDs of any volume within the volume hierarchy of the clone.
A storage system, comprising:
- a processor operatively connected to the storage system;
- a parent volume operatively connected to the storage system and configured to store data blocks, the parent volume comprising a first unique bufftree identifier (ID) in an inode of the parent volume;
- a clone volume operatively connected to the storage system and created from the parent volume, the clone volume comprising a second unique bufftree ID in an inode of the clone volume that is unique from the first bufftree ID of the parent volume;
- and
- the processor configured to execute a storage operating system, the storage operating system when executed operable to:
- access a data block of the clone volume;
- and determine that the data block is a correctly accessed data block if a volume ID of the data block matches at least one of the first and second unique bufftree IDs of either the clone volume or the parent volume and if a write time of the data block is prior to creation of the clone volume.
Dependencies are inferred from the claim text.