This summer sees me working in an Web Administration team for a medium sized outfit. My days have consisted of installing Java Enterprise applications on servers in a wide array of pre-production environments. While this part of the job has been my least favourite, the environment I work has inspired me to try something new. Using the ample resources of my desktop computer, I’ve set out to create a small network of nodes. This small network will be playground for me to expose my self to web application development and network maintenance. Since starting out in Computer Science, I knew I would have to face web programming at some point as web applications are a booming industry.
Lost with a Map
Not quite sure what I wanted to do, I set out on Google to find some guidance. After a only a few searches, I came across this blog by Steven Gordon. It outlines the steps he took to create a virtual network made up of 3 nodes in VirtualBox. Using his steps as a guide, I was able to create a similar network of 3 nodes. Not all the steps applied to me and not all the steps were necessary or up to date but there weren’t any impassable roadblocks preventing me from doing most of the setup in one Saturday evening.
Devil in the Details
Each node is a copy clone of a base install of Ubuntu Server X.X.X. This install was configured with 512MB memory and 2GB harddrive space. I’m running these nodes on a Windows 7 Professional host with 8GB Memory and an i5-3420 processor. The C drive is on a dedicated Samsung Evo 840 256GB SSD. There is also a HDD with a XXXGB for data storage. The host PC also has an Nvidia GeForce 660ti video card.
With this set up, I’ve had very few problems with memory management. I can run Borderlands 2 on high settings at 1600×1050 with no issues. However, doing so with a a ~10 tabs of chrome open will fill up the memory close to capacity but without throwing any low memory warnings. I’ll have to pick up more memory if I want to grow this network at all and keep it running while during the odd gaming session.
A couple of days after creating these nodes and leaving them running day and night, I could not get the host PC to output video. I have the monitor setup to go into power saving mode after a few minutes but the PC should never go to sleep or hibernate. Inspecting the Event Viewer didn’t shed any light on what the issues was though there were a few memory warnings thanks to chrome. I plan on doing some video card testing to make sure that there aren’t any issues there as well as testing the memory though the current modules are fresh from an RMA.
After some verification of the current setup, my next step will be to decide what exactly I want to do with each node. I have a PHP site I’d like to host and continue to develop on one of them. I’d also like to look into various network elements like routers, or the Client-Server model as well as network security.
After letting this sit for a couple weeks, I decided to scale back my initial plan. I spent an evening creating a Ubuntu LAMP server and setup my issue tracker web application on it. I’m going to focus on developing that application further which may include creating a server to host databases for this and other web apps down the road.
My current Ubuntu LAMP server is setup using a 8GB VMDK instead of the 2GB I was using for the nodes above as I was having trouble staying within that 2GB limit. I also setup the server to run with a bridged adapter rather than the NAT and Internal setup of the nodes. The bridged adapter essentially setups the VM as a separate machine on the LAN as if it were a physical machine connected to the router. This has the advantage of allowing me to easily ssh into the VM from any PC on the LAN. Using a NAT setup I could have forwarded a port for ssh from other machines on the network but now I don’t have to setup port forwarding for every service that may want to connect to that server in the future.
While the end result may not be what I initially intended, this has been a valuable experience. I’ve gained some hands-on experience configuring VirtualBox VMs and Ubuntu. With this solid Ubuntu server running, I can easily clone it and create nodes for whatever purposes that may arise in the future. For now, I’ll focus on what I enjoy that most: coding. I hope to throw together a post about the issue tracker web app I am developing soon and an update on Geoff once some parts I’ve ordered come in.