一、群集类型
负载均衡群集(LB):用于前台服务器 如web 同时在线 主要考虑性能 nginx lvs haproxy
高可用群集(HA):用于后端服务器 如数据库 主从、主主 主要考虑可用 HSRP VRRP KEEPALIVED
高性能计算(HPC):如云计算
二、lvs与nginx区别
lvs:工作在第四层 可以实现所有服务负载均衡
nginx:只能对http、https负载均衡
三、lvs工作模式
nat模式:节省公有地址 安全 性能差
tun模式(ip 隧道):服务器分散 每个服务器需要公有地址 直接由真实服务器响应客户端 性能得以提高
dr模式(直接路由):服务器与调度器在同一个子网 需要每个服务器有公有地址 服务器直接向客户端响应 不走隧道
四、负载均衡架构
1.调度器
2.服务器池
3.共享存储
五、调度算法
轮询(Round Robin):适合服务器性能差不多,请求差不多
加权轮询(Weighted Round Robin):适合服务器性能不一样,但请求时间差不多
最少连接(Least Connections):适合性能差不多,请求时间不一样的情形
加权最少连接(Weighted Least Connections):适合性能不一,请求时间不一的情形
六、群集相关命令
创建虚拟服务器
ipvsadm -A -t 虚拟服务器地址 -s 轮询算法
向群集中添加真实节点
ipvsadm -a -t 虚拟服务器地址:端口 -r 真是服务器地址:端口 -m -w 1
说明:-m:指定群集模式 -w:指定权重
删除虚拟服务器
ipvsadm -D -t 虚拟服务器地址
从群集中删除节点
ipvsadm -a -t 虚拟服务器地址:端口 -r 真是服务器地址:端口 -m -w 1
查看群集状态
ipvsadm -ln
masq为nat模式 route为dr模式
保存群集配置
ipvsadm-save /etc/sysconfig/ipvsadm
清除群集配置
ipvsadm-stop
或 ipvsadm -C
重建规则
ipvsadm-start
七、NFS:网络文件系统
Network File System,网络文件系统
依赖于RPC(远端过程调用)
需安装nfs-utils、rpcbind软件包
系统服务:nfs、rpcbind
共享配置文件:/etc/exports
- nfs配置
//nfs-utils用于提供nfs共享服务,rpcbind
1.安装包并启动服务
#yum -y install rpcbind nfs-utils(默认已经安装)
2.编辑配置文件
vim /etc/exports
共享目录 客户机地址(权限)
说明:客户机地址可以是ip和域名,可以为一个网段 可以使用通配符*,?,多个客户机用空格分隔
3.在客户机上挂载
- 先查看nfs服务器服务器上的共享
#showmount -e nfs的ip地址
- 手动挂载
mount nfs的ip地址:共享目录 本地目录
- 永久挂载
vim /etc/fstab
nfs的IP地址 :共享目录 本地目录 nfs defaults,_netdev 0 0
二、知识点讲解
1.为什么需要lvs vip跟realserver 在同一个网段:
DR 模式因为只修改 package的 MAC地址通过ARP广播的形势找到realserver,所以 要求LVS 的VIP 和realserver的IP 必须在同一个网段内,也就是在挂载VIP 时先确认LVS的工作模式,如果是DR模式需要先确认这个IP 只是否能挂在这个LVS下面。
2.内核重定向:在lvs负载调度器和各节点需要共用VIP地址,并且应该关闭linux内核重定向参数响应
需要路由器向源发送ICMP重定向的情况有两种:
★ 当路由器从某个接口收到数据包后,还要将数据包从同一个接口发往目的地,就是路由器收到数据包的接口正是去往目的地的出口时,则会向源发送ICMP重定向,通告对方直接将数据包发向自己的下一跳即可,不要再发给自己。
★ 数据包的源IP和自己转发时的下一跳IP地址是同网段时,则会向源发送ICMP重定向,通告对方直接将数据包发向自己的下一跳。
注:路由器在向数据源发送ICMP重定向的同时,也会正常转发收到的数据包,并不会中断网络。
过程分析如下:
1). server2如果要与internet通讯,首先是要把报文发送给server1的,因为server2的网关指向server1的。
2). server1收到报文并检查它的路由表,发现router是发送改报文的下一跳。当它把报文发送给router时,server1检测到这个报文的发送出去的接口与接收到的接口是相同的,这样ICMP重定向就触发了。
3). server1认为server2应该把默认路由指向router,所以就发送ICMP重定向报文给server2,
3.在真实的节点服务器上要给lo:0设置vip,并调整内核的arp响应参数以阻止更新VIP的mac地址,避免发生冲突
在配置LVS负载均衡架构的时候需要在RealServer上抑制ARP,具体是arp_ignore=1,arp_announce=2
arp_ignore: (回应ARP)
0:回应任何网口上收到的对任何本机IP地址的ARP查询请求(默认)
1:只回应Target IP是接收网口的IP的ARP查询请求 只有物理网卡的mac地址的arp请求,才能回应
2:只回应Target IP是接收网口的IP的ARP查询请求,且Sender IP必须与该网口属于同一网段
4-7:保留未使用
8:不回应所有的arp查询
arp_announce: (选择ARP宣告时候使用的Sender IP)
0:使用发送(或转发)的数据包的源IP作为发送ARP请求的Sender IP(默认) ;(可使用ping -I 验证)
1:IP数据包的目的IP属于本地某个接口的网段时,Sender IP则使用IP数据包源IP,不属于则按2处理;
2:忽略数据包的源IP,使用能与目标主机会话的最佳地址来作为发送ARP的Sender IP,优先选择对外接口的主IP;(loopback不是对外接口)--用真实网卡地址做为arp请求的发送端地址
注:ARP表没有网关对应的条目时,在发送IP数据包前会触发 arp_announce;
Sender MAC跟系统无关,Sender MAC=源MAC,源MAC由物理地址决定,网络攻击除外。