Oracle Licensing: Soft Partitioning on VMware is Your Contractual Right

posted September 17, 2014, 5:01 PM by

Dave Welch (@OraVBCA), CTO and Chief Evangelist

Oracle Corporation’s Tom Kyte did a keynote at Oracle Open World 2006 in a very large hall at the Hilton Union Square titled, “Things you think you know.” I thoroughly enjoyed the session. Quoting from one of Tom’s slides: “It ain’t so much the things we don’t know that get us into trouble. It’s the things you know that just ain’t so …”

Probably 98% of us are willing to admit we’ve been there on substantive issues. The other 2% are liars.

The Oracle Partitioning Policy document has existed in various forms beginning around 2002. Regardless of its various names, its first instantiation defined the difference between Hard Partitioning and Soft Partitioning. The current document’s first sentence makes it clear partitioning has to do with a single physical server. The document’s first instantiation identified VMware as being soft partitioning. As such, the document has always maintained VMware could not be used to limit the number of cores to be licensed within a physical server.

It turns out the Oracle Partitioning Policy document is non-contractual. It is not referenced by the contract (older OLSAs from 2002 through 2012 or the newer OMA 2013-2014), whether by document name, direct URL reference, or even the document’s presence on a generic URL landing page that may be specified by the contract. (In all the Oracle paper we’ve reviewed, we only recall seeing this one contract that actually contains Soft Partitioning and Hard Partitioning definition paragraphs: Pinellas County’s January 2010 ULA draft.) Therefore, quoting the Entire Agreement clause out of the City of Oceanside 2011 OLSA for example, “… this Agreement supersedes all prior or contemporaneous agreements or representations, written or oral, regarding such Programs and/or Services.”

Oracle, at one of our customers, recently had to point out to us the non-contractual status of the Oracle Partitioning Policy document. Before September 2012, the Partitioning Policy document stated all enabled cores must be licensed. The document was versioned in September 2012 to state all cores enabled when the server ships must be licensed. We were asking Oracle to back off the language to pre-September 2012. Oracle declined on the grounds that it couldn’t negotiate terms in a non-contractual document.

I’d been telling people for a decade this doc was contractual based on my belief that I’d seen the contract’s integration of the document. As such, I’d told people I fully expected a judge to vacate the doc’s “for educational purposes only—may not be incorporated into any contract” footer if push came to shove.

Having received this guidance from Oracle, I validated Oracle’s assertion in versions of the Oracle contract minimally through public sources beginning around 2002 when the Oracle Partitioning Policy document was introduced. What Oracle had told us in the negotiation was indeed correct. I was wrong and had missed it on this issue.

Where does this leave us in terms of each of the seven potentially germane Oracle licensing policy documents?

 

It would appear Oracle had made this all too easy for all of us over the years. Have a look at the footers of each of these seven documents. The five that are non-contractual have the footer stating the document is for educational purposes only and cannot be integrated into any contract or agreement. The two that are contractual have no such disclaimer.

So, let’s have a look at the contract. Scan it and the two policy documents integrated into it by direct reference (those being the Technical Support Policies document and the Core Processor Factor Table) for either of the words VMware or Partition.

  • “Partition” is found but only referring to the Database Partitioning Option, which of course refers to partitioning tables within a database
  • “VMware” is not found

 

Where does that leave us? Only with the Licensing Definition and Rules subsection “Processor”, which basically says you must license all processors where the Oracle executables are either installed and/or running. That’s it.

With respect to database, the contract is not cluster-based. (Exceptions: the Oracle Standard Edition RAC bundle introduced with 10g, stating the maximum capacity of the physical cluster can be no more than four sockets, and the “enhancement” of the so-called 10-Day Rule in recent years such that the no-cost fail-over node must share a storage array and cluster with the protected licensed nodes.) The contract is not even physical server-based. It’s processor based. Indeed, the contract is agnostic to VMware in every way, whether it has to do with sub-cluster licensing privileges, or sub-server processor licensing.

This is an appropriate time to shout out to License Consulting’s Daniel Hesselink. With respect to the non-contractual status of the Oracle Partitioning Policy document, Daniel had the issue right in his VMworld 2012 session BCA1751 “Virtualizing Oracle to Save on Licensing Costs.”

Join Daniel in person, and me by phone connection, for VMworld EMEA 2014’s Oracle on VMware licensing group discussion (VAPP 3468-GD) moderated by Don Sullivan on Thursday, October 16, 2014 at 1:15 PM.

That said, House of Brick is not ready at this time to endorse that licensees attempt to license less than all CPU’s on a server with any method other than BIOS socket disabling of processors. The reason is that House of Brick currently has no tooling with which we can validate how carefully vSphere respects Core Affinity assignments during normal operations. For example, if a two-vCPU workload is assigned to cores 2 and 3 on a 16-core box, during VM start-up could some of the application code run momentarily on some core other than 2 or 3? Accordingly, House of Brick invites VMware engineering to comment on this issue.

Here is the single test we have run for this issue. We attempted to configure Core Affinity through the Virtual Center Server client on a two CPU sever and assign the VM to non-existent core 3. The user interface rejected that as core 3 didn’t exist. Therefore we edited the .vmx file to assign the VM to core 3. The purpose was to simulate a VM that had been assigned to a disabled or non-existent core, or to simulate vMotion to a server that did not have the same core available as the source server. When we started the VM, it started without regard to the core affinity assignment. The log file shows the VM came up on CPU 0 with no warnings or messages.

On a related note, House of Brick would think it would be perfectly defendable for Oracle to look the other way should its own OVM not be exact in respecting core pinning boundaries should they be configured (we don’t know that), but have every right to legally go after another vendor’s hypervisor technology that may also not tightly respect core affinity boundaries.

So I’m walking this back. I’ve consistently asserted the Oracle Partitioning Policy document was contractual. I can think of these examples:

 

Of course I’m not alone in having assisted Oracle in promoting the error. It may be that some others have been following my lead.

VMware Corp published a white paper in November 2011 titled “Understanding Oracle Certification, Support, and Licensing for VMware Environments.” The paper included disabling of a socket via BIOS. I wonder if that inclusion led to Oracle’s September 2012 versioning of its partitioning policy document mentioned earlier.

As sorry as I am that I missed this issue, the discovery that the Oracle Partitioning Policy document is non-contractual increases Oracle licensees’ privileges. Ultimately the blame rests with Oracle Corporation for not having eliminated the confusion.

Next blog post: Strategies for Managing Oracle Licensing Compliance in a Shared Storage Environment

1 – Recent versions of the Software Investment Guide (including the March 25, 2014 revision available at oracle.com at the time of this writing) have introduced this paragraph with some language found nowhere in the contract: “When deploying on shared storage devices, standard-licensing policies applies (sic). All processors where the Oracle programs are installed and/or running need to be licensed.” The convenient proximity of those two sentences in the same paragraph could imply full-cluster licensing even if that is not explicitly stated. House of Brick will deal with this issue in a follow-up blog entry.

Share with your networkTweet about this on TwitterShare on LinkedInShare on FacebookDigg thisEmail this to someone

7 Comments

  • Kyle says:

    Is anything different now in June of 2016?

    Lets say one decides to do the BIOS management of Running VMWare with Oracle App server licensing on the Active Core count. I believe this post is stating under contractual documents this is possible. in the vain of not being able to stand in court. Let’s for the sake of continuing in this vain, when said client needs assistance from Oracle, does Oracle have any ability to refuse assisting on support tickets?

  • Tim says:

    I think the best course of action is to never, ever buy anything from Oracle.

  • Dave Welch says:

    Graeme,

    Yes, that’s my statement. It is quite impossible to install and/or run a program on a BIOS-deactivated core. I made sure the BIOS-disabling option was in VMware’s Oracle licensing white paper.

    I’ve heard the complaint that Oracle has no way to audit such BIOS changes. Should a platform not maintain a BIOS change log, an audit trail can easily established by focusing a video cam on a console, hitting a few random world clock sites to document the date/time, making the change, saving out, and keep the video rolling until vSphere startup on the box would intersect with the vCenter infrastructure database record.

    As for Oracle accepting this as a method of partitioning a physical server, see my May 29th reply below to a previous comment.

    Dave

  • Graeme Lawton says:

    Are you suggesting or stating that it is a sufficient method to deactivate cores/CPU’s at the BIOS level in order to reduce the processor footprint of a server and that Oracle accepts this as a method of hard-partitioning a physical server?

  • J says:

    Oracle declined to negotiate the terms as those terms were not contractual – How successful is Oracle in enforcing non-contractual terms with its customers?

    • Dave Welch says:

      The answer is just as successful as any given customer decides to allow Oracle to be.

      In our observation and experience, Oracle has no power to enforce extra-contractual terms that customers don’t grant it.

      Not all House of Brick Oracle licensing consulting customers’ legal teams get involved to either affirm the contract is agnostic to VMware or do related case law searches. Of those that do, we have yet to find a report of any case law where Oracle filed a legal challenge to assert its alleged VMware-specific Oracle licensing rights. That’s saying something given that we’re dealing with the world’s largest RDBMS licensor. I would think that if there had been any substance to Oracle’s VMware-specific licensing assertions, Oracle would have had every incentive to file against somebody say around the 2007 time frame when the Tier-1 VMware market was heating up, to send the world a definitive signal to pre-empt that market’s predictable hemorrhage of Oracle’s licensing revenues. The plain, clear contract language that demonstrates that the contract is agnostic to VMware in every way confirms that Oracle hasn’t held back from filing only out of a desire to be deferent and turn the other cheek.

      On the other hand, I totally get how Oracle customers that don’t do their contractual and case law homework could be intimidated by the non-contractual representations and associated saber-rattling, and as such come under the category of what you might call successful Oracle enforcement.

Leave a Reply

Your email address will not be published. Required fields are marked *

WANT TO LEARN MORE?

Share with your networkTweet about this on TwitterShare on LinkedInShare on FacebookDigg thisEmail this to someone