当前位置 : 首页 > 徐州软件开发技术论坛 > 揭秘乐视MySQL数据库架构与运维实践

揭秘乐视MySQL数据库架构与运维实践

作者:徐州软件公司  文章来源:徐州软件公司   阅读次数:342 次
2017-09-03

此文章是徐州软件公司整理的技术资料,由徐州软件公司总务部发布,邮箱:zongwu@xuzhousoft.com

江苏徐软信息科技有限公司江苏徐软信息科技有限公司

讲师介绍

陶会祥
乐视云数据库负责人
  • 先后任职于人人网、新浪、多点等公司。 期间任高级DBA,数据库架构师等职。
  • 拥有丰富的数据运维管理、自动化平台建设经验。
徐州软件开发公司徐州徐软信息科技有限公司分享大纲:
  1. 乐视数据库介绍
  2. 揭秘私有云RDS架构及实践

一、乐视数据库概述

1、数据库平台介绍

我们数据库部门的数据库种类较多:有MySQL、Oracle、MongoDB、Redis等。从另一角度,可分为传统的DB (MySQL、MongoDB..) 及云数据库RDS。其中,MySQL在公司内部广泛使用,今天将就乐视MySQL的运维情况进行分享。

2、数据库产品现状

 

3、数据库架构

Master-Slave 结构有:

提个问题,图中1主N从+Relay结构,引入relay有什么优缺点?

4、数据库监控

我们的数据库监控以开源软件为主,有天兔Lepus、Prometheus、Open-Falcon等。

(1)天兔

对于不是特别大的DB规模,天兔监控就够用,也挺好用,可省去大量开发成本。

监控

(2)Prometheus

Prometheus是一个开源的服务监控系统,它通过HTTP协议从远程的机器收集数据并存储在本地的时序数据库上。它提供简单的网页界面、一个功能强大的查询语言以及HTTP接口等。

Prometheus

(3)Open-Falcon

我们用Open-Falcon来做服务器基础监控。对Open-Falcon进行了一些2次开发,如增加电话报警功能、IDC 的概念。

(4)作为补充还有Zabbix、微信告警等

此外,公司监控平台提供email报警,短信报警,电话语音报警。

作为补充,数据库平台增加了微信告警。 优点是方便,成本低。 重要性大于邮件的,不到电话或短信级别的可以用微信。

5、数据库备份

数据备份是非常重要的,我们的DBA也非常重视数据库的备份工作。在这我把备份概念略微扩展,我认为数据库实时从库也是一种备份。

实时从库

说明: 

  1. 我们找了一些大磁盘存储10T+,在具布署了30+左右的MySQL数据库,不提供线上服务。 这样相当于在一台机器上有30个DB的热备份。
  2. 对重要业务,进行异地跨机房从库制作。可避免单一IDC异常,引发故障。
  3. 乐视有一些统计分析数据库,使用MariaDB多源复制,一个实例同时同步多个主库。某些情况也可以使用分析库来恢复数据。

冷备份

主要使用xtrabackup来物理备份MySQL。使用了全备+增备,每周至少一次全备,多个增备。为了简便,增备只做基于全备份的增备,并没有使用增备的增备。利用Mount 挂载大的存储 30T,做为备份存储。为避免存储容量满,会有脚本定期压缩,清理历史备份。

二、私有云RDS实践

1、私有云RDS项目背景

为什么做私有云RDS? 有各种理由: PaaS平台的流行,老板提出需要把数据库服务化、容器技术兴起、成本优化(硬件成本+管理成本)、用户体验等。

但是最真实原因:忙!

私有云

2、RDS介绍

乐视云RDS基于Docker + Mcluster 开发的一种高可用、可弹性伸缩的在线数据库服务(Relational Database Service,简称RDS)。

其中,Mcluster(MySQL Server Cluster)是MySQL数据库集群。

PXC官方的链接: https://www.percona.com/doc/percona-xtradb-cluster/5.6/index.html

3、私有云RDS架构

(1)架构图

私有云

RDS整体架构主要分为以下几大部分:

  1. Docker:乐视云RDS是跑在Docker容器内部
  2. Database:为具体的数据库。可以是MySQL,也可以是PostgreSQL等任何数据库
  3. Matrix:负责前端数据库创建、管理、监控、维护和相关资源调度
  4. BeeHive:负责资源的调度管理,BeeHive类似Kubernete
  5. Data Analysis:负责数据库日志的分析还有用户行为分析

(2)RDS架构图2

RDS

普通用户登录私有云平台matrix,申请创建RDS。  BeeHive计算分析机群中的资源情况,选择合适的3台机器布署Mcluster DB,同时还会额外布署一个VIP容器来做DB高可用和负戴均衡。

用户可以通过此VIP来访问MySQL。RDS管理员可通过matrix后台对平台全部的RDS进行管理、监控运行状态等。

4、Mcluster架构

Mcluster是乐视云基于PXC (Percona XtraDB Cluster)封装和调优的私有云MySQL集群。因为基于PXC封装,故Mcluster具有和PXC 相同的特点。

Mcluster和主从MySQL对比

MySQL

RDS界面

RDS界面——用户前端

类似阿里云、AWS的RDS用户平台页面。用户选择RDS的配置,主要是磁盘及内存,点下一步,就可以提交RDS申请。(每个用户可以免费建3个,超出需要DBA审核)

RDS

RDS界面——管理后台

RDS管理员可登录管理后台进行RDS管理,主要功能如下:

DockerFile

DockerFilek完成的工作:

  1. 安装及配置MySQL
  2. 安装相关软件
  3. 启动mcluter-manager

Mcluster-Manager

大家可以看到在DockerFile最后一行,会启动mcluster-manager。

Mclustre-Manager功能:

mcluster-manager安装在Docker容器中,用来管理MySQL。外部系统不直接操作MySQL,而是通过mcluster-manager API 调用。包括启动、停止、初始化、监控、备份、管理MySQL等功能。

RDS运用

私有云RDS上线后大大减轻了DBA工作量,降低了服务器成本和人力成本。 目前在乐视体系各子公司得到广范使用。

运维和坑

数据库规范、流程非常重要,因为这是运维自动化的基础。我们吃过这个亏,数据库版本众多,并且安装目录不同,带来很大的麻烦。

使用私有云确实是可节省大量机器成本及人力成本,这个在乐视云是可以确认的经验,因为我们每台机器上安装了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的可能。

江苏徐软信息科技有限公司(简称徐州软件公司)是徐州软件公司中成立时间最长、技术能力最强、经济实力最雄厚的徐州软件开发公司之一,专业的徐州软件开发团队,从事徐州软件开发10年,一直保持着徐州软件开发行业排头兵的地位。徐州软件公司徐州软件开发行业内的众多徐州软件开发公司保持着良好的合作关系,是徐州软件开发行业的领航者之一。徐州软件公司立足徐州软件开发市场,主攻徐州软件开发徐州APP开发徐州软件公司徐州ERP软件开发徐州OA软件开发徐州CRM软件开发等领域拥有大量经典案例。更多信息请访问徐州软件公司官方网站:

徐软com:http://www.xuzhousoft.com  徐软cn:http://www.xuzhousoft.com.cn
徐软app:http://app.xuzhousoft.com  淮北徐软:http://huaibei.xuzhousoft.com.cn
济宁徐软:http://jining.xuzhousoft.com.cn  亳州徐软:http://bozhou.xuzhousoft.com.cn
菏泽徐软:http://heze.xuzhousoft.com.cn  宿州徐软:http://suzhou.xuzhousoft.com.cn
枣庄徐软:http://zaozhuang.xuzhousoft.com.cn  宿迁徐软:http://suqian.xuzhousoft.com.cn
商丘徐软:http://shangqiu.xuzhousoft.com.cn  连云港徐软:http://lianyungang.xuzhousoft.com.cn
莱芜徐软:http://laiwu.xuzhousoft.com.cn  泰安徐软:http://taian.xuzhousoft.com.cn
日照徐软:http://rizhao.xuzhousoft.com.cn  开封徐软:http://kaifeng.xuzhousoft.com.cn
周口徐软:http://zhoukou.xuzhousoft.com.cn  盐城徐软:http://yancheng.xuzhousoft.com.cn
淮安徐软:http://huaian.xuzhousoft.com.cn  阜阳徐软:http://fuyang.xuzhousoft.com.cn
蚌埠徐软:http://bengbu.xuzhousoft.com.cn  临沂徐软:http://linyi.xuzhousoft.com.cn
邳州徐软:http://pizhou.xuzhousoft.com.cn  新沂徐软:http://xinyi.xuzhousoft.com.cn
沛县徐软:http://peixian.xuzhousoft.com.cn  睢宁徐软:http://suining.xuzhousoft.com.cn
丰县徐软:http://fengxian.xuzhousoft.com.cn  萧县徐软:http://xiaoxian.xuzhousoft.com.cn
砀山徐软:http://dangshan.xuzhousoft.com.cn  微山徐软:http://weishan.xuzhousoft.com.cn
永城徐软:http://yongcheng.xuzhousoft.com.cn  网络营销:http://www.f168yingxiao.com
徐州系统集成公司:http://www.0516app.com

关键字标签:徐州软件公司 徐州软件开发公司 徐州APP软件开发公司 徐州ERP软件开发公司 徐州CRM软件开发公司 徐州OA软件开发公司

下载DOC版 下载PDF版

* 以上内容由 徐州软件公司 整理


关于我们

    江苏徐软信息科技有限公司(简称徐州软件)位于国家大学科技园内,成立于2005年,注册资金1000万元,是徐州地区最具实力的集软件开发、电子商务技术服务、门户网站建设、系统集成、网络工程为一体的高科技IT技术公司之一。

技术支持

  • 售后服务电话:0516-83003411
  • 售后服务QQ:412110939
  • 售后服务邮箱:
    service@xuzhousoft.com
  • 售后投诉电话:18795428064
徐州软件公司
    扫描微信二维码即可获得
    免费信息化咨询服务

Copyright© 2005 江苏徐软信息科技有限公司 All Rights Reserved.
苏公网安备 32030302000144号  苏ICP备11059116号-5

地址:江苏省徐州市云龙区和平路57号江苏师范大学科技园4F  徐州软件公司
电话:0516-83737996 邮箱:sales@xuzhousoft.com

江苏徐软信息科技有限公司地图
江苏徐软信息科技有限公司地图
点这里关闭本窗口
×