Linux下群集基础与利用群集实现负载均衡

服务器群集技术主要使用是实现网络的负载均衡,通俗地讲就是把多台服务器通过快速通信链路连接起来,从外部看来,这些服务器就像一台服务器在工作,而对内来说,外面来的负载通过一定的机制动态地分配到这些节点机中去,从而达到超级服务器才有的高性能、高可用。

群集的优点:

高可伸缩性:群集可以随着负荷的增长,群集系统中添加更多的服务器,来分担网络流量

高可用性:是指群集可以在一台服务器不工作的时候,另一台服务器接管这台服务器的工作,防止其服务器完全瘫痪

高可管理性:系统管理员可以从远程管理一个、甚至一组集群。

LVS(Linux Virtual Server),虚拟服务器是一个高度可扩展性和高可用性的服务器,建立在一个集群的服务器中。服务器集群的架构对用户是完全透明的,并且用户使用起来感觉它只有一个高性能虚拟服务器。

LVS包括IPVS与ipvsadm, IPVS称为IP虚拟服务器是运行在LVS下的提供负载平衡功能的一种技术,在linux2.6的内核中已经默认嵌入。它基本上就是一种4层的交换机

集群计算机按功能和结构可以分成以下几类:

高可用性集群 High-availability (HA) clusters

负载均衡集群 Load balancing clusters

高性能计算集群 High-performance (HPC) clusters

网格计算 Grid computing

LVS集群通常是由LVS Director用于中继入站请求到集群内部节点的转发方法类型描述的。

目前可用的三种方法是:

网络地址转换(LVS-NAT)

直接路由(LVS-DR)

IP隧道(LVS-TUN

示例:linux下实现网络的负载均衡

硬件:

RedHat5.4    ip 192.168.2.20 (属于vmware 1)  192.168.101.140(外网)

Redhat5.4.1  ip 192.168.2.10  (vmware 1)

Redhat5.4.2  ip 192.168.2.30    (vmware 1)

Windows xp  ip 192.168.101.110  (外网)

条件:我们现在把redhat5.4作为负载均衡的转发器(Director) 它上面有两块网卡,分别配置了一个内部的ip和一个外网的ip

Redhat5.4.1与redhat5.4.2分别是两个http服务器,分别分配有内部ip地址

Windows xp 是一台外网的测试机

现在我们开始实验

1》  redhat5.4.1配置成http服务器

[root@localhost ~]# mount /dev/cdrom /mnt/cdrom

mount: block device /dev/cdrom is write-protected, mounting read-only

[root@localhost ~]# cd /mnt/cdrom/Server/

[root@localhost Server]# rpm -ivh httpd-2.2.3-31.el5.i386.rpm

开启httpd服务器

[root@localhost Server]# service httpd start

Starting httpd:                                            [  OK  ]

为这个服务器做一个主页,填入要显示的内容

[root@localhost Server]# echo "aaaa" > /var/www/html/index.html

2》  redhat5.4.2也配置成服务器

配置方法同上

在主页中写入内容

[root@localhost Server]# echo "bbbbb" > /var/www/html/index.html

开启服务

2》在redhat5.4上进行代码配置

因为这台主机实现的是转发器(Director)的功能,所以我们需要开启它的地址转发功能

[root@localhost ~]# vim /etc/sysctl.conf

修改net.ipv4.ip_forward =0为net.ipv4.ip_forward =1 开启转发功能

由于我们是在用户空间中实现的,所以我们使用ipvsadm来实现负载均衡的配置,ipvsadm与iptables比较类似,从2.6的版本开始,ipvsadm内核代码已经被加入到了Linux的内核之中,我们只是使用ipvsadm使用其配置。

安装ipvsadm软件

[root@localhost ~]# mount /dev/cdrom /mnt/cdrom

[root@localhost Cluster]# rpm -ivh ipvsadm-1.24-10.i386.rpm

warning: ipvsadm-1.24-10.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186

Preparing...                ########################################### [100%]

1:ipvsadm                ########################################### [100%]

软件安装成功,我们可以尝试着启动

[root@localhost Cluster]# service ipvsadm start

Clearing the current IPVS table:                          [  OK  ]

Applying IPVS configuration: /etc/init.d/ipvsadm: line 62: /etc/sysconfig/ipvsadm: No such file or directory

[FAILED]

会发现启动时会发生错误,根据提示我们可以看到没有/etc/sysconfig/ipvsadm这个文件,这是因为我们没有为它配置规则的原因。现在我们开始规则的配置,使用群集的方式要把内部的两个服务器的ip地址都映射到外部的一个ip来实现负载均衡,使用轮询的方式对两个网页进行轮询查看。参数配置说明见文档,我们也可以直接man ipvsadm来查看配置文档。

[root@localhost ~]# ipvsadm -A -t 192.168.101.140:80 -s rr

[root@localhost ~]# ipvsadm -a -t 192.168.101.140:80 -r 192.168.2.10 -m

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/6a8c56e376ec2efea43d600a599daddb.html