Mittwoch Mrz 11, 2009

Need a proof? Here you go...

Folks, long time no entry. I've really missed my personal goal of blogging more about my topics. Anyway. Now is the time to write about an exciting news: We (Sun Microsystems) broke the world-record and lead the VMware VMmark results as of today with the Sun Fire X4600 M2!! For a detailed report click here.

What's so exciting about this news? Pretty simple: we are showing by this result, that the Sun Fire X4600 M2 is the first choice for VMware ESX virtualized environments leaving other vendor systems (eg. HP ProLiant DL785 G5 or IBM System x3950 M2) far behind it. If you take a closer look at the VMmark results you see that other vendors within the 32 core area will also achieve the same number of VMmark tiles (19 tiles equals 19 x 6 virtual machines equals 114 virtual machines), but the Sun Fire X4600 M2 will give the customer a higher bandwith with the same workload.

If you also take a look at the HP Proliant DL785 G5 VMmark result and compare it to our world-record result you will recognize that our systems was tested with "just" 128 GB RAM compared to 256 GB of RAM that was used by HP. Beside this world-record result the Sun Fire X4600 M2 beats HP Proliant DL 785 G5 in different ways: 

  • 4 Rackunits (Sun Fire X4600 M2) vs. 7 Rackunits (HP Proliant DL 785 G5)
  • 2-, 4-, 6- and 8-Socket configurations (Sun Fire X4600 M2) vs. 4- and 8-Socket configurations (HP Proliant DL 785 G5)
  • 4 onboard GBE NICs (Sun Fire X4600 M2) vs. 2 onboard GBE NICs (HP Proliant DL 785 G5)
From my point of view there is no technical reason for using the HP Proliant DL 785 G5 in favor of our Sun Fire X4600 M2.

Comparing our result to the IBM System x3950 M2 VMmark result there are some more differences:

  • IBM uses Intel Xeons vs AMD Opteron
  • IBM used an older version of ESX Server (Update 2 vs. Update 3)

Ok. There might be some performance impacts using a more current ESX version. But I'm pretty sure that this is not the reason why IBM can just start 18 tiles (18 tiles equals 18 x 6 virtual machines equals 108 virtual machines). I think the reason for the far lower VMmark result is because of the system architecture. IBM System x3950 M2 scales up to 32 processors - but not within on box. They using some proprietary chipset (IBM X3 architecture) within there system to interconnect up to 8 chassis acting as one large system. The Intel Xeon architecture was not build for systems with more than 4 sockets and IBM tried to cirumvent this limitiation by building there own chipset. AMD has an architicture that will scale very well up to 8 socket systems since some days now. Compared the system side-by-side, you can see the following advantages of the Sun Fire X4600 M2 against IBM System x3950 M2:

  • 4 Rackunits (Sun Fire X4600 M2) vs. 6 Rackunits (2 chassis of IBM System x3950 M2)
  • PCI-Express I/O (Sun Fire X4600 M2) vs. PCI-X I/O (IBM System x3950 M2)
  • 4 onboard GBE NICs (Sun Fire X4600 M2) vs. 2 onboard GBE NICs (within one chassis of IBM System x3950 M2)
  • 512 GB RAM (Sun Fire X4600 M2) vs. 64 GB RAM (within one chassis of IBM System x3950 M2)
Well. This was just a short comparision of the No. 1 VMmark result (Sun Fire X4600 M2) versus the No. 3 (HP Proliant DL 785 G5) and No. 4 (IBM System x3950 M2) results. Missing No. 2? It's a really nice system from Unisys (Unisys ES7000 Model 7405R). If you take a look here you might find out the reason why I'm not unhappy that this systems got the second rank world record.

Donnerstag Mai 08, 2008

VirtualBox 1.6 on OpenSolaris (Build 85)

I'm using VirtualBox on OpenSolaris very often. VBox allows me to start other guest OS (eg Windows XP) in a really simple way and in addition using some great features of solaris natively. One of this features is ZFS. Think about running a VBox guest OS within a ZFS volume. With all the extra stuff like encryption or compression. Sounds good?

The first build of VirtualBox for OpenSolaris was released in Feb 08 and was version 1.5.51. This version worked really good, but some features were not in, eg raw disc access. But to get some expertice with VBox, I've started building some VMs without using that raw disc access feature. I've built just some plain Windows XP VMs using VirtualBox default file format „vdi“. I was impressed about the really good speed of Windows XP running within a VM. Sometimes I thought it runs faster within a VBox VM than running natively on the same metal of hardware (my Toshiba Tecra M5).

Anyway. In May 08 Sun released version 1.6 of VirtualBox. This version left the beta state (1.5.51 was a beta version) and comes with mostly all needed features that I need to work. Basicly this raw disk access was fixed.

In this entry I want to write about

„How to upgrade your system to VirtualBox 1.6 and convert a plan VDI based VM to a ZFS volume“

First download VirtualBox 1.6 from here:

http://www.virtualbox.org/wiki/Downloads

There are two version for OpenSolaris: AMD64 and i386. To make sure you are getting the right one, use

# isainfo -k
amd64

„amd64“ is what I'm running on (not really myself, but my laptop :)

Before you start with the upgrade, make sure you have read that advice on the download page:

Warning: saved states and snapshots are not compatible between different versions of VirtualBox. Merge all snapshots, restore all saved states and shutdown all VMs properly before attempting to upgrade.

Please: do it!

Next you can uninstall the beta version. Become root and remove the package.

# pkgrm INNOvbox

Unzip and extract the download of VBox 1.6.

# gunzip < VirtualBox-1.6.0-SunOS-amd64.tar.gz| tar xvf -

Install the package.

# pkgadd -d VirtualBox-1.6.0-SunOS-amd64.pkg

The installation took some time on my laptop (around 5 minutes). It seems that the pkgadd postinstall script hangs up on a call of /usr/sbin/devlinks. After this the script finished fine without an error message.

Now we are ready to start migrating the VDI based disk to a ZFS volume. First create a ZFS volume.

# zfs create -V 10G zfs/zvol_WinXP

This command will create a ZFS called „zvol_WinXP“ within the ZFS filesystem „zfs“ with a volume size of 10 gig.

# zfs list
NAME USED AVAIL REFER MOUNTPOINT
zfs 14,2G 17,3G 4,23G /zfs
zfs/zvol_WinXP 10G 27,3G 16K -

As you can see from this output ZFS will just allocate a very small piece (16K) on disk, when creating a ZFS volume.

Solaris will create automatically the following devices for you

/dev/zvol/dsk/zfs/zvol_WinXP
/dev/zvol/rdsk/zfs/zvol_WinXP

If you are working on you daily business as a non-root user (as I do), you must make sure that this user will be the owner of that devices.

# chown <your-user-id> /dev/zvol/rdsk/zfs/zvol_WinXP

Next we create the VMDK file with raw disk access. I do this with my normal user account (not root).

$ cd /opt/VirtualBox/
$ ./VBoxManage internalcommands
createrawvmdk -filename /zfs/VMDKs/zvol_WinXP.vmdk -rawdisk
/dev/zvol/rdsk/zfs/zvol_WinXP>
[..]
RAW host disk access VMDK file /zfs/VMDKs/zvol_WinXP.vmdk created successfully.

This command will create a file called /zfs/VMDKs/zvol_WinXP.vmdk, which basically just points to that raw disk /dev/zvol/rdsk/zfs/zvol_WinXP.

Here is how my VMDK looks.

$ cat /zfs/VMDKs/zvol_WinXP.vmdk
# Disk DescriptorFile
version=1
CID=02a81820
parentCID=ffffffff
createType="fullDevice"

# Extent description
RW 20971520 FLAT
"/dev/zvol/rdsk/zfs/zvol_WinXP"
# The disk Data Base
#DDB

ddb.virtualHWVersion = "4"
ddb.adapterType="ide"
ddb.geometry.cylinders="16383"
ddb.geometry.heads="16"
ddb.geometry.sectors="63"
ddb.uuid.image="04832894-c688-4daf-ceb6-303fcc207a7d"
ddb.uuid.parent="00000000-0000-0000-0000-000000000000"
ddb.uuid.modification="00000000-0000-0000-0000-000000000000"
ddb.uuid.parentmodification="00000000-0000-0000-0000-000000000000"

To use this VMDK file as a disk for guest OS you need to register it against VirtualBox.

$ ./VBoxManage registerimage disk /zfs/VMDKs/zvol_WinXP.vmdk 

You can list all your registered virtual disks by using the VBoxMange command.

$ ./VBoxManage list hdds
[..]
UUID: 46bdc3bb-b375-41da-2581-bd1676a48266
Storage type: Virtual Disk Image
Path: /zfs/WinXP/hdd0.vdi
Accessible: yes
Usage: WinXP (UUID: b0890587-9637-46bd-4ba5-7f062e2be51b)
UUID:         04832894-c688-4daf-ceb6-303fcc207a7d
Storage type: unknown
Path: /zfs/VMDKs/zvol_WinXP.vmdk
Accessible: yes

As you can see, I've got two registered virtual disks. One is the plain VDI file (/zfs/WinXP/hdd0.vdi ) and the other one is the newly registered VMDK file. You may also notice that the VDI file is used by a VM called „WinXP“.

But how can we transfer data from VDI to VMDK? Google'ing around some minutes gives you some ideas how to do it. Here is a my summary of approaches.

  • Create a new VM with both virtual disks attached (VDI and VMDK). Next attach a mini linux distro iso image to it and fire it up booting the iso. Use dd to do the transfer between disks. The transfer will be done inside the guest OS.

  • Cut away the VDI related stuff from the VDI file and extract the file system related blocks with dd. This approach will do the transfer from the host OS.

Let's start with the first approach.

We need to detach the VDI file from the WinXP VM first.

$ ./VBoxManage modifyvm WinXP -hda none

Create the transfer VM. I will give it a really „talking“ name: tempVM.

$ ./VBoxManage createvm -name tempVM -register
[..]
Virtual machine 'tempVM' is created and registered.
UUID: fa253d62-015a-4ede-02ad-6b02acae2b12
Settings file: '/zfs/Machines/tempVM/tempVM.xml'

Now attach both disks to tempVM. The VDI virtual disk should be connected as „hda“ and the VMDK based virtual disk (raw disk) should be connected as „hdb“. I will use the UUIDs of the virtual disks (see output of „VBoxMange list hdds“).

$ ./VBoxManage modifyvm tempVM -hda 46bdc3bb-b375-41da-2581-bd1676a48266 -hdb 04832894-c688-4daf-ceb6-303fcc207a7d

The iso image for booting this tempVM is in my case a GParted Live CD (version 0.3.6-7). Register this iso image for using it for a guest OS.

$ ./VBoxManage registerimage dvd /share/Images/gparted-live-0.3.6-7.iso 

Sneak out the UUID of that virtual DVD device.

$ ./VBoxManage list dvds
[..]
UUID: d595a411-19a6-47cc-e8af-15672a7555ce
Path: /share/Images/gparted-live-0.3.6-7.iso
Accessible: yes

Attach that UUID to the VM and define the boot order.

$ ./VBoxManage modifyvm tempVM -dvd d595a411-19a6-47cc-e8af-15672a7555ce -boot1 dvd
Do some fine tuning of the tempVM. Define the guest OS as „debian“ (GParted is based on Debian) and give the VM a piece of virtual memory.
$ ./VBoxManage modifyvm tempVM -ostype debian -memory 256M

Now it is time to fire it up :)

$ ./VBoxManage startvm tempVM -type gui

When the VM came up, just wait until the text based console start and enter

$ sudo su -
# dd if=/dev/hda of=/dev/hdb

This step takes some time...go and get a beer or two or a coffee or just get well informed and read the VirtualBox User Manual for the actual version. It's your choice. I will take the beer...

http://www.virtualbox.de/download/1.6.0/UserManual.pdf

After dd finished you can shutdown the VM with a

# shutdown -h now

It's time for some house cleaning now. Detach virtual disks and dvd and unregister „tempVM“.

$ ./VBoxManage modifyvm tempVM -hda none -hdb none -dvd none 
$ ./VBoxManage unregistervm tempVM -delete

Checking the result is the final part of this entry. First we need to attach the VMDK file to the old WinXP VM.

$ ./VBoxManage modifyvm WinXP -hda 04832894-c688-4daf-ceb6-303fcc207a7d

And final power on the VM.

$ ./VBoxManage startvm WinXP -type gui

Voila! You now have a ZFS volume based Windows XP virtual machine running on the best operating system ever. :)

If you've finished testing the VM you can clean up the rest with the following commands.

$ ./VBoxManage list hdds 
[..]
UUID: 46bdc3bb-b375-41da-2581-bd1676a48266
Storage type: Virtual Disk Image
Path: /zfs/WinXP/hdd0.vdi
Accessible: yes

UUID: 04832894-c688-4daf-ceb6-303fcc207a7d
Storage type: unknown
Path: /zfs/VMDKs/zvol_WinXP.vmdk
Accessible: yes
Usage: WinXP (UUID: b0890587-9637-46bd-4ba5-7f062e2be51b)

$ ./VBoxManage unregisterimage disk 46bdc3bb-b375-41da-2581-bd1676a48266

$ ./VBoxManage list dvds
[..]
UUID: d595a411-19a6-47cc-e8af-15672a7555ce
Path: /share/Images/gparted-live-0.3.6-7.iso
Accessible: yes

$ ./VBoxManage unregisterimage dvd d595a411-19a6-47cc-e8af-15672a7555ce

Donnerstag Mrz 20, 2008

XING OpenSolaris Group is growing

OpenSolaris: Love at First Boot Today we welcome our 700th member at the XING OpenSolaris Group!

I've initiated that community along with my fellow Roland Schopp on March 2005. The main intention of this (mostly german) community was to build a platform for discussing new technologies of OpenSolaris and to be able to exchange experiences regarding OpenSolaris.

You want to get part of this community? Pretty simple: register at XING and subscribe to our community!

GUUG FFG 2008

Last week my workmate Matthias and myself held a presentation about our personal view of next generation datacenter infrastructures at the GUUG FFG 2008. For those of you, who don't know the meaning of GUUG and FFG, here is a short annotation of these two abbreviations:

  • GUUG stands for German Unix User Group and is a consortium of german unix users
  • FFG stands for Frühjahrsfachgespräch (in english: spring expert talk)

The main reason for doing that presention at the FFG was to show the attendees possible future datacenter architectures concerning server virtualization and unified network approaches. Well, we know that our approach is not an "one-size-fits-all" solution. But it is an approuch our customer just loved, because we meet most there requirements.

We had some pretty interesting conversations after the presentation with some attendees. Most of them like the idea behind it:

  • no local disks
  • no dedicated network for storage access
  • virtualization of Solaris and Linux based services
  • virtualization of network entities (eg. Routers, Firewalls, Loadbalancer)

But there was also some other (critical) statements about our presentation. One of them was an article of a german publication called Linux Magazin (you can read it here - in german).

To be clear:

I love to

  • get feedback on things I do
  • get constructive criticism
  • get controversial views

So why do I write this blog entry? Because I don't like the way the author of this article is giving us feedback. Just writing an article on a paper without giving us a chance to make things clear is not the way we are working. Giving us comments and feedback right after the presentation would be a much better way from my point of view.

Anyway. If you like to give us feedback on that presentation, feel free and drop me a comment.


Mittwoch Feb 13, 2008

Sun/Microsoft IC @ Redmond

I've found some pretty interesting stuff about the Sun/Microsoft Interoperability Center at Pierre Reynes's Weblog. Pierre hat some trips to Redmond and took some really nice pictures of the IC at Microsoft's main Campus.

Here are some links:



Donnerstag Feb 07, 2008

Hello world

I think this is the right place for saying "Hello" to everybody.

For those of you, who do not know me: My name is Tobias Esser. I'm currently 31 years old and working within Sun since 6 years. I've started at Sun as a trainee within Sun's delivery organization (the old name of that unit was "Sun Professional Services"). Currently I work as a technical architect within the local Systems Practice in germany. I'm technically focused on Sun x64 servers and virtualization technologies for x64 and SPARC based systems.

The main objective of this blog is to deliver some technical best practices regarding Sun's x64 Systems and virtualization technologies in general to the community.