奥飞火千万电 发表于 2019-1-3 07:38:41

day01 LVS

LVS
  一、集群

[*]一组相互独立的,通过高速网络互联的计算机构成的一个组,并以单一系统的模式加以管理
[*]将很多服务器集中起来一起进行同一种服务,在C端看来就像是只有一个服务器
[*]可以在较低成本的情况下获得在性能、可靠、灵活性方面相对较高的收益
[*]任务调度则是集群系统中的核心技术
二、集群分类
[*]高性能计算集群(HPC)
[*]高可用集群(HA)
[*]负载均衡集群(LB)
三、LVS集群组成
[*]前端:负载均衡层
-- 由一台或多台负载均衡调度器构成
[*]中端:服务器群组层
--由一组实际运行应用服务的服务器组成
[*]后端:数据共享存储层
-- 提供共享存储空间的存储区域
http://i2.运维网.com/images/blog/201808/22/d988906ca6fafeb7450de5b4fa23897a.png
四、LVS术语
[*]Director Server:调度器,将负载分发到Real Server 的服务器
[*]Real Server:真实服务器,真正提供应用服务的服务器
[*]VIP:虚拟IP地址,公布给Client访问的IP地址
[*]RIP:真实IP地址,集群节点使用的IP地址
[*]DIP:Director连接到Real Server 的IP地址
五、LVS负载均衡方式
[*]VS/NAT:通过网络地址转换实现的虚拟服务器
--Director 将用户请求报文的目的地址改变成选的的Real Server地址后,将请求转发给Real Server
--大并发访问时,调度器性能成为瓶颈
[*]VS/DR:直接使用路由技术实现虚拟服务器
--通过改写请求报文的的MAC地址,将请求发至Real Server,Real Server直接响应给客户端
[*]VS/TUN:通过隧道方式实现虚拟服务器
--Director采用隧道技术将请求发至Real Server后,Real Server 直接响应客户端
http://i2.运维网.com/images/blog/201808/22/0fdf79f70ad2f6657111d6a62d5b1237.png
六:负载均衡调度算法
[*]Director Server根据各台服务器的负载情况,通过高度算法动态选择一台Real Server
[*]LVS目前实现了10种调度算法
[*]常用调度算法有4种
--轮询(Round Robin)
--加权轮询(Weighted Round Robin)
--最少连接(Least Connections)
--加权最少连接(Weighted Least Connections)
[*]轮询(rr)
--将用户的请求平均的分配到Real Server
[*]加权轮询(wrr)
--根据真实服务器的性能设置权重,再进行轮询调度
[*]最少连接(lc)
--动态的将请求分发到已建立的连接数最少的服务器上
[*]加权最少连接(wlc)
--根据真实服务器的性能设置权重,再将网络请求调度到以建立连接的最少服务器上
[*]基于局部性的最少连接(lblc)
--根据请求的目标IP地址找出该目标IP地址最近使用的服务器,若该服务器是可用的且没有超载,将请求发送到该服务器;若服务器不存在,或者该服务器超载且有服务器处于一半的工作负载,则用“最少链接” 的原则选出一个可用的服务器,将请求发送到该服务器
[*]带复制的基于局部性最少链接(Locality-Based Least Connections with Replication)
--维护从一个目标IP地址到一台服务器的映射根据请求的目标IP地址找出该目标IP地址对应的服务器组,按“最小连接”原则从服务器组中选出一台服务器,若服务器没有超载,将请求发送到该服务器;若服务器超载,则按“最小连接”原则从这个集群中选出一台服务器,将该服务器加入到服务器组中,将请求发送到该服务器
当该服务器组有一段时间没有被修改,将最忙的服务器从服务器组中删除,以降低复制的程度。
[*]目标地址散列(Source Hashing)
--根据请求的源IP地址,作为散列键(Hash Key)从静态分配的散列表找出对应的服务器,若该服务器是可用的且未超载,将请求发送到该服务器,否则返回空
[*]目标地址散列(Destination Hashing)
--根据请求的目标IP地址,作为散列键(Hash Key)从静态分配的散列表找出对应的服务器,若该服务器是可用的且未超载,将请求发送到该服务器,否则返回空
[*]最短的期望的延迟(Shortest Expected Delay Scheduling SED)
--基于WLC算法,A、B、C三台机器分别权重1、2、3 ,连接数也分别是1、2、3如果使用WLC算法的话一个新请求进入时它可能会分给ABC中的任意一个,使用sed算法后会进行这样一个运算:A(1+1)/1,B(1+2)/2,C(1+3)/3,根据运算结果,把连接交给C
[*]  最少队列调度(Never Queue Scheduling NQ)
如果有台Real Server的连接数为0就直接分配过去,无需SED运算
七:LVS-NAT实现方式

[*]拓扑
http://i2.运维网.com/images/blog/201808/22/882c762a27cf6a344acc101df0776f56.png
[*]  配置DIP 和RIP在一个网段真实服务器网关指向DIP
ipvsadm
-A   添加虚拟服务器
-t       设置集群地址
-s       指定调度算法
ipvsadm-A -t192.168.4.100:80 -s rr
-a       添加真实服务器
-d       删出真实服务器
-r      指定真实服务器地址
-m       使用NAT 模式-gDR模式-i TUN模式
-w       为节点服务器设置权重,默认1
ipvsadm-a -t 192.168.4.100:80-r 192.168.4.1:80 -m
ipvsadm -d -r 192.168.4.1:80 -t 192.168.4.100:80
ipvsadm-Ln    查看lvs信息
ipvsadm-C   清空所有规则
环境4台主机 1client 1director 2real server
客户端ip201.1.1.200
VIP 201.1.1.100
DIP192.168.4.100
RIP 192.168.4.11/12   
(1)director开启路由转发 echo "net.ipv4.ip_forward = 1" >> /etcsysctl.conf sysctl -p 文件生效查看 /proc/sys/net/ipv4/ip_forward 文件内容为1
yum -y install ipvsadmipvsadm -A -t 192.168.4.100:80 -s rripvsadm -a -t 192.168.4.100:80 -r 192.168.4.11:80 -m ipvsadm -a -t 192.168.4.100:80 -r 192.168.4.12:80 -m
(2)真实服务器
配置ip,httpd编写测试页面
保存配置:ipvsadm-save -n >>/etc/sysconfig/ipvsadm#重定向到配置文件或 seviceipvsadm save
(3)客户端访问201.1.1.100 就可以访问到real server
(4) 修改算法
ipvsadm-E -t 192.168.4.100:80 -s wrr
八、LVS-DRDIP 必须设置在虚拟接口上
拓扑
http://i2.运维网.com/images/blog/201808/22/c7f25b545e002ca0eca9fe38bf28a5f2.png
  real配置
vim/etc/sysctl.confnet.ipv4.conf.all.arp_announce = 2net.ipv4.conf.lo.arp_announce = 2net.ipv4.conf.all.arp_ignore = 1net.ipv4.conf.lo.arp_ignore = 1
cd /etc/sysconfig/network-scripts/
vimifcfg-lo:0
DEVICE=lo:0
IPADDR=202.1.1.200
NETMASK=255.255.255.255
BROADCAST=202.1.1.200
ONBOOT=yes

  内核参数说明
·arp_announce
–0 (默认):在任意网络接口上的任何本地地址
–1:尽量避免不在该网络接口子网段的本地地址做出arp回应。当发起ARP请求的源IP地址是被设置应该经由路由达到此网络接口的时候很有用。此时会检查来访IP是否为所有接口上的子网段内ip之一。如果改来访IP不属于各个网络接口上的子网段内,那么将采用级别2的方式来进行处理
–2:对查询目标使用最适当的本地地址。在此模式下将忽略这个IP数据包的源地址并尝试选择与能与该地址通信的本地地址。首要是选择所有的网络接口的子网中外出访问子网中包含该目标IP地址的本地地址。如果没有合适的地址被发现,将选择当前的发送网络接口或其他的有可能接受到该ARP回应的网络接口来进行发送
·arp_ignore
–0(默认值):回应任何网络接口上对任何本地IP地址的arp查询请求
–1:只回答目标IP地址是来访网络接口本地地址的ARP查询请求
–2:只回答目标IP地址是来访网络接口本地地址的ARP查询请求,且来访IP必须在该网络接口的子网段内
–3:不回应该网络接口的arp请求,而只对设置的唯一和连接地址做出回应
–4-7:保留未使用
–8:不回应所有(本地地址)的arp查询
director 配置
cd /etc/sysconfig/network-scripts/
vimifcfg-eth0:0
DEVICE=eth0:0
HWADDR=00:0C:29:B6:5E:A4
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=none
IPADDR=202.1.1.200
PREFIX=24
ipvsadm-A-t202.1.1.200:80-swlcipvsadm-a-t202.1.1.200:80-r202.1.1.10-g-w1ipvsadm-a-t202.1.1.200:80-r202.1.1.20-g-w2
客户端访问
九、编写脚本,监控realserver是否出现故障,如果出现故障将其移除,如果故障恢复,再将它加入到LVS中
http://i2.运维网.com/images/blog/201808/22/e4f63128bc61312ead086a29871bb57f.png



页: [1]
查看完整版本: day01 LVS