… to sound cliche.
boo-hoo’ing
So, my precious VMWare node, running on an old Dell 1850 died a couple weeks ago. I lost a drive. I had it set up with RAID0. Yes, I’ll admit I was over confident. I was surprised how quickly that drive died, but I lost everything. I lost years of work: my SVN repositories, my Asterisk configs, my DNS records, the list goes on.
A good friend of mine said, “It’s time to go to the Cloud; It’s awesome.”
He was right. In recent months, I’ve relied heavily on DropBox and more recently on Box.net, and even more recently on Microsoft’s Skydrive, but what was I going to do with my other services?
… back in my day…
It’s been so many years since I’ve run a server in my basement. Even before my kids were born. I was one of the first people to get aDSL in Atlanta: this was when the phone company still did a truck roll to their customer’s house. I ran a FreeBSD box, (I think 4.5), that did PPPoE with a really old 10Mbit switch. Ever since then, I had a box in the basement doing things. I used to run mail servers, web servers, media servers, network drive, internal DNS, and even an Asterisk PBX.
So when this box died this year, (2011), I felt naked. So here’s what I did and I am pretty happy. Ultimately, this forced me to evolve and I’m better off for it. I remember reading a post somewhere, might have been /., but during something like Hurricane Katrina, you can zip up and encrypt you bank account information, and send it to yourself at Gmail, and have it available if you could get to a computer. Things have changed since then so this is easier than every, so apply the same base idea and you can recover from any crisis in minimal time.
evolution
So where was I… oh yeah… here’s what I did:
- Moved my internal DNS to http://www.dyndns.com/. I use it to get to my home network so now I have both my external IP and my internal IP’s.
- Moved my PBX for my company’s cloud PBX server. Very nice!
- I lost my Confluence installation, so for now… I am using PBWiki
- Set up a small Dell Optiplex 745 with Proxmox, which uses OpenVZ as the underlying virtualization technology.
This is working really nice, in my opinion. I really like my linux containers on my Proxmox box. This is way ligher than running VMWare on a 1U server. I am sure my power bill will decrease immensely.
This is what I am running on my Dell Optiplex. It’s only got 2GB of RAM and I have to say, I think my containers are running better than they did on my Dell 1850. I did have to enable “VT” in the Optiplex’s bios to get full KVM support. Go figure:
- One container set up for web development, Apache + PHP
- One container running MySQL
- One container running Confluence
- One container running a development WordPress blog
- One KVM virtual image running AlienVault
The AlienVault VM was more of an experiment to run a completely virtualized image. It’s pretty cool but I’m not really relying on it.
behind the curtain
I wanted to do something slicker than doing port redirection on my gateway/router for the various images behind the firewall. So I enabled mod_proxy on the webdev box and after some trial and error, it works. So I set up CNAMES in DynDNS that are public names and the mod_proxy works great. This is what I have in my vhost_name.conf for Apache. I have one .conf for each web site behind my router:
<VirtualHost 192.168.0.71:80> ServerName host.public.domain.tld ProxyRequests Off <Proxy *> Order deny,allow Allow from all </Proxy> ProxyPass / http://host.internal.domain.tld/ ProxyPassReverse / http://host.internal.domain.tld/ <Location /> Order allow,deny Allow from all </Location> ErrorLog /var/log/httpd/blogs-error_log CustomLog /var/log/httpd/blogs-access_log common </VirtualHost>
It works great! I love it! No more crazy port redirects! I got conf files for my Tivo’s, too! I was doing some remote work, and I think I might need a tiny VZ container to use as an SSH jump host.
lessons learned
This time, I am going to be more rigorous around my backups. Proxmox has a backup utility built into it, and I am uploading those tar files up to box.net for now. It’s manual, but I will script here shortly.