乐视云数据库卖力人
先后任职于大家网、新浪、多点等公司。 期间任高等DBA,数据库架构师等职。
拥有丰富的数据运维管理、自动化平台培植履历。

分享大纲:
乐视数据库先容
揭秘私有云RDS架构及实践
一、乐视数据库概述
1、数据库平台先容
我们数据库部门的数据库种类较多:有MySQL、Oracle、MongoDB、Redis等。从另一角度,可分为传统的DB (MySQL、MongoDB..) 及云数据库RDS。个中,MySQL在公司内部广泛利用,本日姑息乐视MySQL的运维情形进行分享。
2、数据库产品现状
MySQL版本较多,有官方MySQL5.5、MariaDB10、PXC5.6等;
架构有1主多从、1主多层、PXC(Percona-XtraDB-Cluster)等构造;
硬件有SAS盘、SATA SSD,紧张利用SATA SSD。
3、数据库架构
Master-Slave 构造有:
1主N从
1主N从+MB (master-backup)
1主N从+Relay
提个问题,图中1主N从+Relay构造,引入relay有什么优缺陷?
优点:在跨机房高可用时,布署一台同步用的relay 在异地机房可减少跨机房同步带宽。
缺陷: 增加了架构繁芜度,主从关系变成多层树构造。若是利用不当,比较乱,易出错。我见过超过4层的主从,梳理关系就很麻烦,建议不超过3层。
4、数据库监控
我们的数据库监控以开源软件为主,有天兔Lepus、Prometheus、Open-Falcon等。
(1)天兔
Lepus是一个由Python+PHP开拓的数据库企业级监控系统
支持MySQL/Oracle/MongoDB/Redis等数据库的监控
对付不是特殊大的DB规模,天兔监控就够用,也挺好用,可省客岁夜量开拓本钱。
(2)Prometheus
Prometheus是一个开源的做事监控系统,它通过HTTP协议从远程的机器网络数据并存储在本地的时序数据库上。它供应大略的网页界面、一个功能强大的查询措辞以及HTTP接口等。
(3)Open-Falcon
我们用Open-Falcon来做做事器根本监控。对Open-Falcon进行了一些2次开拓,如增加电话报警功能、IDC 的观点。
(4)作为补充还有Zabbix、微信告警等
此外,公司监控平台供应email报警,短信报警,电话语音报警。
作为补充,数据库平台增加了微信告警。 优点是方便,本钱低。 主要性大于邮件的,不到电话或短信级别的可以用微信。
5、数据库备份
数据备份是非常主要的,我们的DBA也非常重视数据库的备份事情。在这我把备份观点略微扩展,我认为数据库实时从库也是一种备份。
实时从库
大存储机器 单机多实例布署(20-30+)
主要业务 异地机房从库
多源复制从库
解释:
我们找了一些大磁盘存储10T+,在具布署了30+旁边的MySQL数据库,不供应线上做事。 这样相称于在一台机器上有30个DB的热备份。
对主要业务,进行异地跨机房从库制作。可避免单一IDC非常,引发故障。
乐视有一些统计剖析数据库,利用MariaDB多源复制,一个实例同时同步多个主库。某些情形也可以利用剖析库来规复数据。
冷备份
xtrabackup 物理热备份
全备+增备
Mount 挂载大存储
定期清理历史备份
紧张利用xtrabackup来物理备份MySQL。利用了全备+增备,每周至少一次全备,多个增备。为了简便,增备只做基于全备份的增备,并没有利用增备的增备。利用Mount 挂载大的存储 30T,做为备份存储。为避免存储容量满,会有脚本定期压缩,清理历史备份。
二、私有云RDS实践
1、私有云RDS项目背景
为什么做私有云RDS? 有各种情由: PaaS平台的盛行,老板提出须要把数据库做事化、容器技能兴起、本钱优化(硬件本钱+管理本钱)、用户体验等。
但是最真实缘故原由:忙!
2、RDS先容
乐视云RDS基于Docker + Mcluster 开拓的一种高可用、可弹性伸缩的在线数据库做事(Relational Database Service,简称RDS)。
个中,Mcluster(MySQL Server Cluster)是MySQL数据库集群。
Mcluster是我们开拓出的一种私有云MySQL集群
基于PXC (Percona Xtradb Cluster)封装和调优
真正的多主架构没有单点故障,高可用性
是RDS的根基
良好的扩展性
PXC官方的链接: https://www.percona.com/doc/percona-xtradb-cluster/5.6/index.html
3、私有云RDS架构
(1)架构图
RDS整体架构紧张分为以下几大部分:
Docker:乐视云RDS是跑在Docker容器内部
Database:为详细的数据库。可以是MySQL,也可以是PostgreSQL等任何数据库
Matrix:卖力前端数据库创建、管理、监控、掩护和干系资源调度
BeeHive:卖力资源的调度管理,BeeHive类似Kubernete
Data Analysis:卖力数据库日志的剖析还有用户行为剖析
(2)RDS架构图2
普通用户登录私有云平台matrix,申请创建RDS。 BeeHive打算剖析机群中的资源情形,选择得当的3台机器布署Mcluster DB,同时还会额外布署一个VIP容器来做DB高可用和负戴均衡。
用户可以通过此VIP来访问MySQL。RDS管理员可通过matrix后台对平台全部的RDS进行管理、监控运行状态等。
4、Mcluster架构
Mcluster是乐视云基于PXC (Percona XtraDB Cluster)封装和调优的私有云MySQL集群。由于基于PXC封装,故Mcluster具有和PXC 相同的特点。
多点读写
机群中任一DB节点都可以写入
并行复制
可以多个线程复制,以事务为单位,多个事务同时并行推送到所有集群节点
强同等性
各节点数据强同等性
高可用性
单一节点故障不会影响机群的可用性
兼容传统MySQL
与传统MySQL险些完备兼容,数据可以直策应用不须要任何转换
Mcluster和主从MySQL比拟
RDS界面
RDS界面——用户前端
类似阿里云、AWS的RDS用户平台页面。用户选择RDS的配置,紧张是磁盘及内存,点下一步,就可以提交RDS申请。(每个用户可以免费建3个,超出须要DBA审核)
RDS界面——管理后台
RDS管理员可登录管理后台进行RDS管理,紧张功能如下:
用户、宿主机资源管理
RDS日常管理 申请审核,RDS信息查询,职员变更等
Docker 容器管理
RDS备份
RDS监控 RDS运行状态监控
DockerFile
DockerFilek完成的事情:
安装及配置MySQL
安装干系软件
启动mcluter-manager
Mcluster-Manager
大家可以看到在DockerFile末了一行,会启动mcluster-manager。
Mclustre-Manager功能:
tornado的web做事
启动、停滞初始化MySQL
监控、管理MySQL
mcluster-manager安装在Docker容器中,用来管理MySQL。外部系统不直接操作MySQL,而是通过mcluster-manager API 调用。包括启动、停滞、初始化、监控、备份、管理MySQL等功能。
RDS利用
私有云RDS上线后大大减轻了DBA事情量,降落了做事器本钱和人力本钱。 目前在乐视体系各子公司得到广范利用。
运维和坑
数据库规范、流程非常主要
私有云 可节省大量机器本钱及人力本钱
私有云RDS产品设计、管理该异与公有云
RDS用户在线修正大表,引发故障
多节点同时大量写,随意马虎引起去世锁
组件较多,相互间依赖太强
运维工具待完善 如宿主机器故障,规复事情量大
数据库规范、流程非常主要,由于这是运维自动化的根本。我们吃过这个亏,数据库版本浩瀚,并且安装目录不同,带来很大的麻烦。
利用私有云确实是可节省大量机器本钱及人力本钱,这个在乐视云是可以确认的履历,由于我们每台机器上安装了20-30个Docker,即跑了20-30个MySQL,较传统的MySQL布署节省大量本钱。若是有个别业务写入量特殊大,由于PXC多份写的缘故原由,这时我们也可能迁移到传统的主从DB办法。
私有云RDS产品设计,管理该和公有云有差异。如曾经有RDS用户在线修正大表,引发故障。在公有云上,DBA不用关心此问题。 但是由于是公司内部用户,是私有云,故只能是我们DBA来处理,善后 :( 另私有云常还有产品树的观点,而公有云就不用类似的设计。
组件较多,相互间依赖太强。我们的RDS 系统做得还是有点太繁芜,未来版本希望可减化。
运维工具待完善,如宿主机器故障,规复事情量较大。 某一宿主机故障,要规复20-30+的DB。当前是DBA手动实行脚本,还是有点low。
Q&A
Q1:数据库备份紧张是利用物理备份还是逻辑备份?
A1:紧张利用xtrabackup物理备份MySQL。
Q2:利用数据库增量备份,规复起来很麻烦吗?
A2:乐视云利用基于全备的增备,并不会进行增备的增备。规复起来并不麻烦。
Q3:PXC多主架构是否是采取一个节点写,别的节点读的架构?
A3:多点大量同时写数据,有时会有锁问题,以是我们紧张是写一节点,多节点读。
Q4:如果写的节点挂了怎么办?
A4:我们前面有个架构图,用户通过Gblance来访问RDS。(相称于做了VIP高可用)
Q5:前面讲到广州到北京复制,你们走公网还是专线?
A5:我们利用专线。乐视云在全国有10多个机房。大机房之间走专线。
Q6:乐视云RDS是否存在着licence问题?
A6:不会有licence问题。我们的RDS是基于Docker + MySQL开拓,而MySQL、Docker都是开源软件,没有licence风险。
Q7:乐视云RDS会开源吗?会对外供应RDS做事么?
A7:目前暂无开源操持,只用在集团内部供应私有云做事,但依公司发展计策,不用除未来供应公有云RDS的可能。
End.
运行职员:中国统计网
微博ID:中国统计网
中国统计网,是海内最早的大数据学习网站,公众年夜众号:中国统计网
http://www.itongji.cn