基于云平台的LNMP集群架构研究

来源 :科技创新导报 | 被引量 : 0次 | 上传用户:jmshello
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘  要:服务器集群架构是网站Web业务的核心,其可用性直接关系到用户的体验和网站的效率。现代集群架构运用云平台的管理和资源池,用云主机来代替物理服务器,对系统的信息进行传输、处理、存储、监控等都有所改进。网站的访问量日益剧增,当访问量达到十几万时,针对访问量而引发的服务器架构调优,成为了一个迫切需要解决的问题。
  关键词:云平台  LNMP集群  访问量  负载均衡
  中图分类号:TP393                           文献标识码:A                  文章编号:1674-098X(2021)06(a)-0061-04
  Research on LNMP cluster architecture based on cloud platform
  CAO Xiulian  ZHONG Xiangrui  LIN Xiaochao
  (Guangdong Engineering Vocational College  Guangzhou, Guangdong Province, 510520 China)
  Abstract: Server cluster architecture is the core of website web business, and its availability is directly related to the user experience and website efficiency. Modern cluster architecture uses the management and resource pool of cloud platform, and uses the virtual machine to replace the physical server to improve the information transmission, processing, storage and monitoring of the system. With the rapid growth of website traffic, when the traffic reaches more than 100000, the server architecture optimization caused by the traffic has become an urgent problem to be solved.
  Key Words: Cloud platform; LNMP cluster; Traffic; Load balancing
  本文主要選取了企业web网站架构为实际研究对象,在云平台下构建LNMP集群,从数据库服务优化、web服务器优化、负载均衡优化3个方面对企业的软硬件实际情况提出web网站架构优化方案。
  1 研究背景
  云技术(Cloud technology)是基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利[1-2]。
  LNMP集群是企业级常用于处理高并发问题的集群[3-4],它代表的就是Linux系统下Nginx+MySQL+ PHP这种网站服务器架构,LNMP集群架构可以解决30000~100000的访问量。
  服务器集群架构是网站web业务的核心,其可用性直接关系到用户的体验和网站的效率。随着计算机技术的飞速发展和访问量不断的增加,传统的web架构、负载均衡已不能适应新的发展需要,提高web集群架构的高可用性主要途径是运用先进的信息技术,根据企业的业务需求对现有的软硬件情况进行架构的改进,是解决问题的有利方法。
  云平台下的LNMP集群架构就是搭建的IaaS(Infrastructure as a Service),即基础设施即服务。指把IT基础设施作为一种服务通过网络对外提供,并根据用户对资源的实际使用量或占用量进行计费的一种服务模式。云平台下的LNMP集群架构的设计目标是优化企业web业务架构,应对web业务日益剧增的访问量,以此提高企业web服务集群的高可用行性和企业web业务的需求。
  2  云平台下构建LNMP集群的整体设计
  一个良好的架构设计和运维保障措施,能为云平台的稳定健康运行,产生不可估量的积极影响[5-6]。如果化繁为简,简单来说,要部署一套生产环境级别的云平台,至少会涉及到4个层次的内容,即物理基础设施层、存储层、云服务层和用户应用层。
  随着访问量不断增加,大多企业的Web集群都采用集群技术来构建Web物理服务器集群以解决日访问量大的问题。提高服务器集群的性能要选择合理的负载均衡策略,负载均衡策略的合理应用能优化集群性能,提高系统的运行效率,有效解决系统访问量大的问题。本文构建的LNMP集群的设计架构图如图1所示。
  2.1 整体设计目标
  2.1.1 构建云平台集群架构
  在计算节点集群和控制节点集群搭建云平台。
  2.1.2 资源弹性使用
  在控制节点服务器上实现资源的整合,把控制节点的全部资源加入云平台资源池。
  2.1.3 构建LNMP集群架构
  使用云平台下的云主机进行搭建Web虚拟的服务集群架构。   2.1.4 負载均衡
  在Lvs中使用Wrr算进行负载均衡调度,提高整个Web架构的稳定性。
  2.1.5 提高Web服务器集群访问量
  弹性资源的使用,可以快速增加Web集群中服务器的数量,令访问量增加。
  2.1.6 MySql数据库(HA)
  在访问量大的时候mysql服务器集群写入的请求会加重服务集群的负载,这个时候需要进行mysql集群读写进行分离。
  2.2 云平台部署步骤
  2.2.1 各节点进行基础环境配置
  配各节点IP地址、关闭防火墙不自启、内核防火墙设置为disable、全部节点进行统一时钟。
  2.2.2 控制节点(Rabbitmq、mariadb、Keystone、nova-api等)
  至少部署3台控制节点,其余可做计算节点、网络节点或存储节点。采用Haproxy + KeepAlived方式,代理数据库服务和OpenStack服务,对外暴露VIP提供API访问。
  2.2.3 网络节点(neutron_dhcp_agent、neutron_l3_agent、neutron_openvswitch_agent等)
  网络节点上运行的Neutron服务包括很多的组件,比如L3 Agent、openvswitch Agent、LBaas、VPNaas、FWaas、Metadata Agent等,其中部分组件提供了原生的HA支持。
  网络节点涉及到的网络有管理网络(用于OpenStack各服务之间通信)、外部网络(提供floating ip)、存储网络(如ceph存储网络)和虚机网络(也称租户网络、业务网络)4种类型。
  2.2.4 计算节点(Nova-Compute、neutron_openvswitch_agent、虚拟机等)
  计算节点是在全部的物理服务器(包括控制节点)运行nova、nova-api组件的各服务,进行云平台的资源整合。
  2.2.5 存储节点(cinder-volume、swift等)
  存储节点的HA,主要是针对cinder-volume、cinder-backup服务做HA,最简便的方法就是部署多个存储节点,某一节点上的服务挂了,不至于影响到全局。
  3  LNMP集群架构详细部署
  3.1 Nginx安装部署
  根据架构图把LNMP集群分为Nginx集群和Mysql+php集群。
  Nginx安装配置包括如下几部分:
  (1)Web服务、邮件服务、邮件代理;
  (2)负载均衡(反向代理proxy);
  (3)webcache;
  Nginx特点:静态小文件(1M),支持高并发,占用的资源很少。3W并发,10个进程,内存150M。
  安装依赖包:
  依赖软件:Pcre、Openssl、Zlib
  yum -y install wget
  yum -y install gcc gcc-c++ autoconf automake make
  yum -y install zlib zlib-devel openssl openssl-devel
  yum -y install patch
  下载软件包和依赖软件包:/tools/
  wget http://nginx.org/download/nginx-1.10.2.tar.gz
  wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.38.tar.gz
  wget http://zlib.net/zlib-1.2.8.tar.gz
  wget https://www.openssl.org/source/openssl-1.0.2h.tar.gz
  wget https://bitbucket.org/nginx-goodies/nginx-sticky-module-ng/get/master.tar.gz
  配置nginx.conf及部署Web站点
  egrep -v "#|^$" nginx.conf.default >nginx.conf
  vim nginx.conf
  worker_processes  1;
  events {
   worker_connections  1024;
  }
  http {
   include       mime.types;
   default_type  application/octet-stream;
   sendfile        on;
   keepalive_timeout  65;
   server {
   listen       80;
   server_name www.guangdonggongcheng.com;
   location / {
   root   html/www;
   index  index.html index.htm;    }
  }
   server {
   listen       80;
   server_name  bbs.guangdonggongcheng.com;
   location / {
   root   html/bbs;
   index  index.html index.htm;
   }
   }
  }
  3.2 负载均衡部署
  3.2.1 LB(Load Balance)集群之LVS
  LB集群的架构和原理很简单,就是当用户的请求发过来时,会直接分发到Director Server上,然后它把用户的请求根据设置好的调度算法,智能均衡地分发到后端真正服务器(real server)上。为了避免不同机器上用户请求得到的数据不一样,需要用到共享存储,这样保证所有用户请求的数据是一致的,如图2所示。
  LVS(Linux Virtual Server)即Linux虚拟服务器,是Linux内核标准的一部分。LVS架构从逻辑上可分为调度层、Server集群层和共享存储,是一个实现负载均衡集群的开源软件项目。能够构建一个高性能高可用的Linux服务器集群,不但具有良好的可靠性、可扩展性和可操作性,而且成本低廉。
  3.2.2 LVS使用的加权轮询 WRR负载均衡算法
  LVS中的负载均衡使用的是加权轮询WRR负载均衡算法,这种算法比经典的rr算法多了一个权重的概念,主要是给RS设置权重,权重代表分发的请求数,取值范围为0~100,这实质是弥补rr算法的不足之处。LVS根据每台服务器的性能,给每台服务器添加权值,假设有服务器A权值=1,服务器B权值=2,则意味着调度到服务器B的请求会是服务器A的2倍。
  3.2.3 MySQL数据库HA(High Availability)
  Mariadb Galara 集群。Galera Cluster是一套在innodb存储引擎上面实现multi-master及数据实时同步的系统架构,业务层面无需做读写分离工作,数据库读写压力都能按照既定的规则分发到各个节点上去。特点如下:(1)同步复制,(>=3)奇数个节点;(2)Active-active的多主拓扑结构;(3)集群任意节点可以读和写;(4)自动身份控制,失败节点自动脱离集群;(5)自动节点接入;(6)真正的基于”行”级别和ID检查的并行复制;(7)无单点故障,易扩展。
  采用MariaDB + Galera方案部署至少3个节点(最好节点数量为奇数),外部访问通过Haproxy的active + backend方式代理。平时主库为A,当A出现故障,则切换到B或C节点。
  安装数据库HA过程如下。
  (1)进行基础配置。集群至少需要3个节点的服务器硬件、配IP、centos7系统。
  (2)配置说明。Galera Cluster的内存要求很难准确预测。它使用的特定内存量可能会有很大差异,具体取决于给定节点接收的负载。如果Galera Cluster尝试使用比节点更多的内存,则mysqld实例会崩溃。保护节点系统崩溃的方法是确保服务有足够的swap空间分区或者交换文件。
  (3)启动Galera集群。完成安装和配置Galera Cluster后,需要使用wsrep-new-cluster选择一个节点上启动mysqld。这将会初始化集群的核心組件。在此之后启动的每个节点都将连接到该组件并开始复制数据。
  4  结语
  应对企业访问量日益剧增问题,使Web业务高可用,需要在云平台技术、技术架构、数据库HA、负载均衡等方面就设计调优。本文对企业Web业务应对日益剧增的访问量进行了分析其架构,对企业的日访问量剧增提出了全面的可行方案总结如下。
  (1)数据库HA方面:业务层面无需做读写分离工作,数据库读写压力都能按照既定的规则分发到各个节点上去、同步复制、多住拓扑结构、集群任意节点可以读和写、自动身份控制、无单点故障、自动节点接入。
  (2)Web应用和服务层:用云平台来代替整个系统的管理,易拓展性强,使用云主机的虚拟化技术在LNMP架构上。
  (3)集群负载均衡调度算法:根据实际情况选择合适的集群均衡调度算法。当用户访问集群时,每个用户所要请求处理的时间和消耗系统资源是不同的,采用动态反馈负载均衡算法考虑集群的实时负载和响应情况,不断调整服务期间处理的比例,尽可能的提高集群的整体性能。
  参考文献
  [1] 李金兆.信息化社会的戏曲传承[D].临汾:山西师范大学,2019.
  [2] 蒯向春.云网融合应用关键技术研究与设计[D].南京:南京邮电大学,2017.
  [3] 刘焓.云平台下服务分布式监控系统的研究与实现[D].成都:电子科技大学,2020.
  [4] 兰巨龙,胡宇翔,张震,等.未来网络体系与核心技术[M].北京:人民邮电出版社:学术中国·院士系列, 2017.368.
  [5] 刘志成,林东升,彭勇.云计算技术与应用基础[M].北京:人民邮电出版社,2017.283.
  [6] 刘奕.5G网络技术对提升4G网络性能的研究[J].数码世界,2020(4):24.
其他文献
摘 要:为了优化某炮射弹丸气动性结构设计,获得弹丸飞行过程中准确的气动力参数。本文建立了弹丸外流场模型并生成可计算的结构化网格,并采用了外流场数值计算方法;通过FLUENT软件,针对不同来流马赫数,不同攻角的条件下;对弹丸的流场分布和气动特性进行了计算与分析,符合超音速弹丸阻力气动规律;计算结果为弹丸飞行稳定性和弹道仿真分析提供了重要理论依据。  关键词:弹丸 气动性能 外流场 稳定性  中图分类
摘 要:为了保证工程建设过程中安全防护工程和主体工程同时运行,确保建设项目在安全方面符合国家的有关法规、标准和规定。本文通过分析哈尔滨地铁3号线一期工程拟建项目的自然环境、施工过程、施工场地等,并辨识出了在一期建设过程中影响工程安全和环境安全的原因。本文对此提出了合理可行的安全技术,从而提高了工程项目建设过程中的安全性和工作效率,避免和减少了施工过程中的安全事故。  关键词:建设过程 施工安全 工
摘 要:随着胶接技术的不断发展,其在可靠性及耐久性方面取得了重要突破,特别是在汽车和航空航天等结构领域,胶接连接的应用日渐广泛。本文针对某飞机防冰前缘在制造过程中底部出现气动外缘型值公差超差现象,研究了该现象产生的原因及机理,同时提出了相应的改进措施,并且完成了现场跟踪验证,有效解决了气动外缘型值公差超差问题。  关键词:胶接 防冰前缘 气动外缘型值公差 改进措施  中图分类号:
摘 要:网络靶场已成为支持网络空间安全技术验证、网络武器试验、攻防对抗演练和网络风险评估的主要手段,针对传统有线网络靶场形势,本文分析了无线网络靶场的发展趋势及技术难点,并依托信号仿真技术设计了一种无线网络靶场系统,将传统有线网络靶场的攻防对抗模式移植于无线网络空间,根据常用无线通信手段整体设计了无线网络对抗模式,极大的扩展了网络攻防对抗的范围。  關键词:无线网络对抗 无线网络仿真 数据采集分析
摘 要:无人机蜂群作战是无人作战体系中的典型手段,极可能对传统作战方式产生颠覆性影响,无人机作战与反无人机作战一直都是研究热点。无人作战模式是军事作战发展的重要方向,无人作战在抵近侦查、忠诚僚机、集群饱和攻击、无人机长时间察打一体值班巡逻方面具备极为显著的作战优势,特别是无人机蜂群作战,有着饱和式攻击力和复杂地型适应能力的特点,应用场景广阔,配合正在兴起的人工智能技术,成为目前无人作战技术研究的重
“每次离开总是装作轻松的样子,微笑着说回去吧。转身泪湿眼底,多想和从前一样,牵你温暖手掌,可是你不在我身旁……”  一个看似古董的小盒子循环播放着这首歌,方米粒轻轻地抚摸着它。这是教员口中的“父母”送他的生日礼物——MP3,一种旧时代的音乐播放器。不知为什么,这首歌常常能够牵动着他的心弦。伴随着音乐,他略带迷茫地望向舷窗外的蓝色星球,幻想着教员描述中人类起源的地方,幻想着教员口中旧时代的“家庭”关
期刊
摘 要:互联网体外诊断技术作为“互联网+”在体外诊断领域的典范应用,具备使用门槛低,对人员要求不高等优点,十分适合在基层医疗机构推广应用,鉴于基层医疗机构的特点,互联网体外诊断技术有必要选择与之相适应的质量控制策略。在互联网体外诊断的大量实践的基础上,结合基层医疗的实际情况,本文对互联网体外诊断质量控制策略进行详细分析及设计。  关键词:互联网+ 体外诊断 质量控制 基层医疗 物联网  中图分类号
摘 要:随着我国科学技术的发展,大部分的民爆行业设备都已达到了自动化程度。但是因为行业的特殊性,自动化设备在投入到实际的工作运转中,仍然会存在一些问题,尤其是安全问题。民爆行业的安全对其发展有着非常重要的影响,因此该行业也越来越重视安全问题,并对安全方面进行了较为全面的研究。本文主要分析民爆行业自动化设备应用的安全问题,并给出相应的解决建议。  关键词:民爆行业 自动化设备 安全问题 探讨  中图
摘 要:近年来,云计算技术飞速发展,许多企业和机构将自己的业务迁移到云上,这样不仅降低费用,还能提高效率。但随之而来的是云服务提供者和用户被大量的恶意软件攻击。许多机器学习算法通过对云平台上可能发生的行为进行预测,来保护云系统不受攻击,取得了不错的效果。但当所学习的数据集较大和稀疏时,这些机器学习算法效果不是很好。本文采用了一种梯度提升的决策树算法,能对云计算系统上的恶意软件攻击进行更准确的预测。