|
LVS的安装与使用
第1章 LVS原理及介绍
1.1 LVS简介
LVS是Linux Virtual Server的简写,意思就是Linux虚拟服务器,是一个虚拟的服务器集群系统,可以在UNIX/LINUX平台下实现负载均衡集群功能。该项目在1998年5月由章文嵩博士组织成立,是中国国内最早出现的自由软件项目之一。
LVS项目介绍:
LVS项目主页:http://www.linuxvirtualserver.org/
LVS项目介绍:http://www.linuxvirtualserver.org/zh/lvs1.html
LVS集群的体系结构:http://www.linuxvirtualserver.org/zh/lvs2.html
LVS集群中的IP负载均衡技术:http://www.linuxvirtualserver.org/zh/lvs3.html
LVS集群的负载调度:http://www.linuxvirtualserver.org/zh/lvs4.html
LVS负载均衡调度技术是在Linux内核中实现的,因此,被称之为Linux虚拟服务器(Linux Virtual Server)。我们使用该软件配置LVS时候,不能直接配置内核中的ipvs,而需要使用ipvs的管理工具ipvsadm进行管理。
q LVS技术点小结:
1、真正实现调度的工具是IPVS,工作在Linux内核层面。
2、LVS自带的IPVS命令行管理工具是ipvsadm。
3、keepalived实现管理IPVS及负载均衡器的高可用。
4、Red hat工具Piranha WEB管理实现调度的工具IPVS。
1.2 简单术语介绍
术语简写
| 术语含义
| CIP
| 客户端的IP地址,client ip
| DIP
| 负载均衡器对应的实际IP地址
| VIP
| 需在均衡器提供服务的地址
| RIP
| 提供服务的节点地址
| LB
| 负载均衡服务器
| RS
| 节点服务器,Real Server
| 1.3 DR模式介绍(Direct Routing)
1、通过在调度器LB上修改数据包的目的MAC地址实现转发,注意,源IP地址任然是CIP,目的地址任然是VIP。
2、请求报文经过调度器,而RS响应处理后的报文无需经过调度器LB,因此,并发访问量大时使用效率很高(和NAT模式比)。
3、因DR模式是通过MAC地址的改写机制实现的转发,因此,所有的RS节点和调度器LB只能在一个局域网LAN中(小缺点)。
4、需要注意RS节点的VIP的绑定(lo:vip/32,lo1:vip/32)和ARP抑制问题。
5、强调下:RS节点的默认网关不需要是调度器LB的DIP,而是直接IDC机房分配的上级路由器的IP(这是RS带有外网IP地址的情况),理论讲:只要RS可以出网即可,不是必须要配置外网IP。
6、由于DR模式的调度器仅进行了目的的MAC地址的改写,因此,调度器LB无法改变请求报文的目的端口(和NAT要区别)。
7、当前,调度器LB支持几乎所有的UNIX,LINUX系统,但目前不支持WINDOWS系统。真实服务器RS节点可以是WINDOWS系统。
8、总的来说DR模式效率很高,但是配置也比较麻烦,因此,访问量不是特别大的情况下可以用haproxy或者nginx取代。这符合运维的原则:简单、易用、高效。日1000-2000W PV或并发1万以下都可以考虑使用haproxy/nginx(LVS NAT模式)。
9、直接对外的访问业务,例如:web服务做RS节点,RS最好用公网IP地址。如果不直接对外的业务,例如:MySQL,存储系统RS节点,最好只用内部IP地址。
注:直接路由,最大的特点是不更改源IP和目标IP,改变的是MAC地址
1.4 LVS集群算法
算法
| 说明
| rr
| 轮循调度(Round-Robin),它将请求依次分配不同的RS节点,也就是在RS节点中均摊请求。这种算法很简单,但是只适合于RS节点处理性能相差不大的情况。
| wrr
| 加权轮循调度(Weighted Round-Robin),它将依据不同的RS节点的权值分配任务。权值较高的RS将优先获得任务,并且分配到的连接数将比权值较低的RS节点更多。相同权值的RS得到相同数目的连接数。
| wlc
| 加权最小连接数调度(Weighted Least-Connection)假设各台RS的权值依次为Wi(I=1..n),当前的TCP连接次数依次为Ti(I=1..n),依次选取Ti/Wi为最小的RS作为下一个分配的RS。
| dh
| 目的地址哈希调度,以目的地址为关键字查找一个静态hash表来获得需要的RS。
| sh
| 源地址哈希调度,以源地址为关键字查找一个静态hash表来获得需要的RS。
| 第2章 LVS的安装与配置
2.1 服务规划
2.1.1 服务器规划表
LVS服务器
| 2台
| 负载转发四层TCP请求
| HTTP服务器
| 2台
| 负载提供HTTP服务
| 说明:总共需要4台服务器完成本次项目
| 2.1.2 主机IP规划表
服务器说明
| IP地址
| 主机名称规则
| LVS服务器
| 10.0.0.18/24
| lb01
| LVS服务器
| 10.0.0.19/24
| lb02
| Nginx服务器
| 10.0.0.16/24
| nginx
| Apache服务器
| 10.0.0.17/24
| apache
|
| 10.0.0.21/24
| 虚拟IP地址
| 2.1.3 主机名解析
172.16.1.16 nginx
172.16.1.17 apache
172.16.1.18 lb01
172.16.1.19 lb02
2.2 安装环境
q 操作系统版本
[root@server ~]# cat /etc/redhat-release
CentOS release 6.5 (Final)
[root@server ~]# uname -r
2.6.32-431.el6.x86_64
[root@server ~]# uname -m
x86_64q LVS软件版本
[root@lb02 ~]# rpm -qa ipvsadm
ipvsadm-1.26-4.el6.x86_642.3 软件安装
2.3.1 安装LVS服务
LVS可以通过yum命令安装,或者通过源码编译的方式安装,在此选择yum安装。分别在两台LVS服务器安装LVS服务,安装过程如下:
q 查看是否已安装inotify
[root@lb02 ~]# rpm -qa ipvsadm
[root@lb02 ~]# # |
|
|
|
|
|
|