基于DPDK的高性能负载均衡系统设计与实现
本文关键词:基于DPDK的高性能负载均衡系统设计与实现,由笔耕文化传播整理发布。
【摘要】:随着互联网的发展,云计算技术的使用日益广泛,公有云更是成为了很多小型企业部署业务的首选平台。由于云计算具有用户基数大,租户数量多以及高流量等特点,传统的负载均衡系统已经很难适应云计算环境下的使用。针对这一问题,本文立足于云计算对负载均衡的需求,设计并实现了一套x86平台下适用于云计算环境的负载均衡系统。相较于传统的负载均衡系统,本系统具有高性能、可配置性强、可扩展性强、易部署等特点。文章首先讨论了云计算技术的发展给负载均衡技术带来的挑战,然后对比分析了现有的负载均衡实现以及快速包处理框架。其次,简要介绍了x86平台下负载均衡系统开发所涉及到的相关技术。接下来又对Intel提出的快速包处理框架DPDK进行了详细的介绍,覆盖了其核心模块中对负载均衡系统较为重要的部分。最后,基于DPDK平台设计并实现了本负载均衡系统,系统整体划分为管理平面、控制平面和转发平面三大部分,并力求做到平面分离。管理平面的主要职责是向用户提供系统生命周期管理、负载均衡规则配置等功能,它向用户暴露了管理系统所需的全部接口。控制平面负责感知网络环境的变化,具有对环境中所有真实服务器进行健康检查以及对负载均衡规则进行维护的能力。同时,控制平面还负责与转发平面通信,把负载均衡规则的变化及健康检查结果及时下发给转发平面。转发平面作为系统的核心,负责对流经其的流量进行转发处理,转发流程包括真实服务器调度、NAT转换、连接保持、分片重组等。为了提高性能,转发平面通过DPDK框架绕过了Linux系统的内核协议栈,使用轮询的方式从网卡收包,通过流水线对包进行处理,最后直接送往网卡转发。此外,为了提高处理能力,转发平面关键流程均使用无锁算法。测试结果表明,该系统能将网络流量合理地分配给后端真实服务器,同时具有易部署、可配置性强、处理能力强等特点,适合作为云计算环境下的负载均衡系统。
【关键词】:负载均衡 云计算 DPDK 管理平面 控制平面 转发平面
【学位授予单位】:西安电子科技大学
【学位级别】:硕士
【学位授予年份】:2015
【分类号】:TP368.5
【目录】:
- 摘要5-6
- ABSTRACT6-11
- 符号对照表11-12
- 缩略语对照表12-17
- 第一章 绪论17-21
- 1.1 研究背景及意义17-18
- 1.2 相关工作及研究现状18-20
- 1.2.1 负载均衡领域18-19
- 1.2.2 快速包处理19-20
- 1.3 论文组织结构20-21
- 第二章 相关技术21-27
- 2.1 NAT21-22
- 2.2 NUMA22
- 2.3 HugePage22
- 2.4 绑核22
- 2.5 负载均衡调度算法22-25
- 2.5.1 轮询23
- 2.5.2 源地址Hash23
- 2.5.3 最小连接法23-24
- 2.5.4 一致性Hash24-25
- 2.5.5 动态自适应负载均衡25
- 2.6 健康检查25-26
- 2.6.1 三层健康检查25
- 2.6.2 四层健康检查25-26
- 2.6.3 应用层健康检查26
- 2.7 本章小结26-27
- 第三章 DPDK27-39
- 3.1 DPDK概述27-28
- 3.2 EAL28-29
- 3.3 DPDK核心组件29-36
- 3.3.1 内存分配30
- 3.3.2 Ring队列30-32
- 3.3.3 内存对象池32-33
- 3.3.4 包缓冲33-35
- 3.3.5 定时器35
- 3.3.6 PMD35
- 3.3.7 哈希表35
- 3.3.8 KNI35-36
- 3.4 本章小结36-39
- 第四章 需求分析与概要设计39-57
- 4.1 功能性需求分析39-41
- 4.1.2 管理平面需求分析39-40
- 4.1.3 控制平面需求分析40
- 4.1.4 转发平面需求分析40-41
- 4.2 非功能性需求分析41-42
- 4.2.1 高性能41
- 4.2.2 高可用41-42
- 4.2.3 可伸缩性42
- 4.2.4 可扩展性42
- 4.2.5 控制转发平面分离42
- 4.3 体系结构设计42-44
- 4.4 管理平面44-47
- 4.4.1 程序生命周期管理45
- 4.4.2 EAL配置45-46
- 4.4.3 负载均衡规则配置46-47
- 4.4.4 其他配置47
- 4.4.5 监控47
- 4.4.6 日志47
- 4.5 控制平面47-50
- 4.5.1 管理接口48
- 4.5.2 控制模块48-49
- 4.5.3 节点健康检查49
- 4.5.4 负载均衡规则维护49
- 4.5.5 虚网卡49-50
- 4.6 转发平面50-55
- 4.6.1 I/O处理52-53
- 4.6.2 转发处理53-54
- 4.6.3 负载均衡算法54
- 4.6.4 负载均衡规则54
- 4.6.5 IP虚拟分片重组54-55
- 4.6.6 连接追踪55
- 4.6.7 与控制平面的通信55
- 4.7 本章小结55-57
- 第五章 系统详细设计与实现57-75
- 5.1 管理平面设计实现57-61
- 5.1.1 系统启动57-59
- 5.1.2 请求接收及配置下发59-61
- 5.2 控制平面设计实现61-65
- 5.2.1 节点健康检查61-64
- 5.2.2 负载均衡规则维护64-65
- 5.3 转发平面设计实现65-74
- 5.3.1 I/O处理66-68
- 5.3.2 转发处理与连接追踪68-71
- 5.3.3 IP虚拟分片重组71-72
- 5.3.4 转发平面控制消息处理72-74
- 5.3.5 KNI线程的处理74
- 5.4 本章小结74-75
- 第六章 系统测试75-85
- 6.1 测试环境搭建75-78
- 6.1.1 系统环境75
- 6.1.2 DPDK环境配置75-77
- 6.1.3 线程部署77-78
- 6.1.4 网络环境部署78
- 6.2 系统测试78-83
- 6.2.1 功能性测试78-82
- 6.2.2 性能测试82-83
- 6.3 本章小结83-85
- 第七章 总结及展望85-87
- 7.1 总结85
- 7.2 后续工作85-87
- 参考文献87-89
- 致谢89-91
- 作者简介91-92
【相似文献】
中国期刊全文数据库 前10条
1 张克柱;;高校多出口链路负载均衡系统设计与实现[J];南阳理工学院学报;2013年06期
2 ;曙光发布负载均衡系统DLBV3.0[J];每周电脑报;2005年33期
3 刘玉艳;;基于VS/DR模式的负载均衡系统实践[J];安庆师范学院学报(自然科学版);2007年02期
4 肖辽亮;吴海波;;NAT-PT簇负载均衡系统工程应用平台搭建与性能测试分析[J];电脑知识与技术;2010年18期
5 张勋;边信黔;唐照东;王宏健;;AUV均衡系统设计及垂直面运动控制研究[J];中国造船;2012年01期
6 陈明建;陈宇;许榕生;;基于NP的负载均衡系统的设计实现[J];福建电脑;2006年02期
7 归律;张阳安;黄永清;李玲;任晓敏;;应用于ROADM的一种新型动态增益均衡系统[J];光通信研究;2007年05期
8 曾庆江;;负载均衡系统设计方案[J];计算机工程与设计;2009年19期
9 苏开宇;;多出口网络链路负载均衡系统的研究[J];中国计量学院学报;2009年01期
10 席玲玲;盖晓东;杨世彦;;基于CAN总线的串联储能电源组均衡系统[J];电力电子技术;2010年09期
中国硕士学位论文全文数据库 前10条
1 陆长海;锂电池组均衡系统设计与方法研究[D];北京交通大学;2016年
2 黄冰;基于DPDK的高性能负载均衡系统设计与实现[D];西安电子科技大学;2015年
3 曹雪铭;动力电池测试平台可控电流均衡系统设计[D];北京交通大学;2013年
4 黄倩;web集群负载均衡系统的设计与实现[D];电子科技大学;2014年
5 廖倩;基于Agent的负载均衡系统的设计与实现[D];华中科技大学;2008年
6 吴志强;集群负载均衡系统在企业计算平台中的应用[D];苏州大学;2007年
7 黄育佳;基于LVS的电视互动应用负载均衡系统的设计与实现[D];中山大学;2014年
8 程元杰;神经仿生负载均衡系统设计与实现[D];电子科技大学;2013年
9 肖辽亮;NAT-PT簇负载均衡系统的研究与实现[D];东南大学;2006年
10 刘柳;LVS负载均衡系统的研究与实现[D];大连理工大学;2012年
本文关键词:基于DPDK的高性能负载均衡系统设计与实现,由笔耕文化传播整理发布。
,本文编号:466882
本文链接:https://www.wllwen.com/kejilunwen/jisuanjikexuelunwen/466882.html