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:
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:
%%(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=onVBoxManage 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.
