京东MySQL数据库Docker化最佳实践(附PPT)

  • 时间:
  • 浏览:0
  • 来源:5分PK10_5分PK10官网

京东资深数据库专家

Q10:有如可让 法子也不我数据卷容器的挂载。

3、提升资源利用率

3、Docker模板的制定、调度算法优化

随着Docker集群规模这麼 大,在推广中也经历了些痛点,下面大伙来扒一扒踩过的坑,以及是如可除理的:

三、MySQL数据库Docker化前准备工作

5、Zabbix监控负载取值间题,Docker与物理机有区别,里边提及过,除理取值错误。

总结与展望

除理方案:将会社区暂时这麼 遇到这麼 大规模,这麼 任何现成的除理方案,研发团队不不会 我本人动手创造。设计目标为单个集群1万台物理节点,开发了一个多 python版本的RPC(brood)框架,解除对MQ依赖。有点儿是依赖MQ操作DB的要素,完整版改为使用京东自研的Python版本RPC框架,对数据库的完整版操作均使用RPC自带支持的京东JIMDB(内存缓存集群)进行除理。成功除理了集群规模受限的间题。

五、总结与展望

Q6:我都不不会 解一下Docker在MySQL备份为甚么管理的?

Q8:大伙前面做一个多 里边件吗?

Docker技术的发展为MySQL数据库部署环境不想 容器化奠定了基础。京东Docker技术的发展都不会 归纳为5个阶段:

3、Zabbix监控agent不自动重启,加到rc.local里的任务不生效,虽有的是难点,但往往容易忽视。

演讲大纲:

下面介绍一下分配算法原理:将会一个多 集群申请的数据库服务器大于1,调度有的是为每一个多 容器选折 大约的宿主机,主也不我根据宿主机的状况(否是正常可用)、宿主机上的可用资源(cpu、内存、磁盘容量)否是满足申请的容器规格,将集群中所有的服务器都筛选完后 ,会计算服务器的权值,从中选折 最适合的服务器作为宿主机,如可让 在内存中记录下如可让 宿主机,下一个多 容器选折 宿主机时,会在筛选服务器的过程中加在一个多 判断,将会如可让 服务器将会被选中过作为宿主机,则过滤掉如可让 服务器。

空间间题对于DBA来说,都不会 说是比较常见的间题。随着业务的发展,磁盘使用超出了预先的评估,使用Docker在一定条件下都不会 在线扩容,方便快捷。但这并有的是除理空间间题的最佳方案,数据将会不断增长,但磁盘空间不将会无限扩容;基于性能、长远考虑,建议进行数据结转、数据清理将会库表拆分等操作。

除理方案:发现间题的根源在于Linux kernel,意识到做容器也不我做Linux kernel,即刻组建了Linux Kernel 团队,修改内核代码,最终除理并维护了京东我本人的Linux Kernel分支。

经过研发团队的不谢努力,性能间题终于完整版除理了。但也不我间题接踵而来,如可管理众多的Docker容器?我本人开发时间成本越多,基于团队过去一年里在Openstack方面经验的积累,团队最终选折 OpenStack + Docker的架构,并命名为京东第一代容器引擎平台JDOS1.0(JD DataCenter OS)。

一、京东Docker技术发展历程

MySQL数据库Docker化前准备工作

京东MySQL数据库Docker化的推进之路,从始于如履薄冰的使用,到目前占比超过70%以上的大规模部署,下面给大伙一一讲解这期间的发展历程。

4、磁盘IO隔离性不太好,一台Docker磁盘繁忙程度比较高,会影响该宿主机上如可让 Docker 性能。除理性能要求敏感的系统与磁盘IO使用较高的在同一宿主机上。

A7:将会数据量比较小,也是都不会 考虑MySQL的,单独的从库做统计的查询,也都不会 考虑MySQL;另外,在选型的完后 一定要根据实际考虑最适合的方案,不一定不不会 使用MySQL。

A3:内存CPU如可让 是Docker上通过宿主机都不会 严格进行控制隔离,IO嘴笨 是底层共用一块资源,在隔离性上不好,其嘴笨 Docker创建时,是指定了IO的使用状况,但有的是所处互相影响和干扰的状况。

A6:在Docker和物理机使用上这麼 越多区别。主也不我通过dump将会xtrabback备份到本地,并肩上传到存储中,如可让 定期的刻盘保存。

5、监控项调整

四、遇到的间题与除理方案

刘风才

如可让 对于如可让 空间上要求比较大的系统,将会业务发展的需求,数据库不将会拆得有点儿大,数据文件多于1T多的状况下是不越多约部署在Docker上的;再有也不我在性能上要求有点儿高的,有点儿重要的核心系统目前仍跑在物理机上,里边随着Docker技术不断的改进,会陆续地迁到Docker上。

提升磁盘IO性能。灵活的调度算法,如某系统对IO性能要求高,在Docker容器创建时,根据传入的参数,调度算法会在筛选大约的宿主机时,根据宿主机负载状况,选折 压力最小的作为宿主机。

2、制定Docker容器分配算法

京东从2013年始于规划虚拟化平台项目。都不会 说,一切从零始于,组建团队,架构采用当时主流的OpenStack+KVM架构,在发展初期,不不会 如可让 非核心的应用服务始于跑在kvm上。虚拟化研发团队在技术上调慢掌握了OpenStack核心代码,当时来说,OpenStack对VM支持都不会 说是天生的好,在各方面认为心智心智心智成熟 期期图片 是什么的时期,虚拟化团队满怀信心地接入了一个多 核心业务,不幸的是,正是如可让 核心业务给虚拟化团队带来了不小的打击,在性能上tp99无法缩短到40ms以内,无法满足应用服务的性能要求,在2013年夏天-2014年夏天研发尝试了各种法子,进行改造优化,最终仍无法达到物理机的性能水平。如可让 年对于虚拟研发团队来说是压抑、苦闷,也是积攒经验的一年。

A4:如可让 是完所之前 能 的,如可让 不影响应用的正常运行,如可让 有一定的条件,也不我当前宿主机上有足够的剩余资源。比如当前是16C、32G、1150G配置的Docker,打算升级成16核、32G、1T配置的的docker,不会 保证当前宿主机上不会 有大于1150G的空闲硬盘。

监控对运维来说是重中之重,京东MySQL 数据库监控采用的是Zabbix监控。在监控负载值获取上Docker与物理机是有区别的。在Docker上大伙无法通过os系统命令抓取系统负载状况,目前京东的实现法子:在宿主机上通过专门开发监控守护线程池池,把计算结果实时存储到Redis中,Zabbix从Redis中读取对应监控值。

1、OpenStack集群规模受限。OpenStack遇到集群规模的间题,所处严重的信息不可靠间题;如:创建容器消息在MQ传输过程丢失,容器状况挂起,DB连接数过大,计算节点各种agent定时任务hang住,部署升级无法核对升级结果。

遇到的间题与除理方案

A1:将MySQL数据库部署环境Docker化,首先是技术心智心智心智成熟 期期图片 是什么,如可让 有了一定经验。大伙是从非核心重要程度低的始于,逐步接入。目前将会有超过70%的系统都部署到Docker上了。

A2:对于数据库来说,主也不我CPU核数、内存、硬盘这三项。将会每个Docker配置不一样,数据库这边有8C、12G、1150G,12C、24G、1150G,12C、48G,11150G和16C、48G、11150G等类似于模板,分别对应CPU核数、内存、硬盘。

Q5:数据量比较大,表增长肯定也会增大的,后期数据的归档间题为甚么做?

讲师介绍  

数据库高可用是不容忽视的。在Docker容器分配时如可保障主从没了同一宿主机上呢?

Q3:刚才您遇到了一个多 间题里边,一个多 是IO在用的间题,我都不会 部署Docker时,都不会 指定Docker不不会 占用有哪几个IO如可让 呢?

1、Docker管理页面的开发

先谈一下京东MySQL数据库发展的历程。京东从2011年始于使用 MySQL数据库,在此完后 以SQL Server为主。2012年完后 ,MySQL数据库太快了 了 在京东崛起,爆炸式增长,到2013年 MySQL数据库就占了京东交易系统的一半,发展到2014年、2015年,MySQL将会成为京东主流的数据库。如可让 数据库服务器规模不断增大。下面看看选折 Docker化会带来哪有哪几个收益呢?

Q9:刚才你说Docker模板后续会不想考虑自动扩容?

Q7:我都不会 问一下大伙做OLAP如可让 块,将会MySQL是不适合数据分析大查询如可让 东西的。大伙公司也考虑把数据转到MySQL上,这还不会 在线分析吗?我都不会 问一下大伙为甚么做的?

除理了性能间题、批量管理的间题后,京东第一代容器引擎平台推广波特率极快,从15年起步到 16年618已完成1150%应用业务环境容器化,并经受住了618大促的考验。到目前为止,京东Docker部署已近十五万个左右,都不会 说是规模最大的Docker集群。

2、性能、稳定性间题。规模壮大完后 ,遇到所以低概率如可让 实嘴笨 在所处了性能和稳定性间题,mac表满原应 无法网络通信,UDP大报文硬塞,丢包,中断异常,系统slab集中回收性内存申请锁住时间过长。

最重要的如可让 ,京东在Docker技术上的逐步心智心智心智成熟 期期图片 是什么,应用部署环境1150%容器化,有了充裕的经验,有专业的团队的技术支持,并经历618、双11大促的考验。

本文来自云栖社区合作协议协议伙伴DBAplus

Q2:我是一个多 独立核算的部门,公司有如可让 产品要到Docker上跑,为甚么衡量它应用的成本,按部门进行核算,不会 考虑哪有哪几个因素?

1、初出茅庐

Q4:有将会其中一台会引起整个宿主机使用的状况,将会会产生如可让 干扰。您完后 说那个模板,将会定好了1150G,将会发现完后 的不够用,如可让 完后 都不会 对完后 的模板进行更改吗?将会都不会 ,是批量还是?

5、心智心智心智成熟 期期图片 是什么的Docker技术

实现Docker申请创建、暂停、开启、在线扩容等功能,方便DBA日常操作。

目前生产环境中70%的MySQL数据库都运行在Docker容器上。已顺利支撑了一个多 618、一个多 双11大促,经住了大流量的考验。京东Docker部署已近十五万个,成为全世界规模最大的Docker集群。

京东Docker技术发展历程

将会数据量达到一定规模语句,就不会 单独的大数据团队来搞了。现在大伙那边除DBA团队外之外,还一个多 大数据部门,大伙会定期地从MySQL抽取数据,如可让 模式,如可让 是实时,如可让 是离线,每天会把数据拉到大数据那边进行除理。

A5:如可让 间题,普通物理机有的是遇到。一般分如可让 状况:一个多 是业务上不会 继续访问的,一般是通过守护线程池池,将历史数据归档道一个多 历史集群中,也不我保证业务上也都不会 继续访问;另外如可让 是业务上历史过期数据,业务上不不会 访问的,都不会 放上去HBase将会Hadoop里,根据具体业务而定。  

原文发布时间为:2017-03-16

4、降低成本

2014年9月,公司安排首席架构师刘海峰带领虚拟化团队。他提出一套新的方案、新的思路,Docker由此进入京东。2014年6月 Docker1.0发布,当时Docker还非常单薄,不不会 镜像和对cgroup简单的操作功能是可用之处,将会虚拟化研发团队在过去一年的压抑,如可让 新的思路对于团队来说无疑是希望,经过简单的二次开发后,进行了基本性能测试,惊喜地发现TP99都不会 要素降低到40ms以内,虽不完美,但对于团队来说,这将会就看了曙光。

随着SSD硬盘成本的降低,SSD服务器使用这麼 普遍,IO性能有的是了很大提高,对于数据量小的数据库系统单独部署在物理机,在成本上考虑所处着浪费,但将会采用多库合用或多实例部署,这嘴笨 都不会 提升了资源利用率,但无法除理物理资源竞争、相互影响间题,而Docker在物理资源上良好的隔离性,恰恰都不会 除理如可让 难点。

二、MySQL数据库为甚么要Docker化

1、快速部署

2012年加入京东,担任MySQL DBA一职,负责数据库收集、数据库性能优化等日常运维工作,参与过分布式数据库项目、多中心交易项目等。

MySQL数据库为甚么要Docker化

2、动态扩容

A9:将会大伙采用的是非共享存储模式,如可让 大伙的自动扩容是有一定限度的,主也不我受限于宿主机剩余的资源。在线扩容这块,目前大伙将会做到了,如可让 是不会 人工介入的触发,完整版自动的扩容,暂时还这麼 考虑。

A10:如可让 是有一定的适用场景,但对于数据库来说,从不适用,一般统一宿主机上的Docker不不会 共享数据。

实现Docker容器批量申请、下线等一键化操作。实现Docker日常运维查询工作,类似于:根据宿主机IP查询该宿主机下所有Docker信息,根据Docker IP查询该宿主机及其下所有Docker信息等功能。

你说人们会问Docker和虚拟机的区别?嘴笨 这两者是有本质区别的。虚拟机的本质上是模拟。通过模拟物理机上的硬件,向用户提供资源。容器的基石是经过隔离与限制的linux守护线程池池。容器提供的是性能损失更小的原生物理机的计算能力,容器之间唯一共享的是linux内核。

A8:如可让 系统采用了里边件,但如可让 系统分库分表是在应用端实现的,主也不我这如可让 状况。

对于扩容来说,目前是通过web触发来进行扩容操作的,完整版满足当前的工作场景;对于批量来说,目前这麼 实现。主也不我将会前期将会进行了容量划不想产生大批量的扩容状况。

2013~2016连续4年作为MySQL数据库618、11.11项目DBA负责人,负责相应备战工作,为大促平稳护航。

2、小试牛刀

3、驾轻就熟

数据库服务器实例创建只不会 1分钟,和物理机os安装相比,波特率提升了几十倍。

4、Docker 管理平台与数据库管理平台结合

资源利用率提高了,节约了服务器资源、机架位资源,提升经济效益,降低了成本。

Q1:MySQL Docker使用的标准?