A method of performing a non-disruptive upgrade of data in a storage system that includes a plurality of storage devices (302, 330, 332) and a storage controller, the method comprising: updating, by the storage controller, system software in the storage system, wherein: the system software utilizes metadata in an old format to access a volume stored in one or more storage devices (302, 330, 332) in the storage system; and after the system software is updated, the updated system software can utilize metadata in the old format to access the volume stored in one or more storage devices (302, 330, 332) in the storage system or metadata in a new format to access the volume stored in one or more storage devices (302, 330, 332) in the storage system; characterized by the method further comprising: creating, in the one or more storage devices (302, 330, 332) by the storage controller, new data in the new format associated with the volume, wherein the new data includes the metadata describing the volume, and wherein the new data is initially a stub pointing back to the old data formatted in the old data format and associated with the volume; whenever determining, by the storage controller, that a portion of the contents in an address range of the volume has changed, updating, by the storage controller, the new data in the new format associated with the volume to include: a reference to data and metadata in the old format associated with a portion in an address range of the volume that precedes the address range of the updated portion of the volume; data and metadata in the new format associated with the updated portion of the volume; and a reference to data and metadata in the old format associated with a portion in an address range of the volume that follows the address range of the updated portion of the volume. updating, by the storage controller, system software in the storage system, wherein: the system software utilizes metadata in an old format to access a volume stored in one or more storage devices (302, 330, 332) in the storage system; and after the system software is updated, the updated system software can utilize metadata in the old format to access the volume stored in one or more storage devices (302, 330, 332) in the storage system or metadata in a new format to access the volume stored in one or more storage devices (302, 330, 332) in the storage system; the system software utilizes metadata in an old format to access a volume stored in one or more storage devices (302, 330, 332) in the storage system; and after the system software is updated, the updated system software can utilize metadata in the old format to access the volume stored in one or more storage devices (302, 330, 332) in the storage system or metadata in a new format to access the volume stored in one or more storage devices (302, 330, 332) in the storage system; characterized by the method further comprising: creating, in the one or more storage devices (302, 330, 332) by the storage controller, new data in the new format associated with the volume, wherein the new data includes the metadata describing the volume, and wherein the new data is initially a stub pointing back to the old data formatted in the old data format and associated with the volume; whenever determining, by the storage controller, that a portion of the contents in an address range of the volume has changed, updating, by the storage controller, the new data in the new format associated with the volume to include: a reference to data and metadata in the old format associated with a portion in an address range of the volume that precedes the address range of the updated portion of the volume; data and metadata in the new format associated with the updated portion of the volume; and a reference to data and metadata in the old format associated with a portion in an address range of the volume that follows the address range of the updated portion of the volume. creating, in the one or more storage devices (302, 330, 332) by the storage controller, new data in the new format associated with the volume, wherein the new data includes the metadata describing the volume, and wherein the new data is initially a stub pointing back to the old data formatted in the old data format and associated with the volume; whenever determining, by the storage controller, that a portion of the contents in an address range of the volume has changed, updating, by the storage controller, the new data in the new format associated with the volume to include: a reference to data and metadata in the old format associated with a portion in an address range of the volume that precedes the address range of the updated portion of the volume; data and metadata in the new format associated with the updated portion of the volume; and a reference to data and metadata in the old format associated with a portion in an address range of the volume that follows the address range of the updated portion of the volume. a reference to data and metadata in the old format associated with a portion in an address range of the volume that precedes the address range of the updated portion of the volume; data and metadata in the new format associated with the updated portion of the volume; and a reference to data and metadata in the old format associated with a portion in an address range of the volume that follows the address range of the updated portion of the volume.