第十周LINUX 学习笔记
LVS集群nat丶DR
HA:高可用
平均无故障时间/(平均无故障时间+平均修复时间)
负载均衡
次序
lb(负载)——>ha()
LB
tcp:lvs,haproxy
应用层:nginx haproxy ats
缓存:varnish squied
HA:heartbeat,corosync keeplived iscsi gfs2 drdb
MogileFS
NoSQL:MongoDB
集群类型:
LB:Load Banlancing(负载)
扩展容量,实现伸缩性
HA:High Availability(高可用)
服务可用性
HP:High Performace(高性能)
向量机
并发处理集群
开源方案
LB:lvs,haproxy,nginx,ats
HA:
heartbeat
corosync+pacemaker
cman+rgmanager
cman+pacemaker
keepalived
ultramonkey
HP:hadoop
LB:解决方案
硬件:
F5 BIG-IP
思杰 Citrix Netscaler
A10 A10
Array
Redware
软件:lvs
linux Virtual Server
章文嵩:正明
ipvs相当于netfilter,将用户转发
框架,需要依赖以规则完成转发
ipvs集群服务
定义一个或多个后端的服务器
ipvsadm
LVS:四层交换、四层路由
VIP:
keepalived
CIP
Director:负载均衡器
real server
DIP:跟real server交互
RIP
CIP<-->VIP--DIP<-->RIP
LVS类型:
NAT:-->(DNAT)
DR
TUN
FULLNAT
LVS NAT的特性
1.RS的应该使用私有地址
2.RS的网关必须指向DIP
3.RIP和DIP必须在同一网段内
4.请求和响应的报文都得经过Director,在高负载场景中,Director很可能成为性能凭借
5.支持端口映射
6.RS可以使用任意支持集群服务的OS
LVS DR类型
1.让前段路由将请求发往VIP时,只能是Dirctor上的VIP
解决方案
1.静态地址绑定
未必有路由器的配置权限
Director调用时静态地址绑定将难以使用
2.arptables
3.修改linux内核参数,将RS上的VIP配置在lo接口的别名上,限制linux仅对对应接口的ARP请求做相应
LVS DR类型的特性
1.RS可以使用私有地址,还可以使用公网地址,此时可以直接通过互联网连入RS,以实现配置、监控等
2.RS的网关一定不能指向DIP
3.RS跟Dirctory要在同一物理网络内(不能有路由器分隔)
4.请求报文经过Directory,但响应报文一定不经过Director
5.不支持端口映射
6.RS可以使用大多数的操作系统
LVS TUN类型:IP隧道
1.RIP,DIP,VIP都得是公网地址
2.RS的网关不会指向也不可能指向DIP
3.请求报文经过Directory,但响应报文一定不经过Director
4.不支持端口映射
5.RS的OS必须得支持隧道功能
LVS的调度方法:10种
下午:回顾
LVS-NAT,DNAT
LVS-DR(Direct Routing)
LVS-TUN:(IPIP)
LNS-FULLNAT
LVS的调度方法:10种
静态方法:仅根据算法本身进行调度
rr:Round Robin 轮询
wrr:Weighted RR 权重轮询
sh:source hashing 源地址hash
dh:destination hashing 目标地址hash
动态方法:根据算法及RS当前的复制状态
lc:Least Connection 最少连接
计算当前的负载Overhead=Active*256+Inactive来实现
wlc:Weighted LC
Overhead=(Active*256+Inactive)/weight
sed:Shortest Expect Delay 最短期望延迟
Overhead=(Active+1)*256/weight
aq:Nerver Queus: 永不排队
lblc:Locality-based least connection 基于本地的最少连接
相当于dh+lc
Lblcr:基于复制的基于本地的最少连接 Replicated and Locality-based least connection
Session持久机制
1.Session绑定:始终将统一请求者的连接定向至统一RS(第一次请求时仍有调度选择):没有容错哦能力,有损均衡效果
2.session复制:在RS之间同步session,因此,每个RS持集群中所有的session;对于大服务器集群环境不适用
3.session服务器:利用单独部署的服务器来统一管理session
LNS-FULLNAT:
LVS的集群服务:
四层交换,四层路由
根据请求目标套接字(包括端口的协议类型tcp,udp)来实现转发
ipvsadm
集群服务相关
-A:添加一个集群服务
-t:tcp
-u:udp
-f: firewall make 通常应用于将两个或以上的服务绑定为一个服务进行处理时使用
service-address
-t IP:port
-u ip:port
-f firewall_mark
-s 调度算法,默认为wlc
-p: timeout persistent connection 持久连接
-E:修改定义过的集群服务
-D -t|u|f service-address:删除指定的集群服务
RS相关
-a:向指定的CS中添加RS
-t|-u|-f service-address:指明将RS添加至那个Cluster Service 中
-r:指定RS,可以包含{IP[:port]},只有支持端口映射的LVS类型才允许此处使用跟集群服务中不同的端口
lvs类型:
-g:Gateway,DR
-i:ipip,TUN
-m:masquerade(地址伪装),NAT
默认为DR
指定RS权重
-w
上限下限:
-x:下限
-y:上限
-e:修改指定的RS属性
-d -t|u|f service-address -r server-address:在指定的集群服务中删除一个指定的RS
情况所有的集群服务:
-C
保存规则(使用输出重定向):
ipvsadm-save
ipvaadm -S
载入指定的规则:(使用输入重定向)
ipvsadmin-restore
ipvasdm -R
查看ipvs规则等
-L [options]
-n 使用数字格式显示IP地址,不反解
-c:查看连接数相关信息
--stats:显示统计数据
--rate:数据传输速率
--timeout:显示tcp会话时长
--daemon:守护进程的信息
--sort:对虚拟服务进行排序,默认为升序
--exact:精确显示,不做单位换算
-Z:计数器清零
LVS-DR模型
Director两个地址:VIP,DIP
RS有两个地址:VIP,RIP
禁止rs响应对BIP的ARP广播请求
1.在前端路由上实现静态MAC地址VIP的绑定
前提:得有路由器的配置权限
缺点:Directory故障转移时,无法更新此绑定
2.arptables
前提:在各RS在安装arptables程序i,并编写arptables规则
缺点:依赖于独特功能的应用程序
3.修改Linux内核参数
前提:RS必须是Linux
缺点:适用性差
两个参数:
arp_announce:定义通告模式
arp_ignore:定义收到arp请求的响应模式
配置专用路由,以使得响应报文首先通过VIP所篇日志的lo上的别名接口
Linux的工作特性:IP地址是属于主机,而非特定网卡
LVS-DR配置架构根据其VIP与RIP是否在同一个网络内有两种情况
在Directory 和RS上配置VIP,要使用如下格式
ifconfig ALIAS VIP netmask 255.255.255.255 broadcast VIP
route add -host VIP dev
LVS-DR的配置
Director
iptables -t filter -F
ifconfig eth0:0 VIP netmask 255.255.255.255 broadcast VIP up
route add -host VIP dev eth0:0
RS:
echo 1 >/proc/sys/net/ipv4/conf/all/arp_ignore
echo 1 >/proc/sys/net/ipv4/conf/all/arp_ignore
echo 2 >/proc/sys/net/ipv4/conf/eth0/arp_announce
echo 2 >/proc/sys/net/ipv4/conf/all/arp_announce
ifconfig lo:0 VIP netmask 255.255.255.255 broadcast VIP up
route add -host VIP dev eth0:0
Director:
ipvsadm -A -t ip:port -s scheduler
ipvsadm -a -t ip:port -r rs1 -g
LVS持久连接、DR、防火墙标记
VIP 与DIP 不在同一网段
DIP 和RIP在同一网段
LVS持久连接
源地址HASH
ipvs的连接模板 可以通过ipvsadm -L -c
持久连接
持久客户端连接 PCC:在固定时间内将来自于同一个客户端发往VIP的所有请求统统定向至同一个RS
0表示所有端口
持久端口连接 PPC:将来着余同一个客户端发往某VIP的某端口的所有请求统统定向至同一个RS
-p 指定时间
持久防火墙标记连接PFMC:port affinity
基于防火墙标记,将两个或以上的端口绑定为同一个服务
iptables -t mangle -A PREROUTING -d 172.16.100.8 -p tcp --dport 80 -j MARK --set-mark 10
iptables -t mangle -A PREROUTING -d 172.16.100.8 -p tcp --dport 443 -j MARK --set-mark 10
ipvsadm -A -f 10 -s rr
ipvsadm -a -f 10 -r 172.16.100.11 -g
ipvsadm -a -f 10 -r 172.16.100.11 -g
ipvsadm -E -f 10 -s rr -p 1200
ipvs集群两个问题
1.后端RS的监控状态检测?
1.脚本
2.keepalived,ldorectord
2.Director自身的可用性?
1.ldirectord(heartabeat,corosync)
2.keeplived
手动脚本检测
1.某RS故障时,要检测至少三次才能让且下线,而重新上线时,只需要检测一次
2.如何让脚本有更好的适应性
第十周LINUX 学习笔记的更多相关文章
- 第十二周LINUX学习笔记
zabbix zabbix-server: 监听的端口10051 zabbix-agent: 10050 Zabbix: Item, Key(键) ethercard.traffic[eth0] ac ...
- 第八周LINUX学习笔记
vsftpd丶NFS丶SAMBA nfs基于rpcsamba基于cifs(smb) DRBD: ftp:File Transfer protocol 文件传输协议 两个连接: tcp:命 ...
- 第七周LINUX学习笔记
HTTP的基本操作 3月17资源子网和通信子网套接字:两类 socket:IP port IP:port Ip.port unix sock:基于文 ...
- 第六周LINUX学习笔记
DNS服务 DNS:Domain Name Service //协议 实现:BIND(Berkeley Internet Name Domain) 监听端口: UDP:5 ...
- 第三周LINUX学习笔记
周期性任务丶find 文件查找:find命令 locate :在数据库中查找,非实时查找,精确度不高,查找速度快,模糊查找 /tmp/passwad/a.textfind:实时查找:速度慢 ,精确 ...
- 第五周linux学习笔记
第五章 系统调用 5.1 与内核通信 系统调用在用户空间进程和硬件设备之间添加了一个中间层.该层主要作用有三个. 它为用户空间提供了一种硬件的抽象接口. 系统调用保 证了系统的毡定和安全. 在第 3 ...
- 第十一周LINUX 学习笔记
keepalived keepalived: 基于vrrp(虚拟冗余路由协议)的实现 virtual server: 对于IPVS vrrp_script: 调用外部脚本 ngin ...
- 第九周LINUX 学习笔记
基于GTID的mysql主从简单复制 一.简单主从模式配置步骤1.配置主从节点的服务配置文件1.1.配置master节点:[mysqld]binlog-format=ROWlog-bin=master ...
- Linux 学习笔记
Linux学习笔记 请切换web视图查看,表格比较大,方法:视图>>web板式视图 博客园不能粘贴图片吗 http://wenku.baidu.com/view/bda1c3067fd53 ...
随机推荐
- 关于sg函数的一些证明
复习csp2019的时候稍微看了看博弈论,发现自己对于sg函数的理解完全不到位 有些定义甚至想都没想过 于是就口胡了一篇blog来安慰虚弱的自己 Question 1 对于一个满足拓扑性质的公平组合游 ...
- ES6-Generator使用与改写
用Generator封装Symbol中的iterator方法: 注意:Generator的function后必须写* config:分别有3个txt文件,两个文件写路径,一个文件写要输出的内容 前置写 ...
- #lua中编写shader的方式
lua中编写shader的方式 1. 字符串拼接 类似于下面这种 vertDefaultSource = "\n".."\n" .. "attribu ...
- 【06月04日】A股滚动市盈率PE历史新低排名
2010年01月01日 到 2019年06月04日 之间,滚动市盈率历史新低排名. 上市三年以上的公司,2019年06月04日市盈率在300以下的公司. 1 - 阳光照明(SH600261) - 历史 ...
- 【转】【linux】查看文件夹大小
du的用法 du命令用来查看目录或文件所占用磁盘空间的大小.常用选项组合为:du -sh du常用的选项: -h:以人类可读的方式显示 -a:显示目录占用的磁盘空间大小,还要显示其下目录和文件占用磁盘 ...
- QFIL软件烧写镜像
1.准备好需要烧写的文件 烧写之前,需要先准备好需要的文件,如下: 2.打开QFIL程序 接下来运行QFIL程序,如下: 3.选择端口 程序运行后,选择合适的端口,如下: 点击端口选择,然后选择Por ...
- 解决element-ui表格表头内容太长时的换行问题
在用vue+element-ui做一个后台管理系统时,遇到这样的问题, 如图: 使用el-table做一个表格,当表头内容过长时会换行,在不设置的宽度的时候每一列的宽度是等比例分配的,虽然elemen ...
- Prometheus 基于文件的服务发现
Prometheus 基于文件的服务发现 官方文档:https://github.com/prometheus/prometheus/tree/master/discovery 服务发现支持: end ...
- [Atcoder AGC032C]Three Circuits
题目大意:有一张$n$个点$m$条边的无向连通图,判断是否可以从中分出$3$个环,满足三个环覆盖整张图并且没有重复的边.$n,m\leqslant10^5$ 题解:分类讨论.有度数为奇肯定不行,因为连 ...
- Java的常用API之包装类简介
包装类 包装类: 基本数据类型,使用起来非常方便,但是没有对应的方法来操作这些基本类型的数据可以使用一个类,把基本类型的数据装起来,在类中定义一些方法,这个类叫做包装类,我们可以使用类中的方法来操作这 ...