The shared SOHO/Home environment can be just as challening an environment as the enterprise.
For my enviroment I rely very heavily on VMware to keep business critical machines clean and operational and to ‘sandbox’ machines used for experimental or more frivoulous activities.
I run two VMware host machines according the following strategy:
Machine 1. Linux Ubuntu 8.04LTS 64Bit VMware Server 2.x
This machine runs VMwaer Server 2.x and is kept clean and tidy and not upgraded except for essential maintenance. I use this machine for mission critical / enterprise application virtual machines.
These are virtual machines which must be accessible to the outside world all the time ie web, mail, versioning repository, mirror partners, etc. In each case an individual VM supports each service.
There is no general desktop computing on any of the VMs which run on this host.
Machine 2. Windows7 64Bit VMware Workstation 8.x
This machine runs VMware Worstation 8.x and is kept clean and tidy and not upgraded except for essential maintenance. I use this machine for all desktop computing application virtual machines.
These are virtual machines which run applications such as email, office applications,web browsing, product development and design activieties. This machine also runs ‘client application virtual machines’ which allow me to keep client work completely isolated on a virtual machine by virtual machine basis.
The logic behind isolating client application virtual machines is quite simple. The nature of many projects involves a complex collection of development tools and configurations in order to undertake the work involved. It is vital that the working integrity of these machines is maintained and not polluted by the installation of applications or configurations needed to perform work for other clients. In some cases these will be Linux machines and in others they might be Windows machines. A single client may also have different projects on more than one client application virtual machine as the needs dictate.
The wonderful thing about this approach is that I may need to revist a client project 12 months or more later and this way I am confident I can simply pick up where I left off with no concerns that the working/development environment as become broken by other client work in the the meatime.
I access all of these VMs, both enterprise and desktop, in several ways (and sometime multiples ways simultaneously), local and remote VM console, VNC and RDP.
In the SOHO environment I access these resources from a typical fixed desktop workstation which has been setup with multiple monitors for a productive environement.
If I need to work remotely I will do one of the following .
a) For lightwieght access I will use secure VNC or RDP from my laptop computer irectly accessing the running VMs back in the office.
b) For heavywieght access such as travel and remote offline work I transfer the VMs I need onto my laptop before I leave and then transfer them back again when I return.
In many cases there is no need to copy an entire VM back from my laptop, just the data and I retain an contingency copies of the VMs on my laptop.
My General Rules For VMs
1. All general purpose VMs are 32bit for maximum portability.
2. 64bit VMs are only created when absolutely necessary, ie 64bit software testing.
3. All general purpose VMs are 2 CPUs for maximum portability.
4. All VMs use DHCP.
I regulary backup all VMs by shutting down the VM and making a local copy on the same host machine. Once the copy is made the VM is immedaitely brought back up again to minimise off-line time. How often this is performed depends on how dynamically your VM changes in its core build.
Archival backups are only ever made from the VM copies using the CPU horsepower on a separate machine to the VM host. In this way the VMs can be compressed and stored on a NAS solution without impacting the performance of the VM host. This is important when compressing 64GB VMs! Altimates the compressed NAS archives go to off-set backup as part of normal back best practive.
It is important to note that VM backups are not a substitue for core application data backups. Normal best practice for application data backups are always used independently of VM backups.