The background:
I need to do some testing with Microsoft exchange server. Specifically, I'll be installing some software on the Microsoft exchange server machine and uninstalling that same software again.

The problem I face:
While I repeatedly do this with different versions of my software there is a chance that sometime later the Exchange server installation might get corrupted. When that happens I would need to reinstall Exchange server which I feel is somewhat of a chore.

So what I am planning to do is to install the Ms Exchange server on a virtual machine in VMware ESX server and take a snapshot so that during my work whenever the installation is corrupted I can restore the snapshot.

So here's my question:
Would restoring the snapshot for the Microsoft Exchange server virtual machine work correctly?
I'm not familiar with the intricacies of exchange server and any changes (if any) that happen with the Domain controller when we use or install an exchange server (Personally I don't think that should happen but just making sure). I have a shortage of time and hence decided to post this question here.

Could someone please tell me whether restoring a snapshot for Exchange server would work fine?

Thanks a load,


Restoring a snaphot of a VM will bring the machine back to the previous state so yes that will work for a single machine. If the testing is just an application then it shouldn't be a problem.

Exchange itself that makes quite a few changes to AD so if you are using the snapshot to roll back the changes an Exchange install makes, or if the software could corrupt Exchange, then make snapshots prior to the Exchange install of the Exchange server and the DC(s) so that you can get back to totally clean. If you end up needing to roll back the Exchange server prior to the Exchange install then you will also need to roll back the the DC(s), or face many problems with AD that will be very difficult to resolve.

| improve this answer | |
  • 1
    Be very careful with snapshots and DC's - see serverfault.com/questions/15196/…. Unless you can rollback an entire domain in one shot you will be in for a world of hurt. – Helvick Nov 16 '09 at 9:35
  • I completely agree, they all go back if one goes back. All of above assumes a test environment and the DC snapshots have to be done essentially at the same time or with the DC's disconnected from one another after a replication. – Ed Fries Nov 16 '09 at 17:38
  • @Ed Thanks for your help. It's been a long time since I was working on this but yes. This is what worked for me. I setup the Exchange Server on the DC itself so that while rolling back I was able to roll back both simultaneously. – Mugen Oct 7 '11 at 9:20

The snapshot feature on VMWare can be flaky if you keep a snapshot on a VM for too long. When there's a snapshot active on a VM, the system keeps a static copy of the VM hard disk & generates a kind of diff file to track changes from that point onwards. When you 'delete' a snapshot, what really happens is the diff file and base disk get merged together. The system works quite well but has limitations with:

  • Snapshots being held open for extended periods of time (in my experience, often leads to the VM crashing)
  • IO-intensive applications and applications that use the disk in 'funny' ways (specifically: AD, Exchange, SQL)

As already mentioned, your exchange install/uninstalls will probably be making changes to the Active Directory environment as well.... and AD doesn't play ball with snapshots. If you roll back a domain controller without carefully rolling back all other DCs at the same time, the domain will pretty much crumble.

One possible approach may be:

  • Set up an initial set of servers, configured as an isolated AD and Exchange environment. Get it to the state you need before any of your testing work commences. This may mean an AD installation + a few VMs with just the OS loaded on, ready for exchange.
  • Treat this set of servers as your 'reference' VMs. Do not make any changes to them. Maybe burn the disks off to DVDs to ensure they never change.
  • Run the static VMs through VMWare Convertor to create a cloned set of VMs. Put these VMs on a VMWare Host-Only isolated network.
  • Do your testing as necessary.
  • When done, delete the VMs.

You can repeat the above as necesarry to re-create your test environment quite quickly. There's also nothing stopping you raising multiple environments at the same time, as long as you create a seperate host-only network for each instance. There are some limitations of this setup (mainly that having all the machines in isolates networks makes it a hassle to load data) but it'll allow you to setup quickly and ensure you're always returning to a true reference baseline.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.