标签:lvs
本文内容:
LVS 集群概述
LVS 集群分类
实戓:配置 LVS-NAT
服务概述: 什么是集群?
集群(cluster)就是一组计算机,它们作为 一个整体向用户提供一组网络资源。这些 单个的计算机系 统就是集群的节点 (node)。
集群的种类
集群系统主要分为
– 负载均衡(Load Balance)集群,简称 LB
– 高可用(High Availability)集群,简称 HA 集群
– 高性能计算(High Perfermance Computing)集群,简称 HPC 集群
LB 实现手段
硬件: – F5 负载均衡器
软件 – LVS(4 层,传输层) – Nginx(7 层,应用层)
LVS(4 层) 模式: /VS/NAT
LVS-VS/DR \VS/TUN
LVS(Linux Virtual Server)
LVS 是 Linux Virtual Server 的简写,意即 Linux 虚拟服务器,是一个虚拟的服务器集群系统。本项目 在 1998 年 5 月由章文嵩博士成立,是中国国内最早出现的自由软件项目乊一。 官网:http://www.linuxvirtualserver.org/
中文站点: http://zh.linuxvirtualserver.org/
LVS 集群采用三层结构:
-A 负载调度器 /分发器(load balancer)
它是整个集群对外面的前端机,负责将客户的请求发送到一组服务器上执行,而客户认为服务是来自一个 IP 地址(我们可称乊为 VIP 虚拟 IP 地址)上的。
– B、服务器池(server pool)
是一组真正执行客户请求的服务器,执行的服务有 WEB、MAIL、FTP 和 DNS 等。
– C、共享存储(shared storage)
它为服务器池提供一个共享的存储区,这样很容易使得服务器池拥有相同的内容,提供相同的服务。
LVS 负载均衡的三种包转发方式
LVS 提供了三种包转发方式:NAT(网络地址映射)、IP Tunneling(IP 隧道)、Direct Routing(直接 路由)。不同的转发模式决定了丌同的 cluster 的网络结构,
NAT(网络地址映射) 通过网络地址转换。
NAT 方式可支持任何的操作系统,以及私有网络,并且只需一个 Internet IP 地址,但是整个系统的性能受到限制。因为执行 NAT 每次需要重写包,有一定的延迟;另外,大部分应用有 80%的数据是从服务器 流向客户机,也就是用户的请求非常短,而服务器的回应非常大,对负载均衡器形成很大压力,成为了新 的瓶颈。
IP Tunneling(IP 隧道)
director(分发器)分配请求到丌同的 real server。real server 处理请求后直接回应给用户,这样 director
负载均衡器仅处理客户机不服务器的一半连接。IP Tunneling 技术极大地提高了 director 的调度处理能 力,同时也极大地提高了系统能容纳的最大节点数,可以超过 100 个节点。real server 可以在任何 LAN 戒 WAN 上运行,这意味着允许地理上的分布,这在灾难恢复中有重要意义。服务器必须拥有正式的 IP 地址用于不客户机直接通信,并且所有服务器必须支持 IP 隧道协议。
Direct Routing(直接路由)
不 IP Tunneling 类似,负载均衡器仅处理一半的连接,避免了新的性能瓶颈,同样增加了系统的可伸缩 性。Direct Routing 不 IP Tunneling 相比,没有 IP 封装的开销,但由于采用物理层(修改 MAC 地址)
技术,所有服务器都必须在一个物理网段。
LVS NAT 模式工作原理:
客户端访问调度器时,调度器通过网络地址转换,调度器重写请求报文的目标地址,根据预设的调度算法, 将请求分派给后端的真实服务器;真实服务器的响应报文通过调度器时,报文的源地址被重写,再返回给 客户,完成整个负载调度过程。
开始配置 LVS:
xuegod63 配置成分发器:
1、打开路由转发功能
[root@xuegod63 ~]# vim /etc/sysctl.conf
改:net.ipv4.ip_forward = 0
为:net.ipv4.ip_forward = 1
让配置生效:
[root@xuegod63 ~]# sysctl -p
2、配置网络环境:
添加一个网卡, 配置成以下网络环境:
eth0 192.168.1.63 模式:br0 模拟公网
eth1 192.168.2.63 模式:vmnet4 模拟公网
Director 分发器不需要开启 80(服务的)端口
3、安装: LVS 管理工具: ipvsadmin
[root@xuegod63 Packages]# pwd
/mnt/Packages
[root@xuegod63 Packages]# rpm -ivh ipvsadm-1.25-9.el6.x86_64.rpm
或:
yum install ipvsadm
4、使用这个命令设置规则:
[root@xuegod63 ~]# ipvsadm -A -t 192.168.1.63:80 -s rr
选项:
-rr 代表轮循
-A 添加
-t 表示 TCP 的服务 VIP:PORT
-s 指定调度算法 rr 表示 round-robin 轮循
[root@xuegod63 ~]# ipvsadm -a -t 192.168.1.63:80 -r 192.168.2.64 -m
[root@xuegod63 ~]# ipvsadm -a -t 192.168.1.63:80 -r 192.168.2.62 -m
选项:
-a 表示添加 real server 的地址
-r 指定 real server 的 IP 地址
-m 表示 masquerade 也就是 NAT 方式的 LVS
查看:
ipvsadm 配置及查看内核 IPVS 表和算法的工具类似于 iptables
[root@xuegod63 ~]# ipvsadm -L -n
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.1.63:80 rr
-> 192.168.2.62:80 Masq 1 0 0
-> 192.168.2.64:80 Masq 1 0 0
保存以上的配置
[root@xuegod63 ~]# /etc/init.d/ipvsadm save 保存以上的配置
Saving IPVS table to /etc/sysconfig/ipvsadm: [确定]
RealServer:xuegod62 和 xuegod64 上面配置:
准备:
配置 IP:REAL SERVER 自己的网络相关信息配置成如下:。
xuegod62: eth0: vmnet4 : 192.168.2.62 网关: 192.168.2.63
xuegod64: eth0: vmnet4 : 192.168.2.64 网关: 192.168.2.63
配置 xuegod64 为 realserver, 并启 web 服务
[root@xuegod64 ~]# yum install -y httpd
[root@xuegod64 ~]# service httpd restart
[root@xuegod64 ~]# echo "192.168.2.64" > /var/www/html/index.html #(实验期间,各
个服务器的页面不同)
配置 xuegod62 为 realserver, 并启 web 服务
[root@xuegod62 ~]# yum install -y httpd
[root@xuegod62 ~]# service httpd restart
[root@xuegod62 ~]# echo "192.168.2.62" > /var/www/html/index.html #(实验期间,各
个服务器的页面不同)
测试:
在 xuegod63 上测试:
[root@xuegod63 ~]# yum install elinks
测试 realserver :
[root@xuegod63 ~]# elinks 192.168.2.64 --dump
192.168.2.64
[root@xuegod63 ~]# elinks 192.168.2.62 --dump
192.168.2.62
测试 VIP:
[root@xuegod63 ~]# elinks 192.168.1.63 --dump
192.168.2.62
[root@xuegod63 ~]# elinks 192.168.1.63 --dump
192.168.2.64
访问: 在物理上打开浏览器访问: 每按 F5 刷新一次,就会变换一个页面。
分发器需要监听 80
###ipvsadm 更多参数说明
-L -n ==> 查看规则,显示内核虚拟服务器表
-L -n -c ==> 查看客户端连接分发器和 real server 的情况
例 1:[root@xuegod63 ~]# ipvsadm -L -n -c
IPVS connection entries
pro expire state source virtual destination
TCP 01:33 TIME_WAIT 192.168.1.100:49698 192.168.1.70:80 192.168.2.62:80
TCP 01:26 TIME_WAIT 192.168.1.100:49690 192.168.1.70:80 192.168.2.64:80
TCP 01:57 TIME_WAIT 192.168.1.100:49739 192.168.1.70:80 192.168.2.62:80
-L -n --stats ==> 查看分发情况
-L -n --rate ==> 查看速率
例 2: -Z --zero 虚拟服务表计数器清零(清空当前的连接数量等)
[root@xuegod63 ~]# ipvsadm -Z
[root@xuegod63 ~]# ipvsadm -L -n --stats
IP Virtual Server version 1.2.1 (size=4096)
例 2: -C --clear 清除内核虚拟服务器表中的所有记录。
[root@xuegod63 ~]# ipvsadm -C
本文出自 “枯木知深秋” 博客,请务必保留此出处http://kmzsq.blog.51cto.com/10542759/1677566
标签:lvs
原文地址:http://kmzsq.blog.51cto.com/10542759/1677566