热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

LVS配置方案

一、现状目前网站的负载均衡和高可用性是通过DNS轮询来实现的,这种方式不符合当前标准做法.二、目标用业界标准的LVS替换当前的DNS轮询.三、总体方案
一、  现状
目前网站的负载均衡和高可用性是通过DNS 轮询来实现的,这种方式不符合当前标准做法.

二、  目标
用业界标准的LVS 替换当前的DNS 轮询.

三、  总体方案

3.1、系统设计


本方案将在5台服务器上实现具备负载均衡和高可用性的LVS, 使用的转发模式为直接路由, 使用的连接分配模式为源地址哈希(SH). 其中两台服务器作为负载均衡器,以实现高可用性, 另外三台服务器作为Real Server 提供 WEB 服务, 以实行负载均衡.

另外还将配置简单的GUI, 以实现对LVS的简单监控.

LVS 群集配置完成后, 需要在我们的DNS 服务器上配置相应的DNS 记录.

 

                         

 图3-1

3.2、方案描述


Ø 本方案将在不增加任何硬件设备的条件下进行, 因此将把负载均衡器安装在两台提供其它服务的服务器上.

Ø 为达到很好的性能我们选用直接路由这种转发模式

Ø 为达到切实的负载均衡我们选用最少连接数这种连接分配模式.

Ø 使用成熟的LVS解决方案Ultramonkey(keepalived 也是不错的选择).

3.3、负载分析


Ø 负载均衡器的系统负载: CPU 和内存使用量都很低

Ø 负载均衡器的网络负载: 网络流量很低

因此负载均衡器可以跟其它服务共用一台服务器的资源

3.4、冗余设计


       我们选用的这种配置(如图3-1所示)本身就具备冗余能力.

3.5IP 地址分配


功能类别        内网IP地址    公网 IP 地址    IP of lo:0 /VIP

WEB服务器1      192.168.1.1                   1.1.1.6

WEB服务器2      192.168.1.2                   1.1.1.6

WEB服务器3      192.168.1.3                   1.1.1.6

负载均衡器1     192.168.1.4    1.1.1.4 

   负载均衡器2     192.168.1.5    1.1.1.5

3.6、安装应用软件时,必须有设备名称,软件版本,安装目录


设备名称              软件                                              安装目录

web-svr-001         arptables-noarp-addr (rpm 包)      --

web-svr-002         同上                                               --

web-svr-003         同上                                               --

lb-svr-mst              heartbeat                                        --

                              heartbeat-ldirectord                       --

                              heartbeat-pils                                --

                              heartbeat-stonith                          --

                              ipvsadm                                        --

                              libnet                                            --

                              perl-Authen-SASL                       --

                              perl-Digest-HMAC                     --

                              perl-Digest-SHA1                       --

                              perl-IO-Socket-SSL                    --

                              perl-ldap                                      --

                              perl-Mail-IMAPClient                  --

                              perl-Net-DNS                              --

                              perl-Net-SSLeay                          --

                              perl-Parse-RecDescent                 --

                              (以上是rpm包)                        

                              libart_lgpl                             /usr/local/libart

                              rrd-tool                                /usr/local/rrd-tool  

                              lvs-rrd                                 /var/www/html/lvs-rrd

                              (以上为tarball)

lb-svr-slv               同上                                    同上

四、  实施步骤

4.1施工计划与时间


计划安排
预计完成时间(分钟)
主要负责人
获取跟配置LVS相关的信息
30
邹可见
配置负载均衡器
60
邹可见
配置后端WEB 服务器
30
邹可见
验证LVS 集群
30
邹可见
配置LVS集群监控工具
30
邹可见
检查LVS集群监控工具的运行状况
15
邹可见
修改DNS记录
15
邹可见
再次验证LVS 集群
30
邹可见


4.2操作步骤(详细到命令级别)


预估花费时间
预计开始时间-完成时间
实际开始时间-完成时间
4小时
待定


 

 

1)  登录到将建立集群的每台服务器上,执行 uname –n 获取主机名。

 

2)  登录到将作为负载均衡器的两台服务器上,执行LB/script/install.sh 安装相关软件包并拷贝配置文件到/etc/ha.d目录下。



3)  修改其中一台负载均衡器上的/etc/ha.d 目录下的配置文件,并将修改后的配置文件拷贝到另外一台负载均衡器的/etc/ha.d目录下。



4)  启动两台负载均衡器上的/etc/init.d/heartbeat 服务:/etc/init.d/heartbeat start



5)  查看两台负载均衡器上的 /var/log/lvs.log 文件,确认它们工作正常。



6)  登录到三台后端WEB服务器上,执行RS/script/install.sh 安装相关软件包并进行配置,

将RS/config/mytest.html 文件拷贝到 各台机的apache 文档目录下。



7)   在 Master 负载均衡器上执行 ipvsadm –L –n 确认 LVS 已经将三台后端WEB服务器加入到 Real Server Pool 中。

 

8)在两台负载均衡器上运行LB/script/install_mon.sh 安装监控软件lvs-rrd。

 

9)修改lvs-rrd 的配置脚本 graph-lvs.sh 和 lvs.rrd.update

 

10) 修改DNS配置,将[url]www.domain.com[/url]映射到VIP上。

 

11)在Master 负载均衡器上执行 ipvsadm –L –n 检查LVS 分发HTTP 请求的情况。

五、应急和回滚方案

5.1.本方案可能会引起的风险,包括极限风险和应变措施


风险:LVS 不稳定导致无法正常访问[url]www.domain.com[/url]

应变措施:修改DNS 配置,恢复使用DNS 轮询。

5.2、明确采用应急方案条件


在修改DNS 配置并且配置生效后,如果无法正常访问[url]www.domain.com[/url],必须立即回滚。

六、测试及验收

6.1施工人员测试方案


1、操作步骤详细到命令行级别

      查看LVS的连接情况: ipvsadm –L –n

      查看LVS的吞吐量情况: ipvsadm –L –n –rate

      查看LVS的统计信息: ipvsadm –L –n –stat

      如果上述步骤都返回正常信息,则检查LVS监控页面是否正常。

   在WEB 浏览器中打开如下页面,检查是否能够看到LVS集群中各个服务器的 active connection 和 inactive connection 情况。

2、明确结果正常或异常的条件

     如果看到三台WEB服务器的active connection 大体相同,则表示LVS 正常。

    反之,如果三台WEB服务器的active connection在很长一段时间内都相差悬殊,则需要作调整。


附:附件里面是排版工整的本文原件,和相关脚本。



推荐阅读
  • Cookie学习小结
    Cookie学习小结 ... [详细]
  • 为什么多数程序员难以成为架构师?
    探讨80%的程序员为何难以晋升为架构师,涉及技术深度、经验积累和综合能力等方面。本文将详细解析Tomcat的配置和服务组件,帮助读者理解其内部机制。 ... [详细]
  • 用阿里云的免费 SSL 证书让网站从 HTTP 换成 HTTPS
    HTTP协议是不加密传输数据的,也就是用户跟你的网站之间传递数据有可能在途中被截获,破解传递的真实内容,所以使用不加密的HTTP的网站是不 ... [详细]
  • 本文总结了一些开发中常见的问题及其解决方案,包括特性过滤器的使用、NuGet程序集版本冲突、线程存储、溢出检查、ThreadPool的最大线程数设置、Redis使用中的问题以及Task.Result和Task.GetAwaiter().GetResult()的区别。 ... [详细]
  • 本文详细介绍了 InfluxDB、collectd 和 Grafana 的安装与配置流程。首先,按照启动顺序依次安装并配置 InfluxDB、collectd 和 Grafana。InfluxDB 作为时序数据库,用于存储时间序列数据;collectd 负责数据的采集与传输;Grafana 则用于数据的可视化展示。文中提供了 collectd 的官方文档链接,便于用户参考和进一步了解其配置选项。通过本指南,读者可以轻松搭建一个高效的数据监控系统。 ... [详细]
  • 服务器部署中的安全策略实践与优化
    服务器部署中的安全策略实践与优化 ... [详细]
  • 为了确保iOS应用能够安全地访问网站数据,本文介绍了如何在Nginx服务器上轻松配置CertBot以实现SSL证书的自动化管理。通过这一过程,可以确保应用始终使用HTTPS协议,从而提升数据传输的安全性和可靠性。文章详细阐述了配置步骤和常见问题的解决方法,帮助读者快速上手并成功部署SSL证书。 ... [详细]
  • 本文整理了一份基础的嵌入式Linux工程师笔试题,涵盖填空题、编程题和简答题,旨在帮助考生更好地准备考试。 ... [详细]
  • 直播带货系统中的推流技术详解
    本文介绍了RTMP(实时消息传输协议)及其在直播带货系统中的应用,并详细探讨了带货直播系统的连麦方案,包括服务端合流和客户端合流的优势与劣势。 ... [详细]
  • 本文介绍了 Go 语言中的高性能、可扩展、轻量级 Web 框架 Echo。Echo 框架简单易用,仅需几行代码即可启动一个高性能 HTTP 服务。 ... [详细]
  • 在将Web服务器和MySQL服务器分离的情况下,是否需要在Web服务器上安装MySQL?如果安装了MySQL,如何解决PHP连接MySQL服务器时出现的连接失败问题? ... [详细]
  • 单片微机原理P3:80C51外部拓展系统
      外部拓展其实是个相对来说很好玩的章节,可以真正开始用单片机写程序了,比较重要的是外部存储器拓展,81C55拓展,矩阵键盘,动态显示,DAC和ADC。0.IO接口电路概念与存 ... [详细]
  • Git应用技巧与实战经验分享
    在使用 Git 进行代码管理时,有时会遇到无法访问 `https://github.com` 仓库的问题,具体表现为 OpenSSL SSL_read 错误,连接被重置(errno 10054)。本文将深入探讨这一问题的成因,并分享多种解决方法,包括检查网络配置、更新 Git 版本以及调整 SSL 设置等,帮助开发者有效应对类似问题。此外,文章还将介绍一些实用的 Git 技巧和实战经验,提升代码管理和协作效率。 ... [详细]
  • Keepalived 提供了多种强大且灵活的后端健康检查机制,包括 HTTP_GET、SSL_GET、TCP_CHECK、SMTP_CHECK 和 MISC_CHECK 等多种检测方法。这些健康检查功能确保了高可用性环境中的服务稳定性和可靠性。通过合理配置这些检查方式,可以有效监测后端服务器的状态,及时发现并处理故障,从而提高系统的整体性能和可用性。 ... [详细]
  • 在JavaWeb项目架构中,NFS(网络文件系统)的实现与优化是关键环节。NFS允许不同主机系统通过局域网共享文件和目录,提高资源利用率和数据访问效率。本文详细探讨了NFS在JavaWeb项目中的应用,包括配置、性能优化及常见问题的解决方案,旨在为开发者提供实用的技术参考。 ... [详细]
author-avatar
男孩艹艹
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有