VMware Cloud Community
IT_Architect
Enthusiast
Enthusiast
Jump to solution

Single Processor licenses and the VMware Virtualization Environment

Consider the follwing:

  • A 4 core processor is seen as a single processor for licensing purposes with Microsoft software.

  • VMware virtualizes each core as a logical processor.

  • Does Microsoft see these cores as coming from the same processor?

0 Kudos
66 Replies
meistermn
Expert
Expert
Jump to solution

Take this scenario:

Put on every 2 socket servern an esxi /esx 3.5 licence. What changed to the licencing model as it was before on a physical 2 socket server.

Nothing !http://communities.vmware.com/message/1134018/!! Bingo!!!

You only added a new layer.

So to say it clear.

At the moment you will not save application software licences through virtualization, if you want to reduce a cores or socket. This will only change, when the application vendor change their software licence model based on cores or thread. I think we will see this in 2010 with 12 core and 16 core cpu !!!

Maybe say change the licence modell based on users.

0 Kudos
IT_Architect
Enthusiast
Enthusiast
Jump to solution

Take this scenario:

Put on every 2 socket quad core server an esxi /esx 3.5 licence. What changed to

the performance for your existing software from before you put on VMware?

Bingo!!! Your applications now run a little less than 1/4th the speed as before you installed VMware because your software is licensed by socket and they now see each core as a socket. BUT you could always buy more software licenses, ram, or computers so you could run them on VMware.

I agree things will need to change in the licensing area for the true benefits of virtualization to be realized. Currently, one must be careful not to be penalized. If I could run all open source, virtualization would be a no-brainer.

0 Kudos
meistermn
Expert
Expert
Jump to solution

Take this scenario:

Meassure your enviroment through vmware capcity planner , platespin power recon, tivoli monitoring or

What you find:

70-90 % of your environment can be virtualized.

You find 5-10 % cpu use on the physical server.

Allthough you find that many 4 socket are used below 5 % cpu utilization

Take a intel quad core cpu 2930 MHZ take 10 % = 293 MHZ

1/4 of 2930 = 732,5 MHZ much enough. Although the Vm can use completely use 2930 MHZ for a 1 VCPU VM.

You are right only in this:

4 x 2930 MHZ =11720 MHZ

11720 take 1/4 = 2930 MHZ

If the server was before a 2 socket server, it can be configured as a 2 VCU VM, that is 2 x 2930 MHZ = 5860 MHZ.

So your case is valid for cpu performance hungry application. It is a special situation.

DCTony
Contributor
Contributor
Jump to solution

meistermn, you saved me from typing a long reply, thank you. The idea that a server will run 1/4 the speed because it is now on 2 cores instead of 8 goes against everything that virtualization stands for. The whole idea behind virtualization is to make use of those unused threads. How many times has a vendor givens specs for a server with two quad cores for a server that runs apps that aren't even multi-threaded? If you seriously are going to use all 24 GHZ of a physical server then I would suggest you not virtualize that server. In 95% of the cases two cores will be fine. In 50% of the cases that I have seen, one core is sufficient.

0 Kudos
IT_Architect
Enthusiast
Enthusiast
Jump to solution

Thanks all,

This has been a particularly fruitful thread. I'll still knock on the VMware door to learn if they have any "rabbits in their hat" concerning this situation. I agree with you there is variety of instances it will work fine such as when an app that is licensed for two sockets and the load is such that it will work fine on two cores. But key business apps such as Oracle, MSSQL can run multiple databases for multiple end user apps, thus consolidation occurs at the app level too. We need an OS to run multiple apps to0 so the situation builds as we move down.

For me, the reasons to use VMware are portability, expandability, rapid recovery, and multiple operating systems to name a few. I do not work in an arena where computers provide heat and fltration. For us it's more like we needed to switch to FreeBSD because it doesn't fall down under load like Linux, and, then later now we are out of CPUs, then MySQL cannot do complex queries on normalized tables without burying the server and MSSQL because its supperior query optimizer can handle the same number of queries with 100th the load on the server, but that's a different OS, and WHOA! the load went up 600% over here because..., and Europe is getting slow, we need another server in DC that we can bring on line, etc. I can provision a server in 2 to 4 houjrs, how long before we can have another server configured and on line? For us, THAT's the potential of VMware, and THAT's why I need it to perform as close to native as possible.

Now that MS in this space things are going to happen for better or for worse. Step into Steve Ballmer's shoes. What would you be thinking? "Hey, I'll make the Hyper-V environment capable of understanding the difference between cores and sockets, beat my drum and tell people about this advantage, and poof!, no VMware, and I can monopolize this area also."

(Meanwhile)

"Windows Server 2003 R2 Datacenter Edition will allow you to run an

unlimited number of virtual instances of Windows Server on processors,

which simplifies licensing and lowers the cost of Windows Server for

large-scale virtualization. Windows Server 2003 R2 Enterprise Edition

(EE) will allow you to run up to four virtual instances of Windows

Server 2003 R2 EE on one licensed physical server or hardware

partition, thereby decreasing the costs of server virtualization."

"That should get people thinking about Hyper-V."

Hyper-V is already the darling of web data centers, and it's hardly out of the box, while they are projecting support for VMware sometime during second quarter next year. I have nothing against Microsoft, and I don't care if VMware, MS, or somebody else ends up dominating this area because they have the better product. My only fear is being put into the position of having to wait years for Microsoft to "innovate" not so recent history so I can make effective use of the technology. I'm hoping VMware will come to the rescue by being able to fake sockets as well as CPUs.

Thanks all for your input

0 Kudos
DCTony
Contributor
Contributor
Jump to solution

Well, now you've brought more than just MS and SOL in the pic. Let's look at Linux and Oracle. Oracle doesn't care how many virtual CPUs you are using or how many virtual servers you have. They just want every proc licensed in the cluster that Oracle is in. So if you have a cluster set aside just for Oracle, and you have three 8 core hosts and you buy licenses for all the hosts, you can put as many guests in there as you have the power for. So you have to look at every OS and every licensing model differently. I believe more and more companies will go to a host model and let the guests roam free. IBM is doing this as well with their Tivoli products. Of course when you charge the costs that IBM and Oracle do, you can afford to use that model. The way virtualization works it will be very hard for MS to come up with a licensing model that only works for them and not the rest of the industry. If they do walk in the room and say that it's free to virtualize on them but it will cost you if you virtualize on someone else's product, the lawsuits will start pouring in.

0 Kudos
Dave_Mishchenko
Immortal
Immortal
Jump to solution

(Meanwhile) "Windows Server 2003 R2 Datacenter Edition will allow you to run an unlimited number of virtual instances of Windows Server on processors, which simplifies licensing and lowers the cost of Windows Server for large-scale virtualization. Windows Server 2003 R2 Enterprise Edition (EE) will allow you to run up to four virtual instances of Windows Server 2003 R2 EE on one licensed physical server or hardware partition, thereby decreasing the costs of server virtualization."

"That should get people thinking about Hyper-V."

Keep in mind that the above licensing allowances apply to any virtualization platform.

0 Kudos
weinstein5
Immortal
Immortal
Jump to solution

Exavctly - the Datacenter of 2003 is how a number of my large clients run 20+ VMs ona single host - it was this 90 day migration issue that Microsoft backed off of preventing users from vmotion more than once every 90 days if you followed MS licensing -

If you find this or any other answer useful please consider awarding points by marking the answer correct or helpful

If you find this or any other answer useful please consider awarding points by marking the answer correct or helpful
0 Kudos
meistermn
Expert
Expert
Jump to solution

I do not want to see anymore the relationship one os for many apps. This is old way with MS Cluster and many apps on it.

This past solution is bad for maintaince. To many customers to call for updates, risky for patching the os.

Although many apps on one os is bad for chargeback. Virtualization is much easier for chargeback.

Why not charge like on mainframe on a mips base in 2010/2011?

0 Kudos
RParker
Immortal
Immortal
Jump to solution

the OS sees additional "sockets/processors"

Actually it does NOT. It maintains a database of ALL CPU, and VM Ware passes the ID of the processor TO the OS, and ALL MS Info 'sees' is that this process is model XXXX, and from that it KNOWS what it's capabilities are. The OS does NOT 'see' more CPU than what it's configured for in the vmx/configuration. It cannot go beyond the virtual boundaries, so this information (as per the license agreement and technical documents of the software) is subject to change without notice.. that's what that means. So if at some point Intel changes the model of a CPU, and doesn't notify those changes to the OS, the OS is only going by a look up table of appropriate CPU/Processor values and NOT an actual interrogation of the hardware (which it CAN'T do inside a VM)

0 Kudos
RParker
Immortal
Immortal
Jump to solution

Hyper-V is already the darling of web data centers, and it's hardly out of the box, while they are projecting support for VMware sometime during second quarter next year.

That's because of all the MS bigots, as I was one myself until last year, when I realized the capabilities of Linux, and Then MS made a bunch of stupid moves... So while I agree there are many of IT managers and techs that are brainwashed into using MS products, their eyes will be opened when MS starts lagging, namely with vmotion and management of their own products.

I went to a MS demo of their upcoming hyper-v with 'vmotion'. Interesting that MS uses ESX to make their product look better... That's cheating, not innovation. I am done with MS.

"Windows Server 2003 R2 Datacenter Edition will allow you to run an . . .

blah blah blah. There is a misconception here. First how much is a license for Datacenter? Now how many VM's can you actually virtualize under Hyper V? Not nearly as many as with ESX. So unlimited is to be used loosely... Because it's limited to the ability of Hyper-V in the long run. The consolidation ration for Hyper V is significantly smaller than that of Zen or ESX, that's the bottom line, so you will end up paying more for MS licenses.. becuase you can only run 10 VM's under Datacenter and 30 under ESX, which means 1 ESX license and 3 Hyper-V licenses, so how much is that Hyper-V license going to cost you, hmmmm? And keep in mind it's just like any other brand product. You buy 20 Sony TV sets of course they will give you a discount on the WHOLE package.. you are paying them anyway.

MS you are STILL paying for OS guests licenses AND Hyper-V and Datacenter... with ESX that's separate but you still still pay for MS Licenses, so individual guest licenses are a wash you pay either way. But if you one stop shop MS, yeah it makes sense they are willing to 'discount' your fees with them, they already have your business...

0 Kudos
meistermn
Expert
Expert
Jump to solution

To run many SQL instances , you have to use SQL 2008 Enterprise.

For MS SQL 2005 you have to use the old licence model. They want the customer to update to sql2008.

At page 7 in

"1.Scenario B: Four instances of SQL Server 2008 Enterprise (Server/CAL) software running at the same time. Server farm consists of 20 servers.

How many SQL Server 2008 Enterprise software licenses do I need if I want to move the four running instances across all servers on my server farm?

Under the old rule:

A license is assigned to a physical server and the license cannot be reassigned within 90 days of the last assignment. If you want to move the four running instances across the 20 servers more frequently, all servers must be licensed for SQL Server. Therefore, you would need twenty (20) SQL Server Enterprise server licenses for this server farm.

Under the new rule:

You would need at most four (4) SQL Server 2008 Enterprise software licenses to move the four SQL Server running instances to any server across the server farm as frequently as you need to.

However, if all four SQL Server instances run on a single physical server at all times, under SQL Server special multi-instancing use rights, you would need only one software license."

Take this scenario in vmware ESX:

20 ESX Servers in one Cluster. If you want to run 4 VM's with SQL 2008, you only need 4 SQL 2008 licence.

0 Kudos
meistermn
Expert
Expert
Jump to solution

" I'm hoping VMware will come to the rescue by being able to fake sockets as well as CPUs."

The industry is far beyond vmware. Microsoft play no roll in the end.

The winner in the end is IBM. They bought psi solution and now want to buy transitive.

Take a mainframe with 64 , 128 , 256 or 512 500 GHZ CPU cooled by helium gas with transitive + psi solution on it.

One box with 32000 GHZ = 32000.000 MHZ. This virtualization solution will drop many IT workers out of their jobs.

This saves Millions of Dollar in infrastructure and allthough millions in it workers.

Allthough Millions in power costs.

If look at an Mac computer, it has build in the transitive technology to run older application from power pc.

http://blog.transitive.com/tag/rosetta/

Why did we give away a MacBook instead of some other cool device? The answer is because each and every MacBook contains Rosetta, an implementation of Transitive’s QuickTransit that allows older Mac applications compiled for PowerPC chips to run in their new MacOSX/x86 environment.

0 Kudos
IT_Architect
Enthusiast
Enthusiast
Jump to solution

RParker: The license will also let you run it under VMware.

meistermn: >The winner in the end is IBM.<

That statement makes sense IF they want to be the winner. They are the winner in many areas. Some of it the government buys to not release it. Other areas they don't want to play in because there is not enough money in it. They've never done well in the world of trivial pursuits. That's what makes room for other companies. I would agree with this, if they want it, they can take it any time they want to. IBM builds and locks up the world's best tallent.

0 Kudos
IT_Architect
Enthusiast
Enthusiast
Jump to solution

The Official Word:

“ESX presents a single

core vcpu to a VM by default. If you have a dual processor dual core server you

have the ability to expose both physical dual core processors by assigning 4

vcpus. If you wanted the virtual machine to only see one physical processor you

would assign only 2 vcpu’s etc.”

It's what we all expected, but hoping not to hear. Along with it were links about licensing changes on the part of vendors to address the situation. In the case of MS, the concessions are applicable to VLAs only. While the answer doesn't address the question in detail, the engineer that I talked understood the question and concept very well.

0 Kudos
Craig_Baltzer
Expert
Expert
Jump to solution

As you say in a VM all that the OS can "see" of the underlying processor(s) of the host is the physical model number; the single/dual/quad/hyperthreaded configuration is NOT presented to the VM. Unlike what you believe to be true, the FACT is (confirmed by testing) that MSInfo does not "KNOW" nor "look up in a database" the true core/logical processor configuration using the model number otherwise it would be presenting the CPUs as dual/quad core regardless of whether the OS was running on the physical server or in a VM on that server, which is clearly does not (as previously noted in this thread).

0 Kudos
Craig_Baltzer
Expert
Expert
Jump to solution

One other interesting data point is that Intel's own code for multi-core CPU detection doesn't identify multi-core CPUs in a VM. So even though ESX may be giving you 2 vCPUs from the same physical processor, the CPU detection logic provided by Intel sees it as single core CPUs (as does MSINFO32). is the link to the Intel code if anyone wants to fiddle around with it (source included)

So on the same 2 x quad core system I used for the MSINFO32 runs previously...

Run on physical server directly (Windows OS)

Capabilities:
Hyper-Threading Technology: Not capable
Multi-core: Yes
Multi-processor: yes
Hardware capability and its availability to applications:
System wide availability: 2 physical processors, 8 cores,8 logical processors
Multi-core capabililty : Maximum 4 cores per package
HT capability: Maximum 1 logical processors per core
All cores in the system are enabled for this application.
Relationships between OS affinity mask, Initial APIC ID, and 3-level sub-IDs:
AffinityMask = 1; Initial APIC = 0; Physical ID = 0, Core ID = 0, SMT ID = 0
AffinityMask = 2; Initial APIC = 1; Physical ID = 0, Core ID = 1, SMT ID = 0
AffinityMask = 4; Initial APIC = 2; Physical ID = 0, Core ID = 2, SMT ID = 0
AffinityMask = 8; Initial APIC = 3; Physical ID = 0, Core ID = 3, SMT ID = 0
AffinityMask = 16; Initial APIC = 4; Physical ID = 4, Core ID = 0, SMT ID = 0
AffinityMask = 32; Initial APIC = 5; Physical ID = 4, Core ID = 1, SMT ID = 0
AffinityMask = 64; Initial APIC = 6; Physical ID = 4, Core ID = 2, SMT ID = 0
AffinityMask = 128; Initial APIC = 7; Physical ID = 4, Core ID = 3, SMT ID = 0

Run on a 2 vCPU VM under ESX on the same physical server

Capabilities:
Hyper-Threading Technology: Not capable
Multi-core: No
Multi-processor: yes
Hardware capability and its availability to applications:
System wide availability: 2 physical processors, 2 cores,2 logical processors
Multi-core capabililty : Maximum 1 cores per package
HT capability: Maximum 1 logical processors per core
All cores in the system are enabled for this application.
Relationships between OS affinity mask, Initial APIC ID, and 3-level sub-IDs:
AffinityMask = 1; Initial APIC = 0; Physical ID = 0, Core ID = 0, SMT ID = 0
AffinityMask = 2; Initial APIC = 2; Physical ID = 2, Core ID = 0, SMT ID = 0

0 Kudos
meistermn
Expert
Expert
Jump to solution

Affinity mask Option is a good point .

http://msdn.microsoft.com/en-us/library/ms187104.aspx

"To carry out multitasking, Microsoft Windows 2000 and

Windows Server 2003 sometimes move process threads among different

processors. Although efficient from an operating system point of view,

this activity can reduce Microsoft SQL Server performance under heavy

system loads, as each processor cache is repeatedly reloaded with data.

Assigning processors to specific threads can improve performance under

these conditions by eliminating processor reloads and reducing thread

migration across processors (thereby reducing context switching); such

an association between a thread and a processor is called processor

affinity."

So after reading about the affinity mask Option for SQL 2008, a hypervisor seems to be a good solution for this problem.

Take scenario 1:

In the last five years companies consolidated many sql servers onto a ms sql cluster to save sql licence. Bay the way often, the application where to supported in this ms clusters nor did they need this high availablity.

1.) Sometimes move process threads among different

processors. Higher consolidation in the above scenario means more processing move by the windows scheduler and more context switches.

2.) Assigning processors to specific threads can improve performance. Through a Hypervisor Assigning processors to specific threads can be elimated.

This although a application design change from one OS with many application instances to a many OS with one application instances.

Take scenario 2:

Think of an instance executing very large report queries that are consuming 100% of your CPUs. The second instance needs to run a very quick update query for a user on the web. This user may actually have to sit and wait on the report queries to leave some CPU available for it.

This can be fixed it three ways:

a) Set a processor affinity for the processes

b) Use Windows 2003 Resource Manager (WSRM)

c) Or use now a hypervisor

0 Kudos
meistermn
Expert
Expert
Jump to solution

Comparision of MSinfo32:

Phisycal Windows OS

<span class="jive-thread-reply-body-container">Multi-core: Yes

<span class="jive-thread-reply-body-container">2 vCPU VM under ESX on the same physical server

<span class="jive-thread-reply-body-container">Multi-core: No

Physical Info

<span class="jive-thread-reply-body-container">AffinityMask = 1; Initial APIC = 0; Physical ID = 0, Core ID = 0, SMT ID = 0
AffinityMask = 2; Initial APIC = 1; Physical ID = 0, Core ID = 1, SMT ID = 0
AffinityMask = 4; Initial APIC = 2; Physical ID = 0, Core ID = 2, SMT ID = 0
AffinityMask = 8; Initial APIC = 3; Physical ID = 0, Core ID = 3, SMT ID = 0

Socket 1 (CPU 0)

<span class="jive-thread-reply-body-container">AffinityMask = 16; Initial APIC = 4; Physical ID = 4, Core ID = 0, SMT ID = 0
AffinityMask = 32; Initial APIC = 5; Physical ID = 4, Core ID = 1, SMT ID = 0
AffinityMask = 64; Initial APIC = 6; Physical ID = 4, Core ID = 2, SMT ID = 0
AffinityMask = 128; Initial APIC = 7; Physical ID = 4, Core ID = 3, SMT ID = 0

Socket 2 (CPU1)

Assumation is : Initial APIC 0-7 = Core 1-8 and Physical ID gives the socket or like intel says the phsical package back.

Virtual Info

<span class="jive-thread-reply-body-container">AffinityMask = 1; Initial APIC = 0; Physical ID = 0, Core ID = 0, SMT ID = 0

<span class="jive-thread-reply-body-container">AffinityMask = 2; Initial APIC = 2; Physical ID = 2, Core ID = 0, SMT ID = 0

What does now Physical ID 0 and Physical ID 2 mean:

From Windows point it would be two separated physical sockets. Now is thiscorrectly given back by msinfo

What does ESX tell for this VM ? What do we get from /proc/cpuinfo

Look at the endof this doc.

http://software.intel.com/en-us/articles/optimal-performance-on-multithreaded-software-with-intel-to...

0 Kudos
meistermn
Expert
Expert
Jump to solution

processor

0

1

2

3

4

5

6

7

physical id

0

1

0

1

0

1

0

1

core id

0

2

1

3

0

2

1

3

siblings

4

4

4

4

4

4

4

4

cpu cores

2

2

2

2

2

2

2

2

In this example red is socket 0 (physical package 0) and green is socket 1 (physical package 1),

It is important to note that the numbering of the physical id and core id may or may not be contiguous. It is not uncommon to have two physical packages on the system, and have the physical ids equal to 0 and 3.

Source :

Tool from intel:

Detecting Multi-Core Processor Topology in an IA-32 Platform

For detecting hypertread enabled cpu's in windows Os there is a tool htdump.exe in the microsoft reporting tools.

http://www.microsoft.com/downloads/details.aspx?FamilyID=00ad0eac-720f-4441-9ef6-ea9f657b5c2f&displa...