Building a Linux Virtual Server
prostoalex writes "NewsForge (an OSTG site) has an article that discusses the details of building a cluster for a virtual server - an environment where one can add and remove machines as needed, to account for high-traffic Web site of intensive database application: 'The main advantage of using LVS is that unlike Microsoft network load-balancing clusters, the LVS allows you to add a node running any operating system that supports TCP/IP to the cluster.'"
First of all, the Linux Virtual Server project is a misnomer, because a Virtual Server these days means a virtualized operating environment similar to what is provided by VMWare, Xen, Linux Vserver, etc.
Second, IP Load Balancing is not new and is much better done by a hardware device such as Cisco CSM, Foundry ServerIron, Nortel Alteon, etc. These things boot in seconds, use ASICs, can process orders of magnitudes more packets per second than a Linux box can, have no moving parts (except for the fans), are aesily configured, can be set up in a fail-over configuration, speak routing protocols, etc, etc.
The Linux Virtual Server is a good project to tinker around with if you would like to understand load-balancing concepts better and do not have the $$$ for a hardware device, but I would not even consider designing a mission-critical solution using LVS instead of a hardware load-balancer.
I remember back in my ISP days we purchased a small provider with a few T1's all running on Linux-based routers. They had a tendency to lock up and were very awkward to manage for many reasons (e.g. upgrading the kernel was a risky procedure that required way more downtime than necessary) and we replaced them with real routers pretty quickly. I kinda suspect that Linux Virtual Server may be a similar type of experience - PC's just don't make good network devices for some reason.
Of course I'll probably get flamed for this comment...
Combine that with something like Virtuozzo from SW-Soft or (the now dying) ServerXchange from Ensim (webhosting virtualization software packages) and you could cluster VPSes together and have the added virtuazliation over hardware that would let you move OS images around between machines.
You could move the systems in and out of the cluster, but you could also move the OS install around on different hardware. Reliability through virtualization, it's a great thing.
Video Phone Blogs send video messages straight to the web.
Imagine a Beowulf cluster of...never mind.
12:50 - press return.
http://www.keepalived.org/
...
What is Keepalived ?
So in short keepalived is a userspace daemon for LVS cluster nodes healthchecks and LVS directors failover.
2 years and no mod points. Join reddit. Because openness is good.
The article seems to suggest placing a large number of real servers behind a single virtual server. Surely this is putting a point of weakness in front of a potentially redundant cluster. Load balancing has been done better by specific hardware made by Foundry and the like. I'm not seeing the benefit over 'traditional' clustering with this solution.
Business Voyeur
Do you need to buy special glasses ?
Can you imagine a Beowulf cluster of these clusters for virtual servers?!?
Why does the summary talk about intensive database applications? Not only are databases not mentioned in the article, but having a database server that the Web servers need to talk to would be a huge bottleneck for this configuration.
Great for http. Bad for nfs and smb/cifs.
With any load balancing solution, if a server goes down with an active connection, that connection gets reset. It doesn't matter if you are using LVS, pen or pound, the level of transparancy isn't quite there yet.
Personally, I am an advocate of pound for http/s load balancing, because its simple, has central logging, and handles ssl authentication itself (thereby keeping the back end servers simple)
Check it out:
http://www.apsis.ch/pound
Feed the need: Digitaladdiction.net
What the article talks about is a web server farm. The servers aren't migrating data among each other... and since the author suggests using round-robin DNS for redundancy instead of DNS-based wide area load balancing and/or having a failover-style cluster setup so one machine going down activates a standby... well... while it may be useful to get people playing with things on their home network, it's not anything people who want to keep their jobs should be doing unless they're on a near-zero budget and using old desktops as web servers.
500GB of disk, 5TB of transfer, $5.95/mo
DEC did a fair bit of research and development into such composite systems back in the late 1980s. That is why today systems like Tru64 UNIX are so adept at virtual networked systems. It's too bad that HP has squandered the gem it picked up from DEC (via Compaq) in Tru64.
Cyric Zndovzny at your service.
A "true" virtual server allows a cluster to be treated as a single machine, from the outside. However, the problem with LVS - and similar technologies - is that they don't do this very well. You often have a single entry point, which means that communication suffers from the bottleneck.
Ideally, what you want is for ALL the machines to be capable of receiving connections, so that connections can be striped across the farm, which means that you aren't slowed by connection limitations.
What you then want is to transfer connections within the farm, so that you can balance load by resources available, rather than by simply giving each machine an equal number of connections.
Finally, the internals of the farm need to use some very good communications systems. GAMMA looks good, and I'd probably advise using Lustre or GFS over SMB or NFS.
It's a small world and it smells funny; I'd buy another if it wasn't for the money; Take back what I paid (SoM)
There's a mention of databases in the article summary (which peaked my interest), but the article was ONLY about web servers (snore). What kind of summary was that?
I don't respond to AC's.
Not only am I an F5 customer and have many friends who work there but I once worked with a company that occupied space formerly occupied by F5.
Get this, the system that controlled card-key access was a *VERY* early F5 box that they had installed Windows on.
You are not a beautiful or unique snowflake -- but you could be if you got off your ass.
Looking at these images (LVS and WLBS) it seems with LVS there is a single point of failure with the load balancer box. With Windows load balancing there is no "balancer box" and if any one server fails the cluster continues without missing a beat.
How does LVS work if the balancer box fails?
Now if someone came out with a good embedded linux running lvs with a nice web and cli interface, on solid state hardware, that was a decent amount cheaper than brand name equipment, put up a respectably proffessional looking site, and develop a loyal following, I'd consider it.
No? You don't even need them physically connected these days, SCSI over IP can do it.
:
LVS isn't really an ideal system, the load balancer is bound to be the box that dies.
For a clustering project
http://www.linux-ha.org/
Deleted
Back in the day you would have been so sensitive about this sort of cross site promotion, but I guess its all about the stock price these days, huh?
The more you know, the less you understand.
LVS is not really new news and it is a nice hack and has some good use cases. But in the real world 'dictated and redundant ' load balancers (such as BigIP, etc..) are the only way you are going to run a 24/7 large dynamic web site. Would you REALLY place ONE box (Linux or not) as the gateway/proxy to your web farm, if so, then make so it is a fully redundant box (including CPU) otherwise on the day after the melt down start looking for another job. And if you really place one fully redundant box as your web farm proxy the money you spent on it is going to 10x the cost of a few BigIPs and that big box is not going to be running Linux anyway.... And a warm LVS spare is not really an option either if you are running a 24/7 site, setting up a keep-alive response system to determine if your LVS box croaked and automatically re-writing some IOS routing to use the warm spare is wrought with issues (I've seen some great setups and hacks, but not something that I would use in any type of business at is counting on revenue from their web site).
And as far as 'intensive database application' as quoted in the article, LVS does nothing for you in terms of database synchronization. If you are running a site generated from fairly static data that is synced once in a blue moon then OK you can roll a SQL engine onto each box in the farm and sync them via remote scripts, but that is not what I would call a 'intensive database application'.
They have different configurations explained here:
o verview.html
http://www.ultramonkey.org/3/topologies/
They even have an example where 2 machines act as both real servers and directors:
http://www.ultramonkey.org/3/topologies/sl-ha-lb-
Like the products from F5, Cisco and Coyotepoint. I thought it was going to be like VMWARE or MSVirtual Server.
-Randy
keepealived allows for hot standby and even active-active setups. Plus LVS syncs state via multicast. Also, no hacking of routing tables needs to be done, the standard IP takeover works. I've used it in production, taken down the primary, failed over seemlessly, state was synced, no lost connections. It worked fine at 1000 connections/second. Have you done this?
2 years and no mod points. Join reddit. Because openness is good.
The last time I tried this stuff out was in 2002. I had a minimal setup with two frontend and backend servers. The frontend machines shared a virtual IP address and kept track of oneanother using a heartbeat. However, the main limitation, as far as I was concerned, was the algorithm used to distribute the requests among the backend machines. It was just that, an algorithm: not anything intelligent.
The problem is that some client requests are 'bigger' than others. If one of my machines got swamped by one or more 'big' requests, then that algorithm would keep sending every other request to that machine even though the other machine was asleep. What I would like to see is a way for the LVS to monitor the loading on the backend machines and always send the client requests on to ones that currently have the least to do. This would, of course, mean that monitoring software would have to be installed on the backend machines so that they could constantly relay their status (CPU load, disk activity, available memory) to the LVS. Too complicated? I wouldn't know. However, it's an idea that just makes more sense to me.
*Yawn* Nothing to see here...
ps. burn karma burn!!!
Unlike most of the posters sharing their 'wisdom' on the merits (or lack thereof) of using PC's for networking ... I can say that I recently setup a load balancer using LVS in front of my Web cluster (of 6 dual Opteron's). It rocks!
:)
You can easily avoid it becoming a single point of failure by using 2 directors with realtime syncronization and failover. Keepalived works well in this regard, giving subsecond failover performance, and even uses VRRP, Cisco's own hot standby protocol.
As for the level hardware that you need, a low end or older PC, such as a P3-700 for instance, can easily saturate a 100 mbit connection.
I used 2 x P4 2.4G systems. So for less than a fraction of the cost of even 1 hardware based boxes, I get hot standby and should be good for way more throughput than I can afford to provide.
The best feature that LVS brings to the table that the hardware based implementations miss out on, is flexibility. This software is being enhanced all the time and nothing is impossible with it. The same cannot be said for the hardware solutions.
Unfortuneately the article does not touch on any of the nice add-ons, like keepalived, ldirectord, etc., that make LVS a manageable solution. I know that they are trying to keep the examples simple, but showing servers being configured using solely ipvsadm is not too realistic for the average person and make it look undeservedly complicated, which it is not.
Give LVS a look an see if it might not give you the features you need without paying the big iron prices.
DC
Is it just me or have i missed the point. A virtual OS is something running under something like VMWare??? How is this news???
.
>a cluster for a virtual server - an environment where one can add and remove machines as needed,
/., it is terrible.
From the very beginning it is obvious that the submitter has no clue about clusters, virtual servers and high-traffic environments.
>high-traffic Web site of intensive database application:
What the fuck is this sentence supposed to mean?
>'The main advantage of using LVS is that unlike Microsoft network load-balancing clusters, the LVS allows you to add a node running any operating system that supports TCP/IP to the cluster.'"
Any TCP/IP load balancer allows that.
I haven't seen worse article for quite some time now. Even for
Here's another approach: put Linux on a CompactFlash card instead of a hard drive. Keep the filesystem mounted read-only for normal operation. Test upgrades on a different computer and CF card. Upgrade by swapping out CF cards. If you can build a PC that doesn't need fans, then you've removed all moving parts from the equation. For smaller installations, single-board computers such as the Soekris are very reliable. For larger installations, you can usually find a 1U system with the level of performance you need.
It was always just so much simpler to get a more expensive Cisco box in the long run due to its design, documentation, an performance.
It always depends on what you're doing, of course, and also what you're familiar with, but for my routing/firewalling/VPN/load balancing/ etc needs I've simply found Linux to be more flexible.
The reason this is a perfect solution for even high traffic sites is because the place where you need the horsepower of multiple machines and complex configuration are on the load balanced servers. LVS allows extremely simple set up requirements on the load balancer and the load balanced server (beyond whatever you need to run your site), very reliable, etc.
These arguments for "hardware" load balancers seem like the same arguments that were used in the past for "hardware" firewalls, proxy servers, web caches, etc.
This LVS may be free, but it's nowhere as advanced as current load balancers out there.
For instance, I know of a few that will have the return traffic sent directly from a "real server" directly to the client, rather than that roundabout trip to the scheduler and back out. This is great for offloading network congestion.
eTrade SUCKS
OpenSSI seems to be a good solution also
In the hope that someone doesn't make the mistake we had made, F5 sucks.
I don't know about the 4.* versions (which where FreeBSD), the new versions (9.*) are build upon RedHat.
A open source thing is better because of:
Open bug lists.
Features that simple not work (a timeout for a conection can be choosen but it is never applied) won't be there.
Support Forums where you can get help from real people, not from hot-line minions. (Which are paid to do work they don't like)
I for myself can say that I would love to throw the thousands of euros hardware load balancing away but we won't because it had cost a lot of money.
With open source we would more care about the decisions that we need to face in the future instead of the ones that were made in the past.
Yes, there is a system which can add capacity at will, without a reboot or other disruption. Without even uncrating a box, in fact.
http://www.ibm.com/eserver/zseries/linux