英语原文共 5 页,剩余内容已隐藏,支付完成后下载完整资料
负载平衡群集MySQL服务器群中的传入IP请求
Maria Kaitsa,Ilias Stavrakas,Theophanis Kontogiannis,Ilias Daradimos,Marios Panaousis and Dimos Triantis
雅典科技教育机构/希腊雅典电子部电子邮件:idefix@ee.teiath.gr
摘要
数据的可靠性和可用性成为日益增长的需求。 如今,一个数据库系统可以用于多种途径。 取决于实际的需求,总体成本或高可用性或两者都可以是数据库系统实施请求的规范。本文提供了一个开源、高可用性和冗余性数据库平台,用于存储原始的地理环境数据以待进一步处理。该系统由雅典科技教育机构的电子工程系维护,以支持INTERREG III B ARCHIMED框架下的研究活动。这个平台的主要挑战是基于商品硬件,使其开放但安全、数据冗余,能够适应负载高峰,并最终降低总体所需成本和运营成本,以便从预算中预留资金用于其他方向。在本文中,我们将介绍架构和拓扑结构,操作原理以及性能测量的指示性结果。
关键字 - MySQL服务器,MySQL集群,服务器场,数据库请求负载平衡,Piranha,Ganglia。
Ⅰ.介绍
负载均衡[1-4]是在需要提供全冗余和满足需求窥探功能的环境中实现的。 通过负载平衡,特定网络请求的负载可以根据服务器负载,地理或其他参数在多个服务器之间传播[5]。电子部门在开发基于关系数据库管理系统(RDBMS)的开源平台和数据库方面拥有丰富的经验。在该部的门户网站中,RDBMS与相关的在线基于Web的前端一起使用,用于创建用户帐户(即电子邮件和拨号),DNS注册,Web动态内容和统计信息。 通过同一门户网站,再次使用RDBMS和基于网络的表单,已实施了一系列学生服务,如本科生自助注册,讲座统计和评分以及远程教育平台(即电子邮件和拨号)。 MILDMAP MEDIA项目涉及整合不同的方法和技术,以便在实施物理过程期间监测,分析和评估决策链,以改善对自然资源的控制,在里面该项目的框架已经实施了关系数据库管理系统,并且数据库中充满了来自地中海各地合作伙伴的数据。 这些数据来自对与土地退化有关的自然现象造成的资源损失的分析、评估和绘图。为了满足这些要求,该项目的技术要求(高可用性,即时响应,故障间隔时间最短,最短停机时间)和预算限制实施了开源平台的开发。
使用可扩展的基于Linux的MySQL服务器场提供了更大的运营优势。在这样的系统中,每个服务器都有一个数据库副本,这样就消除了数据库相关的故障。 镜像数据库服务器作为数据库复制操作,以避免单点故障。另一台服务器正在处理向数据库分发传入请求[6]。在服务器出现故障的情况下,请求仍然会被引导至其余的服务器操作。这种架构为服务提供了可靠性,灵活性和高效性以及可升级性和长生命周期。
Ⅱ.实施
- 硬件描述
选择了一种硬件配置,可以根据必要的内存,CPU功率和存储容量满足特定的性能要求。
对于系统负载平衡器,使用了基于英特尔处理器的商业版服务器,具有两个100Mbps以太网网络接口,256MB RAM,300MHz的CPU和4GB的磁盘空间。
对于集群,三台类似的服务器用于运行MySQL服务,其中每个100Mbps以太网网络接口直接连接到第二层交换机,用于发送心跳线和客户端网络访问,256MB RAM,4GB存储空间和一个300MHz的CPU。 每个成员都有对称的I / O子系统[1],并且每个成员都具有相同的磁盘分区,并且所有三台服务器上的所有相同分区具有相同的空间分配和名称。
- 设计原则和数据流
我们的服务器场由三台持有完全复制数据库的MySQL服务器[7-9]和一台位
于服务器场和公共网络之间的Linux虚拟服务器 - LVS(mazestix.ee.teiath.gr)扮演负载平衡器的角色(图1)。 负载平衡器的所有服务器和第一个网络接口通过公用数据交换机连接到同一个专用网络。 负载均衡器还扮演了私有网络与公共网络之间分界点的角色。 内部专用网络不能直接访问公共网络。这增强了安全性,因为互联网上没有人可以不通过LVS直接访问服务器(见图1)。
图1:数据库场系统的拓扑。
通常,前端服务器(LVS)具有一个公共IP地址,称为虚拟IP(VIP),以便公共网络中的客户端能够访问它(图2)。 这个IP地址代表公众网络的整个服务器场。在此实现中,连接到专用群集网络的专用接口(eth0)的IP为172.16.1.20/24,公用接口(eth1)的IP为195.130.107.60/24。
要访问LVS后面的服务器上的服务,公共网络中的客户端将请求发送到属于负载均衡器的已知虚拟IP。负载均衡器正在接收请求并读取集群成员(本例中为MySQL服务器)的许多操作参数,以便根据预定义的标准在可用服务器上分发请求。 在我们的案例中,标准集是最低的服务器负载。
图2:基于LVS的群集
LVS服务器使用网络地址转换(NAT)将来自Internet的流量引导至相应的数据库服务器。当数据库服务器通过LVS接收到服务请求时,它会处理请求并将响应数据包发送到LVS服务器,LVS服务器再次使用网络地址转换(NAT)将数据包中的真实服务器地址替换为LVS服务器公共地址虚拟IP(VIP)地址加上新的端口号。 这个过程称为IP伪装,因为实际服务器的实际IP地址对请求客户端是隐藏的。 我们集群的知识产权计划见表I.
表I.
农场的IP计划
VIP |
VIP 港口 |
私人IPr |
真实 服务器端口 |
195.130.107.60 |
3306 |
172.16.1.21 |
3306 |
195.130.107.60 |
3306 |
172.16.1.22 |
3306 |
195.130.107.60 |
3306 |
172.16.1.23 |
3306 |
为了使LVS服务器正确地将网络数据包转发到真实服务器,必须将“IP转发”内核参数设置为打开。 在/etc/sysctl.conf中读取net.ipv4.ip_forward = 0的行更改为:net.ipv4.ip_forward = 1。
LVS服务器使用一组程序来监视群集节点和服务。脉冲守护进程读取配置文件/etc/sysconfig/ha/lvs.cf并启动lvs守护进程。lvs守护进程调用ipvsadm实用程序在内核中构建和维护IPVS路由表,并为每个真实服务器上配置的虚拟服务器启动nanny进程。 通过nanny守护进程,活动服务器确定每个真实服务器的运行状况并监视运行参数。 每个真实服务器上定义的每个服务都运行一个单独的进程。每个nanny进程检查真实服务器上已配置服务的状态,并告知lvs守护进程该真实服务器上的服务是否出现故障。如果检测到故障,lvs守护程序会指示ipvsadm从IPVS路由表中删除该实际服务器。
- 负载平衡软件
“Piranha”是一套用于配置和管理基于LVS的服务的工具。 Piranha带有自己的心跳工具来监控LVS服务器,并在故障情况下(当LVS物理冗余已经实施时)强制IP地址接管。 Piranha还拥有自己的工具,用于监控后端真实服务器的运行状况,并针对为LVS配置的每个虚拟服务器适当地操作它们。
Piranha可以配置为故障转移,其中备用服务器保持待机模式,随时可以在操作服务器发生故障时变为活动状态。 它还可以使集群显示为一个虚拟服务器,从而平衡集群中服务器之间的流量负载。
Piranha配置工具(图3)具有一个基于Web的界面,需要apache和php,并使用自己的httpd实例,配置文件和专用的TCP / IP端口号(3636)。
图3:控制/监视面板。
- 群集管理器
我们使用“redhat-config-cluster”软件包来配置集群并监控集群的当前状态及其成员和服务,并使用“clumanager”进行集群操作(包括集群守护程序)。 运行在集群上的服务的描述性名称被设置为mysqld,即MySQL deamon。 在所有集群成员服务器中,我们都指定了映射主共享分区和备份共享分区的原始和字符特殊设备文件。 共享磁盘存储上的两个原始设备是为主共享分区和影子共享分区创建的。 每个共享分区的大小为10 MB。
图4:群集状态工具
共享分区用于保存集群状态信息,包括集群锁状态,服务状态和配置信息。 定期地,每个服务器写入其状态。 这可确保每台服务器都具有群集配置的公共视图。如果服务器在启动时无法写入两个共享分区,不允许加入集群。 此外,如果活动服务器不能再写入两个共享分区,则服务器通过重新引导从集群中删除自己。
使用集群状态工具,用户可以查看集群系统和服务的状态,启动服务或者停止服务(参见图4)。
图4集群状态工具
- 数据库设置和复制
群集中的每个服务器成员正在运行MySQL服务。 每个服务器上的数据库结构,模式和内容在任何时刻都是相同的。 MySQL复制[9]基于一个主服务器(本例中为172.16.1.21),用于跟踪二进制日志中数据库的所有更改。 每台从服务器从主服务器接收主服务器记录在其二进制日志中的已保存更新并将其应用于本地数据库副本。 这样一来,奴隶在他们的数据副本上执行相同的查询。 在从机设置了主机数据副本之后,它将连接到主机并等待更新进行处理。 如果主站发生故障或从站与主站断开连接,则从站会不断尝试连接,直到它能够恢复监听更新。 在主服务器和从服务器上安装相同版本的MySQL可确保复制成功。 3.23.33版被认为是合适的。 为了添加MySQL服务,我们使用了群集配置工具“redhat-config-cluster”。 复制数据流以循环模式执行,如图5所示。MySQL服务器逐一更新其数据,并基于此模式。
图5:复制数据流程图
综上所述,数据库更新由MySQL处理,并通过前端服务器上使用的Piranha工具进行负载平衡,以设置,监控和管理Linux虚拟系统(LVS)群集。
Ⅲ.评估
为了评估系统的性能,使用名为“Ganglia”的图形监控工具进行测量[10]。
每当发生更改时,每个节点都会在本地监视其资源并在多播地址上发送包含监视数据的数据包。 这也适用于RDBMS应用程序及其要监视的特定度量标准。 所有节点都区分这些指标并收集和维护数据,从而对集群系统有一个全面的了解。
该软件可以提供有关群集监控的详细信息。 具体而言,集群负载,网络活动,一小时活动后的CPU功率内存使用以及一小时内每个集群成员的一般报告。
A.集群统计—测量
系统应该为包括CPU在内的所有计算资源承担较低的每节点开销。 对于高性能系统,这一点尤其重要,因为应用程序通常具有巨大的资源需求。 对于mazetix.ee.teiath.gr,对于cluster01.ee.teiath.gr,本地开销小于CPU的0.4%;对于cluster02.ee.teiath.gr,CPU开销小于0.15%CPU开销小于0.15%并且对于cluster03.ee.teiath.gr在一分钟的负载下CPU开销小于0.1%。
图6描绘了在24小时的活动之后系统在CPU负载帧中的行为。
图6:系统负载的测量
关于高负载期间的内存活动,我们测量了LVS内存使用情况68MByte,cluster01.ee.teiath.gr内存使用情况50MByte,cluster02.ee.teiath.gr内存使用情况47MByte和cluster03.ee.teiath.gr内存使用情况s61MByte。
并发测量,由Piranha软件在MySQL请求期间分析系统的网络活动。对于mazestix.ee.teiath.gr,网络利用率为1kByte /秒,没有故障,对于cluster01.ee.teiath.gr,网络活动为每秒400字节,对于cluster02.ee.teiath.gr,网络活动为每秒400字节,为cluster03.ee.teiath.gr网络活动是每秒300字节。 最后,本地每个节点的CPU使用率小于CPU的0.1%。
B.与配置参数
更多的请求被分配给两个真实的服务器,相对于它们的容量,活动连接更少。 由于分配给三台真实服务器中的两台服务器的权重较高(两台服务器的权重为3,第三台服务器的权重为1),因此这两台服务器每次连接第三台服务器。 这一事实证明cluster01和cluster02以及CPU进程的网络活动更高。
表二。 常数指标
<st 全文共7641字,剩余内容已隐藏,支付完成后下载完整资料</st 资料编号:[12584],资料为PDF文档或Word文档,PDF文档可免费转换为Word |
以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。