Virtualization: Decouple Your Server Hardware and Storage
Are you having difficulty separating your server applications and data from your server hardware? Wish you could use that inexpensive NAS to store application data, but your applications don’t work over NFS? Wish you could easily switch between server hardware without having to physically move storage from one server to another? These are problems I’ve had for a long time that virtualization technologies have now resolved.
The Problem: Decoupling Server Hardware and Storage
Traditional server configurations involve a single piece of hardware (processor, memory), and some storage (a single drive or RAID configuration). Load on this an operating system, configure your applications and you’re off to the races. When the server hardware fails or you want to upgrade the server, you have to physically move the storage from the old server to a new one and deal with any RAID issues. This can be a time consuming, error-prone activity, especially if you don’t have quick, physical access to your hardware.
The Virtualization Solution
With server virtualization you can easily decouple your server hardware from your application and OS storage. The benefits to this approach allow you to incorporate inexpensive server hardware and low cost storage solutions to create a complete solution that affords reliability in the event of hardware failure and flexibility in the face of server re-provisioning and upgrades. Running a virtual server on the server hardware and storing the virtual images in a NAS is a solution that has been revolutionary in the way I am currently provisioning and running my server applications.
My Configuration
My current configuration uses commodity server hardware running a stripped down version of Ubuntu Feisty server and an install of VMware server. I have saved this server install and can quickly replicate it to bring up new server hardware if needed. I am currently experimenting with loading this setup from a 4GB compact flash, as there is no need for the server to have a hard drive. I have created stock VMware server images and store them on a 2TB ReadyNAS. The servers mount the VMware images via NFS. Benefits of this setup include:
- I have commoditized my server infrastructure. I can rely on an array of inexpensive non-redundant server hardware to run my virtualized servers and applications. If server hardware fails, I can quickly switch the virtual image to another working one.
- The server hardware runs a minimal set of applications (base OS and VMware server) this configuration is easily and quickly replicable.
- I can run multiple virtual images on a single server, making more efficient usage of the hardware and easily separate applications that may interfere with each other.
- All the applications and data are stored on the ReadyNAS, a device that that is designed for reliable high-capacity storage of data.
- Applications are encapsulated in virtual images and are not affected by the use of NFS. I have always use Cyrus IMAPD to serve my email. Using Cyrus IMAPD over NFS is not recommended and can result in corruption of key system files. I am now using Cyrus IMAPD in a virtual image over NFS, and am immune to typical NFS problems. Same holds true for all other databases and applications that have issues running over NFS due things like file locking or delayed writes.
If you’re struggling with the issues I’ve mentioned above, give server virtualization a hard look. It has the potential to change how you go about deploying your servers and applications. Feel free to contact me if you have any questions or would like some more information on how to simplify your server deployments using virtualization technology.