Difference between revisions of "FAQ"

From LVSKB
Jump to: navigation, search
m (What's LVS?)
(How to compile ipvsadm on difficult Linux distributions)
 
(12 intermediate revisions by 4 users not shown)
Line 2: Line 2:
 
=== What's LVS? ===
 
=== What's LVS? ===
  
LVS stands for Linux Virtual Server, which is a highly scalable and highly available server built on a cluster of real servers, with the [[load balancer]] running on the Linux operating system. Users interact as if it were a single virtual server.
+
[[LVS]] stands for Linux Virtual Server, which is a highly scalable and highly available server built on a cluster of real servers, with the [[load balancer]] running on the Linux operating system. Users interact as if it were a single virtual server.
  
 
=== Is LVS software free? ===
 
=== Is LVS software free? ===
  
Yes! All LVS software is released under the [http://www.gnu.org/copyleft/gpl.html GNU General Public License (GPL)].
+
Yes! All [[LVS]] software is released under the [http://www.gnu.org/copyleft/gpl.html GNU General Public License (GPL)].
  
 
=== Is there a FreeBSD port of LVS software? ===
 
=== Is there a FreeBSD port of LVS software? ===
Line 14: Line 14:
 
=== Does LVS cluster support Linux servers only? ===
 
=== Does LVS cluster support Linux servers only? ===
  
No, real servers can almost run any operating systems in a LVS cluster, such as Linux, BSDs, Solaris, and Windows. [[LVS/NAT]] balance servers of the operating systems having TCP/IP support, [[LVS/TUN]] requires servers having IP Tunneling protocol, and [[LVS/DR]] requires servers having a non-arp device. Almost all the modern operating systems support non-arp device.
+
No, real servers can almost run any operating systems in a LVS cluster, such as Linux, BSDs, Solaris, and Windows. [[LVS/NAT]] balances servers of the operating systems having TCP/IP support, [[LVS/TUN]] requires servers having IP Tunneling protocol, and [[LVS/DR]] requires servers having a non-arp device. Almost all the modern operating systems support non-arp device.
  
 
== Performance ==
 
== Performance ==
Line 27: Line 27:
  
 
== Setup ==
 
== Setup ==
 +
 +
=== Is there a quick guide to setup LVS ===
 +
 +
Yes, please check the article [[Mini Mini Howto]], which covers setting up LVS quickly on Linux distributions of Fedora Core 4 or later.
  
 
=== How do I check to see if my kernel has IPVS enabled? ===
 
=== How do I check to see if my kernel has IPVS enabled? ===
  
Try to run "modprobe ip_vs" and try to see if there is /proc/net/ip_vs. If so, your kernel has [[IPVS]] enabled. You can also run "cat /proc/net/ip_vs" or "ipvsadm -Ln" to see the version number of [[IPVS]].
+
Try to run <tt>"modprobe ip_vs"</tt> and try to see if there is <tt>/proc/net/ip_vs</tt>. If so, your kernel has [[IPVS]] enabled. You can also run <tt>"cat /proc/net/ip_vs"</tt> or <tt>"ipvsadm -Ln"</tt> to see the version number of [[IPVS]].
 +
 
 +
<pre>
 +
[root@lb4 root]# ipvsadm -Ln
 +
IP Virtual Server version 1.0.11 (size=65536)
 +
Prot LocalAddress:Port Scheduler Flags
 +
  -> RemoteAddress:Port          Forward Weight ActiveConn InActConn
 +
...
 +
</pre>
 +
 
 +
You could also check your current kernel config (<tt>/proc/config{.gz}</tt> or somewhere in <tt>/boot</tt>) if <tt>CONFIG_IP_VS</tt> is set (located under <tt>Networking support->Networking options->Netfilter</tt> when using <tt>make menuconfig</tt> to configure your kernel).
 +
 
 +
=== How to compile ipvsadm on different Linux distributions ===
 +
 
 +
[[Ipvsadm]] is the tool to set up, maintain or inspect the [[IPVS]] table in the Linux kernel. See the article [[compiling ipvsadm on different Linux distributions]] for detailed information.
 +
 
 +
== Statistics ==
 +
 
 +
=== How do i get counters from ipvsadm in order to create graphs from? ===
 +
 
 +
'''Answer 1:'''
 +
 
 +
The current kernel 2.6 version of ipvsadm (v1.24) supports
 +
ipvsadm --list --stats --numeric --exact
 +
which gives you non-human-readable counters for Connections, Packets and Bytes for each Service Address and Realserver.
 +
 
 +
'''Answer 2:'''
 +
 
 +
Install [http://oss.oetiker.ch/rrdtool/ RRDtool] and preferabely [http://www.cacti.net/ Cacti] onto a host of your choice. From your favorite Linux distribution, install the [http://www.net-snmp.org/ Net-SNMP daemon] onto the Loadbalancer host. Apply the [[Net-SNMP-LVS-Module]] to the Net-SNMP daemon. Using RRDtool and/or cacti you may query the Loadbalancer and create all kind of graphs using the statistics the Loadbalancers IPVS-module delivers.
 +
 
 +
[[Category:LVS Handbook]]

Latest revision as of 17:10, 10 November 2009

General

What's LVS?

LVS stands for Linux Virtual Server, which is a highly scalable and highly available server built on a cluster of real servers, with the load balancer running on the Linux operating system. Users interact as if it were a single virtual server.

Is LVS software free?

Yes! All LVS software is released under the GNU General Public License (GPL).

Is there a FreeBSD port of LVS software?

Yes, there is a FreeBSD port of IPVS, which supports the LVS/DR and LVS/TUN methods now. See the LVS On FreeBSD page for more information.

Does LVS cluster support Linux servers only?

No, real servers can almost run any operating systems in a LVS cluster, such as Linux, BSDs, Solaris, and Windows. LVS/NAT balances servers of the operating systems having TCP/IP support, LVS/TUN requires servers having IP Tunneling protocol, and LVS/DR requires servers having a non-arp device. Almost all the modern operating systems support non-arp device.

Performance

How is the concurrent processing performance of current LVS software?

The ultimate performance of LVS depends on hardware that LVS runs on. An ordinary box with a single Pentium III processor and 100Mbps NIC card running LVS/DR can handle about 10,000 connections per second for web service. We have heard that a powerful box with good hardware and kernel tuning achieved 50,000 connections per second.

Can LVS handle more than 1 million simultaneous connections?

Yes, LVS can handle much more than 1 million simultaneous connections. One connection just costs 128 bytes in the LVS box, so an LVS box with 1G memory can handle more than 8 million simultaneous connections.

Setup

Is there a quick guide to setup LVS

Yes, please check the article Mini Mini Howto, which covers setting up LVS quickly on Linux distributions of Fedora Core 4 or later.

How do I check to see if my kernel has IPVS enabled?

Try to run "modprobe ip_vs" and try to see if there is /proc/net/ip_vs. If so, your kernel has IPVS enabled. You can also run "cat /proc/net/ip_vs" or "ipvsadm -Ln" to see the version number of IPVS.

[root@lb4 root]# ipvsadm -Ln
IP Virtual Server version 1.0.11 (size=65536)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
...

You could also check your current kernel config (/proc/config{.gz} or somewhere in /boot) if CONFIG_IP_VS is set (located under Networking support->Networking options->Netfilter when using make menuconfig to configure your kernel).

How to compile ipvsadm on different Linux distributions

Ipvsadm is the tool to set up, maintain or inspect the IPVS table in the Linux kernel. See the article compiling ipvsadm on different Linux distributions for detailed information.

Statistics

How do i get counters from ipvsadm in order to create graphs from?

Answer 1:

The current kernel 2.6 version of ipvsadm (v1.24) supports

ipvsadm --list --stats --numeric --exact

which gives you non-human-readable counters for Connections, Packets and Bytes for each Service Address and Realserver.

Answer 2:

Install RRDtool and preferabely Cacti onto a host of your choice. From your favorite Linux distribution, install the Net-SNMP daemon onto the Loadbalancer host. Apply the Net-SNMP-LVS-Module to the Net-SNMP daemon. Using RRDtool and/or cacti you may query the Loadbalancer and create all kind of graphs using the statistics the Loadbalancers IPVS-module delivers.