问答题X 纠错
UMP系统是构建在一个大的集群之上的,通过多个组件的协同作业,整个系统实现了对用户透明的 容灾、读写分离、分库分表、资源管理、资源调度、资源隔离和数据安全功能。
1.容灾
云数据库必须向用户提供一直可用的数据库连接,当MySQL实例发生故障时,系统必须自动执行故障恢复,所有故障处理过程对于用户而言是透明的,用户不会感知到后台发生的一切。
为了实现容灾,UMP系统会为每个用户创建两个MySQL实例,一个是主库,一个是从库,而且,这两个MySQL 实例之间互相把对方设置为备份机,任意一个MySQL实例上面发生的更新都会复制到对方。同时,Proxy服务器可以保证只向主库写人数据。
2.读写分离
由于每个用户都有两个MySQL实例,即主库和从库,因此,可以充分利用主从库实现用户读写操作的分离,实现负载均衡。UMP系统实现了对于用户透明的读写分离功能,当整个功能被开启时,负责向用户提供访问MySQL数据库服务的Proxy服务器,就会对用户发起的SQL语句进行解析,如果属于写操作,就直接发送到主库,如果是读操作,就会被均衡地发送到主库和从库上执行。
3.分库分表
UMP支持对用户透明的分库分表(Shard/Horizontal Partition)。但是,用户在创建账号的时候需要指定类型为多实例,并且设置实例的个数,系统会根据用户设置来创建多组MySQL实例。除此以外,用户还需要自己设定分库分表规则,如需要确定分区字段,也就是根据哪个字段进行分库分表,还要确定分区字段里的值如何映射到不同的MySQL实例上。
4.资源管理
UMP系统采用资源池机制来管理数据库服务器上的CPU、内存、磁盘等计算资源,所有的计算资源都放在资源池内进行统一分配,资源池是为MySQL实例分配资源的基本.单位。整个集群中的所有服务器会根据其机型、所在机房等因素被划分为多个资源池,每台服务器会被加人到相应的资源池。在资源池划分的基础上,UMP还在每台服务器内部采用Cgroup将资源进一步地细化,从而可以限制每个进程组使用资源的上限,同时保证进程组之间相互隔离。
5.资源调度
UMP系统中有3种规格的用户,分别是数据量和流量比较小的用户、中等规模用户以及需要分库分表的用户。多个小规模用户可以共享同一个MySQL实例。对于中等规模的用户,每个用户独占个MySQL实例。用户可以根据自己的需求来调整内存空间和磁盘空间,如果用户需要更多的资源,就可以迁移到资源有空闲或者具有更高配置的服务器上对于分库分表的用户,会占有多个独立的MySQL实例,这些实例既可以共存在同一台物理机上,也可以每个实例独占一台物理机。
UMP通过MySQL实例的迁移来实现资源调度。借助于阿里集团中间件团队开发的愚公系统,UMP可以实现在不停机的情况下动态扩容、缩容和迁移。
6.资源隔离
当多个用户共享同一个MySQL实例或者多个MySQL实例共存在同一个物理机上时,为了保护用户应用和数据的安全,必须实现资源隔离,否则,某个用户过多消耗系统资源会严重影响到其他用户的操作性能。
7.数据安全
数据安全是让用户放心使用云数据库产品的关键,尤其是企业用户,数据库中存放了很多业务数据,有些属于商业机密,一旦泄露,会给企业造成损失。UMP 系统设计了多种机制来保证数据安全。1)SSL数据库连接。2)数据访问IP白名单。3)记录用户操作日志。4)SQL拦截。
你可能喜欢
问答题