trident icon indicating copy to clipboard operation
trident copied to clipboard

Support snapshots on ontap-nas-economy driver

Open eedo369 opened this issue 3 years ago • 6 comments

Describe the solution you'd like Support snapshots on ontap-nas-economy driver, in order to use Astra Control Center.

Describe alternatives you've considered None.

Additional context Due to the nature of K8s, we can easily reach hundreds and thousands of PVs, while using the Astra Trident + ONTAP solution. Because of this, we almost always have to use the ontap-nas-economy (mostly) and the ontap-san-economy (sometimes). This, in turn, make using Astra Control Center as a backup product very difficult, as it does not support the ontap-nas-economy driver. It would also be very helpful to have this feature in Astra Trident for manual taking of snapshots, but Astra Control is the main driving reason for us needing the feature.

eedo369 avatar Aug 25 '22 13:08 eedo369

+1. this is certainly very desirable functionality since we run into the same issue in our (large) on-premise environment. We are forced to use the nas-economy-driver due to the volume limits within ontap (metrocluster). In addition, given the fact that many/all k8s backup products (eg Velero,kasten-k10) rely on snapshots, the lack of this functionality in the economy driver is very bad. Hopefully this feature will be added soon.

bert-jan avatar Aug 31 '22 18:08 bert-jan

Hi @eedo369 and @bert-jan,

This isn't an enhancement that Trident can support as ONTAP does not support taking or restoring snapshots of individual Qtrees. The ontap-nas-economy driver has the trade off of being able to provide more PVs on your ONTAP systems with the trade off that you don't get all of the same features included with the ontap-nas driver.

If the ontap-san-economy driver is a viable option for you then you can get the higher PV counts as well as features like snapshots and cloning. This is possible since the ontap-san-economy driver uses LUNs in a parent FlexVol for each PVC that is provisioned. ONTAP does support snapshots and cloning at the LUN level.

gnarl avatar Sep 01 '22 20:09 gnarl

Thanks @gnarl,

Can you explain how the ontap-san-economy driver gets around the issue? As far as I know, snapshots in ONTAP are still taken at the volume level, and so we could still have multiple snapshots per volume - per the number of LUNs/PVs. Does Trident use the 'file clone'/'single file restore' flows in ONTAP for the CSI driver?

If I compare the backup flow to NetApp's SnapCenter (either standalone or for VMware) - it also can take multiple snapshots per volume, if said volume contains multiple LUNs. The only feature that will be unavailable when dealing with multiple LUNs per volume is SnapRestore, which should be an acceptable compromise.

So for ontap-nas-economy we could have either:

  1. "SnapRestore"-like functionality - by using an automated 'single file restore' for all the files in a Qtree. Same could be done for clones with the 'file clone' feature in ONTAP.
  2. Self-service - The ability to take snapshots and mount them, in order to manually copy necessary files.

Both options I believe could be a working solution for a 3rd party backup solution, such as Astra Control. The user will need to take care to limit the number of PVs/Qtrees per volume in order to not go past the snapshot limit (in accordance with their backup policy), but that is true for all backup solutions and applications (not just K8s).

Single file restore in ONTAP: https://docs.netapp.com/us-en/ontap/data-protection/restore-single-file-snapshot-task.html

File clone in ONTAP: https://docs.netapp.com/us-en/ontap/volumes/create-flexclone-file-flexclone-lun-task.html

eedo369 avatar Sep 04 '22 07:09 eedo369

Hi, @eedo369. The ontap-san-economy driver emulates snapshots by creating LUN clones. It doesn't use Flexvol snapshots.

Although ONTAP cannot snapshot qtrees, one may still configure ontap-nas-economy with a snapshot policy that creates Flexvol snapshots periodically, and the .snapshot directory will be available inside the qtrees. Are you proposing that the qtree driver also take Flexvol snapshots on demand (imposing a scaling limit) to enable backup applications?

clintonk avatar Sep 06 '22 19:09 clintonk

Hi Clinton,

Almost all k8s backup applications rely on (Flexvol) snapshots so the ontap-nas-economy isn’t very useful for use in our Metrocluster environment. We want to protect our workloads on k8s and prefer to use NFS and not iSCSI.

Op di 6 sep. 2022 om 21:05 schreef Clinton Knight @.***>

Hi, @eedo369 https://github.com/eedo369. The ontap-san-economy driver emulates snapshots by creating LUN clones. It doesn't use Flexvol snapshots.

Although ONTAP cannot snapshot qtrees, one may still configure ontap-nas-economy with a snapshot policy that creates Flexvol snapshots periodically, and the .snapshot directory will be available inside the qtrees. Are you proposing that the qtree driver also take Flexvol snapshots on demand (imposing a scaling limit) to enable backup applications?

— Reply to this email directly, view it on GitHub https://github.com/NetApp/trident/issues/763#issuecomment-1238541704, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABDSAGBSKP4WVVEJ4FNSKCDV46IWDANCNFSM57TCJJGA . You are receiving this because you were mentioned.Message ID: @.***>

bert-jan avatar Sep 06 '22 19:09 bert-jan

@clintonk

The ontap-san-economy driver emulates snapshots by creating LUN clones. It doesn't use Flexvol snapshots.

My offer to counter that for the nas-economy driver is to use the 'file clone' functionality - which can virtually create a new and separate Qtree with all its files using no additional space. But it could be considered an "over-the-top" solution which can be very complicated and metadata-io-intensive.

Are you proposing that the qtree driver also take Flexvol snapshots on demand (imposing a scaling limit) to enable backup applications?

Yes, I believe the easiest solution to bypass the ONTAP limitation is to take a FlexVol snapshot that houses all Qtrees inside of it. As, like you said, this is probably what users that want backups are doing anyway as this is their only option.

Your insight is interesting - A user can then manually restore files from the .snapshot, create a new PVC from the .snapshot folder, or we could wrap it nicely with API calls and present it to the end user using a tree view - for example with Astra Control.

What restore capabilities are we allowing with the ontap-nas vs the ontap-san/economy drivers? Do they allow in-place and out-of-place restores?

eedo369 avatar Sep 08 '22 21:09 eedo369

This issue is fixed in 23.07 release.

uppuluri123 avatar Dec 04 '23 03:12 uppuluri123

Closing this isue.

uppuluri123 avatar Dec 04 '23 03:12 uppuluri123

This issue is fixed in 23.07 release.

Hi @uppuluri123,

Can you please point us to the fix? I don't see anything regarding snapshot support on ontap-nas-economy in the changelog.

eedo369 avatar Dec 17 '23 11:12 eedo369

@eedo369: it's included in the ACC 23.10 release, docs can be found here: https://docs.netapp.com/us-en/astra-control-center/use/protect-apps.html#enable-backup-and-restore-for-ontap-nas-economy-operations

ntap-johanneswagner avatar Dec 18 '23 03:12 ntap-johanneswagner