lvs

linux集群架构

时光怂恿深爱的人放手 提交于 2020-03-05 06:39:04
Linux集群架构 根据功能划分为两大类:高可用和负载均衡 高可用集群通常为两台服务器,一台工作,另外一台作为冗余,当提供服务的机器宕机,冗余将接替继续提供服务 实现高可用的开源软件有:heartbeat、keepalived 负载均衡集群,需要有一台服务器作为分发器,它负责把用户的请求分发给后端的服务器处理,在这个集群里,除了分发器外,就是给用户提供服务的服务器了,这些服务器数量至少为2 实现负载均衡的开源软件有 LVS、keepalived、haproxy、nginx,商业的有F5、Netscaler keepalived介绍 在这里我们使用keepalived来实现高可用集群,因为heartbeat在centos6上有一些问题,影响实验效果 keepalived通过VRRP(Virtual Router Redundancy Protocl)来实现高可用。 在这个协议里会将多台功能相同的路由器组成一个小组,这个小组里会有1个master角色和N(N>=1)个backup角色。 master会通过组播的形式向各个backup发送VRRP协议的数据包,当backup收不到master发来的VRRP数据包时,就会认为master宕机了。此时就需要根据各个backup的优先级来决定谁成为新的mater。 Keepalived要有三个模块,分别是core、check和vrrp

lvs fullnat+ECMP【6】keepalived配置

元气小坏坏 提交于 2020-03-03 23:40:31
tcp端口监控 [root@lvs-fullnat-one keepalived]# cat keepalived.conf ! Configuration File for keepalived global_defs { notification_email { shanks@51cto.com } notification_email_from Alexandre.Cassen@firewall.loc smtp_server 192.168.200.1 smtp_connect_timeout 30 router_id LVS_DEVEL } local_address_group laddr_g1 { #172.16.98.11 172.16.98.10 } virtual_server_group shanks1 { 2.2.2.3 80 } virtual_server 2.2.2.3 80 { delay_loop 6 lb_algo rr lb_kind FNAT protocol TCP syn_proxy laddr_group_name laddr_g1 #local address group #alpha #omega #quorum 1 #hysteresis 0 #quorum_up " ip addr add 10.255.255.123/32

lvs fullnat+ECMP【10】LVS ActiveConn InActConn 注解

旧巷老猫 提交于 2020-03-03 23:16:40
ActiveConn是活动连接数,也就是tcp连接状态的ESTABLISHED; [root@lvs-fullnat-one ~]# ipvsadm -L --timeout Timeout (tcp tcpfin udp): 90 3 300 InActConn是指除了ESTABLISHED以外的,所有的其它状态的tcp连接. [root@lvs-fullnat-one ~]# ipvsadm -ln IP Virtual Server version 1.2.1 (size=4194304) Prot LocalAddress:Port Scheduler Flags -> RemoteAddress:Port Forward Weight ActiveConn InActConn TCP 2.2.2.3:80 rr synproxy -> 172.16.97.30:80 FullNat 100 0 0 [root@lvs-fullnat-one ~]# 调整 ipvsadm --set 5 10 300 参考: LVS ActiveConn InActConn 详解 优化 https://blog.51cto.com/weiruoyu/791802 微信公众号,随便发点有意思的东西 来源: 51CTO 作者: cnxhsy 链接: https://blog.51cto.com

VC CListCtrl控件的使用方法

青春壹個敷衍的年華 提交于 2020-03-02 06:10:48
在VC中使用控件一直是件让我头痛的事件,从控件的创建到控件的操作管理,都得写一大堆代码,相比于Delphi/VB,实在是麻烦多了。其实在之前学习SDK的时候,就有想过专门花点儿时间来学习VC中控件的使用,但一直没空。最近准备写一个小工具,要用到ListCtrl控件,所以又不得不好好的恶补一翻。 我是在MFC的对话框模式下使用CListCtrl控件的,其实不管在SDK或文档/视图模式下,VC控件的使用都差不多,下面来好好的写写CListCtrl控件的使用笔记。 一、CListCtrl控件的创建 由于我是在MFC的对话框模式下使用CListCtrl控件的,所以只需要在控件栏上选择CListCtrl的图形按钮,接着添加到对话框中就行了。 二、CListCtrl控件样式的设置 第一步:在使用CListCtrl控件之前,首先需要为该控件关联一个变量(只针对于对话框模式): CListCtrl m_BlogAccountList; 第二步:由于CListCtrl控件要做一些初始化操作,比如设置控件样式,设置控件的行列并填入一些数据。初始化操作的代码是在对话框的OnInitDialog事件中写入的。 默认情况下,CListCtrl控件的样式是非常简陋的,大多情况下我们都需要对CListCtrl控件的样式进行修改,比如设置为报表样式,可以进行整行选择等,如有需要还有调整CListCtrl控件的行高

VC的CListCtrl控件详解

只愿长相守 提交于 2020-03-02 06:10:34
1. CListCtrl 样式及设置2. 扩展样式设置3. 数据插入4. 一直选中Item5. 选中和取消选中Item6. 得到CListCtrl中所有行的checkbox的状态7. 得到CListCtrl中所有选中行的序号8. 得到item的信息9. 得到CListCtrl的所有列的header字符串内容10. 使CListCtrl中一项可见,即滚动滚动条11. 得到CListCtrl列数12. 删除所有列13. 得到单击的CListCtrl的行列号14. 判断是否点击在CListCtrl的checkbox上15. 右键点击CListCtrl的item弹出菜单16. CListCtrl进行大数据量更新时,避免闪烁!时间仓促,此播客内容大多为网上整理,特向原作者表示感谢! 1. CListCtrl 样式及设置 LVS_ICON: 每个item显示大图标 LVS_SMALLICON: 每个item显示小图标 LVS_LIST: 显示一列带有小图标的item LVS_REPORT: 显示item详细资料 如windows资源管理器,“查看”标签下的“大图标,小图标,列表,详细资料” LONG lStyle; lStyle=GetWindowLong(m_ListCtrl.m_hWnd, GWL_STYLE); //获取当前窗口style lStyle &=~LVS_TYPEMASK;

LVS(DR模式)+KeepAlived(HA高可用)模式的实现

感情迁移 提交于 2020-03-02 04:29:54
1.基本思想 前面学习了lvs的基础知识,现在我们来讨论调度器的备份,也就是集群(不再是单纯的调度器) 在上一个实验的基础上,当调度器server1也挂了,客户就彻底不能访问了,这时我们可以设置调度器的高可用 时刻保证调度器的正常工作:设置调度器的master(主)和调度器backup(备) 我们在两台调度器上使用keepalived服务就可以将两个调度器关联在一起,keepalived检测两个调度器的工作情况 如果lvs挂掉了,客户就彻底访问不到任何东西了 现在做一个高可用的lvs 我们使用keeplived代理lvs,它具有lvs的功能,但同时可以有多个,有主有备 当主挂了备用就去做轮询,当主好了备用就把任务还给主 当主调度器好着的时候,keepalived就回去通知备份调度器自己可以正常工作,不需要接管自己的任务 当主调度器坏了,不告诉备份调度器任何消息的时候,备份调度器就会自动去接管主调度器的工作 这个时候客户端依然可以正常访问 2.搭建实验环境 一共需要4台rhel7.5版本的虚拟机 主机信息对应的主机的功能(服务) server1(172.25.8.1) :master(主调度器) server4(172.25.8.4) :backup(备调度器) server2(172.25.8.2) :真正的web服务器1 server3(172.25.8.3)

TCP的keepalive&HTTP的keep-alive

我怕爱的太早我们不能终老 提交于 2020-03-02 03:52:20
最近工作中遇到一个问题,想把它记录下来,场景是这样的: 从上图可以看出,用户通过Client访问的是LVS的VIP, VIP后端挂载的RealServer是Nginx服务器。 Client可以是浏览器也可以是一个客户端程序。一般情况下,这种架构不会出现问题,但是如果Client端把请求发送给Nginx,Nginx的后端需要一段时间才能返回结果,超过1分30秒就会有问题,使用LVS作为负载均衡设备看到的现象就是1分30秒之后, Client和Nginx链接被断开,没有数据返回。原因是LVS默认保持TCP的Session为90s,超过90s没有TCP报文在链接上传输,LVS就会给两端发送RESET报文断开链接。LVS这么做的原因相信大家都知道一二,我所知道的原因主要有两点: 1.节省负载均衡设备资源,每一个TCP/UDP的链接都会在负载均衡设备上创建一个Session的结构, 链接如果一直不断开,这种Session结构信息最终会消耗掉所有的资源,所以必须释放掉。 2.另外释放掉能保护后端的资源,如果攻击者通过空链接,链接到Nginx上,如果Nginx没有做合适 的保护,Nginx会因为链接数过多而无法提供服务。 这种问题不只是在LVS上有,之前在商用负载均衡设备F5上遇到过同样的问题,F5的Session断开方式和LVS有点区别,F5不会主动发送RESET给链接的两端

高可用系列之Nginx

拈花ヽ惹草 提交于 2020-02-29 12:30:55
1.1 Keepalived 高可用软件 Keepalived 起初是专为 LVS 设计的, 专门用来监控 LVS 集群系统中各个服务节点的状态 ,后来又加入了 VRRP 的功能,因此除了配合 LVS 服务外,也可以作为其他服务( Nginx,Haproxy )的高可用软件, VRRP 是 Virtual Router Redundancy Protocol (虚拟路由器冗余协议)的缩写, VRRP 出现的目的就是为了解决 静态路由 出现的单点故障问题,它能够保证网络的不间断、稳定的运行。所以, keepalived 以方面具有 LVS Cluster nodes healthchecks 功能,另一方面也具有 LVS directors failover 功能。 1.1.1 LVS Directors failover 功能 Ha failover 功能:实现 LB Master 主机和 Backup 主机之间故障转义和自动切换。 这是针对有两个负载均衡器 Director 同时工作而采取的故障转移措施。当主负载均衡器( MASTER )失效或出现故障时,备份负载均衡器( BACKUP )将自动接管主负载均衡的所有工作( vip 资源及相应服务)一旦主负载均衡器( MASTER )故障修复, MASTER 又会接管回它原来处理的工作,而备份负载均衡器( BACKUP )会释放

架构设计:负载均衡层设计方案(1)——负载场景和解决方式

爷,独闯天下 提交于 2020-02-29 05:38:17
转自:https://blog.csdn.net/yinwenjie/article/details/46605451 在上一篇《标准Web系统的架构分层》文章中,我们概述了WEB系统架构中的分层架设体系,介绍了包括负载均衡层、业务层、业务通信层、数据存储层的作用和存在意义。从本片文章开始,我们将首先详细讲解负载均衡层的架构原理和选型场景。 1、不同的负载场景 我们知道负载均衡层的作用是“将来源于外部的处理压力通过某种规律/手段分摊到内部各个处理节点上”,那么不同的业务场景需要的负载均衡方式又是不一样的,架构师还要考虑架构方案的成本、可扩展性、运维难易度等问题。下面我们先介绍几种典型的不同业务场景,大家也可以先想一下如果是您,会怎么架设这些场景的负载均衡层。 需要注意的是,这个系统的文章,我们都将使用这几个典型的业务场景来讲解系统架构的设计递归设计。在后续几篇介绍负载层架构的文章中,我们也将通过这几个典型的业务场景讲解负载层的架构方案。 1.1、负载场景一 这是一个国家级物流园区的货运订单和物流管理系统。在物流园区内的货运代理商、合作司机(货运车辆)、园区管理员和客服人员都要使用这套系统。每日RUV在1万人次,日PV在10万左右。甲方总经理使用这套系统的原有是抱着“试一下移动互联网对物流产品是否能起到提高效率的作用”。可以看出整个系统基本上没有访问压力

LVS原理详解及部署之二:LVS原理详解(3种工作方式8种调度算法)

孤者浪人 提交于 2020-02-28 23:37:16
-------------------LVS专题------------------------ LVS原理详解及部署之一:ARP原理准备 LVS原理详解及部署之二:LVS原理详解(3种工作方式8种调度算法) LVS原理详解及部署之三:手动部署LVS LVS原理详解及部署之四:keepalived介绍 LVS原理详解及部署之五:LVS+keepalived实现负载均衡&高可用 ------------------------------------------------- 一、集群简介 什么是集群 计算机集群 简称 集群 是一种 计算机系统 ,它通过一组松散集成的 计算机软件 和/或硬件连接起来高度紧密地协作完成计算工作。在某种意义上,他们可以被看作是一台计算机。 集群系统 中的单个计算机通常称为节点,通常通过局域网连接,但也有其它的可能连接方式。 集群计算机 通常用来改进单个计算机的计算速度和/或可靠性。一般情况下 集群计算机 比单个计算机,比如工作站或 超级计算机 性能价格比要高得多。 集群就是一组独立的计算机,通过网络连接组合成一个组合来共同完一个任务 LVS在企业架构中的位置: 以上的架构只是众多企业里面的一种而已。绿色的线就是用户访问请求的数据流向。用户-->LVS负载均衡服务器--->apahce服务器--->mysql服务器&memcache服务器&共享存储服务器