首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

负载均衡集群介绍,LVS介绍,LVS的调度算法,LVS的NAT模式搭建

首先我们先介绍一下什么是负载均衡: 负载平衡(Load balancing)是一种计算机网络技术,用来在多个计算机(计算机集群)、网络连接、CPU、磁盘驱动器或其他资源中分配负载,以达到最佳化资源使用、最大化吞吐率、最小化响应时间、同时避免过载的目的。这是来自维基百科的介绍。负载均衡的目的,就在于平衡计算机的负载,给用户提供优质,可靠,稳定的服务。日常生活中到处都能看到“负载均衡”,一个超市的收营员高峰期只能服务10位顾客,当做活动时有20位顾客需要服务的话可能就会排长队,这样购物体验将会很差(就像客户抱怨系统/网站访问太慢)。最简单的办法就是再招个营业员,重新开通一个出口。负载均衡的核心就是“分摊压力”。

01

Linux和Windows搭配提供高可用性、可扩展性系统

我们的业务系统,不管是企业内部系统还是互联网应用系统,都需要可扩展,高可用性的系统。可扩展性和高可用性不是孤立的,只有结合起来,才能达到理想的效果。 可扩展性是系统、网络或进程的可选属性之一,它表达的含义是可以以一种优雅的方式来处理不断增长的工作,或者以一种很明白的方式进行扩充。例如:它可以用来表示系统具备随着资源(典型的有硬件)的增加提升吞吐量的能力。 垂直扩展的意思是给系统中的单节点增加资源,典型的是给机器增加CPU或内存,垂直扩展为操作系统和应用模块提供了更多可共用的资源,因此它使得虚拟化的技

08

LVS+KeepAlived+Nginx高可用实现方案

当我们的服务器意外挂了之后,我们要怎么做? 当然是找一台新的机器,替代现有的机器,然后做新的环境部署,端口映射,域名解析等等一系列的工作,再将服务重新启动;但是如果这一系列的操作都是手动完成的,那么等你把这些工作搞好,可能服务已经停止个把小时了,这会儿估计运营早就提着菜刀架在你脖子上了; 但是如果使用了KeepAlived之后,然后提前将备用机准备好,当主的机器挂掉之后,自动将VIP给你切换到备用机,并且以邮件的形式告诉你说主服务已经挂了,你得赶紧恢复起来;这时候你就可以慢慢的去找主服务的问题,这时候并不会影响到你的正常业务运行。

04

cluster(3)

(一) lvs-fullnat fullnat模式的性能虽然不如dr模式,但是,fullnat支持多vlan,再rs是不同的vlan的情况下,明显使用fullnat是很好的选择。 fullnat的基本原理:假定用户端的ip是cip,vs上有两个ip,一个是vip,还有lip,lip可以是不同网段的一组ip,rs的ip为rip,当客户请求进来,经过vs的时候,再vs出发生一次snat,将cip转化成lip,再由vs到rs的时候又发生了一次dnat,将vip转化成rip,同样的请求返回时,也经历了两次nat,所以一共经历4次nat,从而达到了可以支持多vlan的情况。 client (cip) --->  vs (vip,lip)  ---> rs (rip)          <---               <--- 但是在这种情况下,只有一台vs,会导致该vs的负载过大,加入keepalived也只能提高稳定性,并不能解决高吞吐量的问题,因此一般会进行一个lvs集群,keepalived可以对rs进行健康检查,在lvs集群前面加上一个路由器或者交换机,使用ospf协议,用户请求到达路由器(或者交换机)后,通过原地址、端口和目的地址、端口的hash,将链接分配到集群中的某一台LVS上,LVS通过内网向后端转发请求,后端再将数据返回给用户,整个会话完成。rs之间的session表要定期同步,以防止其中一个rs出现问题而造成session丢失的情况。 fullnat模式要重新编译内核,下面是步骤: 一 编译内核: 1 从官网上下载rpm源码包,并用rpmbuild重新编译为二进制包 kernel-2.6.32-220.23.1.el6.src.rpm Lvs-fullnat-synproxy.tar.gz 网址:kb.linuxvirtualserver.org 1 rpm -ivh kernel-2.6.32-220.23.1.el6.src.rpm        ###安装rpm包### 2 cd rpmbuild/                  ###安装完后会在当前目录下 3 yum install -y rpm-build 4 cd /root/rpmbuild/SPECS/ 5 rpmbuild -bp kernel.spec            ###解开源码打补丁### ************************************************************************** 6 yum install redhat-rpm-config  patchutils xmlto asciidoc binutils-devel newt-devel python-devel perl-ExtUtils-Embed hmaccalc    ###依赖性### ************************************************************************** 7 yum install asciidoc-8.4.5-4.1.el6.noarch.rpm newt-devel-0.52.11-3.el6.x86_64.rpm  slang-devel-2.2.1-1.el6.x86_64.rpm cd rpmbuild/SPECS/ ************************************************************************** 8 rpmbuild -bp kernel.spec        ###解决完依赖性后再次解开源码打补丁### 9 tar zxf Lvs-fullnat-synproxy.tar.gz 10 cd lvs-fullnat-synproxy/ 11 cp lvs-2.6.32-220.23.1.el6.patch ~/rpmbuild/BUILD/kernel-2.6.32-220.23.1.el6/linux-2.6.32-220.23.1.el6.x86_64/ 12 cd ~/rpmbuild/BUILD/kernel-2.6.32-220.23.1.el6/linux-2.6.32-220.23.1.el6.x86_64/ 13 patch -p1 < lvs-2.6.32-220.23.1.el6.patch    ###打补丁### 14 vim Makefile 内容: EXTRAVERSION = -220.23.1.el6    ###扩展版本,你所编译的版本### 15 make 16 make modules_install        ###安装模块 17 make i

01

认识LVS集群

​LVS(linux virtual server)即linux虚拟服务器,由章文嵩博士主导开发的开源负载均衡项目,从2.6内核开始已经被集成到linux内核模块中了,该项目在linux内核中实现了基于IP的数据请求负载均衡调度方案,终端互联网用户从外部访问公司的外部负载均衡服务器,终端用户的web请求会发送给LVS调度器,调度器根据自己预设的算法决定将该请求发送给后端的某台web服务器,如果后端的所有web服务器存储的内容时相同的,那么用户不管访问哪台真实的web服务器得到的内容也都是相同的,所以整个集群对于用户而言是透明的。最后根据工作模式不同,真实服务器会选择不同的方式将用户需要的数据发送给终端用户。

01
领券