Microsoft Virtualization Discussions
Microsoft Virtualization Discussions
Is the powershell cmdlets of bGet-NaVolSize Given the name of a flexible volume, return its current size in bytes.
same as the ontap cli vol size <volume name>?
Similary is Set-NaVolSize Given the name of a flexible volume, set the volume's size to the stated amount.
same as the ontap cli vol size <vol name> +/- new size ?
From my experience, the netapp cli command "vol size" returns size in the units in which size was set. In other words, if I enter "vol size vol1 1200g" and then enter the command "vol size vol1," I will expect a result of "1200g".
The command "df vol1" would return size in kibibytes (KiB) or 1024 bytes. The commandled "Get-NaVolSize vol1" command returns the size in bytes.
For example, here are the outputs for various commands in my environment for a volume named "vol1" (the volume name and NetApp names have been changed). The volume size was set previously to 200g by using the command "vol size vol1 200g"
filer> vol size vol1
vol size: Flexible volume 'vol1' has size 200g.
filer> df vol1
Filesystem kbytes used avail capacity Mounted on
/vol/vol1/ 188743680 80478696 108264984 43% /vol/vol1/
/vol/vol1/.snapshot 20971520 373032 20598488 2% /vol/vol1/.snapshot
PS> $volSize = Get-NaVolSize vol1
PS> $volSize.VolumeSize / 1GB
PowerShell allows conversion from bytes to Gibibytes (1 GiB = 1024^3 bytes) by dividing the bytes by 1GB.
When using Set-NaVolSize, the size is specified in the same format used by the NetApp CLI. So, a NewSize value of "214748364800" is just as valid as "200g"
I hope that helps.
Adai, the design point for the PowerShell Toolkit is to report all sizes, rates, etc. in bytes unless specifically stated otherwise. The data formatters do reduce those to human-readable values with units, and the setter cmdlets accept both byte values as well as values with units. The Toolkit invokes Data ONTAP APIs in most cases, rather than calling the CLI, but the Toolkit and CLI should obviously return the same results.
Let me explain the situation.
Say i create a volume snapmirror between two filers f1 and f2.In order to make sure that the VSM update always succed and to avoid constant resizing of the vsm destination volume I create the volume to the size of the aggr.
So if i have a source volume f1:v1 of 10g and aggr on filer f2: of size 100G. now in order to create a VSM destination volume on filer f2 i create a volume v2 of size 100G with guarntee set to none.
Now, once the VSM baseline is completed. On the destination filer f2.
df -h will give the size of f2:v2 as 10G( same as source)
vol size v2 will give the size as 100G( the size to which it was created)
so my question now is does running Get-NaVolSize will it reutrn 10g or 100G ?
I am looking for the command that will list 100G and not 10G.
Get-NaVolSize will return the actual size, ignoring snapshot reserve, etc. That's what you want.
Thanks Clinton and Glen...that solves my issue.
When the volume is a snapmirror destination and the source volume is smaller, there is a difference between the "df" results and the "vol size" results.
Here is how the different volume sizes are reflected in the powershell commandlet's
filer1> df -g /vol/dest
filer1> vol size dest
Warning: Volume 'dest' has fs_size_fixed option set. The file system
size may differ from the volume size.
See 'vol status -b' for more detail.
vol size: Flexible volume 'dest' has size 5g.
Get-NaVol will report the size actually being used. The *-NaVolSize cmdlets are to modify the actual size.
it is different though...
apollo [0:90]≥ Invoke-NaSsh -Command 'df -g /vol/vmdata0'
Filesystem total used avail capacity Mounted on
/vol/vmdata0/ 8192GB 135GB 6153GB 25% /vol/vmdata0/
/vol/vmdata0/.snapshot 2048GB 0GB 2047GB 0% /vol/vmdata0/.snapshot
apollo [0:91]≥ Get-NaVol vmdata0 | Select-Object -ExpandProperty SizeUsed | ConvertTo-FormattedNumber