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 a bunch of servers doing various things for our group (NIS, DHCP, CVS, NFS), all of which need to be patched and updated. Obviously just upgrading them is a bit risky, so I want to create a virtual image of the OS and configurations and then update that to see if anything breaks.

Firstly;

1) What's the best way to do this (i.e. create and run virtual images). The servers run CentOS and openSUSE. I can probably buy specific hardware to do this if need be, though I'd rather run it on a workstation. I don't think running a virtual machine on the server is really an option, from a resources perspective.

2) I guess this won't test hardware dependencies? e.g. if the new version of SuperProgram2000 runs on a virtual machine, there's no guarantee it will run on my server - is there any way to make the VM behave like the hardware config your server has to address this?

share|improve this question
add comment

1 Answer

up vote 1 down vote accepted

I find the best way to upgrade is to just do it with a proper back out policy. The effort in replicating the environment and ensuring that this replica behaves like the real thing is way more time consuming than doing it in anger.

If its a major upgrade, perhaps you want to refresh the hardware too, build new services on new kit and do it as a migration.

The activity of upgrading or migrating to new services/servers has a risk, and not upgrading has a risk too, how do you mitigate, what does it cost. Would you rather have the risk, or pay to mitigate the risk.

How would I patch something? Id make sure everything is mirrored, break the mirrors, upgrade, and if it fails, fix or go back to the mirror and re-evaluate. Id always be ready to do a bare metal recovery - install OS install software, recover data. If I wasnt able to do that, I'd work on that first.

Apologies if the answer seems vague, but these sort of tasks are always ongoing. Having a test environment is indeed useful. Creating one before you put something into production and releasing stuff thats tested is proper. Creating a virtualised test infrastructure now isnt a bad idea, it just depends what you want to prove with it. You'd be able to run functional tests, but non-functional tests which depend on the hardware you are using in production may be less useful.

share|improve this answer
    
OK - how would you recommend doing that? I'm not at all hell bent on virtualization, I just don't want to destroy my production system. –  Alex Jun 19 '13 at 18:29
1  
@Alex added some words. –  Sirch Jun 20 '13 at 8:50
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.