Web Hosting Talk







View Full Version : Uptime and Reliability Issues


chrisb
05-02-2002, 03:09 AM
Is there any host that offers the following... in case the server that your site is on goes down, it automatically goes to your site on another server.

www.doublehosting.com - good idea? nah, no one would pay the cost for that, would they?

Aussie Bob
05-02-2002, 03:47 AM
Originally posted by chrisb
Is there any host that offers the following... in case the server that your site is on goes down, it automatically goes to your site on another server.

www.doublehosting.com - good idea? nah, no one would pay the cost for that, would they?
Put it this way, if someone could ever figure out how to successfully mirror servers accross datacenters, then I see this as a huge plus in their ad_copy. It's a very good service that folks will IMO pay the extra $$$$$ for. Or if you could absorb the extra costs into your current cashflow, then more power to you. :)

chrisb
05-02-2002, 04:20 AM
LOL... doublehosting.com was just a name I threw out. I had no idea until I just clicked on it in my post that someone owned actually it. It's registered by Godaddy, and says "Coming Soon". AussieBob, did you per chance register that domain name after my suggestion? If so, I want my commission.;)

cperciva
05-02-2002, 04:43 AM
Originally posted by Aussie Bob
Put it this way, if someone could ever figure out how to successfully mirror servers accross datacenters

That's not really a hard problem. Unfortunately, it would require both a significant amount of bandwidth and some very messy kernel hacking.

Generally speaking, the people who really need such redundancy can supply it through higher-level mechanisms.

SentryHost
05-02-2002, 05:03 AM
It is easily possible if you have the money to throw at it. Here is how.

http://www.foundrynetworks.com/products/webswitches/serveriron/gslb.html

We used these switches at a former employer and they are cake to configure. They have a web interface that makes it super easy, or you can telnet in and they use almost identical syntax as Cisco routers. They are very reliable. When we moved to these babies our downtime was reduced dramatically. We had some foundry people come out, and we picked their brain on all the things you can do with these, and were in awe when they left! This is some amazing technology.

Edit: Just thought I would add that if memory serves me correct, these were about $18,000 a piece. That was a few years ago though.

chrisb
05-02-2002, 05:06 AM
Originally posted by cperciva


That's not really a hard problem. Unfortunately, it would require both a significant amount of bandwidth and some very messy kernel hacking.

Generally speaking, the people who really need such redundancy can supply it through higher-level mechanisms.

What higher-level mechanisms? Are you also saying that most people don't need or want this type of reliability?

Why would it involved "messy kernel hacking". The mirroring would be the easy part, so I take it that the "kernel hacking" you are suggesting would take care of redirecting the domain to another server if the original server were busy or down.

I'm just a lowly perl programmer, but why is fiddling with the kernel necessary? Can't this be done with CNAME and MX record redirecting? (I've still got to learn about CNAMES and MX records, btw)

SentryHost
05-02-2002, 05:09 AM
Originally posted by cperciva


That's not really a hard problem. Unfortunately, it would require both a significant amount of bandwidth and some very messy kernel hacking.

Generally speaking, the people who really need such redundancy can supply it through higher-level mechanisms.

Kernel hacking will not work because if the server is down, the traffic will never get to the kernel, it has to be done on a hardware level.

Edit: I am not sure but I think I shoved my own foot in my mouth a few posts down. :confused:

SentryHost
05-02-2002, 05:13 AM
Originally posted by chrisb

I'm just a lowly perl programmer, but why is fiddling with the kernel necessary? Can't this be done with CNAME and MX record redirecting? (I've still got to learn about CNAMES and MX records, btw)

The only way to load balance with DNS only is to use round robin. (Adding multiple A records for each server, both pointing to www) The problem with this is that a) It is unreliable and b) 50% of the time you will get the down server if one is down. While this works for being load balanced, it does nothing for being redundant.

cperciva
05-02-2002, 05:14 AM
Redirecting people from one server to the other upon failure is simple DNS magic. The hard part is maintaining consistancy across the servers -- people get annoyed when their databases are randomly corrupted.

The mirroring is the hard part; you can either perform some messy hacking to get all disk updates sent across the wire, or you can rely upon high level mechanisms -- eg, databases which are aware of distributed updates and maintain their own consistancy -- to keep the necessary state everywhere.

SentryHost
05-02-2002, 05:27 AM
Originally posted by cperciva
Redirecting people from one server to the other upon failure is simple DNS magic. The hard part is maintaining consistancy across the servers -- people get annoyed when their databases are randomly corrupted.

The mirroring is the hard part; you can either perform some messy hacking to get all disk updates sent across the wire, or you can rely upon high level mechanisms -- eg, databases which are aware of distributed updates and maintain their own consistancy -- to keep the necessary state everywhere.

You are exactly correct. With MSSQL it is easy to run multiple SQL servers in different data centers. In fact there are multiple ways to do this. 1) Where all commands sent to one server are automatically sent to the other server. 2) Where all servers stay in sync and when one changes, it changes the others. With MySql I am not sure if they are designed to work this way, otherwise I would imagine you could set up triggers or something. I was thinking about your DNS magic statement, and an idea popped into my head. I am no expert, but I think this might work. (Assuming you worked the mirroring out)

Data Center 1
------------------
ns1
web1

Data Center2
-----------------
ns2
web2

ns1 would have a script ran every 5 seconds that pings web2, if web2 is found to be down then it will automatically update the bind db file to the IP Address of the server that is up. Then the script would restart the named process. Theoretically this script would run so fast that it would take up almost no resources and cause no interuption of DNS service. The script on ns2 would do the same thing except for web1. You could even tweak it so that when they are both up it would add both IP's so that it would load balance the servers, thus splitting bandwidth costs or make it where it would prefer the server that you have in the cheaper data center bandwidth wise. What do you think?

Edit: Mistake Correction

HRBrendan
05-02-2002, 05:55 AM
the whole pinging thing wouldnt really be necessary as long as NS1 pointed users towards WEB1 and NS2 pointed users towards WEB2 - you could use rsync to keep the home dirs sync'd up.

-Brendan

chrisb
05-02-2002, 06:00 AM
Originally posted by cperciva

The mirroring is the hard part


Why? On unix, can't you just set up a cron job to run rsync between the servers?

SentryHost
05-02-2002, 06:00 AM
Originally posted by HRBrendan
the whole pinging thing wouldnt really be necessary as long as NS1 pointed users towards WEB1 and NS2 pointed users towards WEB2 - you could use rsync to keep the home dirs sync'd up.

-Brendan

I would still want to use ping, because it is entirely possible for ns1, and web2 to be down at the same time, so in that instance you would want ns2 to point to web1, otherwise ns2 would be pointing to the server that is down while it is the only server handling requests.

SentryHost
05-02-2002, 06:11 AM
Originally posted by chrisb


Why? On unix, can't you just set up a cron job to run rsync between the servers?

http://www.icewalk.com/softlib/app/app_01525.html

This would be handy, but there are still a lot of issues to consider when doing the mirroring. For instance using sessions in php, if a user is transfered to the other server his session starts over, also I don't think the major control panels are server farm friendly, so you would have to sync all of the servers config files too. What if these config files contain the servers IP information, well in that case when you transfered it, your other server would stop working correctly. Otherwise, if someone added a subdomain through their control panel it would only show up on the one server. It is something that would have to be planned and tested extensively. It is not easy. He was correct when saying it is the hard part.

Aussie Bob
05-02-2002, 07:47 AM
Originally posted by chrisb
AussieBob, did you per chance register that domain name after my suggestion? If so, I want my commission.;)
Nope, not me. :D :stickout

Aussie Bob
05-02-2002, 07:52 AM
Originally posted by SentryHost


http://www.icewalk.com/softlib/app/app_01525.html

This would be handy, but there are still a lot of issues to consider when doing the mirroring. For instance using sessions in php, if a user is transfered to the other server his session starts over, also I don't think the major control panels are server farm friendly, so you would have to sync all of the servers config files too. What if these config files contain the servers IP information, well in that case when you transfered it, your other server would stop working correctly. Otherwise, if someone added a subdomain through their control panel it would only show up on the one server. It is something that would have to be planned and tested extensively. It is not easy. He was correct when saying it is the hard part.
hehe, like I said -
Put it this way, if someone could ever figure out how to successfully mirror servers accross datacenters, then I see this as a huge plus in their ad_copy. It's a very good service that folks will IMO pay the extra $$$$$ for. Or if you could absorb the extra costs into your current cashflow, then more power to you.
:D :eek:

JayPee
05-02-2002, 08:03 AM
Based on my reading of the Windows WinSock docs, if more than 1 IP address is returned from a DNS query, WinSock will attempt a connection to each of the IP addresses. Can anyone confirm or deny this for me?

So it seems that for simple sites, a mirroring + multiple IP scenario would provide a level of redundancy (at least for Windows clients...)

I'd be really interested to know whether that's correct...

chrisb
05-02-2002, 10:52 AM
Originally posted by SentryHost


http://www.icewalk.com/softlib/app/app_01525.html

This would be handy, but there are still a lot of issues to consider when doing the mirroring. For instance using sessions in php, if a user is transfered to the other server his session starts over, also I don't think the major control panels are server farm friendly, so you would have to sync all of the servers config files too. What if these config files contain the servers IP information, well in that case when you transfered it, your other server would stop working correctly. Otherwise, if someone added a subdomain through their control panel it would only show up on the one server. It is something that would have to be planned and tested extensively. It is not easy. He was correct when saying it is the hard part.

Good points. I hadn't considered all of that.

I would also want those 2 servers in 2 different places using different bandwidth providers... say one located in Maryland and one in Texas.