Adding Multiple Cores in vSphere 4.0 4.1 4.x

Basically you still select the number of vCPUs, but then you would also set in the advanced setting a new row to define how many of these CPUs are divided into a single virtual Socket. This is an advanced setting in vSphere, you add a row for “cpuid.coresPerSocket” and set the value to 2, 4, or 8. In Vmware workstation it is a little more straight forward, but I guess VMware feels that system admins should be comfortable working with vmx files and configuring advanced settings like this.

If you have 8 vCPUs and you select 2 for the cpuid.coresPerSocket, that would equal 4 sockets with 2 cores each
If you have 8vCPUs and you select 8 for the cpuid.coresPerSocket, that would equal 1 socket with 8 cores
If you have 4vCPUs and you select 4 for the cpuid.coresPerSocket, that would equal 1 socket with 4 cores

Just remember the values need to be 2, 4, 8 in both values and the number of vCPUs needs to be divisible by the number of cores per socket (cpuid.coresPerSocket).

What flexibilities this adds to your Virtual Machine in vSphere is that on standard editions of Windows you can now see up to 8 cores, and most software is per socket not core. So for MS SQL for example you could have running on one socket that has 8 cores and only need one CPU license, otherwise if you don’t do use multicores you would need 8 licenses at around 8k each .

Read this KB for details on how to configure multiple cores and the exact requirements.

The only real down fall is that you need to power off the VM to make this change, other than that it only takes a few second to configure.

Setting Up Jumbo Frames on a VMware ESX Hosts

Jumbo Frames can be an important part of a IP Storage network, it reduces the overhead for a TCP/IP packet by increasing the MTU from 1500 to 9000 per packet. Now there are some strict requirements you need to follow to make this happen, or you will have MTU miss match errors that will actually slow down your storage network instead of speeding it up.

First Make sure you configure your SWITCH VLAN that will handle the traffic to use jumbo frames. For example on a HP Procurve from the configuration prompt:

vlan 30

Second make sure that you configure a an interface on the Storage device that is also on this VLAN to use jumbo frames to communicate with your Host device. This depends on your storage vendor, but reading the documentation you should figure it out quickly.

Third configure all your host devices to communicate with your storage device via jumbo frames on the same vlan. Now I keep saying “same VLAN” for a very good reason, as you will quickly run into the dredded MTU missmatch errors if you try to route communications between VLANs. If you need to route to other devices or a device of a WAN that are not using jumbo frames then you must use a dedicated interface to communicate with the other device with MTU 1500. This interface does not have to be physical, on NetApp this can just be a VIF without -9000 configured on it.

Now that you have soem background on Jumbo frames here is how to enable them on a vSwitch on a VMware ESX host.

I created the VMware Networks port group on vSwitch2 called IPStorage before running the following CLI commands on the ESX host

First in the vCenter or Network Configuration add your vSwitch and setup a portgroup, in this example I used vSwitch2 and called the port group IPStorage. Once this is setup use put or login to the console of your ESX host.

Prep the vSwitch with the following command subsitute vSwitch2 with the vSwitch you wish to target

esxcfg-vswitch -m 9000 vSwitch2

now configure the portgroup as you named it earlier and assign it an IP at the same time

esxcfg-vmknic -a -i -n -m 9000 IPStorage

Finally test your configuration by trying to ping your storage interface with a jumbo frame packet:

vmkping -s 9000

If your ping fails make sure that your storage interface is correctly configured and on the same VLAN and subnet, also ensure that you have Jumbo Frames enabled the switch in the VLAN you are using. Also make sure that when you setup your portgroup in the VMware GUI that you input the VLAN number if you are using tagged vlans on the port.

Getting MS stuff to work on Ubuntu

This week my personal goal is to find ways to make Microsoft stuff work in Ubuntu. So here are a few projects I have noted and will try to post my progress.

Why is this compatibility so important?

For one, most people use Microsoft Windows, and in order to get more people to use Linux as an OS you have to find workarounds and ways to make the transition smoother, and to allow these new users of Linux to continue to work with their non-linux peers.

Second, if you are a developer you would like to know how to check your code and see what it looks like for your target audience, in this case I would recommend installing Virtual Box with a windows VM.

Some packages and projects that make this transition easier:

wine – This allows you to run some windows programs in windows

likewise open – allows you to join a windows domain with ease and if you want GPOs then look into likewise enterprise.

moonlight – open source port of Silverlight

The Mono Project – allows cross-platform compatibility of .Net framework

VLC Player – allows you to play multiple video audio file formats

Check out the

After completing the commands at the above link to enable the mediabuntu then install

sudo apt-get install gecko-mediaplayer

Final as a last resort use Virtual Box and create a windows VM on your ubuntu machine, you can even use seemless mode to make it look like the widows apps are on your ubuntu desktop.

Creating your own subversion edge server

Subversion Edge is pretty easy to use, just download the version you want (even loads in windows).

Here I’m just going to list some things to do to get your Ubuntu server off the ground. Download the Subversion from

and copy the correct version to a directory on your Ubuntu Server.

Install java-jre – Follow this guide:

Install Subversion edge – Follow this Guide:

To install and not just run you will need to edit your sudoers file to pass the JAVA_HOME variable, see my previous post.

Then run bin/csvn install instead of start.

You can then update the newly installed configuration as need.

At this point you should be able to connect to your subversion server console and configure and maintain it from http://host:3343/csvn


Keeping current Environmental variables when sudo

This is pretty easy to fix just need to add an exception to the sudoers file for the variable your trying to pass.

in /etc/sudoers add the following line

Defaults      env_keep+="JAVA_HOME"

You will notice that the following line in sudoers is what resets the variables

Defaults      env_reset

Installing VMware tools on Ubuntu

I know this is pretty easy, just wanted to take note just incase I forget how easy it is to do this.

sudo apt-get update  
sudo apt-get upgrade
sudo mkdir /media/cdrom
sudo mount /dev/cdrom /media/cdrom
cp /media/cdrom/VMware*.tar.gz /tmp
sudo umount /media/cdrom
cd /tmp
tar xzvf VMware*.gz
cd vmware-tools-distrib/
sudo ./

When the installation scripts promps for answers, just hit Enter

Autodetect Proxy settings using PAC and WPAD files

There is a GPO way of doing this and a more far reaching and flexible way of setting up proxy settings for all your LAN users. This is just my jurney into learning how to us .pac, .dat, .da files to automate proxy settings.

First of all I want to thank everyone out there that has posted so much information on this topic. Really if you want to find out more just google “Proxy WPAD” you are going to find more results and information then you can read on a Saturday morning.

The file is very easy to work with, and anyone comfortable with javascript can figure out how it works in seconds. Plus a PAC file can do way more then just setting the proxy server. you can setup all kinds of exceptions. For your laptop users you can setup a .pac file so that it will automatically know when to use the proxy based on their IP address. This is all possible through the use of simple scripting if, else, and and or statements.

An Example PAC file:

function FindProxyForURL(url, host)
        // Direct connections to non-FQDN hosts
        if (isPlainHostName(host) ||
        (host == "") ||
        (host == "*") ||
        (host == ".com") ||
        (shExpMatch(host, "*")) ||
        (shExpMatch(host, "90.0.0.*")) ||
        (shExpMatch(host, "10.*"))) {
          return "DIRECT"
        } else {
          return "PROXY"

The biggest gotchas for me were DNS issues on Server 2008, and how IE 8 interacted with DNS and retrieving the dat file.

  • First Server 2008 blocks DNS WPAD records by default for security reasons
  • You need to make an A record not a Cname record in the the dns server for IE to even work with it
  • Even after all of that IE still may have issues pulling it off, I’m still testing this.
  • Make sure to ping wpad from a client – if you can you may have to remove wpad from Server 2008 block list

I found the best place to test your PAC file is on your local machine. I like to place my PAC file next to the host file “c:\windows\systems32\drivers\etc\wpad.pac”. Then point IE to FILE://windows/system32/drivers/etc/wpad.pac

For Firefox it is FILE:///windows/system32/drivers/etc/wpad.pac

 Once you have a working pac file just save as and change the  extension to .dat and .da, and place all three of the new files on the root of your webserver. You may allso need to add the MIME file type for each file type to your webserver. In apache2 it is just a matter of adding a few lines to the mime.conf file. You should be able to put in your browser and it should ask you if you want to download the file. if you just see text, then you need to add the mime type.

Then set IE and firefox to autodetect. I found two things to check are local domain webservers where you might type “webservername” vs “”. If you have problems try seeing if placing the ip and wpad in your host file. If it works this we jsut fine it is probably a DNS issue.

At this point it is working perfect or not at all. One thing that is nice is at least being able to use a pac file localy on laptops. I may start using this way for now, until I figure out IE’s issues with wpad DNS records.

Your non-windows users should start pulling these new proxy settings quickly, as most browsers are set to autodetect.

More to come on this post: I plan to test this out more this week.