LVSの概念と重要性
LVS:
コンセプトは:Linuxの仮想サーバが仮想サーバクラスタであることを意味するLinuxの仮想サーバー、の略です
役割:例
そこに3個の細胞であるが、時間と休憩時間の仕事は同じではありませんように、作業の最初の日が、仕事の夜、よりカジュアルな時間である1、
LVSのバランスをとる負荷がない場合には、これら三つの細胞は、それが、唯一自分のサーバーを使用することができます
サーバーの唯一の1Mの帯域幅は、このような場合は、三つのセルがあり、他のテーブルのセルとすることができる唯一の制限しながら、常に、誰と一定の期間になります
(図示:大きな円は集団の細胞を表し、小さな円は兆の代わりにサーバ、1Mの帯域幅を表します。)
フォーム示すLVSの使用後
サークル:群集
小さな円の中:負荷分散サーバー
右の小さな円:サーバーのRealServer
これは、別の時間に使用できるサーバーの数を等しくします
それは何.LVS?
英語名は、LVSのLinux仮想サーバー、つまりLinuxの仮想サーバーです。
それは私たちの国の博士チャンウェン・曲のオープンソースプロジェクトです。メモリのLinux 2.6では、それはあなたが、カーネルを再コンパイルする必要があります。このカーネルバージョンの前に、カーネルの一部となっています。
次の2つの.LVSを行うことができますか?
LVSは、主に複数のサーバのロードバランシングのために使用されています。それは、高パフォーマンス、高可用性サーバーのクラスタリング技術を実現することができ、ネットワーク層で動作します。
これは、スーパーサーバーを形成するために一緒に、低性能サーバーの数の組み合わせで安価です。
それは、使用、シンプルな構成、およびロードバランシングの様々な方法に簡単です。これは、サーバーでも、サーバークラスタ内では動作しません、それは全体的な結果には影響しない、安定性と信頼性です。
さらに、拡張性にも非常に良いです。
III。作品
1.Loadバランサー:これは、LVSの中核であるが、それは我々のサイトMVCコントローラモデルのようなものです。
顧客の要求は、特定のアルゴリズム自体ではないアドレスの特定のビジネスに合わせて処理するために、次のレベル別のサーバーに配布することは責任があります。
層の状態で別の層は、サーバーの次の層が正常に動作していない場合、それが自動的にそれを削除し、可能なプラスを再開します、監視することができます。
この層は、1つまたはいくつかのDirectorサーバーコンポーネントで構成されています。
サーバーアレイ:この層は、特定の操作を担当しています。
合成WEBサーバ、メールサーバ、FTPサーバ、DNSサーバなどがあるかもしれません。
注意,其实上层的Director Server也可以当Real server用的。
Shared Storage:主要是提高上一层数据和为上一层保持数据一致。
四.负载均衡机制
前面我们说了LVS是工作在网络层。相对于其它负载均衡的解决办法,比如DNS域名轮流解析、应用层负载的调度、客户端的调度等,它的效率是非常高的。LVS的通过控制IP来实现负载均衡。IPVS是其具体的实现模块。IPVS的主要作用:安装在Director Server上面,在Director Server虚拟一个对外访问的IP(VIP)。用户访问VIP,到达Director Server,Director Server根据一定的规则选择一个Real Server,处理完成后然后返回给客户端数据。这些步骤产生了一些具体的问题,比如如何选择具体的Real Server,Real Server如果返回给客户端数据等等。IPVS为此有三种机制:
1.VS/NAT(Virtual Server via Network Address Translation),
即网络地址翻转技术实现虚拟服务器。当请求来到时,Diretor server上处理的程序将数据报文中的目标地址(即虚拟IP地址)改成具体的某台Real Server,端口也改成Real Server的端口,然后把报文发给Real Server。
Real Server处理完数据后,需要返回给Diretor Server,然后Diretor server将数据包中的源地址和源端口改成VIP的地址和端口,最后把数据发送出去。
由此可以看出,用户的请求和返回都要经过Diretor Server,如果数据过多,Diretor Server肯定会不堪重负。
2.VS/TUN(Virtual Server via IP Tunneling),即IP隧道技术实现虚拟服务器。
它跟VS/NAT基本一样,但是Real server是直接返回数据给客户端,不需要经过Diretor server,这大大降低了Diretor server的压力。
3.VS/DR(Virtual Server via Direct Routing),即用直接路由技术实现虚拟服务器。
跟前面两种方式,它的报文转发方法有所不同,VS/DR通过改写请求报文的MAC地址,
将请求发送到Real Server,而Real Server将响应直接返回给客户,免去了VS/TUN中的IP隧道开销。
这种方式是三种负载调度机制中性能最高最好的,但是必须要求Director Server与Real Server都有一块网卡连在同一物理网段上。
五.负载调度算法
前面我们都知道Director Server要选择不同的Real server,那么它具体的如果选择Real Server以达到负载均衡的呢,
IPVS实现了八种调度方法,具体算法可以查看官网或者百度,这里就不一一列出了。官网:www.linuxvirtualserver.org。
六、具体配置操作
首先我们这里有三台机子,IP分别是192.168.132.30(Diretor server),192.168.132.64(Real server 1),
192.168.132.68(real server 2)。在real server 1和2上面,已经配置好了web服务,
并且我们假设还有一个对外访问的虚拟IP是192.168.132.254(VIP)。另外在Diretor server上面已经安装好了ipvsadm。
下面我们VS/DR介绍详细的配置过程。
Diretor server上面的配置:
Diretor server上面的配置: //首先在Director Server上绑定一个虚拟IP(也叫VIP),此IP用于对外提供服务: Ifconfig eth0:0 192.168.132.254 broadcast 192.168.132.254 netmask 255.255.255.255 up //给设备eth0:0指定一条路由 route add -host 192.168.132.254 dev eth0:0 //启用系统的包转发功能 echo "1">/proc/sys/net/ipv4/ip_forward //清楚ipvsadm以前的设置 ipvsadm -C //添加一个新的虚拟IP记录192.168.132.254,其持续服务之间是120秒 ipvsadm -A -t 192.168.132.254:80 -s rr -p 120 //在新增的虚拟IP记录中新增两天real server记录,-g即为使用VS/DR模式 ipvsadm -a -t 192.168.132.254:80 -r 192.168.132.64:80 -g ipvsadm -a -t 192.168.132.254:80 -r 192.168.132.68:80 -g //启用LVS服务 ipvsadm 两台real server上的配置: /*在回环设备上绑定了一个虚拟IP地址,并设定其子网掩码为255.255.255.255,与Director Server上的虚拟IP保持互通*/ ifconfig lo:0 192.168.132.254 broadcast 192.168.132.254 netmask 255.255.255.255 up route add -host 192.168.132.254 dev lo:0 //禁用本机的ARP请求echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce
之后在其他客户端机子上面,访问http://192.168.132.254/,则可以看到结果了。
最后我把这个写出了SHELL脚本,可以下载使用。
LVS:
概念:是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统
作用:举例
像有三个小区,但是工作的时间和休息的时间不一样,第一个是白天工作,一个是晚上工作,一个是比较散时间,
如果没有负载均衡lvs的话,那么这三个小区,都是只是能用自己的那台服务器,
仅仅的用一台服务器的带宽1M,这样的话,三个小区就会总会有一段时间会没有人用,而其他的小区又只能限制在一台上
(图示:大圈代表小区集体,小圈代表服务器,1M代表一兆的带宽)