views:

1674

answers:

25

How do you back up your development machine so that in the event of a catastrophic hardware malfunction, you are up and running in the least amount of time possible?

+8  A: 
  1. All important files are in version control (Subversion)
    • My subversion layout generally matches the file layout on my web server so I can just do a checkout and all of my library files and things are in the correct places.
  2. Twice-daily backups to an external hard drive
  3. Nightly rsync backups to a remote server.
    • This means that I send stuff on my home server over to my webhost and all files & databases on my webhost back home so I'm not screwed if I lose either my house or my webhost.
Mark Biek
+1  A: 

A little preparation helps:

  • All my code is kept organized in one single directory (with categorized sub-directories).
  • All email is kept in various PSTs.
  • All code is also checked into source control at the end of every day.
  • All documents are kept in one place as well.

Backup:

  • Backup your code, email, documents as often as it suits you (daily).
  • Keep an image of your development environment always ready.

Failure and Recovery

  • If everything fails, format and install the image.
  • Copy back everything from backup and you are up and running.

Of course there are tweaks here and there (incremental backup, archiving, etc.) which you have to do to make this process real.

Vaibhav
+1  A: 

If you are talking absolute least amount of restore time... I've often setup machines to do Ghost (Symantec or something similar) backups on a nightly basis to either an image or just a direct copy to another drive. That way all you have to do is reimage the machine from the image or just swap the drives. You can be back up in under 10 minutes... The setup I did before was in situation where we had some production servers that were redundant and it was acceptable for them to be offline long enough to clone the drive...but only at night. During the day they had to be up 100%...it saved my butt a couple times when a main drive failed... I just opened the case, swapped the cables so the backup drive was the new master and was back online in 5 minutes.

Adam Haile
+1  A: 

I use TimeMachine.

John
+5  A: 

I use Mozy, and rarely think about it. That's one weight off my shoulders that I won't ever miss.

Dave Ward
A: 

Maybe just a simple hardware hard disk raid would be a good start. This way if one drive fails, you still have the other drive in the raid. If something other than the drives fail you can pop these drives into another system and get your files quickly.

Don
A: 

I'm just sorting this out at work for the team. An image with all common tools is on Network. (We actually have a hotswap machine ready). All work in progress is on network too.

So Developers machine goes boom. Use hotswap machine and continue. Downtime ~15 mins + coffee break.

John Nolan
+36  A: 

There's an important distinction between backing up your development machine and backing up your work.

For a development machine your best bet is an imaging solution that offers as near a "one-click-restore" process as possible. TimeMachine (Mac) and Windows Home Server (Windows) are both excellent for this purpose. Not only can you have your entire machine restored in 1-2 hours (depending on HDD size), but both run automatically and store deltas so you can have months of backups in relatively little space. There are also numerous "ghosting" packages, though they usually do not offer incremental/delta backups so take more time/space to backup your machine.

Less good are products such as Carbonite/Mozy/JungleDisk/RSync. These products WILL allow you to retrieve your data, but you will still have to reinstall the OS and programs. Some have limited/no histories either.

In terms of backing up your code and data then I would recommend a sourcecode control product like SVN. While a general backup solution will protect your data, it does not offer the labeling/branching/history functionality that SCC packages do. These functions are invaluable for any type of project with a shelf-life.

You can easily run a SVN server on your local machine. If your machine is backed up then your SVN database will be also. This IMO is the best solution for a home developer and is how I keep things.

Andrew Grant
While TimeMachine/WHS may have advantages over the "cloud" backup services, don't neglect to get frequent copies of your backups offsite. That is where those services shine.
tgecho
+2  A: 

For my home and development machines I use Acronis True Image.

In my opinion, with the HD cheap prices nothing replaces a full incremental daily HD backup.

Pascal Paradis
I tried the trial for that. So much bloat. It wanted THREE exes to run on startup, AND a service. Plus all my drives span up and clicked madly even 1 minute after running the program for the first time. Any program that feels it needs to index everything isn't worth having. I uninstalled it within minutes. Perhaps the non-trial version is better.
RJFalconer
A: 

We have a corporate solution pushed down on us called Altiris, which works when it wants to. It depends on whether or not it's raining outside. I think Altiris might be a rain-god, and just doesn't know it. I am actually delighted when it's not working, because it means that I can have my 99% of CPU usage back, thank you very much.

Other than that, we don't have any rights to install other software solutions for backing things up or places we are permitted to do so. We are not permitted to move data off of our machines.

So, I end up just crossing my fingers while laughing at the madness.

happyappa
A: 

I don't.

We do continuous integration, submit code often to the central source control system (which is backed up like crazy!).

If my machine dies at most I've lost a couple of days work.

And all I need to do is get a clean disk at setup the dev environment from a ghost image or by spending a day sticking CDs in, rebooting after Windows update, etc. Not a pleasant day but I do get a nice clean machine.

mkrus
+2  A: 

Virtual machines and CVS.

Desktops are rolled out with ghost and are completely vanilla. Except they have VirtualBox.

Then developers pull the configured baseline development environment down from CVS.

They log into the development VM image as themselves, refresh the source and libraries from CVS and they're up and working agian.

This also makes doing develpment and maintenance at the same time a lot easier.

(I know some people won't like CVS or VirtualBox, so feel free to substiture your tools of choice)

oh, and You check you work into a private branch off Trunk daily.

There you go.

Total time to recover : 1 hour (tops)

Time to "adopt" a shbiy new laptop for a customer visit : 1 hour ( tops)

And a step towards CMMI Configuration Management.

Tim Williscroft
A: 

At work NetBackup or PureDisk depending on the box, at home rsync.

krujos
A: 

like a few others, I have a clean copy of my virtual pc that I can grab and start fresh at anytime and all code is stored in subversion.

jonezy
A: 

I use SuperDuper! and backup my Virtual Machine to another external drive (i have two). All the code is on a SVN server. I have a clean VM in case mine fails. But in either case it takes me a couple of hours to install WinXP+Vstudio. i don't use anything else in that box.

Martín Marconcini
A: 

I use xcopy to copy all my personal files to an external hard drive on startup.

Here's my startup.bat:

xcopy d:\files f:\backup\files /D /E /Y /EXCLUDE:BackupExclude.txt

This recurses directories, only copies files that have been modified and suppresses the message to replace an existing file, the list of files/folders in BackupExclude.txt will not be copied.

Cookey
+1  A: 

I've finally gotten my "fully automated data back-up strategy" down to a fine art. I never have to manually intervene, and I'll never lose another harddrive worth of data. If my computer dies, I'll always have a full bootable back-up that is no more than 24 hours old, and incremental back-ups no more than an hour old. Here are the details of how I do it.

My only computer is a 160 gig MacBook running OSX Leopard. On my desk at work I have 2 external 500 gig harddrives. One of them is a single 500 gig partition called "External". The other has a 160 gig partition called "Clone" and a 340 gig partition called TimeMachine.

TimeMachine runs whenever I'm at work, constantly backing up my "in progress" files (which are also committed to Version Control throughout the day).

Every weekday at 12:05, SuperDuper! automatically copies my entire laptop harddrive to the "Clone" drive. If my laptop's harddrive dies, I can actually boot directly from the Clone drive and pick up work without missing a beat -- giving me some time to replace the drive (This HAS happened to me TWICE since setting this up!). (Technical Note: It actually only copies over whatever has changed since the previous weekday at 12:05... not the entire drive every time. Works like a charm.)

At home I have a D-Link DNS-323, which is a 1TB (2x500 gig) Network Attached Storage device running a Mirrored RAID, so that everything on the first 500 gig drive is automatically copied to the second 500 gig drive. This way, you always have a backup, and it's fully automated. This little puppy has a built-in Dynamic DNS client, and FTP server.

So, on my WRT54G router, I forward the FTP port (21) to my DNS-323, and leave its FTP server up.

After the SuperDuper clone has been made, rSync runs and synchronizes my "External" drive with the DNS-323 at home, via FTP.

That's it. Using 4 drives (2 external, 2 in the NAS) I have: 1) An always-bootable complete backup less than 24 hours old, Monday-Friday 2) A working-backup of all my in-progress files, which is never more than 30 minutes old, Monday-Friday (when I'm at work and connected to the external drives) 3) Access to all my MP3s (170GB) at documents at work on the "External" and at home on the NAS 4) Two complete backups of all my MP3s and documents on the NAS (External is original copy, both drives on NAS are mirrors via ChronoSync)

Why do I do all of this? Because: 1) In 2000, I dropped a 40 gig harddrive 1 inch, and it cost me $2500 to get that data back. 2) In the past year, I've had to take my MacBook in for repair 4 times. One dead harddrive, two dead motherboards, and a dead webcam. On the 4th time, they replaced my MacBook with a newer better one at no charge, and I haven't had a problem since.

Thanks to my daily backups, I didn't lose any work, or productivity. If I hadn't had them, though, all my work would have been gone, along with my MP3s, and my writing, and all the photos of my trips to Peru, Croatia, England, France, Greece, Netherlands, Italy, and all my family photos. Can you imagine? I'm sure you can, because I bet you have a pile of digital photos sitting on your computer right now... not backed-up in any way.

lo_fye
A: 

Windows Home Server. My dev box has two drives with about 750GB of data between them (C: is a 300GB SAS 15K RPM drive with apps and system on it, D: is a mirrored 1TB set with all my enlistments). I use Windows Home Server to back this machine up and have successfully restored it several times after horking it.

cek
A: 

My development machine is backed up using Retrospect and Acronis. These are nightly backups that run when I'm asleep - one to an external drive and one to a network drive.

All my source code is in SVN repositories, I keep all my repositories under a single directory so I have a scheduled task running a script that spiders a path for all SVN repositories and performs a number of hotcopies (using the hotcopy.py script) as well as an svndump of each repository.

My work machine gets backed up however they handle it, however I also have the same script running to do hotcopies and svndumps onto a couple of locations that get backed up.

I make sure that of the work backups, one location is NOT on the SAN, yes it gets backed up and managed, but when it is down, it is down.

Steven Adams
+1  A: 

A combination of RAID1, Acronis, xcopy, DVDs and ftp. See: http://successfulsoftware.net/2008/02/04/your-harddrive-will-fail-its-just-a-question-of-when/

A: 

I would like a recommendation for an external RAID container, or perhaps just an external drive container, preferably interfacing using FireWire 800.

I also would like a recommendation for a manufacturer for the backup drives to go into the container. I read so many reviews of drives saying that they failed I'm not sure what to think.

I don't like backup services like Mozy because I don't want to trust them to not look at my data.

A: 
  • SuperDuper complete bootable backups every few weeks
  • Time Machine backups for my most important directories daily
  • Code is stored in network subversion/git servers
  • Mysql backups with cron on the web servers, use ssh/rsync to pull it down onto our local servers also using cron nightly.
jimiyash
A: 

If you use a Mac, it's a no brainer - just plug in an external hard drive and the built in Time Machine software will back up your whole system, then maintain an incremental backup on the schedule you define. This has got me out of a hole many a time when I've messed up my environment; it also made it super easy to restore my system after installing a bigger hard drive.

For offsite backups, I like JungleDisk - it works on Mac, Windows and Linux and backs up to Amazon S3 (or, added very recently, the Rackspace cloud service). This is a nice solution if you have multiple machines (or even VMs) and want to keep certain directories backed up without having to think about it.

gareth_bowles
A: 

Home Server Warning!

I installed Home Server on my development Server for two reasons: Cheap version of Windows Server 2003 and for backup reasons.

The backup software side of things is seriously hit or miss. If you 'Add' a machine to the list of computers to be backed up right at the start of installing Home Server, generally everything is great.

BUT it seems it becomes a WHOLE lot harder to add any other machines after a certain amount of time has passed.

(Case in point: I did a complete rebuild on my laptop, tried to Add it - NOPE!)

So i'm seriously doubting the reliability of this platform for backup purposes. Seems to be defeating the purpose if you can't trust it 100%

Harry
I'm not alone in this, Google 'WHS Windows Home Server connection problems'
Harry
I prefer to use the built in Vista backup system these days with an external harddrive. I Wish this let me save to a network drive though!
Harry
Your suggested Google brings up no hits that are related to your problem... I've been running WHS for over a year now (with frequent PC changes) without issue. Have you tried the WHS forums? I can't recall seeing anyone with your problem, but people are very helpful http://tinyurl.com/bmnjzl
Andrew Grant
Harry
found how to backup using vista's built in functionality. You can backup to a network share using a CMD prompt function'wbadmin.exe start backup -backuptarget:\\server\share\ -include:c:'http://www.techinvasion.net/2007/11/12/vista-complete-pc-backup-to-network-share/
Harry
+2  A: 

BTW your development machine should not contain anything of value. All your work (and your company's work) should be in central repositories (SVN).

cherouvim