FlexClone is a NetApp technology for quickly creating virtual copies of volumes, files, or LUNs without initially making a full copy of the source data. A clone is created from an existing Snapshot and shares unchanged data blocks with the source object, allowing the operation to require significantly less time and additional storage space than traditional copying.
FlexClone is used in NetApp storage systems running ONTAP. The technology is particularly useful in environments where multiple independent copies of the same dataset need to be created regularly, for example, for development, testing, analytics, or database workloads.
How Does FlexClone Work?
FlexClone is based on Snapshot technology. A Snapshot captures the state of the source object at a specific point in time, and a FlexClone is then created from that Snapshot.
When a clone is created, the data is not duplicated in full. The source object and the FlexClone initially share unchanged data blocks. As a result, even a clone of a large volume can be created quickly without immediately allocating storage capacity equal to the size of the source data.
Once created, the FlexClone becomes a separate writable object. As the source data or the clone changes, the system stores the required blocks separately. Consequently, additional storage space is used primarily for the differences between the versions rather than for another complete copy of the entire dataset.
For example, if several test environments need to be created from a production database containing several terabytes of data, conventional copies would require the data to be duplicated multiple times. FlexClone makes it possible to create separate working instances while continuing to share unchanged blocks.
What Objects Can Be Cloned?
In ONTAP, FlexClone technology can be used at different storage levels. Depending on the system configuration and ONTAP version, it can create:
- FlexClone volumes — clones of existing FlexVol volumes
- FlexClone files — individual file copies
- FlexClone LUNs — clones of LUNs for SAN environments
This makes it possible to use the technology both for copying entire datasets and for more targeted scenarios where cloning a complete volume is unnecessary.
Where Is FlexClone Used?
One of the primary use cases for FlexClone is development and testing. Teams can create multiple isolated environments from a single source dataset without consuming storage capacity for a full copy for every developer or test scenario. FlexClone can also be used for:
- creating database copies for testing updates and applications
- preparing temporary environments for analytics and reporting
- quickly provisioning data copies for developers
- creating environments for validating changes before deploying them to production
- working with virtual machines and other workloads that require multiple similar datasets
The benefits are particularly significant when working with large amounts of data. The larger the source dataset and the more copies that are required, the greater the potential savings in time and storage capacity compared with traditional full-copy methods.
FlexClone vs. Snapshot: What Is the Difference?
FlexClone is closely related to Snapshot technology, but the two serve different purposes. A Snapshot represents the state of data at a specific point in time and is typically used as a basis for recovery, data protection, and other operations. A Snapshot itself is not a fully independent working copy of the source volume.
A FlexClone is created from a Snapshot and provides a writable copy of the data. Users or applications can work with the clone separately from the source object, write new data, and modify existing data.
In other words, a Snapshot captures the state of the data, while FlexClone makes it possible to use that state to quickly create a separate working environment.
FlexClone Dependency on Source Data
Storage savings are possible because the FlexClone and its parent object share data blocks. This relationship with the source volume and Snapshot must therefore be taken into account when managing clones.
If necessary, a FlexClone volume can be split from its parent volume using a clone split operation. During this process, shared blocks are copied so that the clone becomes independent and no longer depends on the parent data. This requires additional storage capacity but may be necessary when the clone is intended to operate as a standalone long-term volume.