This is an old revision of the document!
Table of Contents
VirtualBox
VirtualBox is a free, open-source hypervisor from Oracle. It has performance on par with VMware and is very mature. We have two virtualization servers which run VirtualBox on top of CentOS, biovbox and biovboxtest.
Tips
Optimal settings for Linux guests
Guest operating systems are not like host operating systems. These settings are generally regarded as improving the performance of guest virtual machines.
- Set the IO scheduler to
noop
:- Edit the grub command line to set the default IO scheduler, usually in /etc/default/grub:
elevator=noop
- Install guest additions (VirtualBox or VMware)
- Run a virtual machine-specific kernel:
- Ubuntu: linux-image-virtual
- Mount filesystems with
noatime
in /etc/fstab
Networking
Bridged Networking
If your guest is using bridged networking you MUST use this command to allow other users to use the host's physical network card. Make sure your virtual machine is shut down and then run this command:
VBoxManage setextradata MyMachine VBoxInternal/Devices/pcnet/0/LUN#0/Config/RestrictAccess 0
Each and every VM using bridged networking must use this command. If you are seeing errors like VERR_PERMISSION_DENIED
regarding the network interface, this is the cause!
As of VirtualBox 3.1.2 this is still a known issue.
Port Forwarding
If your guest OS is using NAT for networking and you want to access services like Apache or SSH, you will need to enable port forwarding. There is no GUI for this in VirtualBox, but you can use VBoxManage setextradata
to make the required changes. If you want to SSH to your VM, for example:
$ VBoxManage setextradata Ubuntu "VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/HostPort" 2223 $ VBoxManage setextradata Ubuntu "VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/GuestPort" 22 $ VBoxManage setextradata Ubuntu "VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/Protocol" TCP
Then you can log in to the VM from your own computer using the port you've forwarded above:
$ ssh -p 2223 username@172.26.0.200
Commonly-used commands
List your VMs
$ VBoxManage list vms
List your running VMs
$ VBoxManage list runningvms
Updating VirtualBox
Stop any running VMs
Either shut down or "save state" for any running VMs. First, find any users who have "headless" VMs:
# ps aux | grep -i VBoxHeadless jmagochi 4939 3.9 3.5 759372 72268 ? Sl Oct05 402:13 /usr/lib/virtualbox/VBoxHeadless -s nobu jmagochi 4991 12.5 3.2 621588 67632 ? Sl Oct05 1281:41 /usr/lib/virtualbox/VBoxHeadless -s lims aorth 18431 9.7 1.7 998940 36160 ? Sl Oct11 129:54 /usr/lib/virtualbox/VBoxHeadless -s b0237553-9653-4461-bd0e-d4d316c16d4f -v off
As the user who owns the VM, save the VM's state:
# su - jmagochi $ VBoxManage controlvm nobu savestate $ VBoxManage controlvm lims savestate $ exit # su - aorth $ VBoxManage controlvm b0237553-9653-4461-bd0e-d4d316c16d4f savestate $ exit
Update VirtualBox
# yum update VirtualBox-3.2
Resume VMs
# su - jmagochi $ VBoxHeadless -s nobu & $ VBoxHeadless -s lims & $ exit # su - aorth $ VBoxHeadless -s b0237553-9653-4461-bd0e-d4d316c16d4f -v off &