ONTAP Discussions

Snapshot operation failed.

ihkberlin
6,238 Views

Hello there,

i have a problem creating a snapshot of a certain volume. I get the following error when invoking the "snap create" command for that volume:

"Snapshot operation failed: No space left on device."

I don't think the volume or aggreagte (aggr1) is full, am I getting something wrong?

filer01> df -A -g
Aggregate                total       used      avail capacity
aggr2                   2498GB      843GB     1654GB      34%
aggr2/.snapshot          131GB      114GB       17GB      87%
aggr0                    657GB      595GB       61GB      91%
aggr0/.snapshot            0GB        0GB        0GB     ---%
aggr1                   4090GB     3656GB      434GB      89%
aggr1/.snapshot            0GB        0GB        0GB     ---%

filer01> df -V -g

/vol/vol_solaris_bak/       52GB       50GB        1GB      96%  /vol/vol_solaris_bak/
snap reserve              13GB        0GB       13GB       0%  /vol/vol_solaris_bak/..

Oh... just as i'm wrinting these lines. Can the missing snapshot reserve on the aggregate öevel be the reason for the problem???

The aggregate in question is aggr1.

Hmm, even after setting the snap reserve for the aggregate to 2% which should be enough to fit the snap for the volume in there it's not working.

Still get the "Snapshot operation failed: No space left on device." error. 😞

Any help would be appreciated. I really need to get this volume snapshotted.

4 REPLIES 4

rmatt
6,238 Views

If you have the code snippet, it would be helpful to see it, but just a couple of points:

1) The snapshot shouldn't take space unless there are LUNs in the volume, in which case the reserve comes into play -- if you don't have enough space, it won't let you take the snapshot because it doesn't have enough reserve in the volume for the remaining blocks based on the size(s) of the LUN(s).

2) You are showing aggregate information instead of volume information.  Can you 'df -h <volume>' to display the information for the volume?  I don't think you're doing aggregate level snapshots, but you're showing aggregate data instead of volume data.

3) You can always test the snapshot manually on the controller and see if it reports the same error.  A simple 'snap create <volname> <snapname>' would suffice (unless you're doing some sort of 'snap create -A <aggrname> <snapname> aggregate snapshot -- but I don't know what API call you would use for something like that).

Thanks,

--Matt

ihkberlin
6,238 Views

Hi Matt,

i'm not doing any API calls, i'm doing all of this via SSH.

Here's the output of 'df -h <vol-name>

filer01> df -h vol_solaris_bak
Filesystem               total       used      avail capacity  Mounted on
/vol/vol_solaris_bak/       52GB       50GB     1924MB      96%  /vol/vol_solaris_bak/
snap reserve              13GB        0GB       13GB       0%  /vol/vol_solaris_bak/..

The Lun inside the Vol is 50GB in size:

filer01> lun show

/vol/vol_solaris_bak/solaris_bak     50g (53687091200)   (r/w, online, mapped)

If that is not enough can i get around this problem by reducing the fractional reserve?

Right now it is set to 100%.

thanks in advance

Alex

rmatt
6,238 Views

Well, a few points to consider:

1) FSR at 100% is the default to prevent running out of space in the volume for new blocks written to the LUN(s).  For example, if you have no snapshots on the volume (and there's a LUN in there), once you take a snapshot, it looks at the size of the LUN(s) in the volume and the FSR percentage to determine how much space to reserve.  If you don't have space based on the size required, it won't let you take the snapshot.  This is the traditional 2x + delta space model.

2) If you are going to go with FSR less than 100%, you should use the 'vol autosize' and 'snap autodelete' features on the volume to help you manage space consumed by snapshots and free space in the volume.  I'm a big proponent of using FSR < 100% (such as 0%) but not without first making sure you have appropriate policies set on the volumes to ensure you are keeping enough free space for your snapshots, and if you need more, the volume will automatically grow as needed or delete snapshots in an orderly manner.  NetApp has a great set of tunable values to help you manage this just the way you want.

I'd highly recommend a read through NetApp Technical Report 3483 to gather a solid understanding of provisioning to both maximize your space and manage your snapshot growth in a extremely useful fashion.  Before setting FSR < 100% take a look at the paper and set the volume/snapshot options according to your SLAs and your growth needs.

Hopefully this helps.  Thanks,

--Matt

ihkberlin
6,238 Views

Hi Matt,

thanks again for your time and information.

Problem ihas been resolved using a lower fractional reserve.

Cheers,

Alex

Public