文档章节

ipvs

yagujj
 yagujj
发布于 2015/07/13 20:52
字数 909
阅读 18
收藏 0


                                                                                 ipvs负载均衡(lvs)

IPVS在内核中的负载均衡调度是以连接为粒度的。在HTTP协议(非持久)中,每个对象从WEB服务器上获取都需要建立一个TCP连接,同一用户 的不同请求会被调度到不同的服务器上,所以这种细粒度的调度在一定程度上可以避免单个用户访问的突发性引起服务器间的负载不平衡。

在内核中的连接调度算法上,IPVS已实现了以下十种调度算 (http://zh.linuxvirtualserver.org/node/35)

  • 轮叫调度(Round-Robin Scheduling

  • 加权轮叫调度(Weighted Round-Robin Scheduling

  • 最小连接调度(Least-Connection Scheduling

  • 加权最小连接调度(Weighted Least-Connection Scheduling

  • 基于局部性的最少链接(Locality-Based Least Connections Scheduling

  • 带复制的基于局部性最少链接(Locality-Based Least Connections with Replication Scheduling

  • 目标地址散列调度(Destination Hashing Scheduling

  • 源地址散列调度(Source Hashing Scheduling

  • 最短预期延时调度(Shortest Expected Delay Scheduling

  • 不排队调度(Never Queue Scheduling

具体的调度算法会在以后的博客中概述!

################################################################################

注意:实验之前关闭防火墙与selinux

实验环境:rhel6.5

lvs调度器主机:172.25.28.8 vm8.example.com

后台web应用服务器:172.25.28.1 vm1.example.com

172.25.28.4  vm4.example.com


两台web服务主机安装httpdyum install httpd -y

两台web主机执行以下操作:

[root@vm1 ~]# cd /var/www/html/     分别 在各自默认发布目录下建立html文件

[root@vm1 html]# cat index.html

vm1.example.com

[root@vm4 html]# cat index.html

vm4.example.com

[root@vm8 ~]# yum install -y ipvsadm       在调度主机上面安装软件

[root@vm8 ~]# ifconfig eth0:0 172.25.28.100 netmask 255.255.255.0 up 设置虚拟ip

[root@vm1 html]# ifconfig eth0:0 172.25.28.100 netmask 255.255.255.255 设置后端应用服务器的虚拟ip

vm1的操作与vm4进行一样的操作

[root@vm1 html]# yum install -y arptables_jf

[root@vm1 html]# /etc/init.d/arptables_jf start

[root@vm1 html]# arptables -A IN -d 172.25.28.100 -j DROP

[root@vm1 html]# arptables -A OUT -s 172.25.28.100 -j mangle --mangle-ip-s 172.25.28.1

[root@vm1 html]# /etc/init.d/arptables_jf save

Saving current rules to /etc/sysconfig/arptables:          [  OK  ]

[root@vm4 html]# yum install -y arptables_jf

[root@vm4 html]# /etc/init.d/arptables_jf start

[root@vm4 html]# arptables -A IN -d 172.25.28.100 -j DROP

[root@vm4 html]# arptables -A OUT -s 172.25.28.100 -j mangle --mangle-ip-s 172.25.28.4

[root@vm4 html]# /etc/init.d/arptables_jf save

Saving current rules to /etc/sysconfig/arptables:          [  OK  ]


[root@vm8 ~]# ipvsadm -A -t 172.25.28.100:80 -s rr

[root@vm8 ~]# ipvsadm -a -t 172.25.28.100:80 -r 172.25.28.1:80 -g

[root@vm8 ~]# ipvsadm -a -t 172.25.28.100:80 -r 172.25.28.4:80 -g


测试:

在浏览器中输入:http://172.25.28.100  会负载均衡显示应用服务器的首页内容

可以使用命令在调度主机上查看:

[root@vm8 ~]# ipvsadm -L

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

-> RemoteAddress:Port           Forward Weight ActiveConn InActConn

TCP  172.25.28.100:http rr

-> vm1.example.com:http         Route   1      0          2

-> vm4.example.com:http         Route   1      0          2




ipvsadm命令参数(http://zh.linuxvirtualserver.org/node/5)


-A --add-service 在内核的虚拟服务器表中添加一条新的虚拟服务器记录。也

就是增加一台新的虚拟服务器。

-t --tcp-service service-address 说明虚拟服务器提供的是tcp 的服务

[vip:port] or [real-server-ip:port]

-s --scheduler scheduler 使用的调度算法,有这样几个选项

rr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq,  默认的调度算法是: wlc.

-a --add-server 在内核虚拟服务器表的一条记录里添加一条新的真实服务器

记录。也就是在一个虚拟服务器中增加一台新的真实服务器

-r --real-server server-address 真实的服务器[Real-Server:port]

-g --gatewaying 指定LVS 的工作模式为直接路由模式(也是LVS 默认的模式)



-L|-l --list 显示内核虚拟服务器表  

-C --clear 清除内核虚拟服务器表中的所有记录。











© 著作权归作者所有

共有 人打赏支持
yagujj
粉丝 3
博文 36
码字总数 29825
作品 0
西安
私信 提问
LVS集群:ipvsadm使用及VS/NAT实现

一、ipvs与ipvsadm ipvs称之为IP虚拟服务器(IP Virtual Server,简写为IPVS)。是运行在LVS下的提供负载平衡功能的一种技术。 ipvs是LVS的关键,因为LVS的IP负载平衡技术就是通过ipvs模块(...

hoo_5
2014/05/03
0
0
Docker Swarm 进阶:Overlay 网络长连接问题

问题描述 如图所示,在 Swarm 集群中部署了 和 这两个服务,服务间通过 grpc 建立长连接实现服务间调用。然而 在调用 时,偶尔会出现如下错误: 在我们查看容器日志时,这个错误出现次数不是...

Anoyi
2018/08/21
0
0
kubernetes1.11.0安装教程,开启ipvs时代

包地址:http://sealyun.com/pro/products/ master上: cd shell && sh init.sh && sh master.sh node上:cd shell && sh init.sh 在node上执行master输出的join命令即可 (命令忘记了可以用这......

fangnux
2018/06/28
0
0
Linux集群(三)-ipvsadm工具

ipvsadm是什么 LVS由两部分由ipvs与ipvsadm组成,ipvs是LVS的核心实现需要借助管理工具ipvsadm定义LVS集群规则,ipvs根据定义好的规则进行工作。 ipvsadm的相关文件 ipvsadm语法 管理集群服务...

ljpwinxp
2018/03/24
0
0
浅谈 kubernetes service 那些事 (下篇)

欢迎访问网易云社区,了解更多网易技术产品运营经验。 五、K8s 1.8 新特性——ipvs ipvs与iptables的性能差异 随着服务的数量增长,IPTables 规则则会成倍增长,这样带来的问题是路由延迟带来...

网易云
2018/11/22
0
0

没有更多内容

加载失败,请刷新页面

加载更多

开启genelog

打开genelog genelog 可以记录数据库的操作语句。 首先进入mysql, mysql -u root -p 设置日志位置 set global general_log_file = "/tmp/general.log"; 设置全局global模式 set global gen......

狼王黄师傅
13分钟前
0
0
Java 帝国对 Python 的渗透能成功吗?哈哈

引子 Java 帝国已经成立20多年,经过历代国王的励精图治,可以说是地大物博,码农众多。 可是国王依然不满足,整天想着如何继续开拓疆土, 这一天晚上他又把几个重臣招来商议了。 IO大臣说:...

边鹏_尛爺鑫
今天
5
0
分布式事务解决方案框架(LCN)

什么是XA接口 XA是一个分布式事务协议,由Tuxedo提出。XA中大致分为两部分:事务管理器和本地资源管理器。其中本地资源管理器往往由数据库实现,比如Oracle、DB2这些商业数据库都实现了XA接口...

群星纪元
今天
6
0
linux 操作系统 常用命令和软件安装

1.系统时间更新 ntpdate time.windows.com 2.传送文件 rsync -av /home/data/a.dat -e ssh root@192.168.0.100:/home 3.传送文件夹 scp -r /home/data root@192.168.0.100:/home 4.JDK安装 ......

WJtiny
今天
3
0
pg_lightool基于basebackup的单表恢复和块恢复

开源软件pg_lightool,实现了基于wal日志的块恢复。详情参见博客:https://my.oschina.net/lcc1990/blog/1931485。由于wal日志中FPW的不确定性,它不能作为一个数据库恢复的解决方案。目前对...

movead
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部