摘 要:本文将云计算和数据库技术相结合,针对目前企事业单位对云数据库的需求,使用OpenStack、ansible等开源技术设计了一款私有云数据库系统,同时针对云数据库系统安全问题设计了与之适应的云数据库平台的安全架构,为企事业单位搭建私有云数据库平台提供了一种解决方案,经测试云数据库功能正常、性能良好。
关键词:云数据库;云计算;数据库;OpenStack
中图分类号:TP392 文献标识码:A DOI:10.3969/j.issn.1003-6970.2021.02.050
本文著录格式:张家勇.基于OpenStack的云数据库平台设计[J].软件,2021,42(02):163-166
Design of Cloud Database Platform Based on Openstack
ZHANG Jiayong
(Dalian Big Data Center, Dalian Liaoning 116012)
【Abstract】:This paper combines cloud computing and database technology, aiming at the current needs of enterprises and institutions for cloud database, uses openstack, ansible and other open source technologies to design a private cloud database system, and designs the security architecture of the corresponding cloud database platform for the security problems of cloud database system, which provides a way for enterprises and institutions to build private cloud database platform After testing, the cloud database function is normal and the performance is good.
【Key words】:cloud database;cloud computing;database;OpenStack
0 引言
隨着信息技术的不断发展云计算的技术的逐渐成熟,信息系统建立越来越依赖数据库支持[1]。相对于传统数据库来说,云数据库的高可用、高性能、易扩展、低成本等优势非常明显,越来越多的用户倾向于使用云数据库搭建信息系统[2]。近几年市场上先后涌现出SQL Azure、HBase等产品[3],这些产品多为运行于公有云环境下的商用产品,并且成本较高,而运行于私有云环境下的面向中小企事业单位使用的云数据库产品少之又少。本文就是针对目前企事业单位对云数据库的需求,研究设计了一款基于OpenStack、ansible等开源技术的私有云数据库平台,并针对云数据库平台的特点设计了与之对应的云数据库安全架构,经测试能够较好的满足需求。
1 系统需求分析
1.1 功能需求
目前国内大部分企事业单位希望能够使用云数据库支撑其信息系统建设,而其对云数据库需求主要包括用户管理、虚拟机管理、镜像管理、部署配置、数据库实例管理、监控、数据备份、计费及申请需求收集等需求。(1)用户管理。云数据库管理平台用户需要区分用户角色权限管理,普通用户只有云数据库本用户的使用权限或者视需求情况增加用户的管理权限,而管理用户可以管理用户及云数据库及其宿主虚拟机等。(2)物理机管理。用户能够通过云数据库平台实现底层物理机设备管理,支持灵活的将物理机其纳入或移除云数据平台及修改物理机配置等。(3)虚拟机管理。系统支持管理云数据库的宿主虚拟机,主要包括:创建(删除)虚拟机、虚拟机备份及虚拟机开启关闭等功能(4)镜像管理。系统能够支持类似创建的方式快速部署云数据库,即基于云计算虚拟化镜像的技术对相同配置需求的云数据库的进行类似创建和部署,并支持不同类型的镜像和模板的分类存储、上传以及查看。(5)自动部署。为实现系统方便快捷系统的部署,系统需要支持基于脚本技术的自动化部署功能,系统中预置安装配置参数以脚本,通过命令调用执行脚本实现按照参数配置进行自动化安装。(6)实例管理。系统支持管理员权限用户管理数据库实例,主要包括:创建实例、删除或销毁实例、启动和关闭实例、备份和恢复实例数据以及实例的优化升级等。(7)性能监控及报警。系统需要支持性能监控功能,以保障云数据库的安全稳定运行,主要包括CPU、内存、IOPS、存储空间等指标监控,同时支持根据经验值设置报警值,当相关指标超过报警值的时候自动报警。
1.2 非功能需求
目前很多应用系统依赖数据库建设,其所用数据库是否安全、可靠、易用及方便扩展将直接决定应用系统使用效果。数据库采用云模式后性能及安全性等方面更是面临巨大的挑战,能否经受众多用户并发连接考验展现高性能,能否方便地扩展资源以及能否在运行过程中安全稳定运行成为系统重要评价指标[4]。(1)兼容性。系统需要能够兼容Oracle、SQL Server、MySQL等主流数据库,保证各种应用系统能够方便平滑的迁移至云数据库平台。(2)可靠性。系统需具有一定的容错能力,避免出现单个节点故障导致系统整体系统崩溃和多用户同时操作一个数据库节点时出现差异。(3)易用性。系统整体需屏蔽虚拟化平台、消息中间件、自动部署等功能的具体繁琐的技术细节,用户能够通过接口方便的使用云数据库,系统整体应该简单易用,使用过程中不应有具体繁琐技术细节[5]。(4)扩展性。系统应有较好可扩展性,能够灵活的响应用户的需求。已经在运行维护期内的系统发生需求变更时,例如需要增加、修改、删除某些功能组件时,能够快速响应并交付,尽量避免因部分功能变化降低系统整体性能的情况[6]。(5)安全性。云数据库基于云计算虚拟化技术实现,各用户之间需要做到数据共享与隔离。各用户之间应支持依照访问权限只能访问到各自数据,不能访问到其他用户所述数据。同时要考虑到用户删除后其所属历史数据的保护等。
2 系統设计
2.1 总体架构设计
云数据库平台整体采用B/S架构,总体功能架构抽象为:业务展示层、业务逻辑层、虚拟化层以及物理层以及标准规范与管理体系和信息安全防护体系几部分,最终用户通过PC、移动端使用,整体结构如图1所示。(1)业务展示层:业务展示层主要作用是从使用用户的角度将云数据库的经常使用的用户管理、虚拟机管理、镜像管理、实例管理、物理机管理以及监控报警等操作进行封装后展示给用户使用,这样将屏蔽业务展示层以下的业务逻辑技术细节,提高系统的易用性,提高系统整体性、可扩展性和逻辑性。(2)业务逻辑层:业务逻辑层主要是通过J2EE,消息中间件ActiveMQ等技术工具实现虚拟机、镜像文件、数据库实例管理、监控及自动化部署封装技术细节,从功能实现的角度出发对业务展示层每个功能具体实现后通过业务展示层提供用户使用。(3)虚拟化层:使用OpenStack技术实现CPU、内存、硬盘、网络等物理设备虚拟,将计算、存储、网络等物理资源转化为逻辑资源,为业务逻辑层提供基础支撑。(4)物理层:主要由支撑系统所需的硬件设备构成,主要包括计算资源、存储资源、网络资源以及安全资源等等物理资源组成。这些设备组成基础物理资源为系统提供基础设备支撑。(5)标准规范与管理体系:平台良好运营需要管理规范和技术标准体系进行保障,平台管理规范涉及到对基础设施的维护、对数据的管理、对应用系统开发的监管、对运维体系的管理、对应用系统效果的评价等方面;而技术标准体系包括了基础设施、数据和应用的标准规范。(6)信息安全防护体系:平台的信息安全防护体系为业务展示层、业务逻辑层、虚拟化层、物理层及数据库资源、数据库服务等提供全方位的安全防护,包括漏洞扫描、主机防御、租户隔离、认证与审计、数据安全等模块,体系整体涵盖东西向、南北向的全方位防护,满足国家有关云安全标准的要求。
2.2 功能模块设计
根据需求分析和系统架构设计,云数据库平台的主要模块包括:用户管理、数据库实例管理、虚拟机管理、物理机管理、镜像管理以及云数据库的监控报警,功能结构如图2所示。
2.3 安全架构设计
云数据库安全架构主要包括云数据库的基本安全和云环境安全两部分。整体架构如图3所示。
(1)租户安全:云环境中各数据库租户应做到网络隔离,租户在私有云中购买数据库服务资源以及在上面部署的应用系统则安全责任的主体是租户自身,云数据系统提供必要的安全技术和安全服务,主要包括:租户身份认证、租户隔离、云应用交付等[7]。(2)应用安全:应用安全即通过使用安全工具和增加安全策略等方式,避免应用程序或工具在使用过程中产生的数据泄露,从而消除安全隐患。主要包括:基于流量的旁路审计、防火墙、抗DOS攻击、访问安全以及应用业务监控等手段。(3)数据安全:通过使用数据库加固、防泄漏、数据备份及密钥管理等多种技术和管理措施保障系统数据,确保数据可用、完整和保密。(4)虚拟化安全:云数据库系统基于云计算技术实现,因此一定要做好系统虚拟化层面安全措施,主要包括:虚拟机监视器强制访问控制、云数据库宿主机加固、虚拟机可信、资源隔离等。(5)系统安全:云数据库系统安全包括虚拟主机加固、病毒防护(杀毒)等技术手段。(6)物理安全:云数据库物理支撑的安全措施。包括:机房监控、可信计算及服务监控等。
2.4 自动化部署设计
云数据库的部署可以使用静态和动态部署两种方式。具有相应权限的用户将所应用的软件和工具部署在虚拟机上,然后制作虚拟机镜像模板并上传至系统,用户基于系统的镜像模板调整优化云数据库节点后使用。此种部署方式优点是用户无需了解更多的技术细节,更加方便部署并节省时间,缺点是后期所有的调整都要基于镜像文件进行,需要重新制作并上传镜像文件,这样软件升级、变更比较麻烦。动态部署即管理员只上传云数据库宿主虚拟机的操作系统镜像文件,管理员根据需求编写软件部署脚本完成部署安装,当软件升级或变更的时候修改配置文件或脚本及可完成升级或变更操作,相对静态部署解决了,升级、变更难的问题,但是动态部署过程中由于部分软件安装时间较长,所以用户等待的时间较长,用户体验较差。
本文综合静态和动态两种部署方式的优点,充分了解常用云数据库节点技术需求,选择常用的云数据库软件及部署环境制作镜像文件(如表1所示),做到常用云数据库节点镜像模板的精细化管理,通过Ansible实现云数据库节点自动化部署,提高工作效率,减少失误。
3 系统测试
3.1 测试环境
计算设备:CPU 14核,2.0GHz;内存512GB频率2666MT/s;硬盘 3块*1.2TB SAS; 2块双端口16G HBA卡,4个千兆网口,4个万兆光口。操作系统:CentOS 7;
部署模式:ALL in One模式;压力测试工具:sysbench 1.0.17。
3.2 测试结果
(1)功能测试。表2所示:
(2)性能测试。使用云数据库平台创建一个MySQL节点,版本MySQL 8.0.23,操作系统:Centos 7内存:16GB,数据存储空间:100GB。使用sysbench进行压力测试,执行模式oltp-test-mode选择complex测试内容包含对数据库的插入、删除、修改、查询并使用事务,并发连接数threads设置为100,执行时间设置为120s,生成报告的时间间隔report-interval设置为5s。测试过程共进行了15次反复测试,并选择每秒执行事务数量(TPS,单位:次/秒)作为衡量数据库性能的指标,结果如图4所示。
从测试结果可以总结出,单次测试云数据库中每秒执行事务数量在8000次至12000次之间,性能正常,能够满足用户需求。
4 结语
本文在充分分析了目前国内大部分企事业单位对于云数据库使用需求的基础上,将云计算和数据库技术相结合,使用OpenStack、Ansible等开源技术设计了一款私有云数据库系统和与之对应的安全机构。同时综合考虑静态和动态部署的优缺点,梳理了常用云数据库节点技术需求,建立常用云数据库节点镜像模板库后对其进行精细化管理,在一定程度上提高部署效率。最后搭建了测试环境对云数据系统进行测试,经测试此款云数据库功能正常,性能良好,能够满足用户需求。
参考文献
[1] 李慧.云计算技术现状与发展趋势分析[J].科技经济导刊,2019(29):30.
[2] 梅雅鑫.阿里云面向5G,云数据库势在必行[J].通信世界,2019(19):31.
[3] 青欣,胥光辉,戢瑶,等.云数据库应用研究[J].计算机技术与发展,2013,23(5):37-41+46.
[4] 庞大崴,符浩,郭奎良.企业私有云分级存储架构设计[J].信息与电脑(理论版),2018(9):5-7.
[5] 马静.虚拟化技术的发展与分类[J].电子技术与软件工程,
2016(19):14.
[6] 万宏凤.基于Openstack的云端自动化部署机制研究与实现[D].郑州:郑州大学,2016.
[7] 徐浩.云数据库数据安全保护技术研究[J].计算机产品与流通,2020(6):127.