Oracle VM [not] running inside VirtualBox…

I know what you are thinking, sounds like a dumb idea right? Well yes, it is pretty stupid, but it’s nice to do it for testing Oracle VM when you don’t want to dedicate a whole server to it.ย I’ve done this before with no worries. The screen grabs for this article were taken from an installation of Oracle VM inside VirtualBox.

The reason for this post is it doesn’t seem to work for me anymore. Since I last did this successfully I’ve upgraded my host OS (to Fedora 14) and VirtualBox several times (now at 4.0.6). So before I start meddling with downgrading my OS, I would like to know if anyone else has any issues of this type of installation?

I’ve already tried installing old versions of VirtualBox (back to 3.2.8) and that doesn’t fix the issue, so it looks to me like it is the OS that is the issue (sigh). I get the same issue on two servers running Fedora14 as the host OS.

The problem: The installation of Oracle VM inside a VirtualBox VM works fine, but during the post install reboot the VM hangs and I get the following in my “/var/log/messages” file on the host.

May 10 10:42:26 maggie kernel: [  308.782339] BUG: unable to handle kernel paging request at 0000000000002dc4
May 10 10:42:26 maggie kernel: [  308.782345] IP: [] g_abExecMemory+0x1cee8/0x180000 [vboxdrv]
May 10 10:42:26 maggie kernel: [  308.782359] PGD 21600b067 PUD 216319067 PMD 0
May 10 10:42:26 maggie kernel: [  308.782363] Oops: 0000 [#1] SMP
May 10 10:42:26 maggie kernel: [  308.782366] last sysfs file: /sys/devices/system/cpu/cpu3/cache/index2/shared_cpu_map
May 10 10:42:26 maggie kernel: [  308.782370] CPU 3
May 10 10:42:26 maggie kernel: [  308.782371] Modules linked in: vboxnetadp vboxnetflt vboxdrv fuse cifs nfsd lockd nfs_acl auth_rpcgss exportfs sunrpcย ipv6 nls_utf8 udf uinput snd_hda_codec_realtek snd_hda_intel snd_hda_codec snd_hwdep iTCO_wdt ppdev parport_pc parport r8169 iTCO_vendor_support sky2 mii asus_atk0110 i2c_i801 snd_seq snd_seq_device snd_pcm snd_timer snd soundcore snd_page_alloc microcode ata_generic pata_acpi firewire_ohci firewire_core crc_itu_t pata_jmicron nouveau usb_storage ttm drm_kms_helper drm i2c_algo_bit video output i2c_core [last unloaded: scsi_wait_scan]
May 10 10:42:26 maggie kernel: [  308.782377]
May 10 10:42:26 maggie kernel: [  308.782377] Pid: 5584, comm: VirtualBox Not tainted 2.6.35.13-91.fc14.x86_64 #1 P5K-VM/P5K-VM
May 10 10:42:26 maggie kernel: [  308.782377] RIP: 0010:[]  [] g_abExecMemory+0x1cee8/0x180000 [vboxdrv]
May 10 10:42:26 maggie kernel: [  308.782377] RSP: 0018:ffff8801d63ffa68  EFLAGS: 00010286
May 10 10:42:26 maggie kernel: [  308.782377] RAX: 0000000000000000 RBX: 0000000000000000 RCX: 0000000000000003
May 10 10:42:26 maggie kernel: [  308.782377] RDX: 0000000000000001 RSI: ffff8801d63ffa38 RDI: 00007f579403be30
May 10 10:42:26 maggie kernel: [  308.782377] RBP: ffff8801d63ffae8 R08: 0000000000000008 R09: 0000000000000000
May 10 10:42:26 maggie kernel: [  308.782377] R10: 0000000000000fa0 R11: ffffffffa041f430 R12: 00007f57950ef260
May 10 10:42:26 maggie kernel: [  308.782377] R13: ffffc900118d3000 R14: ffffc900118eeb00 R15: 0000000000000008
May 10 10:42:26 maggie kernel: [  308.782377] FS:  00007f5795bae700(0000) GS:ffff880002180000(0000) knlGS:0000000000000000
May 10 10:42:26 maggie kernel: [  308.782377] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
May 10 10:42:26 maggie kernel: [  308.782377] CR2: 0000000000002dc4 CR3: 00000001e6c77000 CR4: 00000000000026e0
May 10 10:42:26 maggie kernel: [  308.782377] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
May 10 10:42:26 maggie kernel: [  308.782377] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
May 10 10:42:26 maggie kernel: [  308.782377] Process VirtualBox (pid: 5584, threadinfo ffff8801d63fe000, task ffff8801fdce1740)
May 10 10:42:26 maggie kernel: [  308.782377] Stack:
May 10 10:42:26 maggie kernel: [  308.782377]  ffffffffa03c9830 00000000000001f4 ffff8801d63ffae8 ffffffffa03d8c17
May 10 10:42:26 maggie kernel: [  308.782377] <0> 00000000000b8000 ffff880100000002 000000000000064e ffff8801d63ffc27
May 10 10:42:26 maggie kernel: [  308.782377] <0> ffffc900118eeb00 0000000300000000 ffffc900118ee000 0000000000000002
May 10 10:42:26 maggie kernel: [  308.782377] Call Trace:
May 10 10:42:26 maggie kernel: [  308.782377]  [] ? g_abExecMemory+0x1e070/0x180000 [vboxdrv]
May 10 10:42:26 maggie kernel: [  308.782377]  [] ? g_abExecMemory+0x2d457/0x180000 [vboxdrv]
May 10 10:42:26 maggie kernel: [  308.782377]  [] g_abExecMemory+0x3508b/0x180000 [vboxdrv]
May 10 10:42:26 maggie kernel: [  308.782377]  [] ? g_abExecMemory+0x5907e/0x180000 [vboxdrv]
May 10 10:42:26 maggie kernel: [  308.782377]  [] g_abExecMemory+0x2cece/0x180000 [vboxdrv]
May 10 10:42:26 maggie kernel: [  308.782377]  [] g_abExecMemory+0x11e1e/0x180000 [vboxdrv]
May 10 10:42:26 maggie kernel: [  308.782377]  [] ? g_abExecMemory+0xf840/0x180000 [vboxdrv]
May 10 10:42:26 maggie kernel: [  308.782377]  [] ? g_abExecMemory+0xf25e/0x180000 [vboxdrv]
May 10 10:42:26 maggie kernel: [  308.782377]  [] g_abExecMemory+0xa18d/0x180000 [vboxdrv]
May 10 10:42:26 maggie kernel: [  308.782377]  [] g_abExecMemory+0x49f97/0x180000 [vboxdrv]
May 10 10:42:26 maggie kernel: [  308.782377]  [] g_abExecMemory+0x1599b/0x180000 [vboxdrv]
May 10 10:42:26 maggie kernel: [  308.782377]  [] ? unlock_page+0x27/0x2c
May 10 10:42:26 maggie kernel: [  308.782377]  [] ? __do_fault+0x342/0x379
May 10 10:42:26 maggie kernel: [  308.782377]  [] supdrvIOCtlFast+0x50/0x54 [vboxdrv]
May 10 10:42:26 maggie kernel: [  308.782377]  [] VBoxDrvLinuxIOCtl+0x44/0x1b0 [vboxdrv]
May 10 10:42:26 maggie kernel: [  308.782377]  [] ? pmd_offset+0x19/0x40
May 10 10:42:26 maggie kernel: [  308.782377]  [] vfs_ioctl+0x36/0xa7
May 10 10:42:26 maggie kernel: [  308.782377]  [] do_vfs_ioctl+0x468/0x49b
May 10 10:42:26 maggie kernel: [  308.782377]  [] sys_ioctl+0x56/0x79
May 10 10:42:26 maggie kernel: [  308.782377]  [] system_call_fastpath+0x16/0x1b
May 10 10:42:26 maggie kernel: [  308.782377] Code: 24 60 45 89 f8 48 8b 55 a0 41 ff d3 85 c0 89 c1 44 8b 55 88 0f 85 91 fe ff ff 45 89 ff 42 8b 0c bd c0 70 40 a0 41 d3 e2 4d 01 16  83 c4 2d 00 00 10 0f 84 6a fe ff ff 41 c7 46 30 00 00 00 00
May 10 10:42:26 maggie kernel: [  308.782377] RIP  [] g_abExecMemory+0x1cee8/0x180000 [vboxdrv]
May 10 10:42:26 maggie kernel: [  308.782377]  RSP
May 10 10:42:26 maggie kernel: [  308.782377] CR2: 0000000000002dc4
May 10 10:42:26 maggie kernel: [  308.782663] ---[ end trace b439b59bc93da8ee ]---

I’ve done the standard Googling, but nothing jumped out at me as a possible solution.

Cheers

Tim…

 

VirtualBox 4.0.0. Changes to VBoxManage Syntax…

I just got home to find a question about my RAC on VirtualBox article. The poster was having problems creating the virtual disks using the commands in the article. A quick scan through the docs reveals a number of changes to the way VirtualBox 4.0.0 handles disks and also changes to the VBoxManage syntax. I’ve amended the article to include a version of the commands for version 4.0.0 which seem to create and attach the shared disks in the same state, but it will be a few days before I get to test this properly.

So what’s happened that affects shared disk setup?

First, you can’t create a shareable disk. You have to create the disk (createhd), then modify it to shareable (modifyhd). That sounds fine, but there is an issue. The manual says,

“Before VirtualBox 4.0, it was necessary to call VBoxManage openmedium before a medium could be attached to a virtual machine; that call “registered” the medium with the global VirtualBox media registry. With VirtualBox 4.0 this is no longer necessary; media are added to media registries automatically. The “closemedium” call has been retained, however, to allow for explicitly removing a medium from a registry”

Well that is not entirely true. When you create a new disk it is not visible in the media manager until it is attached to a VM. That means you have to create the disk, attach it to a VM and then convert it to shareable. If you try to modify it before attaching it to a VM you get told the disk doesn’t exist. This just feels wrong.

As a minor annoyance, the VM detail pane doesn’t notice the “–type” change so the disks still display as normal unless you restart VirtualBox, or click the “Storage” link for the VM and come straight out, which seems to get the screen to update.

This is not a big deal, it’s just a little annoying as the old syntax was more straight forward. I’m sure it was done for a good reason… ๐Ÿ™‚

Cheers

Tim…

Oracle RAC on VirtualBox…

With the recent news that the latest version of VirtualBox now supports shared disks, I thought I better give it a go and see if I could do a RAC installation on it. The good news is it worked as expected. You can see a quick run through here:

This is pretty good news as that was the last feature that tied me to VMware Server. I’ve now moved pretty much everything I do at home on to VirtualBox and it’s working fine.

It’s worth taking a little time looking at the VBoxManage command line. Some of the operations, like creating the shared disks, have to be done from the command line at the moment. It’s also handy for running VMs in headless mode if you don’t want the GUI screen visible all the time.

Cheers

Tim…

VirtualBox 3.0 and Macs and stuff…

I read today that VirtualBox 3.0 has been released. In the past this wouldn’t have been a big thing for me because I mostly use VMware Server on my Linux box, but now I’m a MacBook owner it has more interest. I refuse to pay money for the crippled VMware Fusion on Mac, so VirtualBox is the obvious solution.

The Mac is starting to get under my skin. I’m currently writing this post on my Linux box and struggling. Why? I’m getting used to the Mac keyboard and the keys are in the “wrong” place on this keyboard. Also, having to change from cmd+c/cmd+v to ctrl+c/ctrl+v for copy/paste is hard work. I just stare at the keyboard for a second to try and figure it out. Funny how quickly a lifetime of automatically doing something can change in 2 weeks. ๐Ÿ™‚

So it looks like my next PC will actually be a Mac, then at home I will be consistent. Oh no! It’s happening. I’m becoming an Apple fanboy. Aaarrrggghhh!!! ๐Ÿ™‚

I’m still of the opinion that, looks aside, OS X is not better than Windows/Linux, it’s just different. It’s a nice kinda different, but not streets ahead as people would lead you to believe.

Anyway, enough musings of a Mac newbie… ๐Ÿ™‚

Cheers

Tim…

Desktop Virtualization Tools…

Some quick thoughts on the state of desktop virtualization tools…

Background

If you’ve been checking out my RAC articles, you’ll have probably noticed I’m a bit of a VMware fan. I originally used VMware Workstation, but switched to the free VMware Server when it was released in 2006. I don’t have much cause to complain about VMware Server, but it’s always good to take a look at the competition to see if I’m missing out…

I guess before I start talking about virtualization, I should define what I mean by desktop virtualization. For me, “server” virtualization tools should install on the bare-bones hardware, like Oracle VM and VMware ESXi. I don’t want to waste resources on having a host OS running as well as my virtual machine. On the other hand, desktop virtualization tools should run on top of my host OS, so I can play about with other operating systems, but don’t have to dedicate my hardware to that task.

Vmware Server

Even though the name contains the word “Server”, I still think of this as a desktop virtualization tool as it installs on top of the host OS, not on the bare-bones hardware. That said, it’s the most server-like of the desktop virtualization tools I’ve used. It’s very stable and very feature rich. That’s a good point for someone like me, but may be off-putting to the more casual users.

I guess the standout feature for me is the ability to share disks between VMs. This makes RAC installations using ASM, OCFS2 and raw disks possible, which is a pretty big thing for me. Obviously, if you never do RAC installations using shared disks this is irrelevant.

I guess my only real gripe about this product is VMware are slow to add new OS support. I’ve been waiting for the final release of version 2.0 for a long time, so I still don’t have proper RHEL5 support. That said, I’ve not yet run into any problems running RHEL5 or any other OS, so I guess I’m being mega-picky considering it’s free. ๐Ÿ™‚

If you’re an Apple fan you are out of luck. VMware Server is a Linux and Windows tool only. That’s not as much of a limitation as it sounds since it’s supposed to be a server tool. VMware Fusion supports Macs, but it’s not free.

Parallels

I got my current laptop about 1 year ago and it came with Windows Vista. I tried to use VMware Server on it and ran into a bunch of network related problems. I knew some people who were using Parallelsย on Apple Macs and I saw from the website it was compatible with Vista, so I spent some money and got a copy of it.

Parallels was easy to use and “did what it said on the tin”. I had no problems running Windows and Linux guests, but it wouldn’t let me share virtual disks between VMs and it cost money. The first point was a major issue for me. The second one wasn’t so bad, but a little annoying when I was used to using a free product. ๐Ÿ™‚

While using Parallels on my laptop I was still using VMware Server on my main Linux boxes. Not long after buying parallels I found a solution to my VMware Server on Vista networking issues, so I switched back to VMware Server and never launched Parallels again.

I guess Parallels trump card has been the support for Apple Macs, so you can use one tool for Windows, Linux and Mac.

Xen

This has been knocking on the door of VMware for some time. I guess two really big steps for Xen, as far as people like me are concerned, have been its inclusion in enterprise distributions, like RHEL5, and the introduction of Oracle VM. The enterprise linux distributions (Red Hat, SUSE etc.) approach is to run Xen on top of the Host operating system, making it look very much like a desktop tool. This is a bit unfair as it’s certainly got more to it than that, but that’s how it appears. Oracle’s approach with Oracle VM is to “remove” the host OS and allow it to be installed on bare-bones hardware. I say “remove” because it is still there, but it’s a very small footprint, not a complete kernel+tools installation. This is much the same as the approach used by VMware ESXi. The inclusion in heavyweight distributions like RHEL and its use by Oracle in Oracle VM send out a strong signal about the power of Xen.

As soon as I got my hands on CentOS 5, I gave Xen a try and was pleasantly surprised. It works well and has the “server clout” that some of the other tools lack. When chatting to some Red Hat staff about a year ago, the general consensus was Xen out-performs VMware for Linux VMs, but it a little slower than VMware for Windows VMs. I’m not sure if that position has altered since then and I certainly have no evidence to backup that statement. ๐Ÿ™‚

I guess the biggest issue for most people will be that Xen is only available on Linux. That’s fine as far as server virtualization is concerned, but it means it drops off the map where desktop virtualization is concerned because it’s still a MIcrosoft world out there.

VirtualBox

Available for about 18 months, and acquired by Sun about 5 months ago, I only noticed VirtualBox a few weeks ago when I was looking through the “Add/Remove Applications” utility on Ubuntu 8. A bit of Googling and it turned out to be the current darling of desktop virtualization. Of course, now I know it exists I can’t go a day without noticing someone else writing about it. So today I thought I would give it a shot, which ultimately inspired this post.

I’ve done a test drive of Virtual Box Open Source Edition (OSE) on Ubuntu and it’s pretty sweet. The interface is very simple and it works fine. I can’t speak for the paid-for product, but the OSE edition has no pretensions of being a server virtualization product, so it lacks some of the things I hold dear, like shared disks. What’s more, looking through the forum, it is unlikely to add this type of functionality in the near future, as its quite rightly not considered a must-have for the desktop.

If you are thinking about running Oracle 11g on VirtualBox, you might want to read this post by Eddie Awad.

I guess the two big plus points in favor of Virtual Box are its free, and its available for Windows, Linux and Mac. Those two alone make it pretty compelling.

Others

I know there’s a bunch of other virtualization tool out there, but I don’t consider any of them particularly mainstream. I know Microsoft Virtual PC 2007 could be considered a biggy, but I would never use a Windows only product like this because I’m not a Windows only guy. Call me biased, but it is my blog.

Update: Look at Qemu if you need non-x86 emulation, or coLinux if you only use Linux VMs. ๐Ÿ™‚

Conclusion

For the time being I will be sticking with VMware Server. The main reason for this is it allows me to do my RAC installations using shared disks. Added to that, I can share my VMs between my Linux and Windows boxes with no problems.

If you don’t need shared disks I would seriously consider VirtualBox because it’s simple, free and supports all the right platforms. Seems like the obvious choice for most people. ๐Ÿ™‚

I’m interested to know your feelings on these and other products. After all, I’m just speaking from my experience of them and it’s always good hear differing opinions.

Cheers

Tim…