As mentioned before, I frequently find myself in discussions around Oracle performance and how an Oracle database behaves on EMC storage. It turns out that often there is a lot of confusion on how the different layers interact with each other and very few people seem to understand the whole stack.
So I started a personal challenge to make a “one picture tells more than 1000 words” complete overview of the Oracle on EMC database stack.
Turns out it’s nearly impossible to get everything in one picture without cutting corners.
So here is a simplified (and therefore incorrect) picture. It ignores certain complexities and is far from complete, and might even contain errors.
I made a few assumptions and bypasses:
- The database is using ASM on Fibre Channel disks (picture for filesystems or NFS protocol would look very different)
- Storage is EMC Symmetrix (EMC VNX/CLARiiON would look very similar)
- Dual fabric SAN for high availability and load balancing
- No Virtual provisioning, FAST-VP etc (this would make the picture much more complicated)
- I focus on the database and redo log writer. Oracle has many more processes performing I/O. Left out for simplicity.
- I completely ignore the network layer. Not relevant for this explanation
- Also ignored are volume partitioning (alignment), host logical volume managers, oracle RAC etc etc etc.
- The picture reflects RAID-5 3Data+1Parity configurations. RAID-1 or RAID-6 would look very similar.
- Symmetrix Metavolumes are not always used. In many cases, customers assign Symm logical volumes directly to the host.
- And much more I didn’t mention…
Maybe it helps many people in starting to understand the end-to-end performance stack of an Oracle database. Feedback welcome as always!