A data storage system (100) and a method of storing data are described
including
a cache (118) with a variable number of levels (210, 220, 230, 240).
Each level in the cache (118) has a cache controller (212, 222, 232,
242) and a cache memory (214, 224, 234, 244) for storing data. An address
mapping is recorded and applied between each of the levels of the cache (118).
The address mapping corresponds to a point in time virtual copy operation such
as a snapshot copy operation applied to the cache (118) and enables point
in time virtual copy operations to be carried out in electronic time. A new level
is created in the cache (118) when a point in time virtual copy operation
is received by the cache and a corresponding address mapping is applied to the
previous level in the cache (118).