当前位置: 首页 > 科技观察

【博文推荐】公司网络web服务器负载均衡解决方案

时间:2023-03-12 18:39:14 科技观察

本文来自浩子的运维笔记。如果您想与本文作者进行讨论和互动,请点此直接跳转。随着公司产品业务的推广和发展,对服务器的硬件性能、相应速度、服务稳定性、数据可靠性等方面的要求越来越高。以后服务器的负载很难承受所有的访问量。考虑到公司的实际情况、运营成本和网络安全,排除使用昂贵的大型服务器和部署昂贵的专用负载均衡设备。DNS轮询负载均衡方案虽然成本低,但是安全性能不是很好。另外,公司产品的特殊性需要用户认证系统,这也是sessionretention的一大硬伤。会话保留,如果是需要认证的网站,在不修改软件架构的情况下,这个比较致命,因为DNS解析不能持久的把认证用户的访问权限分配给同一台服务器。虽然本地有一定的DNS缓存,但是很难保证用户访问时本地DNS不会过期,重新查询服务器指向新的服务器,那么原服务器保存的用户信息就无法获取了带到新的服务器,可能需要重新认证,来回切换需要很长时间。每个服务器存储不同的用户信息,这也是一种服务器资源的浪费。企业还有另一种解决方案,那就是搭建集群服务器——将多台相对便宜的普通服务器集成在一起,以相同的地址提供相同的服务。LVS负载均衡集群方案是目前企业中最普遍、应用最广泛的集群技术。1、Web服务集群负载均衡理论思想在负载均衡思想下,多台服务器以对称方式存在,每台服务器具有同等地位,可以独立提供服务,无需其他服务器的协助。然后,通过某种负载分担技术,将外界发来的请求以对称结构平均分配到某台服务器上,接收请求的服务器独立响应客户端的请求。由于建立一个内容完全一致的Web服务器并不复杂,采用服务器同步更新或共享存储空间等方法即可完成,因此负载均衡技术成为建立高负载网站的关键技术。2、公司外网服务器的网络环境和工作模式的选择。Lvs负载均衡有3种工作模式,分别是1.网络地址转换地址转换模式;2.iptunnelIP隧道模式;3.直接路由模型。三种工作模式中,NAT模式只需要一个公网ip,成为最简单的负载均衡模式,安全性也更好。相对而言,DR模式的负载能力更强,适用范围更广。接下来,我们将对DR的工作模式进行具体的研究;DR工作方式采用半开放式网络结构,各节点服务器与调度器处于同一物理网络,负载均衡调度器使用本地网络连接各节点服务器,客户端请求访问时会请求虚拟IP调度器的地址,服务器直接响应客户端,不经过调度器。DirectRouting工作模式客户端请求和服务器响应过程基于DR模式的LVS负载均衡集群网络架构三.运行过程及实现步骤根据公司部署的实际情况,我们可以采用DR直接路由工作模式作为实现方案,具体运行步骤如下:LVS现已成为Linux内核的一部分,编译为默认使用ip_vs模块,必要时可以自动调用。以下操作可以手动加载ip_vs模块,查看当前系统ip_vs模块的版本信息modprobeip_vs//加载ip_vs模块,cat/proc/net/ip_vs//查看ip_vs版本信息---安装管理software------rpm-ivh/mnt/Packages/ipvsadm-1.25-9.el6.i686.rpmserviceipvsadmstart//启动服务以上操作在调度服务器上即可,节点服务器不需要安装这些——————————————————————————————————————————————————常用命令解释如下:------LVS负载调度最常用的算法有四种:roundrobin算法(rr)、weightedroundrobin(wrr)、leastroundrobin(lc)、weightedleastroundrobin(wlc)1)创建虚拟服务器集群的VIP地址为192.168.0.14,采用roundrobin调度算法为TCP80端口提供负载卸载服务。对于负载均衡调度器,VIP必须是机器实际启用的IP地址ipvsadm-A-t192.168.0.14:80-srr//选项"-A"表示添加虚拟服务器,使用"-t"指定VIP地址和TCP端口,“-s”用于指定负载调度算法-rr,wrr,lc,wlc2)添加服务器节点ipvsadm-a-t192.168.0.14:80-r192.168.0.12:80-mipvsadm-a-t192.168.0.14:80-r192.168.0.13:80-m//选项“-a”表示添加真实服务器,“-t”用于指定VIP地址和TCP端口,“-r”用于指定RIP地址和TCP端口,“-m”表示使用NAT集群模式(“-g”为DR模式,“-i”为TUN模式){-m参数也可以后面是-w参数,这里没有做的“-w”是用来设置权重的(当权重为0时,表示该节点挂起)}4)删除服务器节点ipvsadm-d-r192。168.0.14:80-t192.168.0.12:80//需要从服务器池中删除节点时,使用选项“-d”。要执行删除操作,必须指定目标对象,包括节点地址和虚拟IP地址。上面的操作会删除LVS集群192.168.0.14中的节点192.168.0.12。如果需要删除整个虚拟服务器,使用选项-D并指定虚拟IP地址,无需指定节点。例如:“ipvsadm-D-t172.16.16.172.24:80”,删除这个虚拟服务器。ipvsadm-L//查看节点状态,加“-n”会以数字形式显示地址和端口信息ipvsadm-save>/etc/sysconfig/ipvsadm//使用导出/导入工具保存策略ipvsadm-save/ipvsadm-restore的LVS策略可以保存和恢复,方法类似于iptables规则的导出和导入。#p#4.Scriptedoperation实现步骤------DR模式scheduler配置------(scheduler和各个server之间的脚本用到)vidr.shifconfigeth0:0192.168.0.14broadcast192.168.0.14netmask255.255.255.255uprouteadd-host192.168.0.14deveth0:0ipvsadm-Cipvsadm-A-t192.168.0.14:80-srripvsadm-a-t192.168.0.14:2.0-r168.0.12:80-gipvsadm-a-t192.168.0.14:80-r192.168.0.13:80-gipvsadm------DR模式服务器配置------viweb.shifconfiglo:0192.168.0.14broadcast192.168.0.14netmask255.255.255.255uprouteadd-host192.168.0.14devlo:0echo"1">/proc/sys/net/ipv4/conf/lo/arp_ignoreecho"2">/proc/sys/net/ipv4/conf/lo/arp_announceecho"1">/proc/sys/net/ipv4/conf/all/arp_ignoreecho"2">/proc/sys/net/ipv4/conf/all/arp_announcesysctl-p&>/dev/nullshdr.shstartshweb.shstartshweb.shstart5.SharedStorage(共享存储):SharedStorage为所有RealServers提供共享存储空间和一致的数据内容--------NFS服务器安装----yuminstallnfs-utils//nfs安装时会有依赖package的rpcbind服务rpcbindstart//在启动nfs服务之前,必须先启动rpcbind服务serviceservicenfsrestart//nfs为“111”的端口---编辑配置文件----vi/etc/exports//NFS配置文件为/etc/exports,文件内容默认为空(没有sharing)/usr/share*(ro,sync)/opt/test192.168.80.22(rw,sync)//将文件夹/opt/test共享到192.168.80.22网段,允许读写操作。“同步”意味着同步写入。注:rw表示允许读写(ro表示只读),sync表示同步写入,no_root_squash表示客户端以root身份访问时授予本地root权限(默认为root_squash,会被视为nfsnobody用户)--发布共享---exportfs-rv---client视图,mount----//挂载NFS协议的目的是提供网络文件系统,所以访问NFS共享也是挂载使用mount命令对应的文件系统类型为nfs。客户端要正常访问NFS共享资源,还需要安装rpcbind软件包并启动rpcbind系统服务;另外,为了使用showmount查询工具,建议同时安装nfs-utils软件包。六、验证1、负载均衡验证192.168.0.12和192.168.0.13是web服务器192.168.0.11是负载均衡调度器192.168.0.14是负载均衡调度器虚拟出的IP地址。客户端用户接入192.168。0.14VIP的虚拟地址获取由多台物理机服务器组成的整个服务器池提供的同一个web服务。我们来模拟客户端用户第一次访问web服务登录192.168.0.14,关闭页面重新登录192.168.0.14。由此发现lvs调度开始起作用了,将client的请求平均分配到各个server上。2、共享存储数据同步一致性校验每个节点服务器挂载共享存储的共享目录,修改的内容会同步到本服务器集群中。