Site icon Ron Ekins' – Oracle Technology, DevOps and Kubernetes Blog

Oracle Database Storage Array Usage and Data Reduction Ratio Analysis

Oracle Database 19c

Oracle Database 19c

I was recently asked Does a Pure Storage FlashArray include empty, unused Oracle Database space within its data reduction calculation ?.

As I am sure many others may have had the same question, I thought it would make a good topic for a blog post, so here we go.

FlashArray Data Reduction

From the FlashArray User Guide we can read the following definition:

Data Reduction: Ratio of mapped sectors within a volume versus the amount of physical space the data occupies after data compression and deduplication. The data reduction ratio does not include thin provisioning savings. For example, a data reduction ratio of 5:1 means that for every 5 MB the host writes to the array, 1 MB is stored on the array’s flash modules.

FlashArray Volumes

To demonstrate that allocated, used space Oracle Database is not included within the calculation I have pre-created 4 empty 10TiB volumes, these will be used for my TEST Oracle ASM tablespace.

Oracle ASM DiskGroup View

Let’s start by creating an Oracle ASM Diskgroup called TEST using the 4 FlashArray volumes previously created.

And then checking the space reported using the following Oracle SQL.

SELECT name, type, total_mb, free_mb, usable_file_mb, required_mirror_free_mb, (total_mb-free_mb) as used_mb FROM V$ASM_DISKGROUP;
Oracle ASM Diskgroup Usage

In the above we can see that Oracle reports that the TEST Oracle ASM Diskgroup has a TOTAL_MB of 41,943,040. Note, even though the column is called TOTAL_MB Oracle is actually reporting MiB rather than MB.

For example:

The USED_MB is 336 MiB this is inline with expected.

The value is typically ~1% of the total storage capacity, the disk header overhead varies depending upon on the number of Oracle ASM disks.

Note the REQUIRED_MIRROR_FREE_MB is zero as I am using external protection. Offloading protection to the always-on raid protection provided by the FlashArray.

FlashArray View

Returning to the WebUI or using the FlashArray CLI we can check the impact of creating the TEST Oracle ASM Diskgroup.

From the CLI we can perform a ‘purevol list <volume name> –-space –-total’ command to confirm the space used by the TEST ASM Diskgroup. For example:

purevol list z-racpod::dg_data05,z-racpod::dg_data05,z-racpod::dg_data06,z-racpod::dg_data07,z-racpod::dg_data08 --space --total

This again is all as expected, with the Virtual MiB representing the storage capacity reported to hosts.

Oracle Database

To see how data reduction is reported for allocated unused space I will now create a 1TiB Oracle BigFile Tablespace in the TEST Oracle ASM Diskgroup.

create BIGFILE tablespace test datafile '+TEST' size 1T;

Let’s query Oracle again, we can now see that the USED_MB is now 1,048,920.

After a period of time the FlashArray will complete its data reduction and will settle on the a data reduction figure.

Again, returning to the FlashArray and repeating the purevol list command for the volume in the Oracle ASM TEST Diskgroup.

purevol list z-racpod::dg_data05,z-racpod::dg_data05,z-racpod::dg_data06,z-racpod::dg_data07,z-racpod::dg_data08 --space --total

From the above we can see the FlashArray is reporting

This confirms that the Data Reduction does not include the thin provisioning savings within the Oracle BigFile tablespace.

Summary

In this blog post I have hopefully demonstrated how allocated, unused Oracle space is reported, data reduction is calculated and that thin provision savings are not reported within the data reduction number.

Exit mobile version