Where’s my Oracle Database Volumes?

Introduction

A question I’ve heard a number of times from Oracle DBAs is I am using an Everpure (formerly Pure Storage) FlashArray for my Oracle Database, but how do I know what FlashArray is hosting my database volumes and what names does the Storage Admin know them by?

Mapping FlashArray Volumes

OK, for physical Linux database servers using block device or Virtual machines using Raw Device Mappings (RDMs) we can identify the FlashArray serial number by using lsblk, udevadm, or multipath.

I’ve previously shared how to map a Linux device to a vVOL FlashArray Volume if you are using vVOLS.

For the SCSI block device the first 9 character, are used to identify the vendor, for example Everpure (formerly Pure Storage) is identified by ‘3624a9370‘ and the remaining characters the FlashArray serial number.

NVMe volumes are a little more complex, they are presented using a NGUID, this broken into 3 parts as the NVM Express Base Specification.

  • Identifier Extension (First 7 bytes of the FlashArray ID)
  • IEEE Company_id (Pure Storage unique ID)
  • Vendor Specific Extension Identifier (Last 5 bytes of the FlashArray volume) for example:

FlashArray SCSI Volumes

Using multipath or udevadm from my Linux database server, I can see a FlashArray volume serial number for example: ‘704FA624CF6E4196036C326E‘, but without prior knowledge I can’t determine where it is.

# multipath -ll | grep PURE
dg_data01 (3624a9370704fa624cf6e4196036c326e) dm-24 PURE,FlashArray

# udevadm info -q all -n /dev/dm-24 | grep DM_SERIAL
E: DM_SERIAL=3624a9370704fa624cf6e4196036c326e

FlashArray NVMe Volumes

Using multipath or udevadm from my Linux Database server, I can determine the FlashArarry serial number for example: ‘6C1B16CE1C034D1C05569B29‘, but again without any prior knowledge it’s not was to know where they are.

# multipath -l | grep nvme
dg_fra01_nvme (eui.006c1b16ce1c034d24a9371c05569b29) dm-31 NVME,Pure Storage FlashArray

# udevadm info -q all -n /dev/dm-28 | grep DM_SERIAL
E: DM_SERIAL=eui.006c1b16ce1c034d24a9371c05569b17

Everpure Fusion Fleet Wide Searches

The Everpure Intelligent Control Plane provides us the ability to manage FlashArrays as a Fleet, with REST APIs delivering the ability to perform volume serial number and tag searches across the Fleet.

Search by Serial Number

Let’s see how we can use the Everpure Inteligent Control Plane to perform fleet wide searches.

Grab the FlashArray Serial Number for the database volume on Linux Oracle database server using lsblk, multipath, udevadm or scsi_id, for example:

# /usr/lib/udev/scsi_id –verbose -g -u -d /dev/sdb
3624a9370513519106e354b37000110ce

# udevadm info -q all -n /dev/sdb|grep ID_SERIAL
E: ID_SERIAL=3624a9370513519106e354b37000110ce

From my Oracle Linux Database server we have captured ‘513519106e354b37000110ce‘, the FlashArray expects uppercase so we will need to search for ‘513519106E354B37000110CE‘.

Using Postman and the Purity API 2.51+, we can search across the fleet using context_names and a list of comma-separated names, filtered on serial number, for example:

https://10.225.112.80/api/2.51/volumes?context_names=z-fastaines-a,z-fastaines-b,z-fastaines-c&filter=serial="513519106E354B37000110CE"

Using Postman:

From the above I can see my Linux database server disk ‘513519106e354b37000110ce‘ is located on FlashArray called z-fastaines-a, and the volume is named z-oraclepod::z-oracle2-u01.

Let’s confirm by logging into z-fastaines-a and performing a purevol list command.

pureuser@z-fastaines-a> purevol list z-oraclepod::z-oracle2-u01
Name Size Source Created Serial
z-oraclepod::z-oracle2-u01 1T z-oraclepod::z-oracle1-u01 2026-02-27 17:16:51 GMT 513519106E354B37000110CE

Job done!


Search by Tags

But we can do so much more, by using custom, extendable tags we can manage storage at the application / database level.

To identify all Database volumes for a database, we can search using database specific metadata tags, for example Database Name, Type, Classification, Location, Owner, or any other data we want to associate with the volumes.

Database Name

By adding a Database Name tag (dbName) on volumes, we can identify all volumes associated with the database name provided, for example:

https://10.225.112.80/api/2.51/volumes/tags?context_names=z-fastaines-a,z-fastaines-b,z-fastaines-c&filter=key='dbName' and value='cdb1'

Using Postman:

Environment

In my lab I have also tagged my database volumes with Environment, using this I search for all UAT databases.

https://10.225.112.80/api/2.51/volumes/tags?context_names=z-fastaines-a,z-fastaines-b,z-fastaines-c&filter=key='Environment' and value='UAT'

Using Postman:

Additionally, UAT or QA database environments.

https://10.225.112.80/api/2.51/volumes/tags?context_names=z-fastaines-a,z-fastaines-b,z-fastaines-c&filter=(key='Environment' and value='QA') or (key='Environment' and value='UAT')

Using Postman:

Summary

In this blog post I have shared how we can use Purity 2.51 REST APIs and Fusion to search across a Fleet of Everpure FlashArray for volume serial numbers, database names, database environment types or any other tag.

Leave a Reply

Create a website or blog at WordPress.com

Up ↑

Discover more from Ron Ekins' - Oracle Technology, DevOps and Kubernetes Blog

Subscribe now to keep reading and get access to the full archive.

Continue reading