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.
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
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
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.
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=onThe 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)
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.
Now to get the console, you have to use an RDP client (I used vinagre), and connect to localhost:13389, you should see a console with an Ubuntu LiveCD booting. (I had the issue that my screen was larger than the window...but this was a normal Ubuntu install and I accepted all defaults)
<summarize all handy VBoxManage cmds here........>