Welcome to act two of our little saga, whereupon our protagonist, having found that his existing shared blog host is now unreliable, has set out in search of a new host. A private host. Very possibly a virtual host. In fact, the situation has become very cloudy indeed.
In some regards the growth of a blog such as this, and the related hosting issues, is a little like being a teenager. Living at your parents home is very cheap, but you’re limited in what you can do, and the sort of traffic that they will allow. Ultimately your desire for freedom will force you to find your own place to live, where you have greater control of what goes on, even if that means you always have to clean up after yourself.
The decision to seek a more private host is only one step in this migratory process. The next question that arises is, “what kind of host?” Windows? Linux? If Linux, what distribution? Which supporting applications? How much CPU, memory, storage, etc?
As a Linux newby I was hoping to ease my transition into administering my own server by using a pre-packaged, appliance style Linux distribution. In researching my options I had been pointed to the Turnkey Linux project as a very nicely packaged WordPress appliance. Several people that I know had used TKL to build a server quickly and easily. Based upon the Ubuntu distribution, the package includes the OS, database and everything you need to launch a site, all nicely bundled with a web-based administrative GUI.
Since I’m no Linux guru I latched on TKL as being a very attractive platform to get me started.
Not wanting to imperil my site through my own ignorance I had thought that it would be good to gain some admin experience on a server on my local network. I started by trying to load the TKL WordPress appliance onto a tiny Fit-PC2 net-top. The “appliance” software distribution on a small, appliance-like net-top seemed liked a great combination. Unfortunately, it would not load.
It turns out that TKL at that time was based upon Ubuntu 8.04, which lacked some drivers for the Atom-based Fit-PC2 hardware. More recently, the TKL project is moving towards using Ubuntu 10.04 as the basis for their appliances, but these are not yet available.
I located an old PC that had once been my desktop, deciding to use it in place of the Fit-PC2. Happily, I had TKL-WP installed and my existing site loaded to that server in just a couple of hours work. This was very encouraging, and seemed to support the idea that TKL-WP would serve me well.
With a version of the site to work on offline I turned my attention to finding a host. The TKL project web site listed a handful of hosting partners* providers that supported the project. I decided that I liked the look of VPS.Net so I setup an account and started to experiment with their service.
* I see that as of Aug 28, 2010 VPS.Net is no longer listed as a TKL hosting partner. Let’s just call this a foreshadowing of events yet to come in this tale.
At VPS.Net you provision your server by purchasing “nodes.” Each node is supposedly the equivalent of 600 MHz of CPU and comes with 376 MB of memory, 10 GB of disk space and 250 GB of monthly data transfer. Two “nodes” seems to be the minimum practical size for a site like mine, scaling up involves only assigning more resource to the site…..and of course paying more each month.
I purchased two nodes and launched the TKL-WP image on those nodes. Thus my VPS was supposedly the equivalent of a 1.2 Ghz CPU, with 752 MB of memory and 20 GB of disk space. For my needs this should have been, to quote the horsepower rating of a Bentley automobile, “adequate.”
Just as I had done with the local server, I built the site on the VPS. I updated WordPress, installed the various plug-ins I use imported the WordPress XML file exported from the existing site. I allowed the import process to FTP all the graphic assets from the old site.
Once again, I was pleased to find that the process was fast and painless. I did find that I had to remedy some bad links resulting from a failure to import all the media from the old instance of the site. I was able to manually FTP the missing files and use the Add From Server plug-in to make the necessary corrections.
In the process of making this migration several times I discovered some handy tools & techniques for migrating WordPress blogs.
- Velvet Blues URL Updater – a WP plug-in that globally changes URLs in the WordPress database from within the WP admin panel. This is especially handy for changing the root address of a test site to be the root of your URL when it goes into production.
- Add From Server – a WP plug-in that adds media to the WP database, allowing you to FTP an entire set of files, adding them to the media database in one quick step.
- I also learned to make global changes to the MySQL database directly, which is the old skool approach to migrating between hosts.
The process of VPS setup and TKL-WP installation was trivially easy and completely painless. I was impressed, and I said so in the TKL forums.
While I have owned the mgraves.org domain since I started blogging I eventually came to own mjgraves.org as well. “Mjgraves” is an identity that I assumed when I started using Twitter. More often than not I find that “mgraves” is already taken as an account name. Further, as I was making this migration someone offered to sell me mjgraves.com, which I eventually decided to purchase.
Now with several domains I thought it wise to consolidate management of them at one company and not just do it through the hosting provider. Asterisk wizard Ward Mundy recommended Omnis Network so I consolidated the management of all my domains over there. Omnis Network have thus far been very good to deal with.
By the time the domain management had been transitioned I had the VPS at VPS.Net ready to go. It had been running for a week or two without any apparent problems. At the same time, the BlueHost server had been down an ever-increasing amount, so on Friday, July 9th I changed the DNS settings to take the VPS live.
I thought it had been quite a ride, an adventure even. I’d learned a lot, had some fun, but was now running my own server…kinda.
To my dismay, by Tuesday of the following week the VPS was crashing about every eight to ten hours.
It appeared that the VPS was running out of memory over time. Digging into the issue I found that this was a known issue with the combination of the Xen virtualization used at VPS.Net and the TKL project.
There were several threads in the VPS.Net support forum that documented this trouble. I’d post links here, but the relevant VPS.Net support forums only allow active customers to log in. Management at VPS.Net seemed to think that this is was an issue for the TKL project team to solve.
So I found myself caught in a mild sort of dispute between the hosting company and the open source project. In truth, I felt duped by both parties.
If there was a known issue then neither should have been promoting the combination as viable. VPS.Net in particular was promoting how easy it was to launch any of a myriad appliance images, including many TKL images, into their hosting environment. I felt that they were being irresponsible making such statements if those appliance images were not reliable in production.
I was paying VPS.Net for the hosting, which means that in theory I should have had some recourse with them, but they seemed unwilling to help with what they felt was a pure software issue. So I decided that I would move off of VPS.Net as soon as I could find a suitable replacement. I had not yet given up on TKL as the hosting platform, just VPS.Net as the host.
This is where one of the nicer points of VPS hosting came into play. It seems that most VPS hosting does not require a long term contract. The VPS.Net site boasts:
- Daily billing – only pay for what you use
- No commitment – upgrade, downgrade or cancel at anytime
In the mean time, given the fact of the memory issue I decided to simply stoke the VPS with more CPU & memory to extend it’s up-time between reboots. I bought a couple more nodes to gain the additional hardware resources. That worked for a week or two while I considered my options.