VirtualBox 4.1.2#


I started looking at VirtualBox again, to assess it as a feasible low-cost virtualization solution.
I have been running my (2) servers on older laptops running in a closet at home. The laptops runs Ubuntu 8.04 (LTS) with an OpenVZ kernel.

Since this is getting rather old now (almost 4 years), and every now and then you want to have something new (the only difference between a man and a box is the price of his toy) and I had some (not disclosed) issues with backups, I thought let's see if VirtualBox is any good here.

My wishlist/requirements.#

1) - (recent) Ubuntu Guest OS

I first had a look at the http://openvz.org site, but concluded that running a recent Ubuntu server is not a "default route".
Since my hardware also

2) - Easy Full Server Backup (off site)

vbox clonehd ?

3) - Easy re-sizing of disk images

vbox modifyhd resize ?...

4) - Remote console access

vrde stuff with extension packs....

5) - No Graphical (X) server required

VBoxHeadless...

6) - Capable of running 5 guests

2 is minimal required...

7) - Misc management capabilites

stats , NATing, live migration ?

8) - No dependency on hardware virtualization capabilities

Resources#

The Journey#

Installation is smooth, o my testbed btw is my HP Dual Core 2GB laptop with Linux Mint 12 Lisa. So simple installation with synaptic.
But after a couple of hours you discover that you also need the Extensions Pack, simply download and Startup VirtualBox => File => Preferences => Extensions. I needed the extensions to get VRDE to work, so I could startup a VM from the cmdline (so without a GUI) and get a VRDP session with it (using vinagre as vrdp client)
So the GUI now works fine, and we play a bit with creating VMs (Ubuntu 11.10 server), cloning, snapshot's, and this all works fine.

TIP: Use VM names without blanks

Creating and modifying a VM#

After fiddling a bit, I found the following command was good to create a VM:
VBoxManage createvm --name Ubuntu2 --ostype Linux --register

metskem@gneisenau ~ $ VBoxManage createvm --name Ubuntu2 --ostype Linux --register 
Virtual machine 'Ubuntu2' is created and registered.
UUID: 9e527adc-ddc4-41b9-8b9e-9e730f8b49a1
Settings file: '/home/metskem/VirtualBox VMs/Ubuntu2/Ubuntu2.vbox'

Let's see what the default attributes are after we have only created a VM, this is done with the showvminfo cmd:

VBoxManage showvminfo Ubuntu2
metskem@gneisenau ~ $ VBoxManage showvminfo Ubuntu2
Name:            Ubuntu2
Guest OS:        Other Linux
UUID:            949c6764-b229-462b-9175-57ac6e9976b8
Config file:     /home/metskem/VirtualBox VMs/Ubuntu2/Ubuntu2.vbox
Snapshot folder: /home/metskem/VirtualBox VMs/Ubuntu2/Snapshots
Log folder:      /home/metskem/VirtualBox VMs/Ubuntu2/Logs
Hardware UUID:   949c6764-b229-462b-9175-57ac6e9976b8
Memory size:     128MB
Page Fusion:     off
VRAM size:       8MB
CPU exec cap:    100%
HPET:            off
Chipset:         piix3
Firmware:        BIOS
Number of CPUs:  1
Synthetic Cpu:   off
CPUID overrides: None
Boot menu mode:  message and menu
Boot Device (1): Floppy
Boot Device (2): DVD
Boot Device (3): HardDisk
Boot Device (4): Not Assigned
ACPI:            on
IOAPIC:          off
PAE:             off
Time offset:     0 ms
RTC:             local time
Hardw. virt.ext: on
Hardw. virt.ext exclusive: on
Nested Paging:   on
Large Pages:     off
VT-x VPID:       on
State:           powered off (since 2011-12-31T12:12:45.649000000)
Monitor count:   1
3D Acceleration: off
2D Video Acceleration: off
Teleporter Enabled: off
Teleporter Port: 0
Teleporter Address: 
Teleporter Password: 
NIC 1:           MAC: 080027707CC7, Attachment: NAT, Cable connected: on, Trace: off (file: none), Type: Am79C973, Reported speed: 0 Mbps, Boot priority: 0, Promisc Policy: deny
NIC 1 Settings:  MTU: 0, Socket (send: 64, receive: 64), TCP Window (send:64, receive: 64)
NIC 2:           disabled
NIC 3:           disabled
NIC 4:           disabled
NIC 5:           disabled
NIC 6:           disabled
NIC 7:           disabled
NIC 8:           disabled
Pointing Device: PS/2 Mouse
Keyboard Device: PS/2 Keyboard
UART 1:          disabled
UART 2:          disabled
Audio:           disabled
Clipboard Mode:  Bidirectional
VRDE:            disabled
USB:             disabled

USB Device Filters:

<none>

Available remote USB devices:

<none>

Currently Attached USB Devices:

<none>

Shared folders:  <none>

VRDE Connection:    not active
Clients so far:     0

Guest:

Configured memory balloon size:      0 MB
OS type:                             Linux
Additions run level:                 0

Guest Facilities:

No active facilities.

Before you start creating things, you have to think about "how do I ever clean up the mess I created? ", so the question here is, how do I delete the VM again? Well that can be done with the unregister subcommand:

VBoxManage unregistervm Ubuntu2 --delete
%%(background-color : #d3ee03 )

I use the --delete option to really get rid of everything including harddisks, saved states and log files, simply I don't want to find anything of it anymore. (I reran the createvm subcommand again after deleting is.)

Now we are happy with most of the default, but a few changes would be nice, so we go to the subcommand modifyvm :
VBoxManage modifyvm Ubuntu2 --memory=256 --hwvirtex=off --hwvirtexexcl=off --vtxvpid=off --boot1=dvd --boot2=disk --boot3=none --nic1=bridged --bridgeadapter1=wlan0 --nicpromisc1=allow-all --vrde=on --vrdeport=13389

VBoxManage modifyvm Ubuntu2 --memory=256 --hwvirtex=off --hwvirtexexcl=off --vtxvpid=off --boot1=dvd --boot2=disk --boot3=none --nic1=bridged --bridgeadapter1=wlan0 --nicpromisc1=allow-all --vrde=on --vrdeport=13389

The modifyvm subcommand gives no output if it succeeds, if you want to see the result, issue the showvminfo command again.

Creating and attaching storage devices#

Now before we can boot the thing, we need a bootable ISO image, and a harddisk that can be used for installation.

I downloaded an Ubuntu 11.10 ISO in /home/metskem/iso/ubuntu-11.10-server-i386.iso.

First we have to define 2 controllers :

VBoxManage storagectl Ubuntu2 --name='IDE Controller' --add=ide --controller=PIIX4 --bootable=on
VBoxManage storagectl Ubuntu2 --name='SATA Controller' --add=sata --controller=IntelAhci --bootable=on

The result with showvminfo :

metskem@gneisenau ~ $ VBoxManage showvminfo Ubuntu2|grep Storage
Storage Controller Name (0):            IDE Controller
Storage Controller Type (0):            PIIX4
Storage Controller Instance Number (0): 0
Storage Controller Max Port Count (0):  2
Storage Controller Port Count (0):      2
Storage Controller Bootable (0):        on
Storage Controller Name (1):            SATA Controller
Storage Controller Type (1):            IntelAhci
Storage Controller Instance Number (1): 0
Storage Controller Max Port Count (1):  30
Storage Controller Port Count (1):      30
Storage Controller Bootable (1):        on

Now let us attach the ISO image as a DVD drive with the storageattach subcommand:
VBoxManage storageattach Ubuntu2 --storagectl='IDE Controller' --port=1 --device=1 --type=dvddrive --medium=/home/metskem/iso/ubuntu-11.10-server-i386.iso

And also this can be listed, this time with the list subcommand:
VBoxManage list dvds

metskem@gneisenau ~ $ VBoxManage list dvds
UUID:        32feb261-654c-4562-8115-7b25e5aff798
Format:      RAW
Location:    /home/metskem/iso/ubuntu-11.10-server-i386.iso
State:       created
Type:        readonly
Usage:       Ubuntu2 (UUID: df6e7d7d-3e48-43f9-8358-126a89428fe3)

And now the hard disk, but we first have to create a hard disk, that can be done with the createhd subcommand:
VBoxManage createhd --filename '/home/metskem/VirtualBox VMs/Ubuntu2/Ubuntu2Disk.vdi' --size=5000

metskem@gneisenau ~ $ VBoxManage createhd --filename '/home/metskem/VirtualBox VMs/Ubuntu2/Ubuntu2Disk.vdi' --size=5000 
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Disk image created. UUID: daeb6941-e194-47ab-99a3-af74700b7e99

Watch out, this hdd is not yet "registered" with VirtualBox, you first have to attach it to a VM with the storageattach subcommand:
VBoxManage storageattach Ubuntu2 --storagectl='SATA Controller' --port=1 --device=0 --type=hdd --medium='/home/metskem/VirtualBox VMs/Ubuntu2/Ubuntu2Disk.vdi'

This command gives no output if it succeeds. You can now list the available hdds with the list subcommand:

metskem@gneisenau ~ $ VBoxManage list hdds
UUID:        daeb6941-e194-47ab-99a3-af74700b7e99
Parent UUID: base
Format:      VDI
Location:    /home/metskem/VirtualBox VMs/Ubuntu2/Ubuntu2Disk.vdi
State:       created
Type:        normal
Usage:       Ubuntu2 (UUID: df6e7d7d-3e48-43f9-8358-126a89428fe3)

Starting the thing#

Now everything looks ready for the first boot, so use the startvm subcommand to boot :
VBoxManage startvm Ubuntu2 --type=headless

metskem@gneisenau ~ $ VBoxManage startvm Ubuntu2 --type=headless
Waiting for VM "Ubuntu2" to power on...
VM "Ubuntu2" has been successfully started.

Backup up#

Resizing HD#

Misc..#

Summary of commands#