服务器群集技术主要使用是实现网络的负载均衡,通俗地讲就是把多台服务器通过快速通信链路连接起来,从外部看来,这些服务器就像一台服务器在工作,而对内来说,外面来的负载通过一定的机制动态地分配到这些节点机中去,从而达到超级服务器才有的高性能、高可用。
群集的优点:
高可伸缩性:群集可以随着负荷的增长,群集系统中添加更多的服务器,来分担网络流量
高可用性:是指群集可以在一台服务器不工作的时候,另一台服务器接管这台服务器的工作,防止其服务器完全瘫痪
高可管理性:系统管理员可以从远程管理一个、甚至一组集群。
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