A first storage system that supports remote retrieval of data, the first storage system comprising: - a file system configured to support a sparse volume, where the sparse volume contains files with data blocks that require remote retrieval from a backing store that is separate from the first storage system, - wherein the blocks for a file of the files are internally represented as a buffer tree that uses block pointers to indirect blocks and data blocks of the file, wherein some of the blocks of the file are stored locally on a disk coupled to the first storage system, wherein some of the block pointers of the buffer tree are marked with a specific values to identify that certain blocks, including data blocks and indirect blocks are not physically located on the first storage system serving the sparse volume, the file system including - a function configured to identify absent blocks of the file based on said marked pointers and further configured to retrieve the absent blocks from the backing store using a protocol configured for remote retrieval of the absent blocks and wherein the function is called in response to a data access request; - a protocol module operatively interconnected with the file system and implementing the protocol configured for remote retrieval of said absent blocks from the backing store in response to the determination based on said identification of the absent blocks such that the absent blocks are not stored on the first storage system; - wherein the protocol comprises a request to remotely lock a persistent consistency point image namely a snapshot, defining a copy of the volume from a point-in time, on the backing store so that the backing store does not modify or delete the persistent consistency point image until it is unlocked via an unlocked command; - the protocol module further configured to return the absent blocks retrieved from the backing store to the sparse volume of the first storage system. - a file system configured to support a sparse volume, where the sparse volume contains files with data blocks that require remote retrieval from a backing store that is separate from the first storage system, - wherein the blocks for a file of the files are internally represented as a buffer tree that uses block pointers to indirect blocks and data blocks of the file, wherein some of the blocks of the file are stored locally on a disk coupled to the first storage system, wherein some of the block pointers of the buffer tree are marked with a specific values to identify that certain blocks, including data blocks and indirect blocks are not physically located on the first storage system serving the sparse volume, - a function configured to identify absent blocks of the file based on said marked pointers and further configured to retrieve the absent blocks from the backing store using a protocol configured for remote retrieval of the absent blocks and wherein the function is called in response to a data access request; - a protocol module operatively interconnected with the file system and implementing the protocol configured for remote retrieval of said absent blocks from the backing store in response to the determination based on said identification of the absent blocks such that the absent blocks are not stored on the first storage system; - wherein the protocol comprises a request to remotely lock a persistent consistency point image namely a snapshot, defining a copy of the volume from a point-in time, on the backing store so that the backing store does not modify or delete the persistent consistency point image until it is unlocked via an unlocked command; - the protocol module further configured to return the absent blocks retrieved from the backing store to the sparse volume of the first storage system.