首页 » 网站推广 » php解析乐视技巧_揭秘乐视MySQL数据库架构与运维实践

php解析乐视技巧_揭秘乐视MySQL数据库架构与运维实践

访客 2024-12-19 0

扫一扫用手机浏览

文章目录 [+]

乐视云数据库卖力人

先后任职于大家网、新浪、多点等公司。
期间任高等DBA,数据库架构师等职。

php解析乐视技巧_揭秘乐视MySQL数据库架构与运维实践

拥有丰富的数据运维管理、自动化平台培植履历。

php解析乐视技巧_揭秘乐视MySQL数据库架构与运维实践
(图片来自网络侵删)

分享大纲:

乐视数据库先容

揭秘私有云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

标签:

相关文章

php常量率低技巧_PHP 常量详解教程

PHP 常量常量是单个值的标识符(名称)。在脚本中无法改变该值。有效的常量名以字符或下划线开头(常量名称前面没有 $ 符号)。注释...

网站推广 2024-12-19 阅读1 评论0