US-12619351-B2 - Optimized migration of data between file systems of a storage array
Abstract
A request is received from an initiator application to migrate data from a plurality of blocks of a storage area network (SAN) volume resident on a storage array to a network attached storage (NAS) volume resident on the storage array. Metadata is generated for the NAS volume, the metadata to reference the plurality of data blocks of the SAN volume storing the data. A file is generated at the NAS volume using the metadata, wherein the file is associated with the plurality of data blocks of the SAN volume storing the data.
Inventors
- Ethan MILLER
- Lydia Do
- John Colgrove
Assignees
- PURE STORAGE, INC.
Dates
- Publication Date
- 20260505
- Application Date
- 20210331
Claims (20)
- 1 . A system comprising: a storage array comprising a plurality of solid-state storage devices; and a storage controller operatively coupled to the storage array, the storage controller comprising a processing device, the processing device configured to: receive a request from an initiator application to migrate data from a plurality of data blocks of a storage area network (SAN) volume resident on the storage array to a network attached storage (NAS) volume resident on the storage array; in response to receiving the request, generate metadata for the NAS volume, the metadata referencing the plurality of data blocks of the SAN volume; and generate a file, that is stored in the NAS volume, using the metadata, wherein the file is associated with the plurality of data blocks of the SAN volume and the plurality of data blocks remain on the SAN volume after the file is generated.
- 2 . The system of claim 1 , wherein the data is migrated to the NAS volume without moving underlying data of the plurality of data blocks to the NAS volume.
- 3 . The system of claim 1 , wherein the data is migrated without copying underlying data of the plurality of data blocks to the NAS volume.
- 4 . The system of claim 1 , wherein the initiator application is resident on an initiator device coupled to the storage controller by a network.
- 5 . The system of claim 1 , wherein the processing device is further configured to: renumber the plurality of data blocks associated with the file to have sequential block numbers in the NAS volume.
- 6 . The system of claim 1 , wherein the processing device is further configured to: move data underlying the plurality of data blocks associated with the file to one of the plurality of solid-state storage devices.
- 7 . The system of claim 1 , wherein the processing device is further configured to: generate file metadata comprising a size of blocks of the plurality of data blocks, wherein the file is further generated using the file metadata.
- 8 . A method comprising: receiving, by a processing device of a storage controller of a storage array comprising a plurality of solid-state storage devices, a request from an initiator application to migrate data from a plurality of data blocks of a storage area network (SAN) volume resident on the storage array to a network attached storage (NAS) volume resident on the storage array; in response to receiving the request, generating metadata for the NAS volume, the metadata referencing the plurality of data blocks of the SAN volume; and generating a file, that is stored in the NAS volume, using the metadata, wherein the file is associated with the plurality of data blocks of the SAN volume and the plurality of data blocks remain on the SAN volume after the file is generated.
- 9 . The method of claim 8 , wherein the data is migrated to the NAS volume without moving underlying data of the plurality of data blocks to the NAS volume.
- 10 . The method of claim 8 , wherein the data is migrated without copying underlying data of the plurality of data blocks to the NAS volume.
- 11 . The method of claim 8 , wherein the initiator application is resident on an initiator device coupled to the storage controller by a network.
- 12 . The method of claim 8 , further comprising: renumbering the plurality of data blocks associated with the file to have sequential block numbers in the NAS volume.
- 13 . The method of claim 8 , further comprising: moving data underlying the plurality of data blocks associated with the file to one of the plurality of solid-state storage devices.
- 14 . The method of claim 8 , further comprising: generating file metadata comprising a size of blocks of the plurality of data blocks, wherein the file is further generated using the file metadata.
- 15 . A non-transitory computer readable storage medium storing instructions, which when executed, cause a processing device of a storage controller to: receive a request from an initiator application to migrate data from a plurality of data blocks of a storage area network (SAN) volume resident on a storage array comprising a plurality of solid-state storage devices to a network attached storage (NAS) volume resident on the storage array; in response to receiving the request, generate metadata for the NAS volume, the metadata referencing the plurality of data blocks of the SAN volume; and generate a file, that is stored in the NAS volume, using the metadata, wherein the file is associated with the plurality of data blocks of the SAN volume and the plurality of data blocks remain on the SAN volume after the file is generated.
- 16 . The non-transitory computer readable storage medium of claim 15 , wherein the data is migrated to the NAS volume without moving underlying data of the plurality of data blocks to the NAS volume.
- 17 . The non-transitory computer readable storage medium of claim 15 , wherein the data is migrated without copying underlying data of the plurality of data blocks to the NAS volume.
- 18 . The non-transitory computer readable storage medium of claim 15 , wherein the initiator application is resident on an initiator device coupled to the storage controller by a network.
- 19 . The non-transitory computer readable storage medium of claim 15 , wherein the processing device is further configured to: renumber the plurality of data blocks associated with the file to have sequential block numbers in the NAS volume.
- 20 . The non-transitory computer readable storage medium of claim 15 , wherein the processing device is further configured to: move data underlying the plurality of data blocks associated with the file to one of the plurality of solid-state storage devices.
Description
REFERENCE TO RELATED APPLICATION This application is a continuation of U.S. application Ser. No. 16/195,403, filed Nov. 19, 2018, which is a continuation of U.S. application Ser. No. 15/284,777, filed Oct. 4, 2016, now U.S. Pat. No. 10,162,523, issued Dec. 25, 2018, the contents of which are hereby incorporated by reference. BACKGROUND As computer memory storage and data bandwidth increase, so does the amount and complexity of data that businesses manage daily. Large-scale distributed storage systems, such as data centers, typically run many business operations. A datacenter, which also may be referred to as a server room, is a centralized repository, either physical or virtual, for the storage, management, and dissemination of data pertaining to one or more businesses. A distributed storage system may be coupled to client computers interconnected by one or more networks. If any portion of the distributed storage system has poor performance, company operations may be impaired. A distributed storage system therefore maintains high standards for data availability and high-performance functionality BRIEF DESCRIPTION OF THE DRAWINGS The present disclosure is illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings. FIG. 1 is a block diagram illustrating a storage system in which embodiments of the present disclosure may be implemented. FIG. 2 is a block diagram illustrating virtual copy logic in a storage controller, according to an embodiment. FIG. 3 is a flow diagram illustrating a method for data migration using virtual copy, according to an embodiment. FIG. 4 is a flow diagram illustrating a method for data migration using virtual copy, according to an embodiment. FIG. 5 is a flow diagram illustrating a method for data migration using virtual copy, according to an embodiment. FIG. 6 is a flow diagram illustrating a method for data migration using virtual copy, according to an embodiment. FIG. 7 is a block diagram illustrating an exemplary computer system, according to an embodiment. DETAILED DESCRIPTION Embodiments are described for migrating data between volumes using a virtual copy operation. In one embodiment, a user may wish to migrate data from an existing block-based storage system, in a storage area network (SAN) volume, for example to a file-based storage system, perhaps managed by a network attached storage (NAS) server. Conventional systems performing such a migration generally involve having a client copy data from the SAN volume, which may be fronted by a file system, to a NAS volume. In some cases, though, the SAN volume and destination NAS volume may be located on storage devices in the same storage array. When the migration is being performed within the same storage array, it may not be necessary to actually copy any data, which utilizes processing resources and bandwidth. Instead, in one embodiment, the storage system can use the virtual copy techniques described herein. In one embodiment, virtual copy logic having knowledge of the file structure on the SAN volume goes through the volume, associating particular blocks with the destination NAS volume. For example, this approach might identify block numbers 5, 100, 72, and 90 from the SAN volume as blocks to migrate and include in the NAS volume. The virtual copy logic may instruct the destination NAS volume to make this association by adding an indication of the identified blocks (i.e., virtual block numbers) to volume metadata corresponding to the NAS volume. In addition, certain blocks included in the SAN volume may include file metadata specifying the structure and contents of a particular file to be included on the NAS volume. The virtual copy logic can add the file metadata to the filesystem of the NAS volume to create the file out of the underlying data blocks. If the logical volumes are on the same storage system, no actual movement of the underlying data is involved. Instead, the virtual copy operation establishes a relationship between the data blocks (or other data elements) from a first logical volume and the file name from the second logical volume. This approach is much faster than a client reading the data from the SAN volume and subsequently writing it to the NAS volume. The virtual copy operation requires no user data transfer and minimal bandwidth to implement. As a result, the virtual copy operation is faster and more efficient than copying the data directly. In addition, the virtual copy operation prevents the unnecessary creation of duplicate copies of the underlying data which saves valuable space on the physical storage medium. In one embodiment, the destination NAS volume may optionally renumber the data blocks in the file into a more efficient arrangement. In this embodiment, the migration client would still provide the block numbers and the destination file name, but the NAS volume may establish new links with new block numbers to the existing data. For example, using th