在大数据时代的今天,集群这个概念,我想是可以作为大数据这个更加抽象的名词的一种缩影的解释,但又不完全相同。集群不仅仅要在处理速度上有质的飞跃,而且在某种程度上,是提供更加可靠的数据处理的。LB、HA、HP这三种集群类型,在各自的领域,都有着不同的使用范围。而集群的实现,有不同的实现工具,基于四层的LVS和基于七层的Nginx、Haprocy都可以实现,今天简单谈一下基于LVS的实现。
首先要了解LVS的工作原理,LVS叫做Linux虚拟服务,大家可以理解为一个独立于真正的服务器之外的一个虚拟的、用来提供虚拟服务的服务器,称之为调度器(schedule),它负责Client对realserver的访问的控制选择,通过LVS连接到realserver,再连接到数据库,再对请求做出响应。调度器有NAT、DR和TUN三种类型,同时调度器也有着诸多的调度算法:rr、lrr、dh、sh、wlc.....在这些调度算法中,wlc(加权最少连接)运用最多,它可以根据服务器的空闲情况对服务器的访问做出最合适的选择。而管理调度器的命令行工具是ipvsadm,真正起到管理作用的是内核上的ipvs。类似于防火墙的iptables/netfilter。
下面介绍一下,简单的配置过程。
1、Client 172.16.9.1 director:172.16.10.1和192.168.10.10 realserver:192.168.100.8、192.168.100.9
2、在director、realserver上分别启动web服务,并编写合适的web页面
3、在director上定义web服务为集群服务并定义调度算法
ipvsadm -A -t 172.16.10.1:80 -s wlc
4、管理集群服务中的realserver
ipvsadm -a -t 192.168.100.8:80 -m -w 5
ipvsadm -a -t 192.168.100.9:80 -m -w 1
5、测试
Client多次访问director
6、查看
ipvsadm -l -c
就会发现,对于Client的响应,俩个realserver是按照比重进行的,这也就通过LVS的NAT机制实现了LB。