![]() | Oracle System Handbook - ISO 7.0 May 2018 Internal/Partner Edition | ||
|
|
![]() |
||||||||||||||||||||||||
Solution Type Technical Instruction Sure Solution 2135190.1 : Oracle ZFS Storage Appliance: Why does the Free space reported not match the Available space?
In this Document
Applies to:Oracle ZFS Storage ZS3-4 - Version All Versions to All Versions [Release All Releases]Oracle ZFS Storage ZS3-BA - Version All Versions to All Versions [Release All Releases] Oracle ZFS Storage ZS4-4 - Version All Versions to All Versions [Release All Releases] Oracle Exalogic Elastic Cloud X2-2 One-Eighth Rack - Version X2 to X5 [Release X2 to X5] Sun ZFS Backup Appliance - Version All Versions to All Versions [Release All Releases] 7000 Appliance OS (Fishworks) GoalWhy does the Free space reported not match the Available space? SolutionOften times the "Free" space is observed to be less than the "Available" space.
A reservation represents a guarantee of space for a particular project or filesystem. This takes available space away from the rest of the pool without increasing the actual space consumed by the filesystem.
Viewing space utilizationThe space utilization of the appliance can be viewed in the browser interface under Status: DASHBOARD or in the command line interface under 'status storage show'. Example ZFSSA:> status storage show
Storage: pool-1: Used 5.52T bytes Available 16.2T bytes Free 8.83T bytes State degraded Compression: 1x Dedup: 1x pool-2: Used 296G bytes Available 260G bytes Free 65.0G bytes State online Compression: 1x Dedup: 1x
Determining what has placed a reservationIt is possible to identify unused reservation space for a project or its shares in the browser interface by navigating to Shares: PROJECTS and selecting the project by double-clicking on it or clicking on the pencil "Edit entry" icon. The usage will be displayed on the left. It may be necessary to hide the Projects menu to see the usage table. This information is also visible in the appliance command line interface using the following commands: shares set pool=<pool_name> shares select <project_name> get space_unused_res shares select <project_name> get space_unused_res_shares In this example there is a 2TB reservation at the project level and a 500GB reservation at the share level. ZFSSA:> shares select TestProject get space_unused_res
space_unused_res = 1.51T ZFSSA:> shares select TestProject get space_unused_res_shares space_unused_res_shares = 425G In this next example there is a no reservation at the project level and a 1TB reservation at the share level. ZFSSA:> shares select TestProject get space_unused_res
space_unused_res = 0 ZFSSA:> shares select TestProject get space_unused_res_shares space_unused_res_shares = 949G
Once a project is identified as containing shares with a reservation set you can query each share under that project to determine which has the unused reservation space. In the appliance command line interface display unused reservation space of a share using. shares set pool=<pool_name> shares select <project_name> select <share_name> get space_unused_res example: ZFSSA:> shares select TestProject select TestShare2 get space_unused_res Scripting alternativeManually checking each project and share may take a lot of time on an appliance with many shares. Oracle® ZFS Storage Appliance Administration Guide: Accessing the CLI Script Environment script
fmt = '%-62s %-18s\n'; printf(fmt, 'POOL: PROJECT/SHARE', 'UNUSED RESERVATION'); run('cd /'); run('shares'); pools = choices('pool'); for (p = 0; p < pools.length; p++) { set('pool', pools[p]); projects = list(); for (i = 0; i < projects.length; i++) { run('select ' + projects[i]); reservation_bytes = get('space_unused_res'); if (reservation_bytes != "0") { project = pools[p] + ': ' + projects[i]; var reservation_bytes = get('space_unused_res'); var remain = reservation_bytes % 1073741824; var reservation = ((reservation_bytes - remain) / 1073741824) + " GB"; if (reservation == "0 GB") { reservation = "< 1 GB" } printf(fmt, project, reservation); } shares = list(); for (j = 0; j < shares.length; j++) { try { run('select ' + shares[j]); share = pools[p] + ': ' + projects[i] + '/' + shares[j]; var reservation = get('space_unused_res'); if (reservation != "0") { var reservation_bytes = get('space_unused_res'); var remain = reservation_bytes % 1073741824; var reservation = ((reservation_bytes - remain) / 1073741824) + " GB"; if (reservation == "0 GB") { reservation = "< 1 GB" } printf(fmt, share, reservation); } } catch (err) {} run('cd ..'); } run('cd ..'); } } .
Making changes to reservationsIf you choose to make changes to a reservation set on a project or share please be aware of any impacts reducing the reservation may have on your clients before doing so. Oracle® ZFS Storage Appliance Administration Guide: File System and Project Settings
Checked for Currency - 04-FEB-2018
References<NOTE:1670200.1> - Oracle ZFS Storage Appliance: How To Determine Filesystem Free Space<NOTE:1565028.1> - Oracle ZFS Storage Appliance: System reports not enough space available during attempt to increase the space reservation on a file system. Attachments This solution has no attachment |
||||||||||||||||||||||||
|