私有云数据库的构建
2017-06-05陆涛
摘 要 本文研究了私有云数据库的数据存储、私有去数据平台和用户的构建方法。陈述了在私有云数据库中常用的相关技术。对私有云数据库的发展具有总结性的作用。
【关键词】私有云 私有云数据库 架构 相关技术
1 私有云
云计算是一种基于互联网的分布式计算,由Google的首席执行官Eric Schmidt第一次提出。云计算在商业运营中有公有云、私有云和混合云三种常见的计算模式。公有云是运营商面对公众开发的云计算服务。私有云是面向企事业单位内部开发设计的云计算服务。混合云是由公有云和私有云相结合的产物。
私有云是针对单位的专享服务而构建的,拥有单位的防火墙保护,数据的安全性比公有云和混合云要高很多。私有云相对于公有云分布计算集中,用户范围小、管理方便、服务质量好,能够充分使用本单位的现有硬件资源和软件资源。
2 私有云数据库
私有云据库就是将数据库部署在私有云的虚拟计算环境中,从下至上由数据存储、私有云数据库平台和用户组成。
2.1 数据存储
在私有云数据库中,数据库的存储方案决定了数据的安全性。无论采用双机热备还是双机冷备,在服务器进行切换时一定要保证数据的一致性,这样才能实现数据的完整性。目前采用DRBD(Distributed Replicated Block Device)存储或共享存储方案的较多。DRBD是由通过软件系统实现主服务器和备用服务器之间的实时存储复制。主服务器和备用服务器之间可以角色互换。缺点是数据容量翻倍、资源浪费,有“脑裂”风险。共享存储方案是将存储空间与主服务器和备用服务器相互独立。在数据存储时通过服务器操作将数据存储在存储设备的同一个分区,保证了数据的一致性。缺点是某一时刻只允许一台服务器进行数据存储,多台服务器不能并行操作,效率低。
2.2 私有云数据库平台
私有云数据库平台主要包括平台组件、OpenStack服务、云数据库管理和系统管理四部分。
平台组件分为集中式和分布式。集中式将所有服务组件都设置在一个服务设备上,能够节省资源但容灾性能差。分布式将服务组件部署在不同的服务器上,服务响应速度快容灾性好。
OpenStack服务由数据计算、镜像管理、虚拟网络、块存储、对象存储、身份认证、控制面板和消息管理等组件模块构成。每个模块可以独立向用户提供资源服务。
云数据库管理是通过底层数据库资源池实现的。数据库资源池的功能是为执行进程发出的信息流提供所需的物理支持和响应,信息流包括数据库服务器的创建、添加、删除、修改、查询和刷新等操作。数据库资源池可以由MySQL、Oracle、SQL Server等多种数据库组成。
系统管理包括控制指令、节点管理、故障处理、负载分配等功能。控制指令包括状态指令、数据备份与恢复、日志查询等。节点管理通过监控系统对私有云中各个节点的实时状态进行监管。故障处理功能是对各节点中出现的故障进行自动相应处理。负载分配功能是统计私有云各节点的负载情况,根据负载均衡原则自动进行负载迁移。
2.3 用户
根据操作权限分为普通用户和管理员用户。普通用户仅享有数据的存取和查询服务。管理员用户拥有系统的所有权限,可以控制系统。
3 相关技术
3.1 VLAN
虚拟局域网(virtual local area network,简称VLAN)是一项成熟的网络技术,拥有传输速率快、操作简单、易管理和扩展性好的特点。VLAN能够将局域网络根据需要划分为多个小型网段,不受计算机位置的控制,这样可以有效控制私有云数据库操作引起的广播风暴,提高数据的安全性和冗余数据的剔除能力。
3.2 Xen
Xen是使用虚拟化技术在一台设备上运行多个操作系统,各个系统间相互独立,共同享用硬件资源和数据信息。在私有云数据库中使用该技术不仅可以提高设备的利用率,减少硬件投入,还能够解决多个数据库同时运行产生的冲突问题。
3.3 Ceilometer
Ceilometer技术是OpenStack中的一项子技术,可以提供轮询代理、通知代理、收集器、API、报警五个核心服务,每个服务不仅可以再次增加,还能够根据负荷的扩大增加节点。轮询代理的功能是对OpenStack 服务进行轮询查询,统计轮询数据。通知代理的功能是把消息队列中的信息通知给OpenStack,并实现样本的转换。收集器的功能是把通知代理中的转换样本存储到数据库中。API的功能是向需求者提供收集器存储的数据样本。报警的功能是按照定义的报警条件对数据进行检查并通知给系统。
Ceilometer五个核心服务的过程是数据采集、数据传送和数据存储的过程。目前Ceilometer能够识别关系数据库的MySQL、非关系数据库HBase和两者间的MongoDB数据库。
3.4 WebSocket
WebSocket在私有云数据库中的应用实现了浏览器与服务器的双工通信。通过WebSocket 协议浏览器与服务器在握手操作后就能够建立双工高速通道,两者间进行直接的数据传输,减少了服务器的轮询时间。在定义WebSocket接口时除了要定义WebSocket协議还要定义JavaScript应用程序的WebSocket接口。
WebSocket有readyState和bufferedAmount两个属性。readyState有0、1、2和3共四种状态。0表示正在Web与云服务器正在进行握手连接,还未连接成功。1表示Web与云服务器已经连接成功,可以进行通信。2表示Web与云服务器握手操作被取消,正在进行断开操作。3表示Web与云服务器已经断开连接。bufferedAmount的功能是Web与云服务器的连接缓冲区。
4 总结
私有云数据库是云计算技术中的一项重要内容,依赖于云计算的提高。随着市场的发展越来越多的企业需要构建私有云数据库,但以下问题会成为近几年解决的首要问题。
(1)目前应用在私有云数据库中的数据库有关系数据库和非关系数据库,各类数据库对云服务器系统的要求各不同,其兼容性问题有待进一步研究。
(2)为了避免在进行数据网络传输时出现访问延迟现象,私有云数据库要求网络环境较为苛刻。
(3)随着黑客技术的发展,私有云数据库的安全性研究也不可忽视。
作者简介
陆涛(1979-),女,辽宁省本溪市人。硕士学位。研究方向为软件开发与信息安全。
作者单位
辽宁轨道交通职业学院机电工程系 辽宁省沈阳市 110023