The Virtualization Room


April 12, 2007  1:39 PM

Microsoft being Microsoft

Alex Barrett Alex Barrett Profile: Alex Barrett

A couple of months ago at IDC’s Virtualization Forum in New York City, I chatted over lunch with Al Gillen, who posited that not only would Microsoft probably not be late with Viridian, code name for Windows Server Virtualization that will ship with Longhorn, but that Microsoft might actually be early! A pessimist by nature, I was skeptical.

Today, we learn once again what we all know all too well: that the best predictor of future performance is past performance. Like so many products before them, Microsoft announced today that they are pushing back the betas for not one, but two, of their virtualization offerings: Windows Server Virtualization and Virtual Server 2005 R2 SP1.

Now, Mike Neil, Microsoft’s GM for virtualization strategy, gave some pretty good excuses for the delays: 64-processor systems, I/O intensive workloads, new operating system support, etc. But the delays bring up all sorts of other questions. Is this in fact the last delay Viridian is going to face? If it does ship on time, will it include all the nifty features Microsoft has been touting? Will customers holding out for Microsoft finally give up and try out VMware or Xen? Is this delay really as bad for Microsoft virtualization as it seems to me?

You can read details of the delays here.

April 11, 2007  3:15 PM

Once upon a time, there was a VI3 migration…

Ryan Shopp Ryan Shopp Profile: Ryan Shopp

I found another blog post-worthy blog. Rightfully called “Documenting a virtualization project“, it’s pretty darn cool. Read about one company’s experience with virtualizing their servers from the start. Most recently, the author, (Martin?) reported that they company (which remains namelesS) has 75 servers virtualized at approximately a 20:1 ratio, and 25 servers to go. They seem to be doing a lot with VDI and VMware, so if that’s your forte I highly suggest becoming a frequent visitor to this blog (after ours, of course.)

Throughout the blog, he talks about migrating Oracle servers, their VDI project, their first production HA failover:

“A quite unexpected event yesterday was the very first HA failover in production.”

The day the Oracle servers froze:

“I shoudn’t be writing that all is well on the Oracle front.

“Just now two of the Oracle servers froze with database problems. The DBA tells me that they have had block corrupts which he hasn’t seen in five years of running the things.”

Then he goes on to blog about what they learned from the Oracle freeze:

“…memory settings turned out to be highly critical in relation to the performance of the VM.”

…I guess he should have been paying more attention to his SearchServerVirtualization.com Virtualization Advisor e-newsletters. ;)


April 11, 2007  2:55 PM

Virtualization bookstore

Ryan Shopp Ryan Shopp Profile: Ryan Shopp

I was surfing the virtualization blogs recently and came across a gem of a Webpage. Virtualization Daily has put together a virtualization bookstore of sorts — the books link to Amazon, but it’s a great way to get a fast glance at the books and decide what you want from there. Check out the book store here.


April 6, 2007  12:22 PM

VMware price list

Alex Barrett Alex Barrett Profile: Alex Barrett

Robin Harris of StorageMojo has procured a VMware price list, adding to his extensive collection of storage products. You can find it at:

http://storagemojo.com/?page_id=415

According to the Price List introduction, “These prices are discounted “street prices”, roughly what a corporate customer would pay.” It’s unclear to me who submitted these price lists, and how current they are, but they might be useful nevertheless.


April 6, 2007  10:09 AM

Managing VirtualCenter2 Management Service (vpxd) failures

Alex Barrett Kutz Profile: Akutz

The VirtualCenter2 management service (vpxd) is not very robust. If it cannot connect to the back-end database, the service will halt. It *should* continue to run, periodically trying to connect to the database, but this is not the case. There are also problems with the service coming up before the network when the server boots, causing the service to halt upon start. IPSec SA token mismatch/renewal issues also cause the service to halt. The vpxd service is very important — it manages DRS, collects performance statistics, and allows users to manage their VMs. This is a service that should be a lot more capable of handling foreseeable circumstances. To that end I have written a script that can be used to restart the vpxd service in case it halts or fails to start. This script can be linked to an often underutilized feature of Windows — the ability for the Service Control Manager (SCM) to restart a service upon failure.

The script is fairly basic. I will not post it in its entirety in this blog because its formatting will get munged by WordPress’ draconian style settings. You can download the script from www.lostcreations.com.

A description of the script can be found in the script’s source, “This script will attempt to start the vpxd service if it is not started. If the serivce is already started or it starts successfully the first time no further action is taken. This script can also be run upon a VCMS failure. It will notify a specified e-mail address of the failure. It will check the connection to the VCMS database. If the database connection is valid then the script will start the VCMS service. If the connection is not valid then the script will go into a loop, attempting to restart the VCMS service every specified number of minutes. This script assumes your VC database is on a SQL server. If it is not then please see www.carlprothman.net for a good reference on how to build an ADO connection string to fit your needs.”

In addition to using this script to correct a vpxd service failure, it can also be run as a scheduled task, set to run 5 minutes after the server boots. This can correct the problem of the vpxd service not starting successfully on boot because it comes up before the network is available.

I hope this script helps to make your VMware VirtualCenter2 Management Server a little more robust, and a lot more script-diddly-licious!


April 6, 2007  7:40 AM

Not so needless Windows Server licenses

Alex Barrett Alex Barrett Profile: Alex Barrett

Last week, I wrote a story entitled Virtuozzo user avoids needless Windows Server licenses. Many of you wrote in to inform me that in fact, the Windows Server licenses that the subject had not purchased were in fact required under Microsoft licensing terms. In the words of one reader:

There is a lot of misinformation occurring specific to license reduction fees and Virtuozzo. I work for a Fortune 100 with an extremely strong VMware (ESX) presence and we too were initially enamored with the ability to reduce OS licensing fees.

Quite Simply – you need to pay for each virtualized (‘VPS’ in Virtuozzo speak) instance just like you would for separate Virtual Machines in the VMware World.

SWsoft used to tout that you only have to pay for the ‘parent’ Windows OS — that was until Microsoft gave them a ‘stern reprimand’. Today you will not find a single SWsoft employee or any verbiage on their site that indicates you only have to pay for one OS license.

The only exception to this is Microsoft Datacenter Edition. John Yanekian is in breach of license obligation with his current configuration if he has not licensed all of his VPS’s.

The story has since been updated and renamed. Thanks to everyone who pointed out this error.


April 5, 2007  3:23 PM

Physical-to-virtual (P2V) migration blooper

Jan Stafford Jan Stafford Profile: Jan Stafford

Since I wrote the post, P2V wins and losses, I’ve been hearing from IT managers who’ve done the P2V deed. One migration was halted by a too-proactive IT guy. Here’s the story, but I’ll let the parties in question remain anonymous.

So, this company was moving from physical to virtual servers to reinstall its Oracle ODBC drivers and number of third party support applications. During the migration of one physical server, the process failed. Why? Says the IT manager:

“The first attempt failed because our support personnel noticed the server being replaced was down and rebooted it in the middle of the P2V process.”

Oops.

After that, migrations went smoothly, and no more mistakes were make. However, performance issues arose when this particular server’s virtual machines server went into production. The IT manager explained:

“The original server had been a two-processor hyper-threaded system, and it was moved to a single processor VM. After adding a second virtual processor, it ran at an acceptable level.”

This company has done successful P2V migrations since then and plans to do more.

Here’s hoping your P2V moves are blooper-free. If they aren’t, share your goofs with us by commenting or emailing me at jstafford@techtarget.com. We can all learn from your bloopers and chuckle at the same time.


April 5, 2007  9:11 AM

Generated an update script for ESX 3.0.0 and 3.0.1

Jan Stafford Kutz Profile: Akutz

In my last post I showed you how to get all the available updates for an ESX 3.0.0 and 3.0.1 server. This post showcases a script that will generate the commands you need to run to update your server with the downloaded patches in the order that they were released. The script, newupdates, examines installed updates and ignored updates (via a file you specify) and generates esxupdate commands that can be used to update an ESX server in one fell swoop. This script can be downloaded from www.lostcreations.com.

Note: The ignored updates file is simply a file with a list of ESX patch numbers, IF or line delimited.

#!/bin/bash

# require arguments or print usage
if [ “$1″ == “” ]
then
echo “Usage: newupdates [-r REPOS_PARENT_PATH]
[-i IGNORE_FILE]”

exit 1

fi

# get the options

while getopts r:i: o

do case “$o” in

r) REPOS_PARENT_PATH=”$OPTARG”;;

i) IGNORE_FILE=”$OPTARG”;;

[?]) echo “Usage: newupdates [-r REPOS_PARENT_PATH]
[-i IGNORE_FILE]”

exit 1;;

esac

done

# get a list of installed updates

INSTALLED_UPDATES=`esxupdate query |
grep -io “ESX-[[:digit:]]*”`

# get a list of the updates in the parent repository path

REPOS=`ls $REPOS_PARENT_PATH`

# if the user defined an ignore file then read its contents

if [ -f “$IGNORE_FILE” ]

then

IGNORED_UPDATES=`cat $IGNORE_FILE`

fi

for R in $REPOS

do

# get the update/patch number from the repo

# directory name (strip the date prefix off)

UPDATE=`echo $R | sed “s/(.*-)(ESX-.*)/2/gi”`

# check to see if the update is already installed

echo “$INSTALLED_UPDATES” | grep -ioq “$UPDATE”

R_INSTALLED=”$?”

# if the user specified an ignore file, check

# to see if the update should be ignored

if [ -f “$IGNORE_FILE” ]

then

echo “$IGNORED_UPDATES” | grep -ioq “R$”

R_IGNORED=”$?”

else

R_IGNORED=”1″

fi

# generate an update command for the repo if it is neither

# installed or ignored

if [ “$R_INSTALLED” != “0” ] && [ “$R_IGNORED” != “0” ]

then

U_COMMAND=”esxupdate -nr file:$REPOS_PARENT_PATH/$R update”

# strip any double slashes out of the update command.

# the esxupdate utility barfs on them

U_COMMAND=`echo “$U_COMMAND” | sed “s//////gi”`

echo $U_COMMAND

fi

done


April 5, 2007  9:05 AM

Virtual Iron Offers up Performance Benchmark

Jan Stafford cwolf Profile: cwolf

Following Simon Crosby’s release of a XenSource performance benchmark, I began to needle the folks at Virtual Iron about publishing a benchmark of their own. In short time, Chris Barclay, Virtual Iron’s Director of Product Management, sent me some numbers with his blessing to make public.

Their benchmark was based on the Windows Server 2003 OS running on an Intel Xeon 2.66GHZ dual socket/dual core server, with a 1333MHz FSB and 4GB of DDR2 667MHz RAM. For their tests, 1GB of RAM was allocated to the OS and the VM connected to raw SAN storage. So the test environment, in my opinion, is very fair.
Now onto the results…

Benchmark

Native

Virtual Iron

Delta

SPECInt 2000

2140

2068

3%

netperf tcp stream send

949

933

2%

netperf tcp stream receive

941

913

3%

SPECjbb2000

55,943

54,508

3%

SPECweb2005

     Network (MB/sec)

     Disk (MB/sec)

     Disk (Transfers/sec)

4.325

0.524

95.2

4.31

0.523

95.2

0.3%

0.2%

0%

So overall the Windows Server 2003 VM was able to perform at or below a 3% performance degradation. The Virtual Iron tests followed the same benchmark pattern used by VMware. If you would like to see the VMware results and also get more detail on what each individual benchmark is testing, take a look at VMware’s document “A Performance Comparison of Hypervisors.” Keep in mind that the Xen performance numbers in the VMware paper are under significant debate, with most of us (myself included) seeing Simon Crosby’s Xen benchmark numbers as being more accurate.

Throughput degradation has been very important in many of the virtualization projects that I have been involved with, so having some hard numbers for performance comparison between VMware, XenSource, and Virtual Iron is extremely helpful. I’m hopeful that we’ll see a similar benchmark from Microsoft once the Windows Server Virtualization (WSV) service is available in Longhorn Server, or even for Microsoft Virtual Server 2005 R2 SP1 for the time being. If not, I’ll churn WSV or Virtual Server through the VMware benchmarks and post some numbers myself.

~Chris Wolf


April 4, 2007  8:32 AM

Getting ESX 3.0.0 and 3.0.1 updates

Jan Stafford Kutz Profile: Akutz

It can be a real hassle to download updates for ESX 3.0.0 and 3.0.1. Wouldn’t it be nice if there was some program that could take care of this for you? Now there is! Introducing my patented (not really) chk4updates script. Using arcane majiks and other-wordly sorceries, I have divined through intense enchanting a process by which you can grab all available updates for ESX versions 3.0.0 and 3.0.1. I have included the script inline below, and you can also grab it from www.lostcreations.com.

#!/bin/bash

#
# debug level. set to ‘1’ to have extra debugging
# information sent to stdout.
#
DEBUG=”0″

#
# the version of esx server to download patches for
# valid values are ‘3.0.0’ and ‘3.0.1’
#
ESX_VERSION=”3.0.1″

#
# set to ‘1’ to download tarballs
# set to ‘0’ to just have a message printed to stdout
#
DOWNLOAD_TARBALLS=”1″

#
# the directory to place the downloaded tarballs in
#
PATCH_OUTPUT_DIR=”/home/akutz/isos/vmware/esx_updates/”

#
# get a list of the already downloaded patch files
#
DOWNLOADED_PATCH_FILES=`ls $PATCH_OUTPUT_DIR`

if [ “$DEBUG” == “1” ]
then
echo “ESX_VERSION=$ESX_VERSION”
echo “DOWNLOAD_TARBALLS=$DOWNLOAD_TARBALLS”
echo “PATCH_OUTPUT_DIR=$PATCH_OUTPUT_DIR”
fi

# get a list of the updates
wget –quiet http://www.vmware.com/download/vi/vi3_patches.html

# parse the updates list for the actual links
PATCH_LINKS=`cat vi3_patches.html

| egrep -io “http://www.vmware.com/support/vi3/doc/esx-[[:digit:]]*-patch.html”`

# remove vi3_patches.html
rm -f vi3_patches.html

# iterate through the patch links
for LINK in $PATCH_LINKS
do
# get the patch information
wget -q $LINK

# parse the actual file name from the patch link
LINK_FILE=`echo $LINK | sed “s/(.*)(/)([^/]*.html)/3/g”`

# determine if this is an esx 3.0.0 or 3.0.1 patch
egrep -ioq “Download Patch ESX-[[:digit:]]*
for VMware ESX Server 3.0.0″ $LINK_FILE
IS_300=”$?”
egrep -ioq “Download Patch ESX-[[:digit:]]*
for VMware ESX Server 3.0.1″ $LINK_FILE
IS_301=”$?”

GET_TARBALL=”0″

# 3.0.0
if [ “$IS_300″ == “0” ] &&
[ “$ESX_VERSION” == “3.0.0” ]
then
GET_TARBALL=”1″
fi

# 3.0.1
if [ “$IS_301″ == “0” ]
&& [ “$ESX_VERSION” == “3.0.1” ]
then
GET_TARBALL=”1″
fi

if [ “$DEBUG” == “1” ]
then
echo
“IS_300=$IS_300,IS_301=$IS_301,GET_TARBALL=$GET_TARBALL”
fi

if [ “$GET_TARBALL” == “1” ]
then
#
# get the link to the tarball we want to download
#
TARBALL_LINK=`cat $LINK_FILE | egrep -io “http.*gz”`

#
# strip the extraneous stuff of the link
# so that only the name of the tarball remains
#
TARBALL_LINK_FILE=`echo $TARBALL_LINK | sed “s/(.*)(/)([^/]*gz)/3/g”`

#
# parse the patch release date from the patch html
#
PATCH_RELEASE_DATE=`cat $LINK_FILE | egrep -io “<b>released .*</b>” |
sed “s/(<b>released )(.*)(</b>)/2/gi”`

#
# get the name of the directory that is
# created once the patch is decompressed
#
DECOMP_PATCH_DIR=`echo $TARBALL_LINK_FILE
| sed “s/(.*)(.[^.]*$)/1/gi”`

#
# prepend the patch release date to the decompressed directory
#
DECOMP_PATCH_DIR_W_DATE=”`date
-d \”$PATCH_RELEASE_DATE\” \”+%Y%m%d\”`-$DECOMP_PATCH_DIR”

# determine if the patch has already been downloaded by
# comparing the name of the patch to the files that
# exist in the output directory
echo $DOWNLOADED_PATCH_FILES |
egrep -ioq $TARBALL_LINK_FILE
ALREADY_DOWNLOADED=”$?”

if [ “$DEBUG” == “1” ]
then
echo
“TARBALL_LINK_FILE=$TARBALL_LINK_FILE,ALREADY_DOWNLOADED=$ALREADY_DOWNLOADED”
fi

if [ “$ALREADY_DOWNLOADED” != “0” ]
&& [ “$TARBALL_LINK” != “” ]
then

if [ “$DOWNLOAD_TARBALLS” == “1” ]
then
echo “fetching $TARBALL_LINK_FILE …”

# fetch the patch
wget -q $TARBALL_LINK

# move the patch to the outpdir directory
mv $TARBALL_LINK_FILE $PATCH_OUTPUT_DIR

# change the working directory to the output directory
cd $PATCH_OUTPUT_DIR

# decompress the patch
tar xzf $TARBALL_LINK_FILE

# rename the decompressed patch dir to include the
# patch release date
mv $DECOMP_PATCH_DIR $DECOMP_PATCH_DIR_W_DATE

# remove the patch tarball
rm -f $TARBALL_LINK_FILE

# change into the previous working directory
cd –
fi
fi
fi

# remove the patch information
rm -f $LINK_FILE
done


Forgot Password

No problem! Submit your e-mail address below. We'll send you an e-mail containing your password.

Your password has been sent to: