Disaster Recovery Plan
Chris
11 Replies
1) Buy virtual or dedicated servers from another supplier.
2) Restore my backups onto the new servers.
3) Update DNS at my registrar.
4) Fix any resultant problems with the apps.
You do have regular off site backups don't you?
Oh, system disaster recovery plan.
DOCUMENT EVERYTHING for a bare metal out restore.
Have known up-to-date config file backps & (re)installation scripts.
Run my own DNS servers on a 3rd party DNS host.
Have warm spare server(s) at a different host.
Finally - TEST YOUR RECOVERY PLAN
This assumes you already keep up-to-date, known valid (and verified) off-site backups of your data.
You can buy EC2, hetzner, bytemark, or whatever machines well within a couple of hours and have them running and tested an hour or so later. In companies that don't conduct their entire business on the web that's normally enough disaster recovery.
So, myself, beeing a wee bit paranoid and not trusting any company 100%, runs backup myself using BackupPC + database replication and hourly snapshots to a undisclosed location in a different country. Just make sure the backup box has enough outbound bandwidth for a speedy restore..
Would probably also use Linode's backup for easier/faster intra-linode restores, if they supported my setup.
@trippeh:
Keep in mind that it doesnt have to be a "disaster" - there could be things like legal and contractual disputes that might lock you out of your nodes/data. The Linode people are good guys/gals, obviously - but you never know what can happen
;)
Exactly. The disaster recovery plan should cover the possibility that Linode is totally down and not coming back up. Fairly recent offsite backups are essential in any recovery situation no matter who your servers are with. The linode backups are not really good enough for disaster recovery. Not that Linode has ever had security issues (Cough Routers Cough Slush Cough bitcoinica. Ahem, Cough.)
Besides any US company can get large chunks of equipment seized as evidence if the FBI suspect something criminal is happening. It would only take one cracked Linode running a child porn site and they will take the whole rack if they are in a bad mood.
I prefer to refer to this sort of plan as "business continuity" rather than "disaster recovery", because it really involves more than servers and disasters, and really gets down into the core of defining what, exactly, you need to do to serve your customers and employees when bad stuff happens.
I think I'm asking how do I pckage up the infrastructure I build on Linode and move it to a new provider (im not considering doing this)
Source code is already handled.
Database configs and mysqldatafiles can be backed up on their own, or database can be dumped to sql file.
Install scripts can be written to rebuild the OS.
DNS - I'm not sure how I should handle DNS.
In reading the backup description "The backup system must be able to mount your filesystem. If you've used fdisk on your images to create partitions, or created encrypted volumes, or LVM, or done anything other than use our deployment or disk image creation tools, we won't be able to back up the data. The backup system operates on files, not at the block level. " - This is good to know.
nsd3 configuration is easily portable, i'm sure bind is as well.
fabriclibcloud
Deploy new servers to replace old servers once in awhile. It might be interesting to try never rebooting your servers: instead, instantiate a new one, then destroy the old one. Your cluster is a multi-cellular organism.
I've had good luck with DNS Made Easy for general customer-facing domains, and Amazon Route 53 via libcloud for the server FQDN domain.
Your data – files, databases, etc -- would still need to be handled somehow, but Amazon S3 is quite workable for general static content storage/serving as well as storing of (encrypted, presumably) database dumps.
A common pattern here is diversity: relying on one provider for everything (even Linode!) is just plain silly. If your domain registrar, DNS host, mail provider, and VPS provider are the same company, you're going to have a bad time.