一、云数据库概述

云计算:通过网络以服务的方式为用户提供非常廉价的IT资源。

元计算的八大优势:

(1)按需服务

(2)随时服务

(3)通用性:满足各种不同的用户需求

(4)高可靠性:集群中有机器出现故障时,会有一定机制启用备用机器。

(5)极其廉价

(6)超大规模:带宽、CPU、内存、磁盘等资源予取予求。

(7)动态可扩展性

(8)高可用性

云平台数据管理 云平台数据库技术_数据库

云数据库在云环境中提供这样的数据库服务。

云平台数据管理 云平台数据库技术_云平台数据管理_02


腾讯云数据库和自建数据库的比较:

云平台数据管理 云平台数据库技术_sqlite_03


云数据库满足个性化存储需求:

(1)大企业海量数据存储需求

(2)中小企业:低成本数据存储需求

(3)满足企业动态变化的存储需求:企业内部的数据存储需求不是恒定的,调试安装。

二、云数据库产品

云平台数据管理 云平台数据库技术_云平台数据管理_04

微软:SQL Azure,基于关系型数据库构建。

三、云数据库的系统架构

UMP:Unified MySQL Platform,底层本、高性能,开源数据库。
UMP设计原则:

(1)真个系统保持单一的对外访问入口

(2)消除单点故障,保证服务的高可用性

(3)具有良好的可伸缩性,能够动态的增加、减少计算资源

(4)可以实现资源之间的相互隔离:多租户

多租户带来的问题:可能会出现某个用户消耗的资源过多、可能会影响其他用户相关的应用程序执行。

UMP的系统架构:

云平台数据管理 云平台数据库技术_big data_05


1、Mnesia:是分布式数据库管理系统;支持事务,支持透明的数据分片,利用两阶段锁实现分布式事务,可以线性扩展到至少50个节点;数据库模式可在运行时动态变更。2、RabbitMQ:工业级的消息队列产品。

云平台数据管理 云平台数据库技术_云数据库_06


3、Zookeeper:高效可靠的协调服务,如统一命名服务、状态同步服务、集群管理。

在UMP中发挥的作用,作为全局的配置服务器、提供分布式锁(在集群中选出一个“总管”)、监控各个机器上的MySQL实例(实时监控MySQL实例,发生故障时通知给总管)。

4、LVS:Linux虚拟服务器,是一个虚拟的服务器集群系统。
UMP系统借助LVS来实现集群内部的负载均衡、LVS集群采用IP负载均衡技术和基于内容请求分发技术、调度器是LVS集群系统的唯一入口点、整个服务器集群的结构对客户是透明的。

5、Controller服务器:UMP集群的总管。作用:集群成员的管理、元数据的存储、MySQL实例管理、故障恢复、备份迁移扩容。
Controller服务器避免单点故障,设置多个controller服务器,由zookeeper服务器确定一个总管,对外提供服务。

6、Web管理控制台:向用户提供系统管理界面。

7、Proxy服务器:向用户提供访问MySQL数据库的服务,使用MySQL数据库事时下载客户端、连接MySQL服务器。作用:数据路由、分库分表、资源限制、流量统计、日志记录。

8、Agent服务器:部署在运行MySQL进程的机器上用来管理每台物理机的MySQL实例

9、日志分析服务器:对整个日志分析。

10、信息统计服务器

云平台数据管理 云平台数据库技术_数据库_07


11、愚公系统:数据迁移,系统允许在不停机的情况下,可以实现动态的扩容、缩容、迁移。UMP系统功能:

1、容灾

容灾:云数据库必须具备的基础功能,为实现容灾UMP系统会为每个用户创建两个MySQL实例(主库->从库)。

故障时,主从切换过程:controller服务器修改路由表,主库标记为不可用,消息中间件rabbitmq向proxy服务器修改(主库和从库调换)。

主库恢复:主库更新复制从库内容,controller服务器命令从库暂停更新(暂停一段时间,为了防止在主库更新期间从库又写入新的数据)

云平台数据管理 云平台数据库技术_云平台数据管理_08


2、读写分离

读写分离:充分利用主从库实现用户读写操作的分离,实现负载均衡。

SQL语句查询:写操作,直接发送到主库;读操作,被均衡的发送到主库和从库上执行。

3、分库分表
分库分表:UMP支持对用户透明的分库分表。
分库分表时,查询过程:
(1)proxy服务器解析用户SQL语句,提取出重写和分发SQL语句所需要的信息;
(2)对SQL语句进行重写,得到多个针对相应MySQL实例的子语句,分发到对应的MySQL实例上执行;
(3)接收来自各个MySQL实例的SQL语句执行结果合并得到最终结果。

4、资源管理

资源管理:采用资源池机制对所有资源进行管理。

云平台数据管理 云平台数据库技术_sqlite_09


5、资源调度

UMP中三种用户:

(1)小规模用户:多个用户共享一个MySQL实例

(2)中等用户:每个用户独占一个MySQL实例

(3)分库分表用户:占有多个独立的MySQL实例6、资源隔离

云平台数据管理 云平台数据库技术_云数据库_10


7、数据安全

UMP中的数据安全机制:

(1)SSL数据库连接

(2)提供数据访问 IP 白名单

(3)记录用户操作日志

(4)SQL拦截

四、亚马逊和云计算

云平台数据管理 云平台数据库技术_云数据库_11


亚马逊在三层中都提供了相关的服务。

云平台数据管理 云平台数据库技术_big data_12


Amazon AWS平台上的云数据库:

云平台数据管理 云平台数据库技术_数据库_13


1、SimpleDB:第一个nosql数据库;记录有主键和多个属性组成;可以把数据进行多副本存储,支持高并发读取;更新操作只能对主副本进行,但可以快速传播到其他副本,提供最终一致性;更适合存储小型、碎片化的数据。

2、DynamoDB:提供一致性读的功能;根据主键去操作记录不允许进行批量更新;全部采取固态盘存储。

3、RDS:关系型数据库,建立3TB数据,带3万个DB实例

Amazon AWS架构:

云平台数据管理 云平台数据库技术_sqlite_14


1、全球基础设施

区域:共16个region,每个region包含数个可用区available zone组成,全球目前有50多个边缘节点edge locations(内容分发,加快对网络资源的访问速度)。

2、网络

提供直连服务,vpn方式和亚马逊连接。

3、计算

EC2,弹性计算云;ELB,提供负载均衡器(多个EC2)。

4、存储

S3,简单对象存储服务;EBS,弹性块存储服务专门针对EC2虚拟机设置;Glacier,存储较少使用的数据。

Amazon AWS产品分类:
1、计算类
(1)弹性计算云EC2:提供了云端的虚拟机。
(2)弹性Map Reduce:在云环境中部署Hadoop mapreduce环境,通过EC2虚拟机动态执行mapreduce计算任务。
2、存储类
(1)弹性块存储EBS
(2)简单消息存储SQS
(3)Blob对象存储S3
(4)nosql数据库
(5)关系数据库RDS

EC2:云上虚拟机,允许用户根据需求动态调整运行的实例类型和数量,实现按需付费。

EC2存储:EC2本地存储是实例自带的磁盘空间,但不是持久的;为了解决本地存储不可靠的问题,推出了EBS;EBS通过卷来组织数据,每个卷只能挂载到一个EC2实例;EBS和用户账号绑定的。

云平台数据管理 云平台数据库技术_big data_15


EBS和Amazon S3的区别:

云平台数据管理 云平台数据库技术_云平台数据管理_16


云平台数据管理 云平台数据库技术_云平台数据管理_17


云平台数据管理 云平台数据库技术_big data_18

五、微软云数据库SQL Azure

SQL Azure:可以实现数据的冗余备份。

云平台数据管理 云平台数据库技术_big data_19


SQL Azure四个部分:

1、SQL server实例

2、全局分区管理器

3、协议网关

4、分布式基础组件

云平台数据管理 云平台数据库技术_云平台数据管理_20