Slashdot Mirror


Best Solution For HA and Network Load Balancing?

supaneko writes "I am working with a non-profit that will eventually host a massive online self-help archive and community (using FTP and HTTP services). We are expecting 1,000+ unique visitors / day. I know that having only one server to serve this number of people is not a great idea, so I began to look into clusters. After a bit of reading I determined that I am looking for high availability, in case of hardware fault, and network load balancing, which will allow the load to be shared among the two to six servers that we hope to purchase. What I have not been able to determine is the 'perfect' solution that would offer efficiency, ease-of-use, simple maintenance, enjoyable performance, and a notably better experience when compared to other setups. Reading about Windows 2003 Clustering makes the whole process sounds easy, while Linux and FreeBSD just seem overly complicated. But is this truly the case? What have you all done for clustering solutions that worked out well? What key features should I be aware for successful cluster setup (hubs, wiring, hardware, software, same servers across the board, etc.)?"

298 comments

  1. 1000+ a day isn't very much by onion2k · · Score: 5, Insightful

    1000+ unique visitors is nothing. Even if they all hit the site at lunchtime (1 hour window), and look at 30 pages each (very high estimate for a normal site) that's only 8 requests a second. That isn't a lot. A single server could cope easily, especially if it's mostly static content. As an example, a forum I run gets a sustained 1000+ users an hour and runs fine on one server.

    As for "high availability", that depends on your definition of "high". If the site being down for a morning is a big problem then you'll need a redundant failover server. If it being down for 15 minutes is a problem then you'll need a couple of them. You won't need a load balancer for that because the redundant servers will be sitting there doing nothing most of the time (hopefully). You'll need something that detects the primary server is offline and switches to the backup automatically. You might also want to have a separate database server that mirrors the primary DB if you're storing a lot of user content, plus a backup for it (though the backup DB server could always be the same physical machine as one of the backup webservers).

    Whoever told you that you'll need as many as 6 servers is just plain wrong. That would be a waste of money. Either that or you're just seeing this as an opportunity to buy lots of servers to play with, in which case buy whatever your budget will allow! :)

    1. Re:1000+ a day isn't very much by drsmithy · · Score: 4, Informative

      You'll need something that detects the primary server is offline and switches to the backup automatically. You might also want to have a separate database server that mirrors the primary DB if you're storing a lot of user content, plus a backup for it (though the backup DB server could always be the same physical machine as one of the backup webservers).

      On this note, if you're comfortable (and your application is compatible) with Linux+Apache, then heartbeat and DRBD will do this and are relatively simple to get up and running. Just avoid trying to use the heartbeat v2-style config (for simplicity), make sure both the database and apache are controlled by heartbeat, and don't forget to put your DB on the DRBD-replicated disk (vastly simpler than trying to deal with DB-level replication, and more than adequate for such a low load).

      Oh, and don't forget to keep regular backups of your DB somewhere else other than those two machines.

    2. Re:1000+ a day isn't very much by Mad+Merlin · · Score: 5, Informative

      I agree that 1000 unique visitors is peanuts, but as for how to do HA, it really depends a lot on your situation. For example, the primary server for Game! started acting up about 2 weeks ago, but it mattered little as I was able to flip over to the backup server and came out with barely any downtime and no data loss. In the mean time, I was able to diagnose and fix the primary server, then point the traffic back at it. In my case, all the dynamic data is in MySQL, which is replicated to the backup server, so when I switched over I simply swapped the slave and the master and redirected traffic at the backup server. You also have to consider the code, which you presumably make semi-frequent updates to. In my case, the code is stored in SVN and updated automagically on both the master and the slave simultaneously.

      Having said all that, there's more to consider than just your own hardware when it comes to HA. What happens if your network connection goes down? In most cases, there's nothing you can do about it except twiddle your thumbs while you wait on hold with customer service. Redundant Internet connections are expensive due to the fact that you basically need to be in a big (and expensive) colocation facility to get it.

      Also, how easy it is to have HA depends largely on how important writes are to your database (or filesystem). Does it matter if this comment doesn't make it to the live page for a couple seconds after I hit submit? No, not really. Does it matter if I change my equipment in Game! but don't see the changes immediately? Yes, definitely. Indeed, if your content is 100% static, you can just keep a dozen complete copies and put a load balancer in front that pulls dead machines out of the loop automagically and be done with it.

    3. Re:1000+ a day isn't very much by Anonymous Coward · · Score: 2, Informative

      Definitely. I had a site that was doing ~2000+ unique per day, used considerable bandwidth (lots of images). However, everything was heavily cached (no on-demand dynamic pages). And it was running on all on an old P4 and 512MB of RAM with fantastic response times and zero issues.

    4. Re:1000+ a day isn't very much by Anonymous Coward · · Score: 0

      I agree, HA is overkill for 1k user. I run FOSS and Linux community & forum website which gets between 2.0 to 2.2 million unique page views per month (roughly 70k unique a day). The site is severed from a dual XEON box + 4GIB ECC SDRAM and RAID10 x 250GB SATA (it costs me $350pm). The server bill is paid via adverts and donations. I do not use Apache. I use lighttpd+fastcgi+php5+mysql5 combo.

      You do not need HA, go and select load balanced shared hosting provided by Yahoo! or other providers. It may cost just $20 pm.

      Also, do not go and post to forum such as WHT & clones, they are run and owned by webhosting companies. They will always give advice to milk OP.

      HTH

    5. Re:1000+ a day isn't very much by Zocalo · · Score: 1

      The poster doesn't make any indication of how much traffic each of those "1,000+ visitors a day" will generate, either in terms of the number of requests or the number of bytes. Nor is any indication given as to the nature of the service, required resiliance or the method of information exchange provided. For a simple HTML form, back-end DB based system without high uptime requirements, then the required infrastructure is trivial, but if we're going to the opposite extreme and talking about five nines uptime, extended voice conversations, or even video conferencing, with large file downloads (FTP was mentioned) as well... Admittedly, that's unlikely for a non-profit, but it's kind of hard to extrapolate anything other than generics from the information currently available.

      Assuming that it wasn't butchered by the Slashdot editors, it's a very poorly thought out submission, IMHO.

      --
      UNIX? They're not even circumcised! Savages!
    6. Re:1000+ a day isn't very much by Anonymous Coward · · Score: 0

      how much money have you got for this project friendo? If we are talking bailout money, I would recommend IBM's HACMP which means you will need IBM power5 or 6 servers midrange would do. Or..

      Veritas cluster server and you can put it on anything {hopefully not windows} but if you really want something with fault tolerance you need SUN or IBM equipment.

      Enjoy... I hope you have an ulcer doing it.

    7. Re:1000+ a day isn't very much by Anonymous Coward · · Score: 0

      I've got a website which was once served without problems to 30000 visitors in one day from a shared hosting account that cost $5 a month. Unless you're doing some heavy work on the server, 1000 visitors per day is child's play. If you're doing heavy work on the server, are you sure that your application is ready to be load-balanced? (BTW, if somebody needs a ballpark figure for a Digg front page appearance, that's where most of those 30000 visitors came from.)

    8. Re:1000+ a day isn't very much by Xest · · Score: 5, Informative

      I was thinking along the same lines.

      But to the person asking the question, if you want a full answer then you need to get your site built and make use of stress testing tools such as JMeter for Apache or Microsoft's WAS tool for IIS.

      It's not something anyone here can give you a definite answer for without knowing how well your site is implemented and what it actually does.

      Look into Transaction Cost Analysis, that's ultimately what you need here, a good start is this article:

      http://technet.microsoft.com/en-us/commerceserver/bb608757.aspx

      or this one:

      http://msdn.microsoft.com/en-us/library/cc261632.aspx

      Don't worry that these are MS articles on MS technologies they both still cover the ideas that are applicable elsewhere.

      Even though no one here can give you a full answer for the above mentioned reasons, we can at least give you our best guesses and this is where I think the parent poster is spot on, 6 servers is absolute overkill for this kind of load requirements and indeed, unless your application does some pretty intensive processing I see little reason why a single server couldn't do the trick or at least a web/application server and a database server at most.

      For ensuring high availability you may indeed need more servers of course and as you mention a requirement for FTP is bandwidth likely to be an issue?

      The fact you're only expecting 1000 a day suggest you're not running the biggest of operations and although it's nice to do these things in house it may just be worth you using a hosting provider with an acceptable SLA, at the end of the day they have more experience, more hardware, more bandwidth and can probably even do things a fair bit cheaper than you can. Do you have a generator to allow continued provision of the service should your power fail for an extended period for example? If you receive an unexpected spike in traffic or a DDOS do you have the facility to cope with and resolve that like a big hosting company could?

      There are many things I wouldn't ever use an external hosting provider for, but this doesn't sound like one of them.

    9. Re:1000+ a day isn't very much by wisty · · Score: 1

      Backup your db. Test your db backup. Get someone else to check your backup strategy. That's mission critical, and it merits repeating.

      1000 users a day? Windows can start about 10 Python processes a second (and handle a bit of processing within that process), which is probably the slowest way you could possibly do it. OSX or Linux can do 10 times as much.

    10. Re:1000+ a day isn't very much by lancejjj · · Score: 1

      YOU have a good rule-of-thumb analysis there. I like it, and it should apply to most normal sites.

    11. Re:1000+ a day isn't very much by Bandman · · Score: 5, Interesting

      HA isn't there just for load issues. It's there to guarantee availability. 1,000 users might be peanuts, but I've got a site that only gets a couple hundred visitors a day. That site has clustered load balancers which talk to redundant app servers, which talk to redundant web servers (connected via redundant switches). It's really important that the site be there for those couple of hundred visitors.

      The number of visitors isn't as important as the importance of the visitors.

    12. Re:1000+ a day isn't very much by Bandman · · Score: 2, Insightful

      I think it's sort of fortunate that the submitter was vague. This way, I get to read about all sorts of HA solutions, where as if he really wanted 2 apache servers and a hot/cold mysql instance, I'd have been way more bored ;-)

    13. Re:1000+ a day isn't very much by Anonymous Coward · · Score: 0

      Same here. We have about 600 customers that hit our clustered load balancers, to web servers, to weblogic servers and DB's on netapp, all over redundant network links. The reason why is we have revenue of $3 billion so availability is way more important than load. Downtime can ensure customers leave for a competitor. I use Netscalars, Apache with mod_wl to Solaris 10+weblogic and Oracle. I would love to go Tomcat or JBoss though.

      The 600 customers are offices so we get multiple hits from each office.

    14. Re:1000+ a day isn't very much by verrol · · Score: 2, Informative

      I can attest to this. This is the same setup we used which had VoIP, DB, and HTTP. We ran OpenVZ on CentOS on DRBD. Each openvz virtual machine ran a service, sometimes several of the same services (db and voip). because fo DRBD, redundancy was taking care of, an using heartbeat, well, high availability was also easy. It worked very well. the only thing i would say, it is takes some knowledge and much elbow grease to get this working and plenty of testing. where as, some of the other solutions would be easer.

    15. Re:1000+ a day isn't very much by Anonymous Coward · · Score: 3, Informative

      To truly be HA you would need global load balancing. Your global load balancers are in essence the master name servers. You have 2 or more physical locations and the loadbalancer serves DNS lokups with very very low TTL to a site that is up (and if its more advanced to a site that is closest to the requester). If a DC blows up, your site stays up.

      For each site dual ethernet drops, dual firewalls, and dual loadbalancers with a separate connection from each LB to server. Each piece of network gear has connections to both of the network pieces above and below it. (FW1 has access to both ethernet drops and access to both LBs etc)

      Use hardware based firewalls and loadbalancers. Simple software based solutions do work, but their complexity, efficiency, performance and reliability cannot scale to what a dedicated ASIC piece of equipment can do.

      Be mindful of power. Servers and network gear where applicable get dual power supplies fed from DIFFERENT legs. Do _not_ load circuits past their mid point. (Say both legs are at 75%. Leg 1 fails, all power is drawn from leg 2. It jumps to 120% or so and then it trips the breaker)

      That being said 1000 unique visitors a day can easily be handled on most shared hosting platforms. If you're looking for uptime remember that you get what you pay for. And shared hosting is cheap.

    16. Re:1000+ a day isn't very much by multipartmixed · · Score: 3, Interesting

      Sounds like you do HA pretty much how I do it, only with different pieces (I live in Sun + Oracle land).

      One thing I try to get HA admins to stop thinking about is the "primary" and "backup" servers. I find deploying a sysadmin.mental state which considers both (or all) servers equal helps make stuff more reliable in the long run. So if server "bob" bursts into flames, server "joe" takes over. Bob is then serviced and left alone until Joe bursts into flames (or we schedule some downtime and run re-certification tests).

      The biggest key, as you may have guessed, to getting admins to treat servers equally instead of primary/backup is to name them appropriately. Bob & Joe is better in this case than haMaster and haSlave, or serverA and serverB, etc.

      Same with IPMP and stuff - don't define a preference, whatever is, is.

      Unless you have asymmetric hardware, which I really, really, really discourage.

      --

      Do daemons dream of electric sleep()?
    17. Re:1000+ a day isn't very much by JWSmythe · · Score: 1

          I started giggling when I saw the "1000 per day" number. Wheee! If he can't get an old server to handle that, he's doing it wrong.

          For fun, ya, two servers kept in sync with rsync, would be fine. Maybe three? Sure, why not, the company has money to burn. Oh wait, it's a non-profit.

          My old shop was geared up for several thousand users simultaniously. It's uniques were around 4 million/day on a very slow day, and over 10 million per day on a good day. That was basically what I just said above, except with more servers and a better rsync method. That site, because of it's size, was broken down into 3 pieces (3 hostnames). All of the site content for all the sites were replicated (rsync) across about 15 to 25 servers. 15 servers were put in DNS (DNS RR) for each site, and then they were balanced by giving more robust machines multiple A records, and less robust machines fewer. Because it was always growing, we always had some older hardware that we hadn't retired yet, with the newer better stuff. They could be simply categorized as level 1, 2, or 3. The level would equate to the number of A records it had in DNS, and the amount of load it could take (1x load, 2x load, or 3x load).

          When a server took a poop, or a datacenter disappeared (it happens, even with 99.999% uptime guarantees), we just saw traffic jump up on the other servers, and of course we'd get a page letting us know something died.

          It wasn't fancy, but it wasn't expensive, and was easy to maintain. Want to add a server? Bring up a bare machine. Sync it up. When it's done syncing, and added to the normal sync cycle, add it's IP into DNS. Want to bring a server down? Take it out of DNS. Most users went away within 5 minutes (short ttl). Some stragglers would go away within the hour. So, yank the machine out after an hour to be safe. But, if a machine died, well, it was safe to yank immediately. :)

          We usually sat at under 50% utilization, but sometimes I'd test to see what individual machines could take. Give them extra A records, and drop some others off. Is our total utilization still the same? Yes, then everything's ok. Oh wow, look, we're at 160Mb/s. This was a while back, and we only had 100Mb/s ports on the switches, but we used TEQL to share two ports.

          So, sitting at 40% utilization, when we lost a datacenter (we had at 3), each would jump to a whopping 60% instead. If we lost two (it never happened, but was good theory), we'd have to bring up some of the hot spares because we'd now be at 120%.

          It was always fun to test just one datacenter. We had occasional bandwidth problems. Providers would have some problem that they couldn't identify, and saying "hey, we're having problems going over 600Mb/s on that GigE circuit" usually came back with blank stares. So, I'd shunt a whole bunch of traffic over to it with them on the phone. They'd usually say "Stop it! You're causing problems with the other customers in that DC!" :) It made getting problems fixed a little easier when you can do that.

          But, back to TFA .... 2 servers are fine. If it has a DB back end, a good DB server, and maybe a replicated spare would be good, so he *could* be looking at 4. He could safely get away with just one though.

          Oh, and all of my stuff was Linux, with regular Cisco Catalyst stitches (like 3500's). Cat5/6 to the machines. GigE fiber to the provider. Don't forget your power managers (APC masterswitch) so you can kick a machine in the middle of the night without going for a drive.

      --
      Serious? Seriousness is well above my pay grade.
    18. Re:1000+ a day isn't very much by JWSmythe · · Score: 1

          Have you actually worked with DRBD? It's neat once it works, but when it fails, it's messy. I knew someone who had a perfectly good working environment until it flipped out one day. The two DRBD servers fell out of sync. One stayed down, one stayed up, which was expected. One day, the one that had been down for months came up as master, and the other died. Suddenly they're using a database that's months old, *AND* DRBD brought the other one in sync. Everything that had happened for months suddenly disappeared.

          I would have blamed user intervention, except no users touched anything. It's hackish at best, and catastrophic at worst. In testing, I failed a pair quite a few times. In the first dozen or so failures it handled fine. Then it didn't. What do you do when both nodes don't want to play? Well, you're dead in the water until you can convince at least one to play nice again.

      --
      Serious? Seriousness is well above my pay grade.
    19. Re:1000+ a day isn't very much by JWSmythe · · Score: 1

          With my news site, when we first showed up on the front of Google News, it killed us. We went from a few hundred viewers a day to several thousand a minute.

          Limited caching was our best cure. It caches dynamic content for unvalidated users (like, not logged in) for 3 seconds. It doesn't sound like a lot (because it isn't), but the front page may take about 5 hits to the database. At 10,000 users per minute, that's 500 in 3 seconds, or 2500 queries. The 3 seconds number is adjustable too. Would anyone notice if I changed it to 10 or even 30? Nope. I'd notice based on server and database performance though. Why beat up on the database if I don't need to. :)

          With the caching on, the only thing that hits frequently is the counter that keeps track of the number of times a story is read. One update versus several larger queries is much easier.

      --
      Serious? Seriousness is well above my pay grade.
    20. Re:1000+ a day isn't very much by JWSmythe · · Score: 1

          You have 600 customers that pay on average $5,000,000 . What the hell are you selling?

          Ya, at $5 million/customer, you can afford to give them all kinds of warm fuzzy goodness. Hell, you could have a GigE line from every Tier 1 provider, and huge beautiful server farms, AND refresh it every quarter. :)

          I'd love to just sit in the accounts receivable office to hear the phone calls. "This months bill is due, that will be $415,000. Would you like to make that payment over the phone."

          I suppose budget meetings are a bit easier there.

      "I need a million dollars for new switches."
      "Ok. We'll slate that as 1 million 5, just in case you go over" :)
      "Well, I was looking at some new 16 core servers. Loaded they'll be in the ballpark of $20k"
      "Sure, get 10 and let us know how they work. You can just pull that out of petty cash." :)

          For the rest of us in the real world, we don't get those luxuries.

      --
      Serious? Seriousness is well above my pay grade.
    21. Re:1000+ a day isn't very much by stevey · · Score: 1

      I think a lot of people have the mental split because of the way sites evolve - initially you might have a single server, and only later add redundancy.

      Similarly people might spec out a backup machine and hope it is never used, so the processor/memory would be lower.

      (That is less good, obviously, because if the primary fails then the backup might not have the oomph to cope with the traffic.)

      Me? I handle spam filtering, and I get redundancy via round-robin MX records and haproxy.

      I expect to have all MX machines up at all times, but if one or two drop offline it isn't a big deal and they're all treated equally.

    22. Re:1000+ a day isn't very much by afidel · · Score: 2, Informative

      In Oracle land a hot standby server has to be fully licensed, a warm standby server does not. If your needs aren't for five 9's then it makes a LOT of sense to use a warm standby DR box.

      --
      There are 4 boxes to use in the defense of liberty: soap, ballot, jury, ammo. Use in that order. Starting now.
    23. Re:1000+ a day isn't very much by Matheus · · Score: 1

      Si Senor.. especially with the expense. Oracle/suppliers will give deals but the list price for a Standard Oracle license (which for you US peeps means #cores / 2) is $17.5K. If you wanna run RAC you don't need enterprise for that BUT if you want data guard to have a hot standby server you must have enterprise which is $45K per license.

      So given any server worth a damn these days has at least 4 cores that 2 licenses per box so for RAC you are at $35K * 2 = $70K just for your database servers software license (plus RAC is an up-charge) .. then add your web-servers (2 for same redundancy) A nice SAN with all sorts of tasty RAID redundancy (lets say $15K for a few TB RAID 60) That's 4 servers (about $5K each) + SAN + Oracle and you've spent over $105K.

      Use something like data-guard and that makes your enterprise licenses go up to $45 * 4, also double your SAN as each server will need its own storage and you've spent almost $230K.

      Warm backup using something like dbVisit you're only spending $2.5K on the software + Standard Oracle licenses (now only 2x 17.5 as the standby servers don't have to be licensed as the parent said) You still need 2 SANs SO now we're at $35 + 2x$15K + 4x$5k = $85K again and you lose real-time fail-over and a delay in how current your backup is via log-shipping.

      $$$$$$

      WAY too expensive if you don't need it. 1000 users is a picnic.

    24. Re:1000+ a day isn't very much by Fulcrum+of+Evil · · Score: 1

      Bob & Joe is better in this case than haMaster and haSlave, or serverA and serverB, etc.

      Nah, Bob and Joe are people names - calling the DB servers FunkDB_A and FunkDB_B has some of the semantics you dislike, but establishing a habit of switching off from one to the other for maintenance and having a page saying which is 'live' can get past that.

      --
      "We returned the General to El Salvador, or maybe Guatemala, it's difficult to tell from 10,000 feet"
    25. Re:1000+ a day isn't very much by Rei · · Score: 1

      It really depends entirely on the task. For example, I have a wiki that at one point was getting about a million hits a month. Not even a hint of any problems either on my Athlon 64 server or my DSL net connect. But let me tell you, if my 3d vehicle customizer that uses a Povray backend had 50 unique visitors a day, it'd bring the system to a crawl. It all depends on the task.

      --
      Are there any deer in the theater tonight? Get 'em up against the wall.
    26. Re:1000+ a day isn't very much by Anonymous Coward · · Score: 0

      No kidding. You could serve 1000 visitors a day on your wristwatch if it was running Apache.

    27. Re:1000+ a day isn't very much by Bandman · · Score: 1

      I'd love to just sit in the accounts receivable office to hear the phone calls. "This months bill is due, that will be $415,000. Would you like to make that payment over the phone."

      Something like this is very much how a large part of the real world works.

      If only the comment about the money for the hardware was the way the real world works...

    28. Re:1000+ a day isn't very much by MrCreosote · · Score: 1

      re needing Oracle EE + Dataguard to get a standby database - you can still get a standby database with SE - DataGuard is just the framework that that makes managing a configuration easier, but with SE you can still set everything up manually ie configure remote log_archive_dest, and manually manage the standby ("recover managed standby database disconnect from session;") and failover.

      Also, with 11g, RAC is now included with SE, but an option on EE (go figure).

      see http://www.oracle.com/technology/products/database/oracle11g/pdf/database-11g-product-family-technical-whitepaper.pdf

      --
      MrCreosote Meow!Thump!Meow!Thump!Meow!Thump! "You're right! There isn't enough room to swing a cat in here!"
    29. Re:1000+ a day isn't very much by drsmithy · · Score: 1

      Have you actually worked with DRBD?

      We have about half a dozen pairs of machines performing failover and replication with heartbeat+DRBD.

      Well, you're dead in the water until you can convince at least one to play nice again.

      Generally it's not an issue. Disconnect, set it "out of date", reconnect.

    30. Re:1000+ a day isn't very much by Anonymous Coward · · Score: 0

      But let me tell you, if my 3d vehicle customizer that uses a Povray backend had 50 unique visitors a day

      Link?

    31. Re:1000+ a day isn't very much by Rei · · Score: 1

      Play nice. Also, it's still in beta, so don't expect perfection. :)

      --
      Are there any deer in the theater tonight? Get 'em up against the wall.
    32. Re:1000+ a day isn't very much by Anonymous Coward · · Score: 0

      Agreed.. 1000 per day is nothing. I've had 50,000 visitors a day running comfortably from one server with a peak of about 100 pageviews per second (admittedly there were only a couple of fairly light SQL queries per page but still that gives you an idea of the scale)

  2. Is It Mission Critical? by s7uar7 · · Score: 4, Insightful

    If the site goes down do you lose truck loads of money or does anyone die? Load balancing and HA sounds a little overboard for a site with a thousand visitors a day. A hundred thousand and you can probably justify the expense. I would probably just be looking at a hosted dedicated server somewhere for now.

    1. Re:Is It Mission Critical? by cerberusss · · Score: 2, Insightful

      Well a dedicated server requires maintenance. All my customers come to me saying that they will eventually get 100,000 visitors per day. I make the calculation for them for the monthly cost: $100 for a decent dedicated server, plus $250 for a sysadmin etc.

      Eventually they all settle for shared hosting except when privacy is an issue.

      --
      8 of 13 people found this answer helpful. Did you?
    2. Re:Is It Mission Critical? by Errtu76 · · Score: 5, Interesting

      It's not overboard. And even with a hosting provider you're still dependent on hardware problems. What you can do to realise what you want is:

      - buy 2 cheap servers with lots of RAM
      - set them up as XEN platforms
      - create 2 virtuals for the loadbalancers
      - setup LVS (heartbeat + ldirectord) on each virtual
      - create 4 webserver virtuals, 2 on each xen host
      - configure your loadbalancers to distribute load over all webserver virtuals

      And you're done. Oh, make sure to disable tcp_checksum_offloading on your webservers, else LVS won't work that well (read: not at all).

    3. Re:Is It Mission Critical? by Anonymous Coward · · Score: 0

      I would probably just be looking at a hosted dedicated server somewhere for now.

      Yup. He should be looking at Amazon S3. 1000 visitors a day is peanuts, and whichever shyster came up with a figure of six servers for that sort of load sounds like a Dell or Microsoft sales person!

    4. Re:Is It Mission Critical? by drsmithy · · Score: 5, Informative

      And you're done. Oh, make sure to disable tcp_checksum_offloading on your webservers, else LVS won't work that well (read: not at all).

      Just a heads-up for those who (like me) read this and thought: "WTF ? LVS works fine with TOE", it is a problem specific to running LVS in Xen VMs where the directors and realservers share the same Xen host. Link.

    5. Re:Is It Mission Critical? by alta · · Score: 4, Informative

      If I had mod points, I'd give. This is the same thing we did, just different software.
      -get 2 ISP, I suggest different transports. We have one as fiber, the other is a T1. There's no point in getting 2 T1 from different companies if a bulldozer cuts them together.
      -Two dell 1950's
      -Set each up with vmware server
      -created 2 databases, replicating to each other
      -Created 2 web servers, each pointing at database on same machine
      -installed to copies of Hercules load balancer, vrrp + pen
      -set up failover DNS with 5 minute expiration.

      Now, you may say, why the load balancers if you're load balancing with DNS? Because if I have a hardware/power failure that's one instance where the 5 minutes for DNS to expire will not incure downtime for my customers. It also gives me the ability to take servers offline one at a time for maintenance/upgrades, again with no dowtime.

      I have a pretty redundant setup here and the only thing I've paid for is the software.

      Future plans are to move everything to Xenserver.

      --
      Do not meddle in the affairs of sysadmins, for they are subtle, and quick to anger.
    6. Re:Is It Mission Critical? by Anonymous Coward · · Score: 0

      You have DNS with a 5 min ttl? I think pointing the DNS to a virtual IP would have been a much more efficient solution.

    7. Re:Is It Mission Critical? by YeeHaW_Jelte · · Score: 1

      What's the use of running 2 virtual webservers on one piece of hardware?

      --

      ---
      "The chances of a demonic possession spreading are remote -- relax."
    8. Re:Is It Mission Critical? by Anonymous Coward · · Score: 0

      I agree with the virtualisation option. It answers your problems, and - most of all - is easy and trully scalable, easy to mantain and adapt to whatever needs.

      Alltough, I would go with the newly opensourced XenServer from Citrix. It is a fully production tested and used solution, ex-commercial, so built with stability in mind.

      Nevertheless, if you really want cutting edge, go with xen.org

    9. Re:Is It Mission Critical? by sharkman67 · · Score: 1

      The parent is absolutely correct! I configured a very similar system a year ago for a non-profit.

      I purchased two quad Xeon processor HP boxes with 20 GB of RAM each and run Xen just as suggested above. Two virtual web servers on each machine. In this case there is also a third virtual server on each that runs mySQL. The two mySQL instances are set up with replication. For the load balancing I picked up an old Alteon AD3. This setup has worked flawlessly since installation. Not one second of downtime.

      I also threw together a script so that when you update the 'master' web server it automatically rsync's the html across the other three web servers.

      The best part, the whole project cost under $1000. Since I was so under budget I picked up a third server for development and a second AD3 as a hot swap backup and still had lots of money to spare.

    10. Re:Is It Mission Critical? by emj · · Score: 1

      He has two physically different internet connections, kinda hard to hide it all behind one IP. Sure there is routing tricks that can solve this, but as far as I know there are no tricks that are easy to implement.

      This might be me smoking crack: But I think you solve it by getting an AS number+getting a BGP router, and when the first link goes down you announce that you are now available only through the second link. I have never done this myself..

    11. Re:Is It Mission Critical? by Anonymous Coward · · Score: 1

      One use could be in the (albeit hopefully unlikely) event that one physical machine goes down and you need to reconfigure or reinstall stuff involving each web server. Having two of them virtualized on each physical server thus allows you to do this without any externally visible downtime.

      (Maybe a slight decrease in performance while only 25% of the servers are running. Even this might be mitigated somewhat due to the sole remaining server having the entire physical machine's capacity available.)

    12. Re:Is It Mission Critical? by SatanicPuppy · · Score: 2, Informative

      VMs are like a bullet-proof vest for your hardware.

      If a virtual machine takes it in the ass and crashes, the system can spawn a new one without missing a beat, whereas the same crash on the actual machine might cause it to crash.

      It's also a good strategy to provide for future growth...If your machines are already virtual, you can host them on any hardware that's appropriate, and you can run as many as you need.

      --
      ad logicam Claiming a proposition is false because it was presented as the conclusion of a fallacious argument.
    13. Re:Is It Mission Critical? by Sxooter · · Score: 1

      There's still no way of being sure your fibre and T1 are not in the same tube. Look up Sonet rings.

      --

      --- It is not the things we do which we regret the most, but the things which we don't do.
    14. Re:Is It Mission Critical? by coogan · · Score: 1

      After our budgets were slashed to pieces, I implemented the exact same setup for my Glassfish cluster and it works like a charm. Only difference is that I used HAProxy instead of LVS.

    15. Re:Is It Mission Critical? by JWSmythe · · Score: 1

          That doesn't always work so well.

          If you're directly connected to the provider (like you have a cat5 or fiber connect going to your switch), they frequently cache the MAC address on their switch. Providers I've played this with usually have a 4 hour expiration. You can move the virtual IP, but you'll be waiting 4 hours before it actually hits the new server.

          In a more moderate world, sure, moving a virtual IP works fine. :)
         

      --
      Serious? Seriousness is well above my pay grade.
    16. Re:Is It Mission Critical? by alta · · Score: 1

      True, but at least by using multiple transports you're reducing your chances of a cut. Your cable and T1 are going to come out of the bldg together and diverge pretty quickly.

      Sonet is nice if it's available where you are already (and thankfully our building is already a stop) but for this guy, becoming a hop isn't going to be an option.

      Depending on his location, he may want to look at microwave as the secondary transport.

      --
      Do not meddle in the affairs of sysadmins, for they are subtle, and quick to anger.
    17. Re:Is It Mission Critical? by alta · · Score: 1

      The BGP idea was my first plan. I had two ISP's lined up that would agree to do it. I knew were to apply for the AS number... Then one of the ISP's asked me what kind of router I was planning on using. After being laughed at, I was told to prepare to spend big bucks for a router that would handle this.

      --
      Do not meddle in the affairs of sysadmins, for they are subtle, and quick to anger.
    18. Re:Is It Mission Critical? by Anonymous Coward · · Score: 0

      They probably are, because once company A pulls fiber to the building it will be cheaper for company B to split off a T-1 from their fiber than to run their own loop. Even if they don't do it at the building the same economies persist upstream. Not to mention everything coming into the building (that you are in) is probably physically close to each other... which means there is a significant correlation between your circuits getting cut. If you really need this kind of redundancy two physical locations gets you much closer than two circuits into one location.

    19. Re:Is It Mission Critical? by ZerdZerd · · Score: 1

      How do you sync the 2 databases after a disconnection?

      --
      I'm not insane! My mother had me tested.
    20. Re:Is It Mission Critical? by euxneks · · Score: 1

      You mean you posted after doing research to back up your statements? Am I still on slashdot?

      --
      in girum imus nocte et consumimur igni
    21. Re:Is It Mission Critical? by Fulcrum+of+Evil · · Score: 1

      So if I split the LVS services onto a separate set of hosts, will that work with TOE? I've got a similar setup for dev playtime.

      --
      "We returned the General to El Salvador, or maybe Guatemala, it's difficult to tell from 10,000 feet"
    22. Re:Is It Mission Critical? by Fulcrum+of+Evil · · Score: 1

      Why not set up your servers in a DC? I don't think I'd want to have anything needing serious availability behind a link that I owned (unless I was big enough to have a DC myself).

      --
      "We returned the General to El Salvador, or maybe Guatemala, it's difficult to tell from 10,000 feet"
    23. Re:Is It Mission Critical? by Anonymous Coward · · Score: 0

      What happens is the customer buys an OC-3 and they company that they bought it from pulls an OC-12 and breaks of the OC-3 at the building (or somewhere nearby). When you go to buy the T-1 the cheapest way to deliver it is to split it off of the same OC-12 (at both ends) and this is often what happens. When the OC-12 gets cut both circuits go down... I've personally seen this happen at least a half a dozen times.

    24. Re:Is It Mission Critical? by dermoth666 · · Score: 1

      Why the hell would you want to use VM's? It add complexity and overhead. It doesn't even take into account that a database (preferably a redundant one) will likely be required.

      A much simpler setup: get heartbeat running between two servers, set up each server to run a web server with floating IP, do the same with MySQL (one master, one slave, configured so that they can both live on the same server) and configure DNS round-robin between the two floating web IPs.

      You can probably add LVS on top of that if you wish (still managed with heartbeat) - I don't have too much experience with LVS though.

      As you grow, you can add more servers to handle the load and eventually separate the DB and WEB clusters.

    25. Re:Is It Mission Critical? by Anonymous Coward · · Score: 0

      its fucktards like you that make me override that dns TTL shit in my caches.

      there is NO fucking reason you need a TTL that low on dns. If there is , you are using dns for the WRONG thing.

    26. Re:Is It Mission Critical? by Anonymous Coward · · Score: 1

      It's not overboard. And even with a hosting provider you're still dependent on hardware problems. What you can do to realise what you want is:

      - buy 2 cheap servers with lots of RAM
      - set them up as XEN platforms
      - create 2 virtuals for the loadbalancers
      - setup LVS (heartbeat + ldirectord) on each virtual
      - create 4 webserver virtuals, 2 on each xen host
      - configure your loadbalancers to distribute load over all webserver virtuals

      And you're done. Oh, make sure to disable tcp_checksum_offloading on your webservers, else LVS won't work that well (read: not at all).

      Sir! That is *not* high availability, because the underlying database must also be able to load balance the queries, as well as handle UPDATE and DELETE statements in *parallel*, over multiple nodes!

      One choice in this arena is obviously Oracle RAC. MySQL is supposed to provide a clustering solution, but since MySQL corrupts data, it's not an option.

      There are also commercial versions of PostgreSQL supporting multimaster replication, and there are also patches which add multimaster replication to PostgreSQL, but the latter requires additional engineering effort to patch, package, test and integrate before it could be called "production ready".

      HA DOES NOT MEAN LOAD BALANCING. LOAD BALANCING IS JUST A SIDEEFFECT OF HIGH AVAILABILITY.

      HAVING STANDBY SERVERS IS NOT HIGH AVAILABILITY; it's called "failover mode" of running a cluster.

    27. Re:Is It Mission Critical? by Errtu76 · · Score: 1

      Yes it will. Only when they (lvs + webservers) are on the same physical xen host.

  3. budget? by timmarhy · · Score: 5, Insightful
    you can go as crazy as you like with this kind of stuff, but given your a non profit i'm guessing money is the greatest factor here. my reccomendation would be to purchase managed hosting and NOT try running it yourself. folks with a well established data centre that do this stuff all day long will do it much better,quicker,cheaper than you will be able to.

    there is also more of them than you can poke a stick at and prices are very reasonable. places like rackspace for this kind of thing for $100/mo.

    the other advantage is you don't need to pony up for the hardware.

    --
    If you mod me down, I will become more powerful than you can imagine....
    1. Re:budget? by malkavian · · Score: 2, Insightful

      The problem being that you're paying $100 per month in perpetuity. Sometimes you get awarded capital to spend on things in a lump sum, whereas the ability to garner a revenue commitment could not necessarily be made.
      At the spend rates you mentioned, that's a basic server per year. Say the server is expected to last 5-8 years, that'll be an outlay of at least $6000-$9600+, with more to spend if you want to keep things running.
      That would cover the cost of a couple of generations worth of hardware, depending on how it was implemented.
      If there's no skill around (and definitely won't be), then by all means, the revenue based datacentre rental is a great move, but if there is skill around to perform a task, then you gain far greater flexibility by DIY.

      Guess a fair bit of this comes down to whether it's possible to get at least $6k+ allocated to revenue spend over the next 5 years (at today's prices), of if it has to be capital.

    2. Re:budget? by drsmithy · · Score: 2, Insightful

      The problem being that you're paying $100 per month in perpetuity. Sometimes you get awarded capital to spend on things in a lump sum, whereas the ability to garner a revenue commitment could not necessarily be made.
      At the spend rates you mentioned, that's a basic server per year. Say the server is expected to last 5-8 years, that'll be an outlay of at least $6000-$9600+, with more to spend if you want to keep things running.
      That would cover the cost of a couple of generations worth of hardware, depending on how it was implemented.

      Your math does not appear to account for the other components necessary to meet similar uptimes to a hosted environment. Eg: multiple internet connections, redundant networking equipment, multiple power feeds, UPSes, disaster recovery site, etc.

    3. Re:budget? by antirelic · · Score: 1

      I work for a 20,000+ private user network that has some pretty critical demands for High Availability. If you are working for a non-profit, chances are that you simply will not be able to afford "true high availability", which requires a plethora of support features that are prohibitively expensive (for example, Cisco Content Switches cost $10,000+).

      Until you hit over 1,000+ Unique visitors "per minute" your best bet may be to have your site split amongst several different hosting providers (serverbeach, rackspace, etc.) and use DNS Round Robin to provide a bit of cheap load balancing and cheap redundancy (just give the www for your domain 3 A record entries).

      I know it sounds pretty lame, but it works.

      --
      20th century Marxism is not progress...
    4. Re:budget? by AvitarX · · Score: 1

      You have additional problems with your own hosting too though.

      The fact that FTP access is being discussed implies to me that the thought is there will be some large many file transfer type things.

      Considering a that the main office could likely share a cable connection otherwise, that bandwidth for self hosting becomes expensive.

      Additionally if there is budget for a few employees, and the website is a large part of the product $100/month is nothing, and almost certainly the capitol is worth more now.

      --
      Wow, sent an e-mail as suggested when clicking on "use classic" banner, and got a fast response that addressed my msg
    5. Re:budget? by TCM · · Score: 1

      Say the server is expected to last 5-8 years, that'll be an outlay of at least $6000-$9600+, with more to spend if you want to keep things running.

      If $10K over 8 YEARS is a problem, the project can't be important enough to justify HA.

      --
      Of course it runs NetBSD. BTC: 1NT7QvbetmANwaMzhpVL6
    6. Re:budget? by SatanicPuppy · · Score: 1

      That's about a third of the cost of a T1 line, not counting all the other stuff. Just in terms of available bandwidth it often makes sense to go with a professional host, because they have the resources to go with multiple redundant connections, and most private parties don't.

      I understand the issues, regarding capital. If you've already got enough pipe to run the site, then you don't have to worry about that. Even if you need another line in the future, it's not connected to the website, it's just "the building needs more internets."

      Still, you'll get more bang for your buck, going offsite.

      --
      ad logicam Claiming a proposition is false because it was presented as the conclusion of a fallacious argument.
    7. Re:budget? by rbunker · · Score: 1
      I totally endorse this approach.

      The $100 per month is nothing compared to the personnel expense of trying to keep the beast running with local machines and people.

      And as for infrastructure for availability, think uninterruptible power, n+1 cooling, connectivity redundancy, physical security and network security, before you ever even think about redundant servers, storage and load-balancing, failover software.

      Rackspace is indeed a good choice (and no I don't work for them), and they can offer you HA solutions if you need them and can afford them (a non-profit serving 1000 users a day almost certainly does not need, and can't afford, HA).

      I am betting you can live with their very, very good SLAs for just a cheap, standard solution. Add in a RAID array, managed backup and a hardware firewall and you will be golden.

      More importantly, do NOT use ftp as you said you plan to in your post. It is totally insecure, and you will very quickly be turned into a distribution center for pornography, stolen software, and instructions to botnets. You can move the files around using HTTP, or SFTP if you must. Don't run FTP.

      Rick.

  4. Pound by pdbaby · · Score: 3, Informative

    At work we have a pretty good experience with Pound - it's easy to set up & it load balances and will detect when one of your servers is down and stop sending traffic there. You can get hardware load balancing from people like F5 too.

    If you're just starting out you'll probably want to start with software and then, if the load demands it, move to hardware

    Machine-wise, we use cheap & not overly powerful 250 GBP, 1u servers with a RAID1; they'll die after a few years (but servers will need to be refreshed anyway) and they provide us with lots of options. They're all plugged into 2 gigabit switches

    --
    Global symbol "$deity" requires explicit package name at line 2. - If only $scripture started "use strict;"
    1. Re:Pound by dotwaffle · · Score: 1

      Where do you get your 250GBP servers from? And do they have hot-swap drive bays? =)

    2. Re:Pound by Anonymous Coward · · Score: 0

      Unfortunately no hotswap drives (2 internal bays) - they were minimum spec Dell R200s (by the look of it they were clearing out an old model of Xeon a while back & the prices went really low). They've been pretty reliable, though.

  5. Load balancing by blake1 · · Score: 1

    I would think that this would also largely depend upon what you are using to serve the pages people are going to be accessing. If you are using IIS as a web server (I'm assuming this is not the case) then the NLB component of Windows is already there ready to be turned on. This will provide fault-tolerance and load balancing for the front-end but if you have databases then these will also need redundancy for your service to be HA (MS have failover clusters for this purpose). I've found MS implementations of load-balancing / HA to be simple and effective if they are implemented properly.

  6. Plan or Implementation? by Manip · · Score: 5, Insightful

    Why are you purchasing six or so servers before you even have one online?

    You say that you expect "1,000+ a day" visitors which frankly is nothing. A single home PC with Apache would handle that.

    This entire posts strikes me as either bad planning or no planning. You're flirting with vague "out of thin air" projections that are likely impossible to make at this stage.

    Have a plan in place for how you will scale your service *if* it becomes popular or as it becomes popular but don't go wasting the charities money just in case your load jumps from 0 to 30,000+ in 24 hours.

    1. Re:Plan or Implementation? by fl!ptop · · Score: 1

      don't go wasting the charities money

      not to nitpick, but not all non-profits are charities, and some non-profits have a lot of money to spend. case in point

      --
      When you recognize love in another and realize how precious it is, everything else seems so insignificant.
    2. Re:Plan or Implementation? by morgan_greywolf · · Score: 1

      Agreed. Actually, something a lot of people aren't mentioning is that 1,000 unique vistors is sufficiently low enough to have someone else do your hosting. You might even be able to get by with shared hosting, but if you want something more reliable, virtual servers give you the reliability of a dedicated server sitting in a co-loc, the room to expand later because you pay for only what you use, which results in a cost that's much less than running your own server, if a bit higher than shared hosting.

      Do your homework on virtual hosting. Not all virtual servers are created equal, and some are significantly more expensive than others. But since lots of companies are providing this now, you'll have a wide array to choose from.

      One important thing, as the parent says: know your requirements. Do not guess. Draw up a plan and get required features and service levels in writing. And always get service level agreements from the hosting company in writing and make sure they match your requirements, of course.

    3. Re:Plan or Implementation? by Anonymous Coward · · Score: 0

      I have just been informed that he meant 10,000...and that is 10,000 people accessing the FTP server, posting on forums, chatting on IRC.

    4. Re:Plan or Implementation? by fava · · Score: 1

      In an earlier post the submitter stated that its actually 100,000+ a day not 1000+.

      The story summary should be modified.

  7. F5 by Anonymous Coward · · Score: 1, Interesting

    Your application is very simple, and your budget probably is not too high. But for your own edification, this is F5 Networks (formerly F5 Labs) bread and butter, application delivery. What you want is a pair of BIG-IPs running Local Traffic Manager. You should look into that, at least so you can show off how cheap the solution you propose to your boss is to it.

    1. Re:F5 by Anonymous Coward · · Score: 0

      instead throw big money to pricy F5 or similar machines, get some 2 dirt cheap servers, with quality ethernet cards, add some linux distro with apache(with cache+proxy+loadbalancer modules) and heartbeat(for failover) and have some active/active LB setup for MUCH lower price. been there/done that. also will learn much in process which is even more valuable.

    2. Re:F5 by Anonymous Coward · · Score: 0

      um no. F5's will be overkill. I dont think they are prepared to fork out 30k in a HA pair of loadbalancers.

      to be honest i think scalability is going to be the issue here. They havent mentioned how they are going to grow hence a rackspace type provider maybe the right way forward however We have found rackspace to be limited. Another reason why a managed service provider will be the way forward as TCO probably will be a major factor here. Charities dont have massive budget for capex.

  8. 1000+ a day is trivial have you thought of amazon? by MosesJones · · Score: 5, Insightful

    Lets get more blunt. Depending on what you are doing and if you want to worry about failover then 1000 a day is bugger all. Simple set up of Apache and Tomcat (if using Java) with running round-robin load-balancing will give you pretty much what you need.

    If however you really are worried about scale up and scale down then have a look at Amazon Web Services as that will probably more cost effective to cope with a peak IF it occurs rather than buying 6 servers to do bugger all most of the time.

    2 boxes for hardware failover will do you fine, if you are worried about HA the its the COST of downtime that you are worried about (i.e. down for an hour exceeds $1000 in lost revenue) which will justify the solution. Don't just drive availability to five nines because you feel its cool, do it because the business requires it.

    --
    An Eye for an Eye will make the whole world blind - Gandhi
  9. Re: 800 Bucks to Spend by buswolley · · Score: 1
    I am a graduate student who wants a little extra computing power for scientific analysis work.

    I have a small budget. 800 bucks.

    I have heard of this guy building a microwulf cluster, http://www.calvin.edu/~adams/research/microwulf that generated some good flops, at least at that time. Today I can build that very same cluster for about 800 dollars.

    My question: Is it better to go with a newer computer setup that falls within that budget, or go with the cluster. I will be doing image analysis work of function MRI data. Thanks.

    --

    A Good Troll is better than a Bad Human.

  10. OpenBSD by Anonymous Coward · · Score: 0

    Consider OpenBSD, CARP gives you the best clustering. Alternatively OpenBSD with relayd makes for the best load-balancer.

    1. Re:OpenBSD by Venture37 · · Score: 1

      +1 CARP is definitely the way forward for scenarios like this.

  11. KISS by MichaelSmith · · Score: 2, Insightful

    Sit down for a bit and think about the most likely use cases for your software. To give the example of slashdot that might be viewing the main page or viewing an entire article. Structure your code so that these things can be done be directly sending a single file to the client. With the kernel doing most of the work you should be okay.

    Sites which get slashdotted typically use a badly structured and resourced database to directly feed external queries. If you must use a database put some kind of simple proxy between it and the outside world. You could use squid for that or a simple directory of static html files.

    1. Re:KISS by slashkitty · · Score: 1
      Yes, KISS... All those advocating load balancers for a small site like this will just make matters worse. Any efforts should be spent making sure your server is optimized and running well. A good backup is of course important. Syncing data and trying to get multiple servers to run simultaneously is a recipe for a big slow mess. If you need to scale beyond one server, offloading the database from webserver is the first step. If you really get popular, maybe you'll need to add a static image file server.

      I run sites with 200,000 people per day, and all I use is inexpensive commodity hardware. Even with the 3 server setup (web, db and images) the load on each is practically nothing. Uptime is measured in years. Swapping out hardware and upgrading individual components easily done in minutes.

      --
      -- these are only opinions and they might not be mine.
  12. Some information about HA by modir · · Score: 3, Informative

    I want to give you some more information. Based on your visitor estimates I think you do not have a lot of knowledge about it. Because for this number of visitors you do not really need a cluster.

    But now to the other stuff. Yes, Windows clustering is (up to Win Server 2003 [1]) a lot easier. But this is because it is not really a cluster. The only thing you can do is having the software running on one server, then you stop it and start it on the new server. This is what Windows Cluster is doing for you. But you can not have the software running on both servers at the same time.

    If you really want to have a cluster then you need probably some sort of shared storage (FibreChannel, iSCSI, etc.). Or you are going to use something like DRDB [2]. You will need something like this too if you want to have a real cluster on Windows.

    I recommend you to read some more on the Linux HA website [3]. Then you get a better idea what components (shared storage, load balancer, etc.) you will need within your cluster.

    If you only want high availability and not load balancing then I recommend you to not use Windows Cluster. Better set-up two VMware servers with one virtual machine and then copy a snapshot of your virtual machine every few hours over to the second machine.

    [1] I don't know about Win Server 2008
    [2] http://www.drbd.org/
    [3] http://www.linux-ha.org/

    1. Re:Some information about HA by Anonymous Coward · · Score: 0

      We use Heartbeat and DRDB for our linux authentication and file servers. It's a little annoying to set up for the first time (since it's got to synchronize the block devices, and if you have multi TB you're looking at 1-3 days), but it's near instant fail over.

    2. Re:Some information about HA by blake1 · · Score: 2, Informative

      The only thing you can do is having the software running on one server, then you stop it and start it on the new server. This is what Windows Cluster is doing for you.

      That's not true. For clustering of front-end services (ie, IIS) you use NLB which is fully configurable load balancing and fault tolerance.

    3. Re:Some information about HA by modir · · Score: 2, Informative

      True, sorry I did not write it that clear. I was only writing about the Cluster software included with Windows. Not about other applications like NLB included with Windows too.

      I just wanted to make clear that Microsoft Cluster Server is a lot easier to set-up (what the questioner has seen correctly) but this is because you get a lot less. He would have to install and configure several other applications (like NLB) to get the same as he gets with Linux HA.

    4. Re:Some information about HA by Bandman · · Score: 1

      I'm curious about DRDB. I've heard of it before, but not much, and never talked to someone using it.

      What happens in the event of a network disconnect, where the servers get out of sync?

    5. Re:Some information about HA by modir · · Score: 2, Informative

      Please look at http://www.drbd.org/home/mirroring/ and the next chapter "Recovery".

      I hope hope this can help you already little.

    6. Re:Some information about HA by Bandman · · Score: 1

      Hey, thanks a lot. I appreciate it!

  13. Nginx by Tuqui · · Score: 1, Informative

    For LoadBalancing and statics file HTTP serving use Nginx, is the fastest around. Use two or more linux servers for your High Availability Cluster, set a virtual IP for the LoadBalancer and HeartBeat to switch the virtual IP in case of failure. Software cost including OS = zero.

    1. Re:Nginx by Cthefuture · · Score: 1

      I'll second this. In fact, I use nginx not only for load balancing but it serves as the primary web servers as well. I run dynamic content via FCGI daemons (PHP, Perl, etc).

      The smallest machine I run is a little tiny Linux guy with 256 MB of RAM that handles tens of thousands of SMF forum hits a day. Additionally that same machine runs about 10 WordPress sites and two other low traffic SMF forums. I use SuperCache with Wordpress to make most of the content static, plus APC for all the PHP stuff (SMF has built-in APC support too).

      With only 256 MB of RAM Apache could barely handle a couple users at a time. nginx is tiny and efficient the way a webserver should be.

      --
      The ratio of people to cake is too big
  14. 1000 a day? Oh my! by Anonymous Coward · · Score: 0

    1000 visitors per *day*? Oh my! That's almost one visitor every minute! Truly, this is traffic previously unheard of.

  15. Amazon EC2 by adamchou · · Score: 2, Informative

    Amazon's servers allow you to scale vertically and horizontally. They have images that are preconfigured to do load balancing and they have LAMP setups. Plus the fact that its a completely virtualized system means you never have to worry about hardware failures. with only 1k uniques per day, they have more than enough to accommodate for what you need

    as for ease of use, i've never done windows load balancing, but the linux load balancing isn't terribly difficult to get working. to optimize it is quite a bit more difficult though. but with anything linux, its all terminal so its almost never as convenient as point and click. however, its almost always more flexible than point and click.

    one other thing that you need to think about that goes hand in hand with HA systems is monitoring. with or without amazon, you need to always account for software failures too. apache might hang, the database might be overloaded, etc. you'll need something like nagios, cacti, etc. so don't forget to account for that in your hardware costs

    1. Re:Amazon EC2 by Anonymous Coward · · Score: 1, Informative

      Perhaps you might want to take a look at this:

      http://paste.lug.ro/75

      It's an excerpt from a recent Undernet IRC session. So much for integrity and security on Amazon...

    2. Re:Amazon EC2 by ShieldW0lf · · Score: 1

      Amazon's servers allow you to scale vertically and horizontally. They have images that are preconfigured to do load balancing and they have LAMP setups.

      Amazon have too much hardware. If a bunch of suckers don't rent it from them at 1000x it's value, they will sell some of it.

      You can set up a cluster of 8 refurbished home theater PCs for 5 grand, and there's enough redundancy in that budget that you can drive a hammer through every third machine and your application fail.

      Why the hell would you want to set yourself with another large monthly tax before you're even off the ground?

      --
      -1 Uncomfortable Truth
    3. Re:Amazon EC2 by Anonymous Coward · · Score: 0

      So... you can run bots on a server running on Amazon, possibly by hacking into those hosted servers. What's that have to do with Amazon's integrity and/or security?

    4. Re:Amazon EC2 by adamchou · · Score: 1

      because if you've ever run a data center, the last thing you want to do is go down to the data center every other week because your refurbished pc's have cpu fans that are crapping out. when you run a business, you don't cheap out on hardware to save you a few hundred now when it might cost you a few hours later down the road because i'd imaagine that you and your employees are worth much more than saving a couple hundred bucks on some crappy servers. besides, getting a rack at a colo is expensive too.

  16. Re:You will be OK by Anonymous Coward · · Score: 4, Insightful

    16GB? Are you mad? Anything beyond 1GB should be enough to handle 1000 unique visitors per day. If you want to virtualize the system and have a separate web- and database server, 2GB should be enough already, if you ant to go further and have a separate virtual mail server in there, 2GB is still sufficient and 3GB is plenty.

  17. HaProxy by Nicolas+MONNET · · Score: 4, Informative

    Haproxy is better than Pound, IMO. It's lightweight, but handles immense load just as well as layer 3 load balancing (LVS), with the advantages of layer 5 proxying. It uses the latest Linux APIs (epoll, vmsplice) to reduce context switching and copying to a minimum. It has a nice, concise stats module. Its logs are terse yet complete. It redirects traffic to a working server if one is down / overloaded.

    1. Re:HaProxy by Architect_sasyr · · Score: 2, Informative

      I seem to recall slashdot operating behind pound systems. It was a good enough plug for me to go and fire it up, been happy with it ever since. Not to say haproxy is better or worse, I've never used it, just another person with great results from pound.

      We get upwards of 15,000 hits per hour and just use Carp and Pound to handle our redundancy (Carp captures servers down, pound handles TCP ports going missing) across two machines (both RAID5 with FA RAM). Last time I checked the load averages, the 2.2 G processors were doing ~1.28 for a highly dynamic site.

      --
      Me failed English...
      FreeBSD over Linux. If my comments seem odd, this may explain...
  18. Re:You will be OK by Reigo+Reinmets · · Score: 2, Interesting

    Depending on static/PHP/Python/WhatEverYouUse engines, i think 16GB is a bit overkill for 1000+ users per day, but it all depends on the application ofcourse.

  19. Only one kind of cluster for this by ciaran.mchale · · Score: 1

    Hey dude, it's just got to be a Beowulf cluster.

    Preferably a russian one.

    And don't forget to use low-profile car tires for extra performance.

  20. Consider cloud? by sjj698 · · Score: 1

    Have you considered any of the 'cloud' offerings? Amazon EC2 / Microsoft Azure could be an option, this will be able to give you scalability as am sure that your 1000+ visitors a day is a guess. You can then bring up some of your services and grow with demand. Your 6 servers, clustered with a load balancer will quickly get expensive. Give it a go :-) SJJ

  21. 1000 a day? surely you mean per second? by Anonymous Coward · · Score: 0

    One dual quad Xeon properly configured can saturate 200Mbps, and serve 500 requests per second per GB of RAM installed easy. Most bad data centers configure their systems with only 1GB of ram fully aware that they can lease more systems to one client and much more profit than simply fine tuning the server.

    Once you take into account the hardware bottlenecks (disk arrays)

    Cluster systems are high-latency, better suited for "applications running on the server" over "static content"

  22. Re:You will be OK by Anonymous Coward · · Score: 0

    Yes, because you know exactly the memory footprint of the application running on...um, well whichever OS, and you know it'll scale in a predictable way. Today's server hardware[tm] (which just comes in one model) doesn't really care about the CPU intensiveness of the application. As we all know, 1000+ means exactly 1001-1005, not for example 172513, and it really makes no difference whether it's evenly spread out during the day or all of them connect at 4:20:00 EST. Just buy lots of RAM, case closed.

  23. Achtung sign recommended by troll8901 · · Score: 1

    Because the cluster setup is highly complex and fragile, you should hang a sign directly above the hardware.

    "ATTENTION

    This room is filled with special electronic equipment. Fingering and pressing the buttons from the computers are allowed for experts only! So all the "lefthanders" stay away and do not disturb the brainstorming happening here. Otherwise you will be out thrown and kicked elsewhere!

    Also: please keep still and only watch the blinking lights in awe and astonishment."

  24. we run a nonprofit with 100m+ visitors a day by midom · · Score: 5, Interesting

    Hi! we run a non-profit website that gets 100 million visitors a day on ~350 servers. we don't even use any "clustering" technology, just replication for databases, and software (LVS) load balancer in front of both app (PHP) and squids at the edge. but oh well, you can always waste money on expensive hardware and clustering technology. and you can always check how we build things

    1. Re:we run a nonprofit with 100m+ visitors a day by ledow · · Score: 1

      Heh, so assuming things scale linearly (which I would find surprising), you could run at least 1 million visitors per day on 3.5 servers. And this guy wants six servers for 1000/day (or a little over). And I don't think that his needs would run anywhere near as complex as the example posted. :-)

    2. Re:we run a nonprofit with 100m+ visitors a day by ShaunC · · Score: 1

      Hi! we run a non-profit website that gets 100 million visitors a day

      Oh cool, Moot's on Slashdot.

      --
      Thanks to the War on Drugs, it's easier to buy meth than it is to buy cold medicine!
    3. Re:we run a nonprofit with 100m+ visitors a day by Anonymous Coward · · Score: 0

      we run a non-profit website that gets 100 million visitors a day on ~350 servers.

      Just a note to the article submitter: 100,000,000 visitors / 350 servers = ~285,000 visitors per server, which is a handful more than the 1000+ that you're worryied about swamping your one server with.

  25. 2-node failover solution is probably a net lose by James+Youngman · · Score: 1

    First, figure out what it means for your website to be available (do people need to be able to fetch a page, or do that also be able to log in, etc.). Select monitoring software and set it up correctly.

    As for the serving architecture, at this level of load, you're better off without clustering. You don't need it for the load and it's probably a net loss for reliability; most outages I've seen in two-node cluster is either infrastructural that takes them both out (power distribution failures, for example) or problems with the HA system itself (switches going into jabber-protection mode and provoking a failover, failure detection script bugs, etc.). If you really feel that a single machine does not offer enough protection, go for an active-active configuration and simplify the problem to directing incoming requests to the working web servers, as opposed to "failing over".

    This changes a bit if your reliability needs are high enough to justify separate serving facilities in separate data centres in different cities. For that sort of stuff you need to look at working with DNS to solve part of the problem too, but the right approach there depends on to what extent the website is static content.

    1. Re:2-node failover solution is probably a net lose by netcrusher88 · · Score: 1

      Actually 2-node active-passive can be a very good idea.

      Let's say you have two nodes behind a load balancer (only way to replicate functionality active-active... you could do the thing where one server is static though, like youtube does). You need a shared filesystem, so you need another node to act as a NAS. What if your app is database-backed? You can stick that on the NAS, probably. But then it's not redundant.

      It's really just simpler to have unidirectional replication, then script it to switch direction upon failover. The Linux-HA project makes it relatively easy, since they've been working on that for years.

      --
      There's an old saying that says pretty much whatever you want it to.
  26. I was running a local free by sam0737 · · Score: 1

    and was handling like hundred thousands to a everyday, with off the shelf hardware spec 10 years ago. (Like 512M RAM and 1st era Pentium 4)

    There was no problem at all.

    We also used www.linuxvirtualserver.org to handle load balancing the web requests, and using yet another bigger Linux NFS for backend storage.

    The biggest problem for the HA is
    1. How you sync the data over, or do you rely on another central storage which then there is single point of failure again.
    2. If it involves Database, then it's is a much bigger issue...

    I assume you don't need sub-second failover. 5 minutes downtime might even be OK. You might want to shoot for a Hot Standby solution, instead of Load Balancing solution, which should be a little bit easier on everything.

  27. STOP. You have no idea what you're doing. by Enleth · · Score: 4, Interesting

    I'm sorry, but I have to say that. Don't be offended, please - sooner or later you will look at your submission and laugh really hard, but for now you need to realise that you said something very, very silly. A few people already politely pointed out that 1000 visitors a day is nothing - but seriously, it's such a great magnitude of nothingness that, if you make such a gross misintepretation of your expected traffic, you need to reconsider if you really are the right person for the job *right now* and maybe gain some more experience before trying to spend other people's money on a ton of hardware that will just sit there, idle and consume huge amounts electricity (also paid by other people's money).

    I'm serving a 6k/day website (scripting, database, some custom daemons etc.) from a Celeron 1.5GHz with 1GB RAM, and it's still doing almost nothing. If you really have to have some load balancing, get two of those for $100 each.

    --
    This is Slashdot. Common sense is futile. You will be modded down.
    1. Re:STOP. You have no idea what you're doing. by MarkRose · · Score: 1

      I'm serving 1 million PHP hits a day and up to 200 MySQL queries per second (5 min avg) on a 3 GHz Celeron with 1 GB of RAM. I could do 10,000 hits per day on a 486.

      --
      Be relentless!
    2. Re:STOP. You have no idea what you're doing. by Bandman · · Score: 1

      It's been said before, but HA isn't just about load. Sure, he mentioned load balancing, but the HA part may be the more important.

    3. Re:STOP. You have no idea what you're doing. by Anonymous Coward · · Score: 1, Insightful

      It's funny that you care about offending this guy. Let me paraphrase his post;

      "Help! I obviously have no experience running a web server but have managed to convince a non-profit that I'm the right guy for the job. I've used my social science degree to good effect and done lots of reading to discover the right buzzwords and where all the tech geeks hang out. I think that with $8-24k of servers that you guys could set this up really well for me."

      Anyone actually qualified to do this would have already done it. The scary part is what he hasn't talked about - security and backups. He's talking about an FTP repository. How long before that gets pwned?

    4. Re:STOP. You have no idea what you're doing. by canuck08 · · Score: 0

      oh ya? well I'm serving a million hits per day from my OLPC over a 56k modem! (and it's uphill both ways)

    5. Re:STOP. You have no idea what you're doing. by dbodner · · Score: 1

      I'm sorry, but I have to say that. Don't be offended, please - sooner or later you will look at your submission and laugh really hard, but for now you need to realise that you said something very, very silly. A few people already politely pointed out that 1000 visitors a day is nothing - but seriously, it's such a great magnitude of nothingness that, if you make such a gross misintepretation of your expected traffic, you need to reconsider if you really are the right person for the job *right now* and maybe gain some more experience before trying to spend other people's money on a ton of hardware that will just sit there, idle and consume huge amounts electricity (also paid by other people's money).

      Unless his main objective is actual high availability and not processing power. A single server with a single upstream provider is no way to house mission critical data/transactions, even if the server is sitting at 99% idle. I would rather get 2 servers running Xen with two haproxy VM's setup with linux-ha, two apache VM's and 2 database VM's replicated than I would throw everything on one server and hope and pray it stays online 24x7x365.

    6. Re:STOP. You have no idea what you're doing. by Enleth · · Score: 1

      From the submitted text (emphasis mine):

      We are expecting 1,000+ unique visitors / day. I know that having only one server to serve this number of people is not a great idea, so I began to look into clusters. After a bit of reading I determined that I am looking for high availability, in case of hardware fault, and network load balancing, which will allow the load to be shared among the two to six servers that we hope to purchase.

      He got half the issue right - for availability, two servers and a balancing mechanism (actually, full automatic switchover would be more appropriate here than a round-robin style balancer) is a proper solution. And so I wrote "get two of those", appropriately, but regarding some $100 home PC boxes - because the other half of the issue was clearly misunderstood: he seemed to be going to buy six real, expensive servers thinking that he needs them for the job because of their performance, not increased availability. Which is definitely not true, because several orders of magnitude more workload will be handled just fine by a cheap consumer PC, assuming that his scripts and database queries are properly written (but if they're not, not even a supercomputer will help with, say, an exponential-complexity algorithm).

      It could be probably argued that a consumer PC will fail sooner than a proper server because of build quality, but it will be cheap to fix or replace as well, whereas a failed server costs a lot even to fix (because of natural monopoly for model-specific parts with limited lifespan like power supplies, which are extremely expensive after the warranty expires), and you can't really just pop in the computer store across the street to get the parts and fix it quickly. Sure, there are additional warranty plans for servers that include sending a technician to the customer's location and fixing things within several hours, but they often cost more than the server itself, not an option in this case.

      All in all, I think that I did not state anything substantially incorrect, maybe a bit inaccurate (I was somewhat in hurry, but still wanted to share my thoughts), more like you misunderstood the point I was trying to get across.

      --
      This is Slashdot. Common sense is futile. You will be modded down.
    7. Re:STOP. You have no idea what you're doing. by Enleth · · Score: 1

      Offending someone isn't the best way to make them consider your point, is it?

      Other than that, you're right.

      --
      This is Slashdot. Common sense is futile. You will be modded down.
    8. Re:STOP. You have no idea what you're doing. by MarkRose · · Score: 1

      A v90 modem gives you 31200 bps upstream, or 3.9 kB/s, or 336 960 kbytes per day, ignoring TCP/IP overhead. That gives you about 337 bytes per hit, if doing 1M a day. That doesn't even cover the HTTP headers.

      Fool.

      --
      Be relentless!
    9. Re:STOP. You have no idea what you're doing. by Raenex · · Score: 1

      Whoosh? I'm pretty sure he was joking.

    10. Re:STOP. You have no idea what you're doing. by canuck08 · · Score: 0

      I was not joking.
      Back when I was young we didn't have the LUXURY of http headers. Hypertext... pfft. what is this? the future? We made do with regular text. We didn't even have fancy guaranteed delivery protocols like TCP, we hand-crafted IP packets and hoped they arrived.
      You should hear the Mnemonic I came up with for doing x-modem compression in my head!
      If we were lucky enough to get a byte through we considered ourselves lucky! we'd print it out and share it with our neighbours.
      kids these days are spoiled.

  28. Pointless by ledow · · Score: 5, Informative

    1000 users a day? So what? That's less than one user a minute. Even if you assume they stay on the website for 20 or so minutes each, you're never looking at more than about 20 users at a time browsing content (there will be peaks and troughs, obviously). Now picture a computer that can only send out, say, 20 x 20 pages a minute (assuming you're visitors can visit a full page every 3 seconds) - we're talking "out of the Ark". Unless they are downloading about half a gig of video each, this is hardly a problem for a modern machine.

    I do the technical side for a large website which sees nearly ten times that (as far as you can trust web stats) and it runs off an ordinary shared host in an ordinary mom-n-pop webhosting facility and doesn't cost anywhere near the Earth to run. We often ask for more disk space, we've never had to ask for more bandwidth, or more CPU, or got told off for killing their systems. Admittedly, we don't do a lot of dynamic or flashy content but this is an ordinary shared server which we pay for out of our own pockets (and it costs less than our ISP subscriptions for the year, and the Google ad's make more than enough to cover that even at 0.3% clickthrough). We don't have any other servers helping us keep that site online (we have cold-spares at other hosting facilities should something go wrong, but that's because we're highly pedantic, not because we need them or that our users would miss us) - one shared server does the PHP, MySQL, serves dozens of Gigabytes per month of content for the entire site, generates the statistics etc. and doesn't even take a hit. I could probably serve that website off my old Linux router over ADSL and I doubt many people would notice except at peak times because of the bandwidth.

    Define "massive" too... this site I'm talking about does multiple dozens of Gigabytes of data transfer every month, and contains about 10Gb of data on the disk (our backup is now *three* DVD-R's... :-) ). That's *tiny* in terms of a lot of websites, but equally puts 99% of the websites out there to shame.

    Clustering is for when you have more than two or three servers already and primitive load-balancing (i.e. databases on one machine, video/images on another, or even just encoding half the URL's with "server2.domain.com" etc.) can't cope. In your case, I'd just have a hot-spare at a host somewhere, if I thought I needed it, with the data rsync'd every half-hour or so. For such a tiny thing, I probably wouldn't worry about the "switchover" between systems (because it would be rare and the users probably don't give a damn) and would just use DNS updates if it came to it. If I was being *really* pedantic, I might colo a server or two in a rack somewhere with the capability for one to steal the other's IP address if necessary, or have DNS with two A records, but I'd have to have a damn good reason for spending that amount of money regularly. If I was hosting in-house and the bandwidth was "free", I'd do the same.

    Seriously - this isn't cluster territory, unless you see those servers struggling heavily on their load. And if I saw that, I'd be more inclined to think the computers were just crap, the website was unnecessarily dynamic, or I had dozens-of-Gigabytes databases and tens or hundreds of thousands of daily visitors.

    You're in "basic hosting" territory. I doubt you'd hit 1Gb/month traffic unless the data you're serving is large.

    1. Re:Pointless by Nethead · · Score: 1

      Agree. I could do 1k hits on an old pent90 and still have time for mail, dns, and ftp services. In fact, I think that's how we did it back in the day.

      --
      -- I have a private email server in my basement.
  29. Failure scenarios and costs. by samson13 · · Score: 1

    If your planning a HA solution my first step is to decide what you are trying to protect against, what the cost/consequence of these events occurring and a method to test failure events.

    I've seen projects where the HA configuration has contributed to more downtime than any specific failure. I've seen projects that were too "important" to schedule test failures so when it did fail it didn't fail over.

    In a lot of cases if a specialist site is down then people would come back later. If your consequences are not that high for an outage then save your money for good backups and good support contracts and maybe a cold/warm spare. If slashdot crashed now I'd just check again next time I had a chance.

    A HA solution has to be designed from end to end. This isn't easy and some of your components may not work in a compatible way(black box software). Static content can be pretty easy to load balance/failover but once you start getting into dynamic content things become more complicated and uncertain.

    If you have to worry about session persistence an unexpected event might redistribute connections causing existing connections to break for something that was very transient. i.e. it amplifies a minor fault.

    I've seen applications that didn't pass their status through to the web server. There was a significant back end failure and the web server was still returning "200 OK" responses to the requests. The other servers were still working correctly and due to session persistence the people diagnosing the issue initially didn't realise that 25% of sessions were empty pages. The developer should have provided checks in their code, the load balancer could have done a different check, the initial level 1 support didn't really understand the system. All these have costs and consequences. i.e. development time and skills, risk that a content change might cause a service check to fail, training costs.

  30. Depending on what you are doing... by mlwmohawk · · Score: 1

    Buy two good quality machines and keep one as a hot spare and just backup every night.

    The current "uptime" of a couple of my systems are 255 days, and that's only because of a power failure and subsequent end of generator fuel at my colo which no amount of on-site redundancy would have helped.

    Good quality machines and software *will* run for a year pr more with no issues.

    I've been setting up sites at data centers for about 10 years now, seriously, do the cost/benefit analysis, the base price is a couple machines, colo, and a backup strategy. Use the stand-by as a backup server, and download from that nightly. You can figure access to internet + 5 minutes to shut down or repair the non-working box, and if necessary active a new IP address on the stand by system. The probability of a good system running a solid OS -- FreeBSD or CentOS failing is pretty low. Good software components don't often fail or if they do, restart.

    Seriously, a few of the sites I run have NO redundancy and my biggest risk is NStar and Sprint.

    For a fully redundant system, two load balancers, at least 4 servers (two for each load balancer -- redundancy), two high speed switches, etc. etc.

    Hardware failure happens but but not that frequently after the first week of service. I have two machines at a colo that are, no joke, 10 years old this year. A few years ago, I replaced the hard disks. This year they will be upgraded -- maybe :-)

    1. Re:Depending on what you are doing... by Synn · · Score: 1

      Buy two good quality machines and keep one as a hot spare and just backup every night.

      This.

      I work with HA clusters. Build and design them. Work with the devs so the code can work with them. By their very nature it's not simple. It gets real hard real fast when you start to play the "eliminate single points of failure" game.

      If you just have a spare machine ready to take over and, most importantly, have good solid backups you'll be way ahead of the curve for most installations out there. And it's not complex to do that.

  31. Do it the way google doe it :) by Anonymous Coward · · Score: 1, Informative

    Buy 2 very cheap computers with double HDs. You can get them for less than 200$ each. Then install BSD/linux with mirrored raid. Then you can use rsync/unison/name your favorite synchronization tool to mirror data between computers.

    Then use http://en.wikipedia.org/wiki/Lighttpd or http://en.wikipedia.org/wiki/Nginx. You will get relative easy setup, excellent performance, unbeatable stability and good load balancing that scales to 10k+ users in a hour.

    Of course all is depend if you use bloatware or not. It is very easy to make dynamic content generation and database stop scalability to only few connections.

    So all basic tools are easily available from any free server distribution.

    IF YOU WANT 100% AVAILABILITY: Don't forget your networking stuff. You have to have 2 routers and 2 Internet connections. This is why server hosting companies are 10x better and cheaper than doing your own server.
    From hosting company you get 24h administration and regular backups. And as a bonus you get pre-installed and pre-configured environment.

  32. We will load test... by nicc777 · · Score: 2, Informative

    I see there are already a ton of good advice here, so when you have your kit set-up, post a link so that we can load test your config :-)

    It's called the slashdot effect and if anything, you will at least know when things break and how your configuration handle these fail over conditions.

    PS: This is cheaper then buying load testing kit and software :-)

    --
    Need an ISP in South Africa?
    1. Re:We will load test... by Anonymous Coward · · Score: 0

      PS: This is cheaper than buying load testing kit and software :-)

      There, fixed that for you.

    2. Re:We will load test... by nicc777 · · Score: 1

      When will FF get a grammar check?

      --
      Need an ISP in South Africa?
    3. Re:We will load test... by socsoc · · Score: 1

      when it bloats even more

  33. real answer? by Anonymous Coward · · Score: 0

    I mean no offense, but so far everybody has been quick to point out that load balancing and stuff isn't what the user needs -- but yet, nobody has came forward with an actual answer.

  34. Mod parent troll by MadMidnightBomber · · Score: 3, Funny

    Obviously has shares in Kingston.

    (16Gb RAM for 1k visitors? What kind of pages are you serving?)

    --
    "It doesn't cost enough, and it makes too much sense."
    1. Re:Mod parent troll by Barny · · Score: 1

      Grandparent neglected to point out that his chosen setup was Windows Vista Ultimate running with windows Virtual PC, and 3 copies of Vista Ultimate (2 running appache and one as DB server), it needs 16GB just to boot and serve 1 visitor...

      --
      ...
      /me sighs
  35. Round-robin DNS with 2 or 3 Apache Boxes by U96 · · Score: 2, Insightful

    I remember initially setting up our little site with 3 servers and a "managed" loadbalancer/failover solution from our hosting provider. Our domain name pointed to the IP address of the loadbalancer.

    I learned that "managed" is actually a hosting company euphemism for "shared" and performance was seriously degraded during "prime time" everyday.

    We eventually overcame our network latency issues by ditching the provider's loadbalancer and using round-robin DNS to point our domain name at all three of the 3 servers.

    I was using Apache + JBoss + MySQL, and on each server I configured Apache's mod_jk loadbalancer to failover using AJP over stunnel to the JBoss instances on the other 2 servers. I also chose to configure each JBoss instance to talk to a MySQL instance on each box, these being configured in a replication cycle with the other MySQL instances for hot data backup.

    For our load, we've never had any problems with this. The biggest component with downtime was JBoss (usually administrative updates), but Apache would seamlessly switch over to use use a different JBoss instance.

    One of the servers was hosted with a different provider in a different site.

    --

    "I thought they were the dominant species..."
  36. Simple method to provide HA to static websites by this+great+guy · · Score: 1

    Has any /.er implemented the following ultra-simple solution to provide HA for websites serving static content: having the website DNS name resolve to 2 IP addresses pointing to 2 different servers, and simply duplicating the static content on the 2 servers ? How do browsers behave when 1 of the server goes down ? Will they automatically try to re-resolve the DNS name and attempt to contact the 2nd IP ? Or is the well-known DNS pinning security feature preventing them from falling back on the 2nd IP ?

    1. Re:Simple method to provide HA to static websites by CerebusUS · · Score: 1

      How do browsers behave when 1 of the server goes down?

      Half the DNS lookups will still point at the failed server. Since most browsers cache the dns lookup, they will not re-request the IP address, and will just assume the site is down.

      If you rely on DNS round-robin records, you need to either ensure that they are always up (i.e. each one is an HA cluster) or that you can remove them quickly enough to cause your users as little pain as possible. (TTL should probably be 1 minute, and you'll want an automated method of removing the bad entry from the zone file)

  37. get a VPS by Rythie · · Score: 1

    Why don't you get a small VPS system? and upgrade if/when you need more power.

    You get redundant Power/Disk/Networking all for a much lower cost than a dedicated box. If a phyiscal system dies (quite unlikely anyway) they can move your VPS to another machine and it should be up again pretty soon - which should be good enough for that many users.

    1. Re:get a VPS by egcagrac0 · · Score: 1

      VPS definitely sounds like the right solution to start out. Don't go too cheap, here - managed VPS is preferred for your application. Looks like about $350 for the first year of service.

      Once demand outstrips capacity consistently, then you get to consider if you upgrade your existing service level, get a second (or third) VPS or a dedicated server.

  38. Re: 800 Bucks to Spend by drsmithy · · Score: 1

    My question: Is it better to go with a newer computer setup that falls within that budget, or go with the cluster. I will be doing image analysis work of function MRI data. Thanks.

    While I'm not an expert on the topic by any means, I would expect for that sort of budget you'll get far better performance out of a single a machine, than any cluster you could build for the same cost.

    Even if your interest is in testing how "cluster friendly" your code is (eg: for scaling considerations), you'll almost certainly still get the best performance/$ with a single quad-core machine running $CORE_COUNT VMs to "simulate" a cluster (with each VM bound to a specific CPU core).

    I just can't see why you would want to venture into the cost inefficiencies of multiple machines until you _had_ to be cause a single machine wasn't fast enough - and you can fit a *lot* of power into a single computer these days.

  39. You don't need high availability by sphealey · · Score: 3, Insightful

    First, I suggest you read and think deeply about Moens Nogood's essay "So Few Really Need Uptime".

    Key quote:

    ===Typically, it takes 8-9 months to truly test and stabilise a RAC system. As I've said somewhere else, some people elect to spend all of those nine months before going production whereas others split it so that some of the time is spent before and, indeed, some of it after going production.

    But that's not all: Even when the system has been stabilised and runs fine, it will a couple of times a year or more often go down and create problems that you never saw before.

    It's then time to call in external experts, but instead of just fixing the current cause of your IT crisis, I'd like to suggest that you instead consider the situation as one where you need to spend a good deal of resources in stabilising your system again - until the next IT crisis shows up.

    Your system will never be truly stable when it's complex. The amount of effort and money you'll need to spend on humans being able to react to problems, running the system day-to-day, and - very important - keep them on their toes by having realistic (terribly expensive) test systems, courses, drills on realistic gear, networks of people who can help right now, and so forth... is huge.

    The ironic thing is this: If you decide that you can live with downtime, and therefor with a much less complex system - your uptime will increase. Of course. ===

    And that corresponds pretty well to my experience: the more effort people make to duplicate hardware and build redundant failover environments the more failures and downtime they experience. Consider as well the concept of ETOPS and why the 777 has only two engines.

    sPh

  40. Some solutions by subreality · · Score: 1

    Others have already covered the "1000 users isn't much" aspect. Benchmark, and verify what each server can handle of your anticipated load, but they're probably right.

    Option 1: Don't do it yourself. Look into renting servers from a hosting company. They will often provide HA and load balancing for free if you get a couple servers. Also, having rented servers makes it much easier to scale. If you find that you have 100,000 uniques per day, you can order up a bunch more servers and meet the load within minutes to hours. If you overbought, you can scale back down just as fast.

    Option 2: http://www.linuxvirtualserver.org/ plus http://www.linux-ha.org/ . You use LVS to load balance out to a cluster (including removing failed servers from the pool). You use HA so that two LVS machines can fail over to each other. Note that you can run LVS on the same machines as your load, for a small environment. This is much more DIY than the Windows setup, of course... But honestly, if the setup requirements of this scare you away, then you're not ready to run a fault-tolerant network, regardless of OS.

    Option 3: http://www.redhat.com/cluster_suite/ . Less DIY, more money. Perhaps that's better for you.

    Option 4: Buy a commercial solution. Every major network vendor sells a HA/LB product. I've used them from most of the big players... I'm not going to write a review here, but it'll suffice to say that while they each have their good and bad points, any of them will get the job you've outlined done.

    As for the network: The general rule is to reduce your single points of failures to the minimum you can afford. Common ones are: The ISP (BGP is a pain); the routers (Each ISP goes to its own router); the switches between (you need to full-mesh links from the two routers to two switches, down through the line as many layers as it goes; your switches need to run STP or be layer 3 switches running OSPF or another routing protocol; don't forget to plug the load balancers into different switches); the power (Servers, switches, and routers on separate UPSes such that losing one will leave a fully functioning path); and depending on how far you want to take this, the data center itself (in case of fire/meteor/EPO mishaps).

    Note that all of this is required even for your Windows solution. Are you sure you don't want option 1? :)

  41. As already stated : HAProxy by amaura · · Score: 5, Informative

    If you're looking for a lightwheight open source loadbalancer with a lot of features, go for HAProxy. In my company we work with F5 Big IPs, Alteon, Cisco CSS which are the leading load balancers from the industry, they are really expensive and depending on the licence you buy, you won't have all the features (HTTP level load balancing, cookie insertion/rewriting). We first used HAProxy for POC and now we're installing it in production environnements, works like a charm on a linux box (debian and RHEL5) with around 600 users.

  42. One more thing. by OneSmartFellow · · Score: 4, Insightful

    There is no way to be fully redundant unless you have independent power sources, which usually requires your backup systems to be geographically separated. In my experience, loss of power is the single most common reason for a system failure in a well designed system (after human error that is).

  43. That's how Microsoft makes its money by sphealey · · Score: 1

    === Reading about Windows 2003 Clustering makes the whole process sounds easy, while Linux and FreeBSD just seem overly complicated. ===

    Well, yes, that is how Microsoft makes its money: by releasing versions of complex technology that seem easy compared to the archaic legacy technology. Key word there is "seem", of course; when the chips are really down you will find out if (a) the Microsoft system was as good as, or even the equivalent of, the "archaic" version (b) your deep understanding of the problem you are facing, and ability to fix it, has been improved or disimproved by having the complexity hidden from you by a friendly interface.

    YMMV. Obviously Microsoft shifts a lot of kit.

    sPh

    By the way, I would look at Contegix, Connectria, or similar hosted services provider serving small and medium sized businesses. If you are unfamiliar with the technology hand it over to someone who is whose price is reasonable.

  44. Re: 800 Bucks to Spend by Siffy · · Score: 1

    At that price point the real question is a basic one, do you want to build a cluster? If yes, I wouldn't build that exact setup but probably go with Athlon X2 5050e CPUs. You can also get used 1U dual cpu servers on ebay and sites like geeks.com almost all day long for $100-150 each. They did have a bunch on this page: http://www.geeks.com/products_sc.asp?Cat=821 but are currently sold out of the dirt cheap stuff. The downside of the pre-built older stuff is they'll cost more in electricity to run. Now, if you answered "No, I don't really just want to build a cluster for fun." then your best bet will be to just build an i7 based machine. With the cluster you'd be able to afford max 6 nodes with 2 cores each that will be individually slower than the i7's cores. With the i7 you'd only have 8 (logical) cores but they'd be faster and overall draw less power (cheaper to operate) than the 12 core cluster. If the application you're working with can truly be threaded easily enough to take advantage of an 8-12 cpu cluster you should look into porting it to run on a GPGPU. And that's if there's not already code to do it. A lot of scientific functions are already available written in CUDA. You can get a ton of performance out of a $200 video card if the application can be parallelized.

  45. You don't need ms cluster but load balancing by fredc97 · · Score: 1

    Hi, for up to 10000 users per day one windows server can easily handle the load. If you need higher availlability then you can use Windows Network Load Balancing service which is available in the standard edition of windows. You still have to replicate all your data manually, but since each server has a local copy of pages and data then even when you patch your windows server (once a month on patch tuesday) or just reboot then the second node will take over the shared IP address and your visitors will see minimal disruption of service. The only problems you will have to deal with will be user uploads and database sync if you want each of your server to have a local copy. Otherwise you can also use a third server if you need database service, but that server would not be redundant. The only way to make an MS SQL server redundant would be with the clustering service that comes with windows Enterprise and SQL 2005 Standard, but watch out for the licensing costs. Ah and you need also a SAN for your database storage. So in essence: 2 web servers with windows network load balancing = cheap 2 MS SQL servers with cluster service = very expensive My recommendation: Buy decent hardware with good support (any of the big three: IBM, Dell, HP) because when hardware fails you need that motherboard, power supply, hdd or memory ASAP Use RAID 1 or RAID 5 for ALL storage, you want high availlability after all, I prefer Hot Plug drives, you don't want downtime because you swap a HDD and HDDs are like consumables these days Use windows network load balancing if you can afford it to maintain web site availability. Learn Linux if you want a cheaper licensing. Consider all the costs associated with database clustering, it can easily run you into a 100 000$ solution for an MS SQL solution

  46. It's a bit overkill by Anonymous Coward · · Score: 0

    One of my clients recently had 100,000 unique visitors an an hour, on a single web server, and a single database server.

    You should be fine with decent shared hosting.

  47. Do what's right for the customer by Anonymous Coward · · Score: 0

    Seriously, if this is a non-profit then fiduciary responsibility is probably very important to them. I'm sure they are excited to have someone like you help them but don't use them to "play" enterprise admin. The numbers you have presented are miniscule and I doubt your data is so critical that it requires absolute 24x7 uptime. The amount you would cost them for 1 server would pay for web hosting for several years at a provider as well as greatly reduce the amount of administration.

    If you want to be a sysadmin then remember the most important tenet. Always do right by the customer.

  48. Re: 800 Bucks to Spend by lowtek77 · · Score: 1

    If you have to pay for power and/or have to deal with the environmental aspects of living/working near the multiple machines (heat, noise, etc.), then I would also suggest a single box.

  49. OpenBSD, of course. by Anonymous Coward · · Score: 0

    OpenBSD of course. It was just discussed on undeadly.org how they're in the process of changing some of the relevant code to even better improve things.

    As is now, you can easily do exactly what you need with OpenBSD and CARP (and some other related tools in th base system) - for Free and Securely!

  50. Stonesoft solution by HeraldMage · · Score: 1

    If high availability is your concern, then you need redundancy from end-to-end, not just in the servers. A cost-effective way to do that is use Stonesoft's firewall/VPN solution. It can load balance DSL, cable modem and other Internet connections, clusters the devices themselves, and perform back end server load balancing of your Web servers. The centralized management is very powerful as well. 30 day evaluations available off their Web site.

    [full disclosure: I own no monkeys, but I do work for Stonesoft]

    --
    Ich suche die Leidenschaft, die keine Leiden schafft.
  51. Capacity planning by Bozovision · · Score: 1

    Measure the memory cost of your web application. Suppose that it's PHP and a session takes 35MB, then you need 35MB for the duration of servicing the request. With 1000 visitors a day, if they all visit during lunch hour, and they are each looking at 10 pages, you'll have about 2.7 requests per second on average.

    This means that on average you'll need another (35MB + database overhead + Apache overhead) x 2.7 memory per second. If page generation lasts an astoundingly long 2 seconds, you'd have about 6 sessions stacked up before you recovered the memory used by the first session in the queue. Assuming that you need 10MB for Apache + database, you'd need all of 270MB + OS footprint to run your server.

    I think we can safely say that 16GB is overkill under these circumstances.

    Of course if it's lunch hour, your peak (which is the important thing) would be higher: maybe 50% people would hit in the first 15 minutes of the hour. You need to do capacity planning which is appropriate for the load and the technology you are using.

    By contrast: one of my sites had 15 minutes of fame, and had 20,000 page views across about three hours. It was running as static content, from a Xen instance, with 1GB of memory, and about 25% of processor time on a dual processor 1GHz system. There wasn't even a hiccup in dealing with the load.

    1. Re:Capacity planning by ender- · · Score: 1

      By contrast: one of my sites had 15 minutes of fame, and had 20,000 page views across about three hours. It was running as static content, from a Xen instance, with 1GB of memory, and about 25% of processor time on a dual processor 1GHz system. There wasn't even a hiccup in dealing with the load.

      Yeah it all really does depend on the type of load. I don't recall the stats of how many visitors/unique I had but on Sept 11, 2001 when all the major news sites were down I hosted a ton of pictures and video [mostly between 100k-5MB file size], and posted the link here on Slashdot.

      My poor little AMD K6-350Mhz with 256MB of RAM and was averaging about 75Mbit/sec outbound for most of the rest of the day.

      So if you're just hosting up static content you could probably handle 1000+ visitors a day on a modern cell phone.

       

    2. Re:Capacity planning by georgewilliamherbert · · Score: 1

      Better metrics to use (field-proven at a bunch of dot-coms you may have heard of) - these are rough numbers, but more precise ones require a detailed customer analysis and usually detailed log analysis after you start the actual business up live.

      Assume "business day" of 10 hours - most businesses have a high point during the day that corresponds to this type of distribution.

      Assume peak load in a given second will be 10x of that value.

      So, if you expect 100,000 visitors a day (the story's corrected load), "business day average" will be 10,000 visitors per hour, about 2.7/sec. Assume 27/sec for true peak load.

      Multiply by pages viewed per visitor per day - do they typically hit 2 pages, 8, 16? Depends on the content, usage model, etc. This gives you pages per second. A good conservative number is 10, which makes calculation easy. So that's peak page views of 270/sec.

      Multiply by the number of hits per page based on number of images and other page components (navigation bars, graphics, frames, etc) - typical numbers on this range from 2.2 or so (straight HTML with a background image and a sitewide favicon) to 25 (complex multilayer navigation implimented with many graphic icons, etc). Again, assume 10 for a conservative rough order of magnitude estimate.

      That gives you static hits per second. So something like 10x hits/page is 2,700 hits/sec peak rate.

      If your pages are static, that's all and you're done. If they're dynamic, you have to consider the "app server" load (whether that's PHP or Tomcat or CGIs on the webserver, or back ending onto a different Tomcat or Websphere or Weblogic server or some such).

      10 years ago, we built a large ecommerce website for a large bricks and mortar company from the ground up using that modeling. At that time, the right answer for the servers was Solaris/SPARC. At that time, the performance we got (on 400ish MHz CPUs) was 230 dynamic page generations per second per CPU using Weblogic as the app server, and around 2,000 static pages per second per CPU using the C2 Apache Stronghold and HTTPS. Our build spec was significantly more than 100,000 users - we used a Sun E10K cluster with separate domains on each system for web and app servers.

      Obviously, faster modern CPUs do better, and the amount of memory and CPU power available in even cheap desktop or rackmount servers is plenty for the stated user load requirements on these servers.

      You can screw that up by using the lousiest PHP or CGI scripts in the world, using excessively large pages or numbers of navigation images, etc. But even a site which is an order of magnitude slower than it should be will support 100,000 users on a handful of systems, if not on a handful of CPU cores with 2 or 3 boxes for redundancy.

      So - Figure out what your static and dynamic content balance is, figure out a pair of "load balancers" out in front, put at least 2 servers at each level (either web, or web+app servers separately - if you track user accounts etc, then add a redundant database layer too). The cheapest servers you can get will be more powerful than you need for pure load considerations but you need to think about degraded mode performance when one falls down.

      If you're hosting this at a hosting facility get the cheapest 1U rackmount servers you can. If you're hosting it in an office then small tower cases are marginally cheaper, but computer room space may be at a premium pushing you to racks anyways.

      Set up a master server with the master copy and backup / older copies of the content and configurations. Distribute those out (rsync, cfengine, whatever) to the "live" servers. Put one server with large hard drives out in a completely different location and back up the files there nightly or more often, for disaster recovery.

      In terms of clustering - you want to load balance the web and app servers. Probably don't want to cluster the database - easier to set up a slave DB server than true clustering and true DB clustering leads to many failure modes that non-experts often fall into, leaving them less reliable than master/slave plus manual failover options.

    3. Re:Capacity planning by Mad+Merlin · · Score: 1

      My poor little AMD K6-350Mhz with 256MB of RAM and was averaging about 75Mbit/sec outbound for most of the rest of the day.

      You had 75 Mbit/s upstream to the Internet? In 2001? Wow! Where do you get that kind of bandwidth, and how much did it cost?

  52. Clustering is a marketing concept by Anonymous Coward · · Score: 0

    I do realise that clustering has it's uses, but the truth is that most clustering and HA solutions were merely marketing tricks to sell consulting and expensive hardware to gullible IT managers with an overblown sense of self importance. The more money you spend the more important you are. Right?

    How else are you going to justify your huge salary.

  53. CentOS/HA by digitalhermit · · Score: 5, Informative

    It's fairly trivial to install RedHat/CentOS based clusters, especially for web serving purposes.

    There are a few components involved:
    1) A heartbeat to let each node know if the other goes out.

    2) Some form of shared storage if you need to write to the filesystem.

    3) Some methood of bringing up services when it fails over.

    A web server with a backend database is one of the canonical examples. You'd install the heartbeaat service on both nodes. Next, install DRBD (distributed replicated block device). Finally, configure the services to bring up during a failure. The whole process takes about an hour following instructions on places like HOWTOFORGE.

    But 1000 visitors a day is not much. It's small enough that you could consider virtualizing the nodes and just using virtualization failover.

  54. Hire a technical architect by Anonymous Coward · · Score: 2, Informative

    There are way to many questions that need to be known before a competent technical architect can help design the "just right" solution for you.

    Most of the people here are experts on some small part of the solution and will spout "all you need is X" - and that's fine for free. I've worked on telecom - can never go down - systems for over 10 tens as a technical architect leading project teams from 1 to over 300 software developers and 20 others on the hardware side.
    On the surface, FTP and web pages don't sound like the best solution to the problem as stated. Did yo just learn HTML and want to use it?

    Now, here's my $0.02 on your problem:
    * 1,000 visitors a day can be run from my cell phone. That's "nothing" traffic for a network or an old desktop.
    * Avoid clustering at the OS or application level unless you really, really need it. You probably don't. Almost nobody needs clustering.
    * Use network load balancing. There are many, many solutions for this. The easiest is from F5 (buy through Dell), but free versions work fine too - I've been using `pound` for years myself. /. may still use pound for load balancing, so you know it scales.
    * Backups are key. RAID is not backups. Verify that you can actually **recover** from bare metal using your backups. Don't pull a Ma.gnolia http://blog.wired.com/business/2009/01/magnolia-suffer.html
    * Disaster Recovery is important. Often, you can solve both backup and recovery and DR at the same time.

    If you are a non-profit doing something I believe in, I'll do network, systems, B&R, and DR deigns and consult with you for free, an enterprise class solution. My company looks at FOSS solutions first, before recommending commercial, costly solutions. All our internal systems are FOSS, though we do have a lab with Microsoft servers since that's what many customers demand/need.

    Think of a good TA just like a CPA or Lawyer. You pay us to prevent all the problems that could happen later that cost your huge amounts of money. After my CPA does my taxes, I sleep better at night.

  55. Too Obvious ! by Anonymous Coward · · Score: 0

    Your best solution:
        An ordinary PC with Centos (or equiv.) loaded.
    You will have at the end of the day:
        1) A perfectly good solution for your application.
        2) Learned that Linux is not hard to learn and that the Linux community supports you better than M$.
        3) Your pride will be intact. More money for your non-profit, less for Steve Ballmer.

  56. Microsoft is expensive by lucm · · Score: 1

    With 1000 users if you want SQL Server you need to purchase a processor license: 5k$/CPU for Standard Edition, 25k$/CPU for Enterprise. (You only license physical CPU, not cores or hyperthreading). Add the Windows license (6k$). And you have no hardware yet.

    The "good news" is that with failover clustering (which is all you need cause 1000 users does not require load-balancing), Microsoft requires licenses only for the active node. And the failover node can be cheaper hardware, as it will run only under abnormal situations and can offer a lesser performance (management is usually ok with that).

    If you go with Linux + Postgres or MySQL, you pay no licenses. Those products are a bit less user-friendly, but they give you more control over your setup. Use database clustering and/or replication, and use either one of the many free load-balancing software or pay for a very good one (like Zeus).

    Based on my experience, I would say: for a small intranet, use Microsoft (Windows, SQL Server, Sharepoint) because you can leverage on MS-Office and powerful groupware tools (project management, BI, reporting) and actually provide value to your end-users. But for a large intranet or for public-facing sites, where you don't control the end-users platform, use Linux, it's worth the learning curve.

    --
    lucm, indeed.
  57. Sun gives you easy web clustering by Anonymous Coward · · Score: 0

    A few years ago we were facing the problem of the need to host/maintain a Java webservice. We started to look into common Java containers like Tomcat, JBoss and naturally Glassfish. The only problem we saw was that the application server had to function as a backend and thus we would need the webserver to relay requests.

    Eventually we stumbled upon the Java System webserver 7 and that turned out to be much more than merely a webserver with a nice administrative interface. If you're used to administrating Apache servers then it can be a bit tricky to get used to this since the server fully uses XML for its configuration files (that is, if you chose not to use the admin. interface). At first we focussed fully on the Java container, but eventually started to discover that you could do a whole lot more with this critter.

    Personally I think it really excells at clustering. If you made changes on one node then one command (or 2 clicks of the mouse) is enough to distribute those changes all over the cluster. Next to that it has excellent (online) documentation and is free for use just like Apache is. Oh, and before I forget.. While it is aimed at Java usage its also perfectly capable of supporting other languages like PHP. Either by using a PHP addon or simply setting up PHP as some sort of "back end" (allow use of FastCGI for example).

    Considering the price and the ease of use (setup a cluster in approx. six steps) I think this might be just what you want. And its onboard extensive statistics engine will allow you to clearly see for yourself if the load on your park is getting too high or not.

    And yes, I agree with most other reactions that your load really doesn't need clustering. I'll add a little more to that; the service I mentioned above is currently still running on a single Webserver 7 instance and easily deals with more than that amount. We did tune the Java container to suit our needs, but apart from that even an app. server should be capable of handling this load. But having said that I think you might find this webserver very usefull nonetheless. Especially the administrative interface might save you guys a lot of tweaking.

  58. Citrix XenServer is good by cyberspittle · · Score: 1

    Although Citrix XenServer is based on Linux, it has a Windows interface for management, which makes most tasks easy.

  59. What is your bosses phone number? by codepunk · · Score: 1

    Linux over complicated...ha ha

    I will sell him a system fully capable of handling ten times that traffic with hot standby failover for 50 bucks a month with ds3 bandwidth available to it.

    --


    Got Code?
  60. Re:1000+ a day is trivial have you thought of amaz by rufus+t+firefly · · Score: 5, Informative
    There are a number of nice load balancers out there which are opensource. I'm partial to HAproxy, but you could try:

    HAproxy (which is the one I use) has the ability to define "backup" servers which can be used in the event of a complete failure of all servers in the pool, even if there is only one server in the main pool. If you're trying to do this on the cheap, that may help. It also has embedded builds for things like the NSLU2, so it may be easy to run on an embedded device you already have.

    --
    "He may look like an idiot, and talk like an idiot, but don't let that fool you. He really is an idiot." - Duck Soup
  61. Use CARP by chrysalis · · Score: 2, Informative

    CARP is a protocol that does automatic load balancing and IP failover.

    Install your application on 2 (or more) servers, give them the same address virtual IP address using CARP, et voila. Nothing more do buy, and no need to install any load balancer.

    CARP's reference implementation is on OpenBSD, and it's shipped by default. DragonflyBSD, NetBSD and FreeBSD ship with an older version.

    --
    {{.sig}}
  62. wrong on several counts... by turbine216 · · Score: 3, Informative

    Windows clustering allows for Active/Active clusters, so you CAN run the same service on two cluster nodes at the same time (with the exception of Exchange).

    Setting up two servers to host VMWare guests and copying is not a good idea either - the HA tools for VMWare are expensive, and totally unneccessary for the proposed deployment. Without these HA tools, he would have to down his primary guest every time he wanted to make a snapshot.

    We're talking about a very simple deployment here - HTTP and FTP. You don't even need clustering or a dedicated load balancer - instead, try using round-robin DNS records to do some simple load balancing, and then use a shared storage area as your FTP root (could be a DFS share for Windows or an NFS mount in Linux). This would give you a solid two-server solution that works well for what you're trying to accomplish, and adding servers would be trivial (just deploy more nodes, and add DNS records to the list).

    If it grows much larger than 2 nodes, you might consider an inexpensive load-balancer; Barracuda sells one that works well and will detect a downed node.

    Clustering for this job is totally unnecessary though. You're wasting your time by looking into it.

    1. Re:wrong on several counts... by modir · · Score: 1

      Since when is it possible to have an Active/Active cluster? Definitely not with Microsoft Cluster Server from Microsoft 2003:
      http://en.wikipedia.org/wiki/Microsoft_Cluster_Server

      And as I wrote in my article I am only writing about this one. And I was not talking about "Windows Compute Cluster Server 2003" or the NLB feature.

      And about the vmware solution: He could create a snapshot of the running vm then copy the disk file(s) over to the other server and then delete the snapshot again. This whole process can be scripted with perl and RCLI. He only needs two ESXi servers for this. And they can be downloaded for free. It is definitely not the best solutions but one that would work.

      And yes, your solution is probably the best one for his problem.

  63. What about Caos Linux by Anonymous Coward · · Score: 0

    http://www.caoslinux.org/features.html

    "The NSA-1.0 release identifies the stabilization and validation of the core operating system, fully tested on some of the world's fastest public and private systems and architectures. And now with NSA 1.0.8 you get bleeding-edge security updates, the new 2.6.28 kernel, updated packages such as OFED 1.4 and gcc-4.3.3, a streamlined Sidekick system configuration toolkit (making the installation of Caos Linux and Perceus even faster and easier), the latest Perceus 1.5 cluster management software, and Abstractual, Infiscale's cloud virtualization solution. All of these updates are already integrated in the NSA-1.0.8 ISO release of Caos Linux"

  64. Re:1000+ a day is trivial have you thought of amaz by eharvill · · Score: 4, Informative

    My favorite (the name seals the deal for me) is http://www.ultramonkey.org/

    It's probably more complicated and overkill for what the poster needs, but it worked great for us. We used this years ago for transaction processing (~100,000 transactions an hour, not too busy) on a couple old HP NetServers with 1GB RAM each.

    --
    At night I drink myself to sleep and pretend I don't care that you're not here with me
  65. Google by Danathar · · Score: 3, Insightful

    Use Google. Why spend all that money buying up equipment for a non-profit that could be spent on your REAL mission.

    Do it in Google sites and dump the data center. I even think google offers google apps for free to non-profits.

  66. 1000 FTP Users is not 1000 HTTP users by Zero__Kelvin · · Score: 3, Insightful

    Everybody keeps saying that 1000 unique visitors is peanuts and starts talking about Apache, etc. The OP mentions FTP as well, and didn't say if those 1000 users will all be regularly FTP'ing megabyte files or if they will be almost exclusively using HTTP with the occasional FTP download. If the former is the case, without analyzing it too much, it seems like this would be too much traffic for a single server to handle, no?

    --
    Guns don't kill people; Physics kills people! - John Lithgow as Dick Solomon on Third Rock From The Sun
    1. Re:1000 FTP Users is not 1000 HTTP users by TheSunborn · · Score: 2, Insightful

      No not really. Any new server should be able to handle atleast 300Mbit/s.
      (And most likely also handle a full 1Gbit/s but that might require a dual cpu system, with a fast disk subsystem)

      The only way that 1000 users/day can require more then one server to handle the load, is if each user request require multiple complicated database query to reply to.

      (Or if the design/implementation should be featured no "the daily wtf").

    2. Re:1000 FTP Users is not 1000 HTTP users by Anonymous Coward · · Score: 0

      To handle multiple Mb uploads will require serious bandwidth. The other issue to consider with multiple MB of upload/download is disk setup. With a decent NAS setup, it should be straight forward. Definitely don't attempt to run it off a single disk.

    3. Re:1000 FTP Users is not 1000 HTTP users by Anonymous Coward · · Score: 0

      I run a site getting that much worth of *VIDEO* over http a day. 8 megs is probably an average size. Thats on an athlon 1700+ with 512 MB of ram.. Granted I use lighttpd instead of apache...

      FTP does not take a ton of processing power. Neither will 1000 users accessing even a modest DB.

      If he's doing something larger he just needs ram and disk space. Raid 10 with backup is still only ~$200 a month from a first tier dedicated server provider..

      Load balancing? No. Not even close to necessary.

       

    4. Re:1000 FTP Users is not 1000 HTTP users by socsoc · · Score: 1

      Yeah, I'm a little confused as to why a self-help archive needs to run an ftp.

    5. Re:1000 FTP Users is not 1000 HTTP users by Anonymous Coward · · Score: 0

      ftp.cdrom.com handled 1000 concurrent ftp users back in like 2002. On a Dual Pentium 200 Pro, IIRC.

    6. Re:1000 FTP Users is not 1000 HTTP users by SatanicPuppy · · Score: 1

      For a small site, your FTP is going to be limited by your bandwidth LONG before it's going to be limited by your hardware, so as your consecutive downloads increase, the load on your system will decrease as the available bandwidth gets eaten up.

      I've seen FTP sites that ran a thousand concurrent connections on repurposed desktops. FTP is very lightweight in terms of processing. Your limitation is always bandwidth.

      --
      ad logicam Claiming a proposition is false because it was presented as the conclusion of a fallacious argument.
    7. Re:1000 FTP Users is not 1000 HTTP users by Zero__Kelvin · · Score: 1

      Agreed, but I'm not completely convinced that, given a wide enough network pipe, that the disk accesses would not be a big enough bottleneck to require more than one server (or a serious RAID array, Multiple drives and controllers, etc.). I think it goes network, disk, cpu in terms of bottleneck potential. Assuming 1000 users all accessing different large files, the seek times on the hard drive would be the bottleneck if I don't miss my guess. I do however concede that I would need to get a lot more feedback and give it a lot more thought before I formed a final conclusion.

      --
      Guns don't kill people; Physics kills people! - John Lithgow as Dick Solomon on Third Rock From The Sun
    8. Re:1000 FTP Users is not 1000 HTTP users by MarkRose · · Score: 1

      A 7200 RPM hard drive can do roughly 167 seeks per second. If we had a 100 Mbps port, and 1000 users, that's roughly 10 KB/s each. If the server was configured to do read ahead on files, such as reading in 64 KB chunks, that would reduce the read needs for each connection to once every 6 seconds. If only one in 6 connections needs a read at a given moment, that 167 seeks per second drive could handle about 1000 simultaneous streaming reads. You could easily double the capacity of the system by doubling the chunk size. If you're just serving large files, disk bandwidth will be your bottleneck long before seek time.

      --
      Be relentless!
    9. Re:1000 FTP Users is not 1000 HTTP users by Anonymous Coward · · Score: 0

      Your problems will likely be in Internet bandwidth, not server performance. A modest dual core box and a decent disk setup will keep a 100mbs network full all day long. Good luck getting a 100mbs internet connection.

    10. Re:1000 FTP Users is not 1000 HTTP users by Nethead · · Score: 1

      I had a pent400 on 100Mb/s pipe that someone found my video collection on. That little box pumped out 45Mb/s for a day before I checked the graphs. It was also my mail box that I ran pine on and I didn't even notice the load. FTP is a simple protocol for the CPU and if you're just trucking out big files, the box and do it all day.

      --
      -- I have a private email server in my basement.
  67. God call, submitter! by Bandman · · Score: 1

    It's a good thing you didn't link to your existing site if you're worried about 1000 visitors a day...

    1. Re:God call, submitter! by supaneko · · Score: 1

      :)
      I wish I had some mod points I could use here.
      You made the previous drivel just a bit lighter.
      I thank you, sir.

  68. Re: 800 Bucks to Spend by cryptozoologist · · Score: 1

    save your money. if you really need time on a cluster you should apply for a grant from the ohio supercomputer center, ncsa, or investigate the offerings from your own institution. applying for a grant may sound daunting, but it really involves little more than filling out a form and asking for some cluster time. good luck!

  69. Re:1000+ a day is trivial have you thought of amaz by adri · · Score: 1

    Don't forget Squid, which can also act as a proper reverse proxy/cache, and is the precursor to putting your content on a CDN.

    (Ie, once you solve the issues surrounding putting Squid in front of your website, you've mostly solved the CDN related issues.)

    (Or, you could try my Squid-2 fork called Lusca, but thats for a different story, and post. :)

  70. slicehost or EC2 by Anonymous Coward · · Score: 0

    I agree that 1000 is not a whole lot. One option for scalability would be slicehost.com. They allow you to quickly ramp up the amount of server power that you have with literally a click of the button.

    I have been using them for a while and never really had a problem. You can get multiple 'slices' together to do more load balancing for what ever you need.

    Another option for you could be Amazon's EC2 with S3. Infinite scalability.

  71. Apache + Proxy Balancer by xrayspx · · Score: 1

    I've set up Apache and mod_proxy_balancer for just this purpose. The sites don't have enough traffic for me to justify buying an F5 or Cisco CSS load balancer, so I use proxy balancer with a bunch of vhosts, it works great.

    Add Keepalived and you can have redundant (though not stateful failover) load balancers on the super cheap.

    For SSL it still works well. Give it a look, took all of an afternoon to set up a failover pair of servers. I don't know yet how much traffic it will take, but a single CPU 800Mhz server is doing a couple Mb/sec with no sweat for me.

    1. Re:Apache + Proxy Balancer by xrayspx · · Score: 1

      I forgot to point out that this does address both HTTP and FTP users, mod_proxy_balancer will balance FTP traffic as well.

  72. how much do you want to spend?? by rhaig · · Score: 1

    you may have heard "good fast cheap... pick 2" this is similar.

    if your content is dynamic, you have more to worry about. DB servers, storage other application specific issues...

    if your content is static or close to it, round robin DNS is plenty. rsync between 2 boxes, and set up the round robin. How far away the boxes are determines how long they take to sync and how much of a safety net it really is. next to each other in the same rack protects from HW fault. different datacenters protects from power and networking. Different states protects from natural disasters.

    if you don't know how much to spend then....
    you need to figure out how much money downtime (unexpected) costs you. Then you can figure out how much to spend to reduce your chance of tht downtime. If it's going to cost you $1000 per hour, and you expect that with 2 boxes in the same datacenter there might be a 1% chance of failure of both systems that would require 24h to come back up, then your total loss would be 24K, 1% of that is $240 to spend on mitigation. in that case, put your systems in different datacenters. If you're going to lose $100,000/hour, then spend 100x on mitigation.

    --
    "We are not tolerant people. We prefer drastically effective solutions"
  73. heartbeat + haproxy + nginx by pak9rabid · · Score: 1

    Heartbeat + HAProxy + nginx. We're using a combination of these to replace our aging BIG-IP setup. HAProxy does the actual HTTP load-balancing, whereas nginx is serving up all the static media (pics, etc).

  74. F5 is the choice by russg · · Score: 2, Informative

    If you haven't looked at the F5 product line you should. The ability to use TCL language to write "iRules" and shear performance of even the smallest device is amazing. The devcentral.f5.com site is also great and allows you to gain from others experience. With an F5 in front the rest of the systems behind can be simple and cookie cutter with no complex setup. The F5 will handle persistence, load-balancing, and once you have your setup you can forget them for the most part.

    For the FTP server part, you just need some Linux boxes running your favorite daemon and a shared storage for the files.

    --russ

  75. OpenBSD + CARP + relayd(8) by fialar · · Score: 1

    We use OpenBSD with CARP and pfsync and relayd(8). It works a treat load balancing our web and jabber servers. I highly recommend it and the documentation that comes with OpenBSD is second to none. It's also an extremely secure OS for firewalls and routers.

  76. caching dynamic content by cyrilc · · Score: 1

    There is a common understanding that a single server can serve static data many orders of magnitude the scenario described.
    But for some dynamic content that triggers database queries, the must is to use memcached.

  77. Yah just two decent servers will do. by TheLink · · Score: 1

    Unless your application is very resource intensive (or badly written) a single server can cope easily with 1000 visitors. So add another server or two for redundancy.

    Use RAID1 (RAID10 if you need better disk performance), and get backups. If you're on a tight budget you could use hotplug SATA drives for backups (if you don't have a habit of dropping your backup media on the floor, HDDs can be better than tapes). If you're on a really tight budget use those USB to PATA/SATA adapters ;).

    I suspect you will find that decently specced server hardware will typically be more _available_ than your ISP.

    Even if you do the BGP multi-home stuff (e.g. links to two ISPs), if one of your ISP links goes down it can sometimes take several minutes for half of the world to figure out the new route to your servers.

    I guess a relevant question is what is the impact of downtime? For example, if slashdot is down, productivity could actually go up ;).

    If you need very low downtime and want to cater for extreme circumstances (available in event of hurricanes, earthquakes), it can get really expensive - because it means you need at least two physically separate sites far enough from each other.

    --
  78. Loadbalancing by bufo333 · · Score: 1

    I work for a largs E-commerce site as a network engineer, we gets thousands of connections a second. In order to accomodate that load we use F5 Network BigIP loadbalancers. GTM's or ( Global Traffic Managers) allow you to have geographic loadbalancing accross multiple datacenters, and LTM's ( local traffic managers) these are actually the devices you need to purchase. All you do is add the ip addresses of each server to the bigip in the form of nodes, add the nodes to a pool, and add the pool to a virtual server. The VIP or virtual server IP is the one used in dns, or as part of a wide IP system if using gtm's.

    F5 has the biggest market share in loadbalancers and their products are top notch. If you like they can come in and demo them for you. I see a lot of replys to your questions but nothing I have seen so far uses a product that a company would actually accept. Open source is great, but when you need 24x7 365 uptime, high availability in the form of stateful clustering.

  79. LVS - back end web server by bl8n8r · · Score: 1

    Grab a crappy old athlon tbird box with a gig of ram and set it up as a router/firewall running *LVS (Linux Virtual Server) to forward web requests to your back end web server. You can start out with one web server and gauge the load. If you want to scale the system, add more backend web servers and configure LVS with the new backend ip addresses.

    For redundancy on the athlon router, trunk a couple nics for network, and boot from cdrom (knoppix) if you are worried about system disk failure. You could also buy a 3ware 2 lane raid card for a couple bills and sata raid a couple
    hard disks if cdrom boot doesn't work for you. It's cheaper to keep a couple cdrom drives on hand, and spare knoppix
    cds, than setup a bootable hard drive raid system.

    Figure out if you want a shared filesystem for the web servers, or just rsync the important stuff between them for
    starters. Software raid on another crappy athlon box will work well for backend storage in the beginning. If you
    have high disk load, you may need to upgrade the fileserver if transfer rates exceed bus bandwidth. The point is,
    you are non-profit and running on a shoestring budget. start out cheap and dirty. Spend money on hardware later when
    you find out where your bottlenecks develop.

    If you loose a backend webserver, LVS can be configured to handle it in different ways.

    [*] - http://www.linuxvirtualserver.org/

    --
    boycott slashdot February 10th - 17th check out: altSlashdot.org
  80. Re:1000+ a day is trivial have you thought of amaz by Anonymous Coward · · Score: 0

    "Proto Balance" is value for money (although not free) and runs on Windows as well as Unix. www.protonet.co.za

  81. Re:1000+ a day is trivial have you thought of amaz by kv9 · · Score: 3, Interesting

    OpenBSD PF or hoststated seem like the simplest solutions to me.

  82. Use a service by Dominican · · Score: 1

    Given that the original poster wrote that "reading" about the technologies involved, seems that perhaps he has no experience on doing this setup or he has limited experience, finding an ISP to host the site may be a viable solution.

    As others have pointed out, it is not high volume so almost any ISP should be able to handle the work.

    This will allow the poster to work on the systems/programs to present the data and not worry about the infrastructure.

  83. why can't i just cloud it newby asks by cinnamon+colbert · · Score: 1

    as a noncomputer specialist /. reader, this whole conversation sounds really wierd.
    Why can't i just call up a bunch of guys in the yellow pages, or whatever passes for yellow pages, and say, I got a 1000 users a day, yadayada, gimme a quote.

    all this arcane stuff - you have know this program, that program, why should some small nonprofit even have to think about it

    to put this in perspective, it is as if the original poster was the maintenance guy, and he was asking for what type of capacitor to install in the new electric motor controllers in the hvac system.
    no small or even large nonprofit would even think about - it would just be part of the hvac vendor's bill

    I think the answere is that server type stuff is deliberately kept opaque and complicated so sysadmins have jobs - after all, if i could just get a quote on it, most of the people who have posted might not have paychecks, right ?

    1. Re:why can't i just cloud it newby asks by Dynedain · · Score: 1

      You can. Call up a hosting company with datacenters and ask. But obviously the person asking the question IS NOT the nonprofit, but rather the "expert" that they hired to figure this out. He IS their "maintenance guy" and he IS asking how to install the new capacitor (or better analogy, asking which HVAC system he should build and install)

      --
      I'm out of my mind right now, but feel free to leave a message.....
    2. Re:why can't i just cloud it newby asks by Alan426 · · Score: 1

      I think that's pretty much the idea of calling in a shared hosting provider. Some people have the in-house expertise and need the flexibility of DIY. Most do not. If you are in the second category but want to play with HA anyway, save your company the money and build one at home for fun.

    3. Re:why can't i just cloud it newby asks by Fulcrum+of+Evil · · Score: 1

      I think the answere is that server type stuff is deliberately kept opaque and complicated so sysadmins have jobs- after all, if i could just get a quote on it, most of the people who have posted might not have paychecks, right ?

      Wrong. Sysadmins are still necessary to keep your systems running, regardless of whether you hold them in contempt or not. Fact is, this site is specifically for computer specialists/nerds, so as a non computer guy, you have to accept that some stuff will be confusing. We aren't being arrogant, we're practicing a profession that has a body of knowledge.

      Why can't i just call up a bunch of guys in the yellow pages, or whatever passes for yellow pages, and say, I got a 1000 users a day, yadayada, gimme a quote.

      Do it. You'll find that a common website that gets 1000 users/day doesn't need much.

      --
      "We returned the General to El Salvador, or maybe Guatemala, it's difficult to tell from 10,000 feet"
  84. Core to your business? by Anonymous Coward · · Score: 0

    You really have to ask yourself if this is core to the business. If not, move it to a hosting provider that handles these issues for you. Do a quick cost breakdown based on your time, materials, etc. and then take a look at a hosting provider that may give you a discount or three because of your non-profit status.

  85. No need for load balancing by foniksonik · · Score: 1

    As a lot of previous posters have mentioned, 1000+ unique visitors even with each doing heavy traffic is still pretty low. 100,000+ would warrant load balancing... or if you are serving up media of some sort and then I'd recommend a media server to offload that portion of the traffic.

    What you can do is performance tune your webserver and database server. BTW if you don't have your DB on a different server, that could be a first step.

    So performance tuning... here are a few good articles on the MediaTemple site which deal with Apache and MySQL:

    http://kb.mediatemple.net/questions/246/(dv)+HOWTO:+Basic+Apache+performance+tuning+(httpd)

    http://kb.mediatemple.net/questions/258/(dv)+HOWTO%3A+Basic+MySQL+performance+tuning+(MySQLd)

    Yes these are written for their customers but they apply to any server running Apache and/or MySQL.

    This next article I'm posting as an example only:

    http://kb.mediatemple.net/questions/770/(dv)+HOWTO%3A+Misc.+performance+tuning

    The idea with this is to turn off services you're not using. It mentions specific services known to be running on MTs DV servers... DNS, SpamAssassin, etc. YMMV but the idea is sound.

    If you need a variety of services to work, consider running multiple servers dedicated to individual tasks. This will also help when it's time to troubleshoot, upgrade, etc.

    I suggest using Virtual Machines for everything, especially since there are available VM Images for just about any base configuration you can think of (regardless of vendor) and it makes backups, swapping out upgrades, etc. very efficient. The process is such: copy existing VM image to a new machine (or new container) upgrade everything, test, test, test, then swap the new image out for the old when you're ready. Voila. If you've used a different machine for your DB for instance, you can upgrade your webserver machine w/ all scripts, etc. with no downtime - and have a backup sitting there seconds away from re-deployment if anything goes wrong.

    --
    A fool throws a stone into a well and a thousand sages can not remove it.
  86. Outsource web hosting. But, which provider? by Futurepower(R) · · Score: 2, Interesting

    It seems to me that, unless you have very special needs, you should hire someone else to do the work of providing web hosting. It's much cheaper to have a dedicated team do the work for thousands of servers than have your own team.

    I've looked at A2 Hosting. I've never used them, and don't know anyone connected with them, but they seem like they know what they are doing.

    I wouldn't recommend my present web host.

    Does anyone else have recommendations about web hosting?

    1. Re:Outsource web hosting. But, which provider? by Jouster · · Score: 1

      A2's hardware and pricing appear a bit out-of-date. Consider BlackMesh; it's the company I work for, and we run a tight ship in a tier-4 datacenter with name-brand equipment and massive onsite technical expertise.

      In terms of load-balancing, I'd agree with earlier posters that you really don't need any for 1,000 visitors a day. As you scale up, I can't recommend strongly enough the use of a hardware load balancer; we've had excellent luck with those from Kemp Technologies, which incidentally run a version of the well-known open-source load-balancing daemon ldirectord. The load balancer then automatically covers your HA needs in terms of a Web front; depending on what you have going on in the backend, a combination of NFS, DB replication, or other service-specific replication configuration, often alongside a deployment of Heartbeat, will cover your data-persistence needs.

      To the OP, or anyone else, feel free to poke me via email if you'd like to discuss options any further. I'm a network engineer, not a sales guy, so prices aren't my strong suit, but we can work together to design a platform that you can then get bid on by a number of hosting providers, us included.

      --J

    2. Re:Outsource web hosting. But, which provider? by lamapper · · Score: 1

      I wouldn't recommend my present web host.

      I would not recommend the host that I left last year either. And I too agree that this is NOT the forum for mentioning specific companies by name. If people know what to search for online, they will discover the poor hosts easily enough.

      Remember that the size of the company does not automatically guarantee you anything positive or negative. Do your homework and research.

      With that said, I am glad you mentioned this, selecting the right web hosting company is absolutely critical. Here are a few things to WATCH OUT FOR if you plan buying a domain name and putting up a website.

      • Control your DOMAIN NAME: Your domain name is your LIFE online, research any potential hosting company and verify that they have NOT held someone else HOSTAGE by refusing to release the DOMAIN NAME for any reason. If they have EVER held anyone hostage, do not use them. I cannot emphasize this point strongly enough as people have literally been put out of business with this fact alone. And if you spend months or years building up a business, well its hard enough to do it, to have it stolen from you is just wrong and to be avoided at all costs.
      • Does your hosting company protect you or themselves? Will they protect you and your identity? When you have your own name servers, you MUST list a contact person. Some hosting companies will keep this information secret for you. So that you only need to keep in contact with them and NO ONE ELSE. With privacy being critical online and scammers, phishers and crackers looking for information they can use to steal from people be careful who is listed.
        • Creditors/Collection Companies, your Privacy and Social Engineering: Is your credit okay? If NOT, bear in mind that collection / credit companies will use your online information to further harass you. Does anyone doubt the incentive of credit reporting and financial entities to ding your credit at every turn as it earns them higher fees via higher interest rates? Once you have your own Domain Name and/or Name Servers you will have to be available to your hosting company, they will need to be able to contact you. This is fine and to be expected. What is NOT fine, is to have your information publicly released on a whim. There are many fake things that you can be accused of by collection companies in a social engineering (here are eight common tactics) attempt at getting your contact information? (Hopefully no one reading this doubts the zeal with which a collection company will harass a person, nor should anyone reading this doubt that you can be put into collections through fraud, identity theft, etc... and it can takes months or even years to fix your credit and your reputation. One of my friends that experienced identity theft, said it took him two years to get everything removed from his credit reports (none of it legitimate), all the while he, his family and his friends were harassed via cell phone and email. He estimated that he spent over $2,000 of his own money to fix his credit and believes he got off cheap - sad we have come to this.) Most hosting companies will protect your contact information for an additional fee ($4.95 or less is typical) per month, by making it private.. Will the hosting company pr
      --
      Is your Internet Throttled? Install DD-Wrt, OpenWRT or Tomato to learn the truth! Google: 1Gbps/1Gbps: 5 Communities
  87. Buy an appliance by hitchhikerjim · · Score: 2, Informative

    Your needs for 1000+ uniques are minimal. If I were to do it, I'd get a shared hosting account someplace and move on. Shared hosting can handle *way* more than that.

    But if high availability (limited downtime) is part of the requirements, I'd say go out and buy an F5 BigIP. You plug your internet in the front, your machines in the built-in switch, configure your domain names in it using the web interface, and you're done. Set it to do service-checks, and it'll automatically pull out of the pool any machine that fails or that you take down for maintenance. So you get full up-time so long as your power and network don't fail.

    Yes, you can get the same functionality using Linux HAProxy. But you sort of need to understand what you're doing. Reading the way your question is asked, I suspect you're learning this, and do you really want to make the mistakes on a real live project? Just go with the appliance until you have a solid understanding of what you're doing. Shoot -- I have a good solid understanding from years of experience, and I still use the BigIP when I have a budget (and HAProxy when I don't). It's just easier, and I can move on to more interesting problems with my time.

    Once you've got this setup, set up a cron job to rdist the site to all the machines so that all your data is always on each machine. If you've got a database, you have some choices. For completely static data, I like to have it replicated to each machine, and have each web server just query localhost. If it's dynamic, have a replicated pair. At your levels, that can exist on the web servers.

    I really dislike the cross-mounted disk architecture of traditional cluster solutions, because there are too many shared components. Each of those multiplies your possible points of failure for your whole setup. Better to keep everything completely separated, so if one component fails, that whole machine just drops out and the site keeps working because of the load balancer and because each machine can operate by itself.

  88. You only need ONE machine by flyingfsck · · Score: 1

    Ten thousand visitors *per hour* may be the level to start thinking about a second machine.

    --
    Excuse me, but please get off my Pennisetum Clandestinum, eh!
  89. For all we know, each query could result in 1s CPU by DrDitto · · Score: 1

    Everyone is jumping on this guy for not knowing what he is doing. We have no idea what the work of each query is. Heck, I was involved with a web server where each query would result in a 60-second fluid dynamics computation. If it had 1000 unique visitors a day, poisson arrivals would result in the server being overloaded at some point.

  90. Actually it works by this+great+guy · · Score: 1

    Out of curiosity I just tried out my method with Konqueror 3.5 and Firefox 3, and it works ! I defined a DNS name resolving to 2 A records and simulated HTTP timeouts on my server with iptables. Konqueror will re-request the IP until it finds one that doesn't time out; in fact it always re-request the IP because contrary to what I thought it doesn't implement DNS pinning. Firefox is even more efficient: if the 1st IP times out, it will try to connect to the 2nd (and 3rd, etc) IPs returned in the DNS response without even having to send another DNS request (because it does implement DNS pinning). Obviously both browsers take some time to detect the timeout, so it is preferable to keep only up-and-running server IPs in the zone file, but I am happy to discover that such a basic HA technique works :)

  91. Do not use Windows Cluster Service by Anonymous Coward · · Score: 0

    The Windows Cluster Service is for application clustering. Applications have to be "cluster-aware", which means they have to be specifically written to take advantage of the clustering. For doing what you are describing with out-of-the-box Windows features, you should use Windows Load Balancing, often referred to as Windows NLB. NLB is included with both Windows Standard and Enterprise, but the Cluster Service requires Enterprise.

    You are describing a very basic scenario. Windows NLB will work fine. Just read up on the plentiful guidance for NLB. You can easily load balance tcp 21, 80, and 443 (FTP, HTTP, HTTPS) with NLB. I recommend using unicast mode in NLB and configuring your network switch ports to "portfast" mode to ensure the quickest convergence times.

  92. Failover and load balancing by C_Kode · · Score: 1

    I use Kemp Technologies load balancers. (http://www.kemptechnologies.com) I pad about $5k for a active passsive clustered pair of LM-1500s. Understand, they aren't F5s but if you need basic load balacing or failover these guys are great and for a fraction of the cost. They support round robin, weighted round robin, least connection, weighted least connection, adaptive, and fixed weighted load balancing and L4/L7 sticky sessions.

    The Kemp's support ssl acceleration though I don't use it for web ssl. I mainly use the ssl acceleration for other protocols like FIX and others though I'm sure it handles https just fine. As I noted, we use the LM-1500s which are the smallest ones they have. We have an AJAX platform that streams data and we handle about 350+ requests per second during busy periods and these guys hardly register any load. They are Linux based and very simple to setup and use.

    I was looking at pound and other load balacing options, and I can tell you. Those work, but for simplicity and ease of setup, the Kemp's are golden. Another place to look is loadbalancer.org. They are Linux based too. They are a little more pricy, but I know people that have used them and like them also.

    As for the back in, I'm thinking a cluster isn't what you need. If your website is completely dynamic, you probably just need to replicate your database to second server and have two web servers handling requests. The only reason you need two webservers is if one fails. From what I'm seeing, you don't even need all the virtual servers (xen, etc) That would just complicate everything. Use a single ftp server and keep your FTP files rsync'ed to the second server in case you need to fail over. The Kemp's can do the failover stuff for you. If setup properly, you can use two servers for everything and if one fails, the Kemp's can completely failover everything without you doing anything.

  93. Requirements for 1000 unique visitors/day by yamla · · Score: 2, Interesting

    The requirements to handle 1000 unique visitors/day will depend on what exactly you are serving. I ran a website that got well over 1000 uniques per day on a Pentium MMX 200 Mhz with 64 megs of RAM and a 1.2 gigabyte hard drive. This was significantly overkill for the site. However, that was entirely static content. Oh, except it handled email, spam filtering, and a database for a POS system for a retail establishment with two stores.

    If you are serving mostly dynamic content, you'll want more processing power and more RAM. Almost certainly, you'll be fine with a bottom end computer, but you probably want something manufactured in the last five years or so. This will obviously depend on what your dynamic content actually is, though; more complexity will require more processing power.

    If you cannot afford any outages, you may want to look at redundant hardware, failover systems, etc. etc., but you first need to determine how much an outage will cost you. What if you have a 5 minute outage? An outage lasting an hour? Eight hours? A day? In any case, before you look at redundant hardware, you'll need a service level agreement from your ISP.

    And of course, if you are looking at something to stream 1 gigabyte of traffic to each of these thousand uniques, that's a whole different matter. Now you may want to look at content delivery networks, and possibly multiple servers just to handle the outbound network traffic.

    No matter what your requirements, though, you need to look at a good backup solution.

    --

    Oceania has always been at war with Eastasia.
  94. Use commercial hosting by Anonymous Coward · · Score: 0

    I am on the board of an internet-based non-profit (I won't name it for fear of slash-dotting it 8^). We had about 3000 hits per day last year, so we're roughly in your ballpark.

    We use a commercial host (1and1, if it matters). Costs us a bit more than $100 per year. Works just fine.

    I strongly suggest you start with something like that. It will let you focus on the design and implementation of your web site, and will give you actual stats to use when planning your future.

    HA means more than multiple servers. It means multiple internet connections, multiple geographic locations for your servers, and multiple administrators (among other things). Very complex, very expensive. A good commercial host will have very good availability and you allow them to deal with the complexity.

    Good luck.

  95. Re:1000+ a day is trivial have you thought of amaz by Anonymous Coward · · Score: 0

    hoststated is called relayd nowadays
    http://marc.info/?m=119713600504150

  96. Go X by Anonymous Coward · · Score: 0

    I agree with the cloud solutions, go Amazon unless buying servers makes sense for financial, legal, or control reasons.

    If you are buying servers, buy Apple's Xserves. Easiest to use server configuration tools ever. Does everything you are asking for.

  97. use what you know by sgt+scrub · · Score: 1

    If you find the documentation for windows easier then use windows.

    Reading about Windows 2003 Clustering makes the whole process sounds easy, while Linux and FreeBSD just seem overly complicated. But is this truly the case?

    --
    Having to work for a living is the root of all evil.
  98. Re:1000+ a day is trivial have you thought of amaz by nametaken · · Score: 1

    For ease of implementation and use I'm a big fan of Barracuda's appliance.

  99. get a virtual server hosting provider by Thundersnatch · · Score: 1

    I would suggest getting two full virtual servers from a hosting provider, one for your DB and one for your web/applications server. This can be based on Xen or VMware, but that doesn't doesn't matter to you. Just let the hosting provider's high-availability clustering handle things for you. Add load-balancing in only when traffic levels require it - and with the sort of traffic you are discussing, you do not need load-balancing unless your code is really bad or user requests generate some really massive computations (such as some sort of online business intelligence or analytics).

    Some bigger providers in this space are here, here, here, and here. Amazon EC2, which others have mentioned, may not be a good a fit for your proposed applications, since their storage model is stateless.

  100. This is how I would do it. by JRHelgeson · · Score: 1

    If this were my project - I would purchase a new Dell or HP server. Servers today have all the HA and redundant features built in, and when you have all your eggs in one basket, you need to have a very strong basket.

    On this server, I would run VMware 3i Hypervisor (AKA VMware ESX) - this gives you the ability to access all the cores and ram on the modern server, otherwise you will have CPU cores sitting idle (irrespective of the os you install).

    Run ~4 instances of Microsoft Server 2003 or 2008. Have two of the servers clustered or load balanced for the web services. The other two for AD/Email, whatever else you need.

    Joel

    --
    Good security is based upon reality and common sense. Common sense is a function of having common knowledge.
  101. What do you do with carp? by Nicolas+MONNET · · Score: 1

    Can you explain?

    I'm looking for something to handle the virtual IP in case the server goes down, I'm wondering if heartbeart is overkill, and if carp can handle it in a cleaner way.

    1. Re:What do you do with carp? by Architect_sasyr · · Score: 1

      We still have an issue if we lose the equipment in front of our servers, but I don't control that so I can't do much about it and it has never died (touch wood!). My explanation will never be as good as this so have a read of that. Carp still uses a type of "heartbeat" mechanism, though it is actually less than windows broadcast traffic (at least on our network). Pound supports its own redundancy for servers, including load sharing if you want it and fail over.

      --
      Me failed English...
      FreeBSD over Linux. If my comments seem odd, this may explain...
  102. Apache w/ F5's by spitek · · Score: 1

    The "BEST" way to do this would be an application that is coded for session sickyness(that it if your site is databsae run where users login or if you have something like a shopping cart), you would build it out with a back end DB Active-Passive Cluster, then 2 or more active nodes in your HTTP server cluster with an Big IP F5 in front. Now this is quite $$$ but you asked what the best way is so there you have it.

  103. Citrix Netscaler by spiedrazer · · Score: 1

    Big drawback is ease of use... The interface was designed by the engineers and really sucks, but it can do a lot and comes in a redundant pair config, so you always have a standby unit to take ofver if the first one dies.

    --
    Keep passing the open windows...
  104. Re:1000+ a day is trivial have you thought of amaz by theyulman · · Score: 1

    I agree with OpenBSD using PF...then get yourself The book of PF ( http://oreilly.com/catalog/9781593271657/ ) This book is the most comprehensive PF documentation I've had the chance to read. But like many others told. 1000 hit per day on a server is nothing to be worried about.

  105. For windows: Network Load Balancing... by amcdiarmid · · Score: 1

    There are a few different solutions to your question, and many of them depend in the Webserver used.

    For Windows, you do not need to use clustering for the webserver: you can use Network Load Balancing. If you have a SQL back-end, then you will need clustering...

    To explain:

    Clustering is used for programs that can only be run in single instance (Exchange, SQL, etc...)
    IIS (Microsoft's Web Server) can be run in multiple instances. Therefore you can use Network Load Balancing (NLB). With NLB, the request will be directed to any available server, if one goes down - the other is available.

    NLB can be implemented (badly) with round-robin DNS - which will send the request to each server in sequence.

    These same techniques can be used in Linux (see thread), and other Unices. For the Web-Front-end, use some form of NLB. For the back-end, use clustering.

    At this point, I should point out that eventually you will have a single point of failure-unless you are very careful. (Do you have a redundant SAN? Are all etherent paths seperate and redundant? How about power to your server space?)
    I should also point out that everything above is overly simplified.

  106. If I post this at the top, will anyone see it? by supaneko · · Score: 0, Redundant

    First off, I wanted to mention that the 1000 is off by two zeroes. It should read 100,000. Secondly, for those of you who have not provided anything constructive, I give to you the one-fingered salute. It's amazing how much crap and how many assholes exist on this forum. All I wanted was some CONSTRUCTIVE advice and it seems like the majority of what I got was a bunch of bickering and a load of insults. Bleh... But to those who have actually posted some useful comments...I THANK YOU. :) Your insight has been helpful and for the most part, confirmed what I had planned already.

    1. Re:If I post this at the top, will anyone see it? by JWSmythe · · Score: 1

      You should be careful what you submit. You asked about 1,000 users, you got answers for 1,000 users.

          I just posted a brief overview of what it takes to handle millions a day. There may be a lot of theorists and wannabe's on here, but I've actually lived it (for years at that).

          You can contact me directly through my web site (linked in my profile). A little advice is free. :) I'm more than happy to share what I know.

      --
      Serious? Seriousness is well above my pay grade.
  107. Keep it simple by Jim+Hall · · Score: 2, Informative

    "I am working with a non-profit that will eventually host a massive online self-help archive and community (using FTP and HTTP services). We are expecting 1,000+ unique visitors / day. [...]"

    Others have pointed this out to you, but 1,000 visitors is not much load at all. I work at a large university, and during registration first day of classes, we have 500 unique users (what you call "visitors") in each hour. On the first day of classes, we may get 1,000 unique users per hour as students look up their class schedules, and sign in to the registration system to drop that stupid class they were just in. We run a load balancer at the network level, so that traffic is balanced immediately at the switch, rather than at a host level before being sent to a back-end web host.

    But doing the same in your case will be very expensive. If you work at a non-profit, you probably don't have this in your budget.

    If you're just doing simple http and ftp (that is, not running a web application with a database back-end .. or an application that keeps "state" on the server, requiring users to always go back to the same server server they first visited) then you might consider the simplest solution of all: DNS round-robin. Simply put, you enter the IP addresses for two web servers (or ftp servers) for a single www entry in DNS. At the expense of hitting your DNS more frequently, you could set the TTL to 1 hour for the round-robin so that if server #1 went down, you could push an update to DNS so "www" just points to server #2, and users are only inconvenienced for about an hour.

    But your best solution is probably just to outsource this, especially if you're only doing simple http and ftp. A good web hosting company already has this infrastructure available to you. No need to re-invent the wheel for just 1,000 users.

  108. Re:1000+ a day is trivial have you thought of amaz by fbartho · · Score: 1

    link?

    --
    Gravity Sucks
  109. Some ideas by Josh+Wieder · · Score: 1

    It is interesting that most of the posts so far have focused on ensuring that our original poster has sufficient business acumen to make the decision to build a clustered hosting environment. There are reasons other than straight margins why downtime for a website is an absolute no-go. For instance, I work for a medium sized data center. Although we do few direct conversions through the website, the embarrassment of that site going down more than justifies a clustered solution. I will assume that OP has done the math. That being said, I have had excellent experience with ultramonkey / ldirectord. Ldirector has a single primary conf file that provides for pseudo custom service requests to check availability. I have found this to be much more intuitive than Windows clustering services, however if you are planning to have IIS boxes using SSL you may run into trouble loadbalancing HTTPS traffic. The problem with 2 boxes and heartbeat only is that often times a box will stop serving websites but will not drop ping. You need a service that is smart enough to realize that a 404 page is not what you are looking for. That being said, custom validation queries can include SQL queries, SMTP, IMAP and POP sessions, HTTP requests that look for specific responses, etc. This would need to sit on a dedicated firewall in front of at least two identical hosts. Note this introduces a single point of failure - a philosophically sound cluster will have two identical firewalls running heartbeat. Another point of failure will be the switch providing link to these hosts. I would recommend redundant uplinks configured using VRRP to avoid lost availability due to a dead switchport. I can go on, and the scale of a cluster topology is limited only by one's imagination, but I think this is a good start. Josh Wieder Atlantic.Net

  110. Use pfSense - HA and Load Balancing in one distro by Anonymous Coward · · Score: 0

    We've been using pfSense to load balanced 40 million HTTP connections to a cluster of servers. It's rock solid, has a nice fluffy GUI to configure with and has FreeBSD underlying with pf as the firewall. It's a pretty kickass toy.

  111. Take their request with a HUGE grain of salt by Dynedain · · Score: 1

    Get some real numbers. If it's like the non-profit I worked with, it's around a thousand visitors a month. They were confusing hits with visitors. They also requested forums several times, but every time I got it up and running for them, they wanted it turned off because they were scared of them being empty, and not inclined to post/admin in the forums themselves.

    Best approach is to start small and grow it as you need. Get the basic site up first, then add the forums, then the archive - see what they really do and don't need.

    --
    I'm out of my mind right now, but feel free to leave a message.....
  112. RHCS by Anonymous Coward · · Score: 0

    If you need a more powerful cluster. (Well, 1000 users isn't that much still, but anyway).

    - RHCS (Redhat Cluster Suite)
    - SAN (iSCSI, cheapo MD3000i + GFS) - needed for RHCS.
    - LVS (IP Load Balancer)
    - KVM (Virtualization)

    Of course you will need a bare minimum of 2 servers but 3 for best results, and this setup can be done using active/active. (Instead of looking at your "simple" solution by Microsoft Windows 2003 which is basically active/passive).

    This is rather more complex than the other options above, but i've done it and it seems more robust, (plus using nginx for caching static content if necessary).

  113. 1000+ a day? please.. by steppin_razor_LA · · Score: 1

    Unless your application(s) are horrifically written, you won't need a lot of hardware to pump that out. If you are really worried about high availability (and for those sorts of traffic numbers, I don't know if you really should), then make arrangements for a hot spare and plan on manually flipping the switch if the primary machine fails.

    --
    Evolution: love it or leave it
  114. Re:1000+ a day is trivial have you thought of amaz by lukasz · · Score: 1

    ok... maybe I'm missing something, but what's wrong with using httpd2 for proxying/load balancing ? It seems to provide both ?

    lukasz

  115. Funny story - Power by cam312 · · Score: 1

    Had a client that had some outsourced rack space. They had spent some time ensuring relatively HA for their cluster. They chose a hosting provider that provided redundant network connections, UPS, etc. This is what happened: - There was a fire in the power conduits under the street taking down a big piece of the electrical grid - UPS kicked in - servers stayed up - Building was on a generator, so when power to the building when out, the generators kicked in - (lots of fuel for the generators) - Fire department showed up, and started to put out fire under the street - Hydrant use dropped water pressure - Reduced water pressure dropped cooling ability of the generator - Generator shut off to prevent damage - UPSs ran down quickly - Servers crashed hard Nobody included the city WATER supply in the redundancy plan.

    1. Re:Funny story - Power by Nethead · · Score: 1

      Good story! There is one building in Seattle that if it falls down, there will be very little 'net or telco for most of three states. There is a secondary large data center a few blocks away, but they are so interconnected that no-one knows all the failure modes if one of them goes bye-bye. I know that if one of them goes down, then at least the State of Alaska is SOL for 'net.

      --
      -- I have a private email server in my basement.
    2. Re:Funny story - Power by OneSmartFellow · · Score: 1

      Where are most of the city of London's finance houses DR sites ?

      They're all in the same building, just outside the city of London !

  116. pfSense? by mhab12 · · Score: 1

    www.pfsense.org forums.pfsense.org

  117. Re: 800 Bucks to Spend by smussman · · Score: 1

    You might want to check out CUDA. It lets you run parallel algorithms on a GPU, and you should be able to get hardware that can run significantly more than ~26 Gflops for less than $800.

  118. Good Advice Right Here by bokmann · · Score: 1

    There is a lot of good advice in the other posts, but so many are laden with other people's baggage filling in your missing data. Let me condense it for you to a real solution

    I have set up high availability systems that are currently handling 18TB traffic a month, with many millions of page views, with systems that you can literally unplug the server handling the load and have a hiccup of less than a second. And I have done this with 2 servers.

    Your 1000 visitors a day is something one server could handle the traffic for, as long as we aren't talking something boutique like streaming live HD video. But that is only half your problem - you want to be able to survive a catastrophie on that machine (someone accidentally kicking the power cord, etc).

    First, I would suggest you do not want to handle this hardware yourself. I have worked with ServerBeach and RimuHosting, and would gladly recommend either for this setup. You can handle everything else though.

    Second, you want two machines, pretty much anything in ServerBeach's category 3 will handle what you need.

    Third, you need them in a particular configuration:

    1) You want them each to have a publicly available IP (the references the box), then you want a floating IP between them (that will be the IP your web address uses). More about that IP later.

    2) You want the two machines to have a second network card, and have a private network between them. (used for heartbeat and disk replication - see below)

    3) you want to set up HALinux and DRBD.

    HALinux is a software solution that will run on both boxes. One box is your 'primary' and the other is 'secondary'. The secondary box watches the primary one, and if the primary one fails for any reason, the secondary one takes over for it. It does this by pinging it as often as you specify (perhaps multiple times a second), and if it doesn't answer, it takes over its IP address. You see, that floating IP address I mentioned earlier resolves to the first machine, but the second machine can take it over (for this to work, they have to be on the same router). The downtime here is less than a second.

    So that is all well and good, but the second machine needs to be able to run just like the first one. This is where drbd comes in.

    DRBD is like Raid mirroring, but for two hard drives in separate machines. Everything written to one hard drive must also be written to the second for the write to be successful. Over a prigate Gig-e network, in my testing, the drives suffer about a 22-25% performance hit. All data - the database, the deployed applications, even the config files for all my services sit on this shared drive. If the first machine fails, the second machine has all the data it needs to take over the job.

    I have set up exactly this setup more than once. And despite everyone here laughing at your "1000 users" figure, high availability isn't about scalability - your 1000 users might be worrying about something so important this setup is peanuts to them compared to the lost time if you have to spend 15 minutes jerking around with a server problem. I enjoy working on these systems because I can fix problems outside of a crisis mode, since there is always a machine ready to go.

    If you'd like help with this, or if you'd even like someone to set it up and host it for you, I'd be happy to help. (dbock at codesherpas dot com)

    Don't spend your money on purchasing 2-6 servers... seriously - look into what 2 decent machines in this setup will cost at ServerBeach, and also think how much easier this will be if they handle all the physical stuff for you. The configuration details are something you can handle yourself, and it is not that hard if you are comfortable at a command line prompt.

  119. Re:1000+ a day is trivial have you thought of amaz by kitgerrits · · Score: 1

    No mention of Linux Virtual Server?

    It's not exactly easy to set up, but it provides all possible types of load balancing and even the load balancer itself is HA'd by heartbeat (in a 2-node LB cluster).

    Downtimes can be reduced to single seconds.
    (My LoadBalancer cluster switched if the master LB didn't check in for 5 whole seconds)

    Webserver reply times can be just as tight.
    Client sessions can be bound to the answering webserver and the bindings can disappear when the designated webserver dies.

    --
    "I was in love with a beautiful blonde once, dear. She drove me to drink. It's the one thing I am indebted to her for."
  120. Re:You will be OK by Simetrical · · Score: 1

    16GB? Are you mad? Anything beyond 1GB should be enough to handle 1000 unique visitors per day. If you want to virtualize the system and have a separate web- and database server, 2GB should be enough already, if you ant to go further and have a separate virtual mail server in there, 2GB is still sufficient and 3GB is plenty.

    My site gets 50,000 visits a day (>100 req/s peak) and I do just fine on a single server with 16 GB of RAM. And that's probably more than I really need -- I could make do with 8 GB, and less if my application (vBulletin) were more scalable.

    --
    MediaWiki developer, Total War Center sysadmin
  121. Coyotepoint Equalizer by bongk · · Score: 1

    We use a pair of Coyotepoint Equalizer E250 appliances for our web load balancing. About $5,000 for the HA pair, but its about the easiest load balancer to install and run that I could imagine...so if you are more worried about the ability to support and maintain the system than you are the cost then this could be a better choice than building your own from open source tools.

  122. I used to serve a few thousand hits a day by Nicolas+MONNET · · Score: 1

    on a 250 Mhz machine with 128M RAM on a 128k leased line, back in 98. Hand coded Perl on Apache, msql at first then mysql, on Linux.

    An OLPC's gotta be better than that.

  123. How's your ucarp doing? by Nicolas+MONNET · · Score: 1

    Does it work well enough for prod use?

    1. Re:How's your ucarp doing? by chrysalis · · Score: 1

      Yup, it's rock solid.

      --
      {{.sig}}
  124. Read this book by Alpha830RulZ · · Score: 1

    Get this book: Scalable INternet Architectures. Theo will tell how how to approach the problem.

    For the volumes that you are talking about, you don't need a huge architecture, unless something is serious funky with your application. You are 3 or 4 orders of magnitude away from a having a hard problem to solve.

    --
    I was taught to respect my elders. The trouble is, it's getting harder and harder to find some.
  125. Simple by ThoreauHD · · Score: 0

    Citrix Netscaler. All high end web hosting companies use it. If you are thinking about Foundry or a custom linux box, don't. You'll see the limitations after it's implemented- and by then you'll be screwed.

  126. Re:You will be OK by egcagrac0 · · Score: 1

    RAM is cheap. Upgrading a running server isn't.

  127. Rather than cluster, separate function by jwhitener · · Score: 2, Informative

    A) 1000 a day is fairly small. I server 12,000 unique logins per day with 1 web server (multiple back-ends, so point b)
    B) Rather than cluster the entire application/site, it is usually better to separate the applications and processes and give them either their own virtualized server space or their own physical server.

    Database on one server
    Middleware/application on another
    Static content on another, etc..

    Not only can you figure out bottlenecks easier, but when/if you need to upgrade, you are putting resources directly where they are needed.

    In terms of high availability, (in addition to the usual hardware duplications and backups/failovers, etc..) I would recommend virtualizing all your services into something like ZFS containers or vmware.

    If a server dies, being able to quickly transfer a virtual zone (from backup) to a new server is very nice.

  128. F5 sucks by Yaur · · Score: 1

    You get a lot more bang for your buck using LVS and custom scripts (if you need them) than you do with F5 boxes.

  129. You *amy* want to rephrase that.. by Anonymous Coward · · Score: 0

    I know that quite a lot of teenagers have "self-help archives" but they have more to do with causing Repetitive Stain Injury that what I assume your aim is. Having said that, being worried about "up"times takes on a whole new meaning.

    Note to grammar Nazi's: I know the "r" is missing. Think about it. :-)

  130. Re:1000+ a day is trivial have you thought of amaz by Anonymous Coward · · Score: 0

    www.pfsense.org?

  131. Stop making assumptions by Anonymous Coward · · Score: 0

    I'm really tired of reading how 1,000 users is peanuts. You have no idea what those 1,000 users are doing. Maybe he's running Tomcat servers and he's got 1,000 customers using some financial or clinical java application that requires five 9s? I realize you can serve pictures of you in a cat suit humping some other furry at a convention on your tandy II to 12 people per week and extrapolated some figures, but you really have no concept of his requirements.

  132. simple hack? by jon3k · · Score: 1

    Just bored and had a random thought for super cheap super easy "manual HA" (oxymoron?). Round robin DNS is usually a hassle because of TTL values. So let's setup something using round robin DNS, no need for front end load balancer where each node essentially acts as a peer. Basically if you have a few nodes today using round robin DNS you can implement this for free, today. The advantage is you won't have to wait for TTL values to be flushed from DNS caches, so when you have a problem you can remove it immediately.

    Assuming linux/bsd/etc:

    1. create ifcfg-bond0:1-n on every host, each of which represents a node in the cluster. Now each node can start a sub-interface and answer requests for any other node. Also create one specific iface for management on each node.
    2. Setup round-robin DNS: add IP address of each node to the A record for www.
    3. If one node is down, or needs to go down, just start the appropriate ifcfg-bond0:X iface on another node and if necessary shut that iface down on the node that needs work. Use the management address you created above to perform any maintenance and get it back online.

    Of course this could all be automated pretty easily using a heartbeat. Each node tests the services on other nodes, nodes all agree when a specific node has died and determine the appropriate host to take over the load.

  133. Any Pentium I 200mHz and up will do this by cdn-programmer · · Score: 1

    Lets get real and put this into perspective.

    Any Pentium I which is 200 mHz and up can do this.

    Whether FTP or HTTP, this is still just file sharing. A Pentium I can fill a 10 Base-T Lan with no issues at all. In fact they can probably get close to filling a 100 Mbit/second Lan. One needs to test this of course in the application at hand. This is easy to do.

    T3 runs about 45 Mbits/second and this corresponds to DS3 (Digital service level 3) In North America this is equivalent to 672 DS0 channels each of which is 64 Kbits/second (8192 Bytes/second) not counting stolen bits.

    So a T3 is "about" 1/2 of a 100 bit/second ethernet LAN connection.

    http://en.wikipedia.org/wiki/T-carrier

    Carrier pricing for a DS3 will be about $5,000 per month.

    The rest of this picture is dependent on how good or how badly the server side is set up. My point is that even a 10 year old Pentium I can handle the load.

  134. A few Ideas by hesperant · · Score: 1

    As most of the posters have indicated 1,000 unique visitors are easily accommodated, it is still nothing to sneeze at when it comes to supporting a business critical resource. When things go well then you can easily multiply the number of unique users.

    Option 1. Using a predefined load balance solution such as HA Proxy is nice but still leaves you with a single point of failure (the Proxy), distribution tools and resources are abundant. Common ones are via virtual addressing (cisco IOS functions) but these still leave you with a single point of failure.

    Option 2. DNS based HA, remote servers etc. With such a small load your capabilities could easily be supported by two servers and using a DNS based failover. Many DNS Sources have just such an option, look at your DNS provider for the specific options. Since most DNS sources have some hardening, the options are fairly solid and the single source of failure is mitigated.

    Option 3. Virtual environments. Using a virtual environment you have a great flexibility with both service and failover. Resources such as The Grid (http://www.gogrid.com/) or Amazon Elastic Cloud Computing service (http://aws.amazon.com/ec2/). The benefit of cloud computing is uptime. Expecting failures is a good practice, and cloud computing allows you to expect the failure and if one occurs then the cloud can be programmed to automatically spawn a new instance or using metrics at a predefined load the cloud can be programmed to spawn a new instance and start forwarding unique requests to the new instance.

    It is easy for us Linux loving types to be very fond of the home grown solutions. There are nice boxed solutions out there that solve your issues. In the end it all comes down to time and money. Since in many cases time is money, then money and money are your issues. You either pay for it up front or on the back side. While you can do just about anything with an open-source solution, your biggest factor is going to be expertise. There is allot of expertise available to help you with that need. In the case of closed source solutions, it may seem like an out of the box success but always be leery of the difference between how much work you have to do and how much the package costs.

  135. Re: 800 Bucks to Spend by makapuf · · Score: 1

    800 bucks can buy you great hours of CPU on Amazon EC2 isn't it ?

  136. Re:1000+ a day is trivial have you thought of amaz by ZerdZerd · · Score: 1

    You forgot to mention LVS

    --
    I'm not insane! My mother had me tested.
  137. Re:1000+ a day is trivial have you thought of amaz by mcrbids · · Score: 3, Informative

    2 boxes for hardware failover will do you fine, if you are worried about HA the its the COST of downtime that you are worried about (i.e. down for an hour exceeds $1000 in lost revenue) which will justify the solution. Don't just drive availability to five nines because you feel its cool, do it because the business requires it.

    This is something that is rampant: techies tend to overestimate the value of uptime.

    Sure, it's sexy to have high availability this and redundant that, but unless your company is pulling down at least $1,000,000 per year or more in gross revenues, it's hard to beat the 3 to 4 nines or so uptime delivered by a good quality, whitebox server running Linux. Something like this unit would deliver excellent performance and excellent reliability at a very low cost.

    How much does an hour of downtime actually cost your company? Be honest. If you had to tell your customers: "we were down for 2 hours because a software update caused us to have to ..." what would it actually cost your company? Especially if it only happened every year or so? In my experience, even in fairly stiff production environments, there has been no cost at all. We've maintained about 99.95% uptime for the past 3 years, with 1 "incident" every year or so, with no cost at all. In fact, our company has a good reputation for availability and support!

    So don't spend money on sexy hardware with lots of blinkie lights and cross-connects, which often decrease your reliability by introducing unnecessary complexity.

    Instead, spend money on your hosting. Don't *ever* host it in-house. Ever. Get a first-tier hosting facility, with redundant network feeds, power, and staff who give a damn. Don't be afraid to pay for it, because it will probably save you money, anyway. You'd be amazed at how price-competitive top-notch hosting farms can be!

    Make sure to get to know the on-site techies on a first-name basis, give 'em a six-pack of their favorite beverage, and thank them profusely when they do anything for you. The goodwill these types of things can bring will work wonders for you down the road.

    And remember:

    2 nines is 3.65 days of downtime per year.
    3 nines is .365 days of downtime per year (~ 8 hours)
    4 nines is .0365 days of downtime per year (~ 45 minutes)

    It's a very, very rare case indeed where 3-4 nines of uptime isn't completely sufficient.

    And 1,000 unique visits per day? Pssht. Unless you are doing some pretty ferocious database stuff, (EG: joins across 12 tables with combined inner/outer/composite joins) the aforementioned server should do the job just wonderfully.

    DON'T FORGET BACKUPS! And backup your backups, because backups fail, too.

    --
    I have no problem with your religion until you decide it's reason to deprive others of the truth.
  138. Re:You will be OK by Anonymous Coward · · Score: 0

    Buy lots of RAM. I run two commercial java web apps, and I need it.

    Cpu0 : 1.7%us, 0.3%sy, 0.0%ni, 89.4%id, 8.3%wa, 0.0%hi, 0.3%si, 0.0%st
    Cpu1 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
    Cpu2 : 0.0%us, 0.0%sy, 0.0%ni, 99.7%id, 0.3%wa, 0.0%hi, 0.0%si, 0.0%st
    Cpu3 : 0.0%us, 0.0%sy, 0.0%ni, 99.3%id, 0.7%wa, 0.0%hi, 0.0%si, 0.0%st
    Mem: 16440536k total, 16321188k used, 119348k free, 393412k buffers
    Swap: 12144632k total, 44k used, 12144588k free, 3390756k cached

  139. The question is moot by Anonymous Coward · · Score: 0

    You have two choices:

    1. Provide "real numbers" of website visits and expected volume growth.

    2. Stop wasting time on irrelevant things and setup the host for access to content.

    I'm guessing your number one concern will soon be providing a usable interface to the content. Don't read any more comment/responses to your question and get to work on how to present it.

  140. Re:1000+ a day is trivial have you thought of amaz by frission · · Score: 1

    I've been using Pound for a few years now without any major issues. It also gets updated frequently enough, and you can use it as an SSL accelerator if you have the hardware for it.

  141. rar by Anonymous Coward · · Score: 0

    theplanet.com has a shared load balancer service they offer.

    If you are looking to do this in house, I would suggest getting either a serverIron, of trying some kind of software load balancer.

  142. Your project is doomed. by Organic+Brain+Damage · · Score: 1

    Unless you get competent, experienced, help. This is going to sound snarky, but seriously, if you think you need multiple servers for 1,000 users per day hitting a help archive, you do not know enough to setup a server properly.

    1. Re:Your project is doomed. by cdn-programmer · · Score: 1

      I agree. Get competent help.

  143. Re:1000+ a day is trivial have you thought of amaz by G33kDragon · · Score: 1

    If I were you, I'd consider looking into the new hosting platforms built on cloud environments.

    You should be able to find some online web hosts who charge per-use in a clustered environment so you don't have to bother about setting up your own EC2 servers (or whatever) yourself. Leave it to the experts as it were.

    Some places to check out:
    RightScale
    ScaleMySite
    GoGrid

    My company uses a cloud hosting provider and it's been great not even thinking about architecture as our website hosting needs have grown.

  144. Re:1000+ a day is trivial have you thought of amaz by snowtigger · · Score: 2, Informative
  145. more info please by Anonymous Coward · · Score: 0

    There's an incredible amount of ways to architect for application performance and redundancy. If asked, customers will say they want as much uptime as possible. I have counterparts in my line of work that spend 1 million dollars a year for this. I on the other hand spend about zero dollars a year, for just a little bit less.

    Lives and significant dollars will not be lost if the applications I manage are down for 15 minutes a month. People are definitely inconvenienced, but not dead.

    But on the other hand, I do have a requirement at my organization to provide geographical redundancy in case of catastrophic failure at a single site. Simple DNS changes with shell scripting has sufficed for this.

    So, you have to evaluate what it is that you're targeting and be able to provide an assessment of cost vs. benefit. My guess is that with your limited requirements described, software load balancers will be the way to go.

    But please remember that when Microsoft says it's easy, they mean they only provide you an interface to the easy stuff. When you have to do the hard stuff, there just simply won't be a button for it.

  146. Famous last words! by Nicolas+MONNET · · Score: 1

    j/k.

    I see you're still too modest to plug your own awesome code, so I'm doing it for you.

  147. Don't know if it's been posted by arndawg · · Score: 1

    -UCARP for a virtual shared ip. -DRBD for a shared filesytem between two hosts. Typically you use this for the /www folder -CSync2 for syncing configuration files. That way UCARP triggers apache to start on the passive host, when the master fails.

  148. Re:1000+ a day is trivial have you thought of amaz by Anonymous Coward · · Score: 0

    Do you possibly work for Proto co??

  149. Re:1000+ a day is trivial have you thought of amaz by hobbez · · Score: 1

    Do you possbly work for Proto Networking?

  150. Re:1000+ a day is trivial have you thought of amaz by Anonymous Coward · · Score: 0

    Perlbal is still going strong too.

  151. Solaris + Sun cluster by Anonymous Coward · · Score: 0

    I will use Solaris to solve my HA dilemma.

    It's gratis, and so it the Sun cluster software.

    If you want to go the open source route, then you could also use Solaris express community edition, with the open HA cluster (which is open source version of the Sun cluster software).

    Also look at project "Colorado" at

    http://opensolaris.org/os/project/colorado/

    Solaris seems like the most obvious choice for high availability clustering to me, because it's enterprise grade and the software is gratis.

  152. Re: 800 Bucks to Spend by Anonymous Coward · · Score: 0

    Implement your stuff on an nVidia card using CUDA.

  153. So True by Slashdot+Parent · · Score: 1

    Applications have gotten to be so complex, it can be difficult to make all of the dependencies high-availability. And as we know, the chain is only as strong as its weakest link.

    My current client just deployed a state of the art HA application. Oracle RAC enterprise with hot standbys, huge Weblogic clusters, F5 load balancers, datacenters in two different geogrpahies, each with redundant connections. This application is rock solid--except for one little wrinkle.

    The application depends on an ancient, crotchety legacy system. Naturally, I informed my client that they needed to upgrade the legacy system. "We don't throw out perfectly-functioning systems." "But it isn't highly available--it's running on unsupported hardware using an unsupported version of Solaris, and the database resides on a single Oracle instance. That is a single point of failure."

    After much back and forth, the client elected not to replace the legacy system. You can guess where this story leads.

    Their shiny, new whiz-bang application goes down once or twice per month due to legacy system outages. In the end, as you might of guessed, the client just decided to live with the downtime. I still don't understand why they could find so much budget for the new application, but couldn't be bothered to do something about this duck-taped, old legacy app.

    --
    They don't grade fathers, but if your daughter's a stripper, you fucked up. --Chris Rock
  154. Re: 800 Bucks to Spend by Anonymous Coward · · Score: 0

    AMD X2 4450e
    2GB DDR2 800
    GF9800 GTX+
    MSI K9 Motherboard
    all for about $400. double this. play nice.

  155. Re:1000+ a day isn't very much HI JULIAN by Anonymous Coward · · Score: 0

    Hey there Julian, what's up?

    Probably HA not load
    1. What will each user do? Unless they are modifying a data set with many interrelationships, where small changes can trigger large recalculations and updates, I doubt 1000 or even 10000 daily visitors (even if over a short time window) will require clustering to provide satisfactory performance. If it is not the performance under load that you are concerned about, but rather that you can ensure near 100% uptime (whether load is low or high), then clustering is the wrong solution.

    Redundant dedicated servers
    2. With a low load (1000 users for a typical web application) but HA requirements, I think you're best bet is to place a server in two different data centers. The data centers should be in different cities, belong to different companies, and utilize different backbone providers. Once you have selected such data centers, either rent dedicated servers (a good way to start), or go with basic colocation. At any one time, the server in one data center will be "active", the other on "standby". The "standby" server permits reads but no writes, the "active" server permits both. For data in a database, use transaction log shipping from active to standby to keep the standby up to date. For data on disk, use rsync from active to standby.

    3. Various techniques are possible for failing over to the standby server in an emergency. You may want to use DNS round-robin stuff for this.

    No FTP
    4. Do not use FTP for anything. The only exception would be if you wanted to allow anonymous read access to FTP, that is okay.

  156. Just get 2 VPS by Anonymous Coward · · Score: 0

    http://www.slicehost.com
    get 2 512MB vps with nginx or lighttpd.
    that should be more than enough for what you want and they even have a tutorial for a basic HA setup.