Help me decide backup vs redundant...

I have been using Linode for a while now but a very simple setup using apache on a gentoo platform. I have had issues in the past where due to my inexperience I have brought my box down and not been able to bring it up for a couple of hours or even days at a time.

Currently I don't have much traffic to my sites but it is increasing and I don't want my sites to ever be down so I want a good solution. What do you guys suggest is the best solution?

2 Linodes somehow with Load balancing where if I happen to kill one by accident the other will still respond to requests?

or

2 Linodes where one is online and one is backup/test machine?

or

well I don't know help me out here please… How would you set yours up or how do you have yours setup?

Remember that if load balancing I would need to share the DB somehow or have it update each other in real time.

5 Replies

What is the purpose of using Linode?

If you are not hosting a Microsoft website, I do not think you need two Linodes and round robin setup. All you need is a backup which is now provided by Linode (as a beta).

You can also use another company like www.rsync.net to backup your staff.

If you can, I always recommend separating your development, test, and production environments. I like to follow the approach of having a local development machine (whether that's my local workstation or a LAN-based VPS running on KVM, Xen, whatever), a separate test server that's publicly accessible, and another system for production.

If you adhere to the chain of "development -> test -> production" you'll be providing a good layer of safety between your customers and "oops" events. I try to run the same environment on each segment to avoid issues with system configuration.

Your migration method doesn't have to be complicated; you can simply rsync your work from one stage to the other, and this can be easily automated with scripts.

With respect to fail-over considerations, there are many ways of approaching the subject. The important thing is to design your architecture to use multiple servers from the start if you're going to do round-robin type stuff, as this can be difficult to simply "bolt on" later. Many organizations use a front-end reverse proxy load balancer running Squid or something equivalent to distribute requests to back end servers. If you're really concerned about load, it may be worthwhile to investigate separating services in a more fine grained fashion; say 1 front end load balancer, 2 back end web servers, a dedicated back end database server, etc. For greater redundancy, you can replicate your setup across two different datacenters and keep it synchronized via a variety of methods.

Obviously, the costs (both hosting and design-wise) associated with such setups scale with the complexity of the arrangement. You have to run the numbers on how much outages cost you in terms of revenue and customer confidence to figure out what level of resilience you need.

Thanks for the replies!

My team usually develops at home and uploads via a sftp connection once all source has been tested so I am not really worried about that. I just want an easy yet affordable way of keeping a machine on standby or having two machines running simultaneously so that I can perform kernel and application upgrades without bringing the sites down. I am very grateful for the responses but some are over my head. I have been using gentoo linux for quite some time but never played with this sort of stuff.

What is meant by Linode when they say they support an IP address fail over support for high availability setups. Does this mean you have two machines and only one responds like a cluster address? I have used Clusters at work before but they are typically a mess and don't work very well somehow always needing some sort of manual intervention.

I am not hosting Microsoft websites. I am not 100% sure on what you meant by that but if its just the source like for instance ASP, The answer is No. I actually hate ASP I use mostly php.

Can you explain what round robin is? Im sorry this is all new to me.

It depends whether you want something that's pretty much up all the time (easy) or something that literally never goes down (hard and expensive). In terms of spending money, high availability is a bottomless pit.

It sounds like you just want to prevent downtime due to configuration errors and stuff like that. Here's what I would do:

  • get 2 linodes configured the same.

  • use 1 normally as it makes a lot of things easier

  • use the other for configuration testing and such. Also, setup the db on the second one to be a slave of the db on the first one. this way it's ready to go if the first one goes down.

  • for failover, you can either use linode's ip address failover (which takes a reboot I think) or just disable caching of your DNS records and if you need to switch systems just switch the DNS records.

That sounds perfect! I think thats exactly what I want. Two linodes will fit my budget well. I may start doing this some time this weekend if time allows. Is there any good tutorials on how to make the DB a slave of the other? I use mysql if that helps any.

Reply

Please enter an answer
Tips:

You can mention users to notify them: @username

You can use Markdown to format your question. For more examples see the Markdown Cheatsheet.

> I’m a blockquote.

I’m a blockquote.

[I'm a link] (https://www.google.com)

I'm a link

**I am bold** I am bold

*I am italicized* I am italicized

Community Code of Conduct