Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

I have about 3 servers that are probably almost 10 years old, all using code what one might consider worst-practices for programming's sake.

I'm terrified of making changes to the thing (production servers have always been the development platform before I got here, and I really want to change this), but we have no real way to emulate the server perfectly other than use the thing.

So we have to change the website it's running, and I really don't want to go "Oops." Advice on how to do something like migrate these 3 beasts into VMs on my desktop or something where I can safely do some development work without feeling like I'm the star of Mission Imposable, hanging from a thread over laser beams and sweat dripping off my face as I carefully do my work?

To give you an idea of what I mean by worst-practices... we have 14 copies of the "main" block of code, a 14,000 line monster of "please, repeat yourself" code worked on by seven developers over ten years, all sitting in the root directory of the production web server. I need to change this, I need to make serious fixes, but it's like playing kaltoh while being shot full of mind-altering drugs. Help?

Servers are windows2000 server, database is MSSQL 2008, servers run IIS with PHP and ASP. A hundred applications I have no knowledge about share the server space. One server manages our AD. Sharepoint exists but isn't used. Some "log me in" software that nobody knows about exists on there. Postgres is running for some reason. Firewall software is on there. Exchange 2008 is on there. Antivirus server is on there... in all honesty, I just want to replicate the website.

share|improve this question

migrated from superuser.com Oct 15 '10 at 15:18

This question came from our site for computer enthusiasts and power users.

    
What OS are the servers running? –  Stephen Jennings Oct 15 '10 at 14:52
    
We're going to need a few more details in order to help you. What OS, webserver, DB and application platform are you running? What are the obstacles keeping you from just making a copy of the app on in a dev environment? –  heavyd Oct 15 '10 at 14:54
    
Updated. @heavyd Dev has never existed. My problem is there's a million things going on with the server I don't even know about, but I just need to look after this website that's running on IIS and connects to mssql'08. –  Incognito Oct 15 '10 at 14:59
1  
+1 for "but it's like playing kaltoh while being shot full of mind-altering drugs" LOL. –  JakeRobinson Oct 15 '10 at 19:37
add comment

7 Answers

up vote 7 down vote accepted

VMware has a tool called VMware vCenter Converter specifically for transitioning existing physical machines to a virtual environment.

For servers predating XP/Server 2003 I would look at using something like Norton Ghost or Acronis to make a backup, then restore to the virtual hardware.

share|improve this answer
2  
Looks like the vCenter Converter won't run on Windows 2000. –  Christopher Oct 15 '10 at 15:27
    
@Christopher Unless you do a cold clone/boot to convertor type p2v... –  JakeRobinson Oct 15 '10 at 19:39
add comment

Before risking your production server with complicated P2V solutions, you might want to try cloning your production server with Drive Snapshot. In a nutshell, the steps required are:

  • Download Drive Snapshot from http://www.drivesnapshot.de/en/
  • Run the standalone snapshot.exe on the production server. No installation or reboot required
  • Image your drives
  • Restore drive images to a VM

Keep in mind that imaging/cloning/p2v is very HDD intensive. Try to do it during server's off peak period so as to minimize the performance impact on existing applications.

share|improve this answer
add comment

Make an image of the server (Clonezilla, ghost4unix). Try with VMware Converter to copy the machine. If it is not working, try to use Clonezilla image to restore to a VM. (Or you use dd plus netcat).

Then make the cleanup. Move each production service to a new VM. And use these VMs as production servers. This way you will test that you are in control of the new servers. Document everything. For each prod VM, create a QA VM and a Dev VM. The developers will have access exclusively to Dev VMs. Do not give them admin rights. You will use QA VMs to test their new code. Take the code for migration to QA and deployments to Prod only from source control.

share|improve this answer
add comment

Also - if one of these servers is a DC, DO NOT virtualize a copy of it into an environment that has any ability to talk back to the production machine (or even the network) that it was cloned from. BAD BAD BAD BAD. Your dev environment should be separate anyway, but I think this is worth repeating.

share|improve this answer
1  
Second. NEVER let a cloned DC talk to its original. Ensure that at all times the DC's can never talk. You can safely move a computer between networks if it has a valid account in both for some time. –  Jeff McJunkin Dec 1 '10 at 23:39
    
Thirded. If a cloned DC ends up talking back to the original environment very bad things will happen. –  Helvick Dec 2 '10 at 0:08
add comment

If you have a spare system, you can install vmware on it and use its p2v converter to make a virtual copy of your physical machine. There are a couple catches, however:

The conversion process installs an agent on the physical machine, and since you're running Windows 2000, you'll need to restart the server after the agent installs.

Once you've got your virtual machine up and running, I'd suggest powering down your physical machine until you've put it on a different IP address and with a different hostname to prevent IP conflicts.

Once the p2v is complete, you'll need to configure your virtual machine to use vmware's network interfaces instead of the ones it copied over from the physical server. Follow these instructions to clear out the no-longer-present interfaces.

share|improve this answer
add comment

vCenter Converter will do the trick, especially with the cold cloning as entens and Christopher mentioned. Schedule downtime, clone all the machines, then start them back up as VM's in an entirely separate network. If there's a DHCP server providing leases to some of these production machines, make sure it's cloned as well.

share|improve this answer
add comment

The main problem is to be able to clone the machine you're using.

I've had good success using Acronis TrueImage on a Windows 2000 Server and then converting the image with VmWare Converter. If possible you could do this overnight in a very dead moment. Acronis boot cd can save the image over the network so you'll be sure of not touching anything on your original server.

For restoring and working, of course, be REALLY SURE to work as far as you can from your production LAN.

Just put a lonely pc with vmware and the server you're converted and if you need to try different client connections just hook a single switch where to connect both server and clients and be sure that NONE mess with it ever.

Following my advice and all the other users' you should be able to set up the system that will allow you to "play" as much as you want and clean up the code.

Double check every single passage, be calm and accurate and none'll get hurt :)

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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