基于Docker的云数据库系统毕业论文
2021-03-15 21:06:02
摘 要
目前IT公司面临的主要挑战之一是如何管理大量不断增长的数据量,以及如何在生产中以最低的成本确保资源的最佳利用。DBaaS(Database as a Service)是将大量的程序配置,性能调优,备份,访问控制从数据库用户转移到服务运营商,为用户提供更低的总体成本。早期的DBaaS提供商包括Amazon和阿里云,采用虚拟机技术(Virtual Machine),将数据库系统部署在虚拟机上从而对外提供数据库服务,虽然在市场需求方面具有前景,但并没有涉及DBaaS的两大重要挑战:高效实例部署,弹性可扩展性。近几年容器技术兴起,Docker等容器产品重新定义了服务的部署方式。但是目前市面上还没有公开的、成熟的采用容器技术的云数据库产品或解决方案。因此本文在对容器技术与云数据库系统做了摸索和调研之后,尝试提出一种基于Docker容器技术的云数据库系统架构。该架构旨在构建多租户业务场景下,提高资源利用率,并能够根据业务需求弹性扩展服务。本云数据库平台旨在向用户提供具备高可用性和可靠性,以及灵活伸缩能力的云数据库服务。用户将数据托管给云数据库平台,便只需要关心业务层的实现,数据的可靠性和可用性将由云数据库服务提供商来保证。本平台借助容器技术,构建适合应用多租户模式的云数据库。通过容器的灵活度,实现快速部署和故障迁移,增强了云数据库服务的可扩展性和高可用性。
关键词:云计算;数据库;容器技术。
Abstract
One of the major challenges IT companies facing today is how to manage a large of ever-increasing amounts of data and how to ensure optimal utilization of resources with minimum cost in production. DBaaS (Database as a Service) is a large number of program configuration, performance tuning, backup, access control from the database user to the service operator, providing with lower overall cost. Early DBaaS providers, including Amazon and Ali cloud, used Virtual Machine technology to deploy the database system on a virtual machine to provide database services, although there was a prospect in terms of market demand and did not involve DBaaS Key Challenges: Efficient Deployment, Elastic Scalability. In recent years, with the rise of container technology, Docker and other container products to redefine the deployment of services. But there is no publicly available, mature cloud database products or solutions that use container technology. Therefore, this thesis attempts to propose a cloud database system architecture based on Docker container technology after exploring and researching container technology and cloud database system. The architecture is designed to build multi-tenant business scenarios, improve resource utilization, and be able to flexibly expand services based on business needs. The cloud database platform is designed to provide users with high availability and reliability, and flexible scalability cloud database services. Users trust the data to the cloud database platform, they only need to care about the realization of the business layer, data reliability and availability will be guaranteed by the cloud database service provider. The platform uses container technology to build a cloud database that is suitable for multi-tenant models. Through the flexibility of the container, to achieve rapid deployment and fault migration, enhanced cloud database service scalability and high availability.
Key Words:Cloud Computing; Database; Container.
目 录
第1章 绪论 1
1.1 研究背景 1
1.2 研究目的及意义 2
1.3 国内外研究现状 3
第2章 云数据库系统 5
2.1 多租户高效部署 5
2.2 服务弹性伸缩 6
2.3 服务故障转移 6
第3章 系统架构设计 8
3.1 存储资源层 9
3.2 计算资源层 10
第4章 技术选型 11
4.1 数据持久化 11
4.2 Docker Swarm 12
4.3 分布式文件系统 13
第5章 云数据系统实现 15
5.1 计算、存储分离 15
5.2 多租户高效部署 17
5.3 计算资源弹性伸缩 18
5.4 服务故障转移 18
第6章 系统性能测试 21
6.1 云数据库服务部署测试 21
6.2 存储层性能测试 22
6.3 弹性伸缩功能测试 23
第7章 系统功能展示 25
7.1 数据卷服务 25
7.2 数据库服务 25
第8章 总结和未来展望 28
参考文献 30
致谢 32
绪论
本章主要从研究背景、研究目的、研究意义、国内外研究现状、课题研究内容及预期目标几个方面进行相关的阐述。
1.1 研究背景
目前多数企业均设有自己的数据中心,购置大量硬件设备,设立单独的部门来管理业务数据。但是在当前数据爆炸的时代,对企业而言,在加购设备的同时,还要引进更多更资深的数据库运维人员来管理这些庞大的数据,保证自己的业务能够保持以往的稳定可靠。这意味着企业需要花费更多的资金来管理业务数据,其中人才消耗的花费也最高。
企业内部传统的数据库创建步骤主要分为以下几步:业务方或者用户向DBA(数据库管理员)申请创建数据库,并附上业务量和需要的资源等等信息;DBA根据业务需求,选择相应的物理资源,并安装对应的数据库;DBA向用户交付数据库,并提供给用户数据库的基本连接信息,例如数据库的IP、端口号等等;业务方或者用户初始化数据库后,导入业务数据,然后找DBA申请创建访问指定库或者是表的读写权限等等一系列账号权限。从这样的流程上可以看出,数据库相关的工作几乎每一步都需要DBA参与。这在业务量小的情况下并没有什么问题,但是当业务增长迅速,变的越来越大的时候,每天会有几十甚至上百个数据库相关的申请,DBA的负担就变得很重,有可能因此而影响业务的上线速度。
因此,如何通过较低的使用代价使得日益增长的数据得到更加妥善地管理成为目前IT企业关注的重点问题。构建一个具有可伸缩性,高可用性和高可靠性的数据库服务已经成为了云计算发展的重要里程碑。