Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Mute
- Printer Friendly Page
snapshot uuid changes for snapshot residing on target volume if storage efficiency is enabled
2025-03-03
11:37 PM
2,003 Views
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello,
I'm posting this on behalf of customer for NetBackup
what we do in nutshell is
1.we establish replication relationship between source and target volume
2.call ontap.SnpamirrorTransfer() to enable replication ,we wait util we see transfer state is successful
3.call ontap.snapshot() on target volume and save attributes of snapshot residing on target volume
what we have observed is if storage efficiency is enabled for target volume
- after replication is successful , storage efficiency runs and updates uuid of already existing snapshot on target volume
- Hence we have invalid uuid of snapshot as we have already picked up snapshot attributes mentioned at steps 3
- Due to this invalid uuid we fail to perform different operations like export/deport/delete operation for snapshot residing on target volume
How can we retrieve valid attributes of snapshot if storage efficiency is enabled on target volume using python SDK
we already have case #2010285475 opened ,respective support has asked to post query in this forum and get solution for this
8 REPLIES 8
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
you are not allowing sufficient time to finish the replication. Storage efficiency operations take time to complete and get you new UUID.
you need to programmatically monitor the volume efficiency state and the progress, say for 2 or 5 or 10 minutes
remember , your new valid UUIDs will be only present once the efficiency operation is complete. else you will always get stale IDs
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Amit,
How do we track volume efficiency state using specific field
I can see below API to fetch some volume fields as below
curl -X GET "https://<mgmt-ip>/api/storage/volumes/<volume-uuid>?fields=efficiency.state,efficiency.compression.state,efficiency.deduplication.state" -H "Accept: application/json"
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
put a timer/wait interval to check
volume.efficiency.state == "idle"
idle state would mean your efficiency op is complete
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
should we check
if efficiency is enabled on target volume
curl -X GET "https://<mgmt_ip>/api/storage/volumes/<vol_uuid>?fields=efficiency.state" -k
confirm that efficiency op_state is idle
curl -X GET "https://<mgmt_ip>/api/storage/volumes/<vol_uuid>?fields=efficiency.op_state" -k
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
looks like this field is not available at API or I may be missing something here
curl -X GET "https://<mgmt_ip>/api/storage/volumes/<vol-uuid>?fields=volume.efficiency.state" -H "Accept: application/json" -k
{
"error": {
"message": "The value \"volume.efficiency.state\" is invalid for field \"fields\" (<field,...>)",
"code": "262197",
"target": "fields"
}
}
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
can you try /api/storage/volumes/{uuid}/efficiency
is there any possibility of you using "name" instead of "UUID". We know that name persists unlike the snapshot UUID
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
As name suggests UUID has to be unique and hence persistant (can not be changed) and thats a very reason of its existence.. I have yet to encounter use case where UUID of any entity is non persistent (can be changed) . If my understanding is correct ,Ideally replication should have taken care of this for Snapshot UUIDs if storage efficiency is enabled on target volume
As you mentioned ,efficiency field returns below enclosure
% curl -X GET "https://<mgmt-ip>/api/storage/volumes/<vol_uuid>?fields=efficiency" -k --user user:pass -H "Accept: application/json"
{
"uuid": "<vol_uuid>",
"name": "<dest>",
"efficiency": {
"compression": "none",
"dedupe": "background",
"cross_volume_dedupe": "none",
"compaction": "none",
"schedule": "sun-sat@0",
"volume_path": "/vol/<dest>",
"state": "enabled",
"op_state": "idle",
"type": "regular",
"progress": "Idle for 14:28:15",
"last_op_begin": "Wed Mar 12 00:00:00 2025",
"last_op_end": "Wed Mar 12 00:00:00 2025",
"last_op_size": 0,
"last_op_state": "Success",
"has_savings": true,
"logging_enabled": true,
"policy": {
"name": "-"
},
"space_savings": {
"compression": 0,
"compression_percent": 0,
"dedupe": 0,
"dedupe_percent": 0,
"dedupe_sharing": 0,
"total": 0,
"total_percent": 0
},
"scanner": {
"state": "idle"
}
}
}%
which exact field we need to track and for what ideal value to confirm storage efficiency is completed
as mentioned above I see probable fields here ,but you can confirm same
curl -X GET "https://<mgmt_ip>/api/storage/volumes/<vol_uuid>?fields=efficiency.state" -k
curl -X GET "https://<mgmt_ip>/api/storage/volumes/<vol_uuid>?fields=efficiency.op_state" -k
curl -X GET "https://<mgmt_ip>/api/storage/volumes/<vol_uuid>?fields=efficiency.scanner.state" -k
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi AmitKerkar, Do you have any updates here?
