一.概述
1.1 云计算通过网络以服务的方式为用户提供廉价的资源。
1.2 优势
- 按需服务;
- 随时服务;
- 通用性;
- 高可靠性:冗余备份;
- 成本低,廉价;
- 超大规模;
- 虚拟化;
- 扩展性高;
1.3 云数据库是部署和虚拟化在云计算环境当中的数据库;
1.4 云数据库的优良特性
- 动态可扩展;
- 高可用性;
- 较低的使用代价;
- 易用性;
- 免维护;
- 高性能;
- 安全;
1.5 云数据库与其他数据库的关系
- 数据模型:并非全新的一种技术,而是以服务的方式提供数据库功能;
二.云数据相关产品
2.1 amazon
- 亚马逊RDS:关系型数据库服务;
- SimpleDB:键值数据库;
- DynamoDB:提供NoSQL数据库;
- Amazon ElastiCache:分布式内存缓存服务;
2.2 Google :Google Cloud SQL;
2.3 Microsoft:Microcoft SQL Azure,关系型数据库;
三.云数据库系统架构
3.1 通用MySQL集群,云数据库服务,即UMP;
3.2 UMP系统概述
- 特性:低成本,高性能;
- 设计原则:
- 整个系统保持单一的对外访问入口;
- 消除了单点故障,保证服务的高可靠性;
- 具有很好的可伸缩,能够动态地增加,减少计算资源;
- 可以实现资源之间的相互隔离;
3.3 UMP系统架构
-
UMP系统包括:
-
Controller服务器
- UMP集群的总管;
- 提供集群成员的管理、元数据的存储、MySQL实例管理、故障恢复、备份迁移扩容等功能;
- Controller服务器上运行了一组Mnsia分布式数据库服务;
- 避免单点故障,设置了多个Controller服务器;Zookeeper来确定一个总管,提供对外服务;
-
Proxy服务器;
- 向用户提供访问MySQL数据库的服务;
- 使用MySQL数据库时下载客户端、连接MySQL服务器;
-
Agent服务器;
- 部署在运行MySQL进程的机器上用来管理每台物理机上的MySQL实例;
-
Web控制台;
-
日志分析服务器;
- 对整个日志进行分析;
-
信息统计服务器;
-
愚公系统;
- 不停机做数据迁移,可以实现动态扩容、缩容、迁移;
-
-
依赖的组件:
- Mnesia:
- 是一个分布式数据库管理系统;
- 支持事务,支持透明的数据分片,利用两阶段锁实现分布式事务,可以线性扩展到至少50个节点;
- Mnesia的数据库模式可在运行时动态重配置;
- LVS
- 即Linux虚拟服务器,是一个虚拟的服务器集群管理系统;
- UMP系统借助LVS来实现集群内部的负载均衡;
- LVS集群采用IP负载均衡技术和基于内容请求分发技术;
- 调度器是LVS集群系统的唯一入口点;
- 整个服务器集群的结构对客户是透明的;
- RabbitMQ
- 是一个工业级的消息队列产品;
- 基于队列的异步消息传输;
- Zookeeper;
- 高效可靠的协调服务;
- 统一命名、状态同步服务、集群管理;
- 作用:作为全局的配置服务器,提供分布式锁(选出集群的一个总管),监控所有MySQL实例;
- Mnesia:
3.4 UMP系统功能
- 容灾;
- 是云数据库必须要具备的基础功能;
- 为实现容灾UMP系统会为每个用户创建两个MySQL实例,一个主库,一个从库;
- Zookeeper服务器维护主、从库的状态;从主库写入数据;主库发生故障后切换到从库;
- 主从切换如下:
- 主库恢复:
- 读写分离;
- 充分利用主从库实现用户读写操作的分离,实现负载均衡;
- 写操作,直接发送到主库;读操作,被均衡地发送到主库和从库上执行;
- 分库分表;
- UMP支持对用户透明的分库分表;
- 资源管理;
- 采用资源池机制对所有资源进行管理,具有多资源池;
- 对于具体的MySQL实例如何分配资源:
- 资源调度;
- 资源隔离;
- 数据安全;
3.5 Amazon和云计算
- AWS:云计算的雏形,Amazon 开发的关系型数据库Aurora;
- AWS架构图
-
AWS Global Infrastructure(全局基础设施):云计算所有应用都是部署在这些基础设施之上的,有三个重要的概念。
- 区域Region:在全球有很多区域;
- 可用区Availability Zone:在一个区域的内部划分为很多的可用区Availability Zone(机房),可用区之间通过光纤连接;
- 边缘结点Edge Locations:负责内容分发网络CDN;
-
Networking网络服务:
- 提供直接连接服务;
- VPN 方式去跟亚马逊进行连接;
- Route 53:提供高可用可伸缩云域名解析系统;
-
Computer:
- EC2,弹性计算云:提供云端虚拟机服务;
- ELB:提供负载均衡器;
-
Storage存储服务
- S3:简单的对象存储服务;
- EBS:弹性块存储服务专门针对EC2虚拟机设置;
- Glacier:用于较少使用的文档存储和备份,价格便宜;
-
DataBase
- SimpleDB:基于云的键值数据库存储服务;
- DynamoDB:性能高,容错性强,支持分布式;
- 关系型数据库服务;
- Amazon ElastiCache:数据库缓存服务;
-
App Services
- 企业搜索级服务;
- 队列服务;
- 工作流服务;
- 内容分发服务;
-
部署管理服务
-
计算类服务
- 弹性计算云EC2:EC2提供了云端的虚拟机;
- 弹性MapReduce:在云环境中部署Hadoop MapReduce换件,通过EC2虚拟机动态执行MapReduce计算任务;
存储类服务:
工具和服务:
EC2架构:
3.6 AWS 上的数据库服务
3.7 微软云数据库 SQL Azure