4 罗成对 docker与数据库的应用结合 罗成对-注解

18
Docker与数据库的应用结合 罗成对 [email protected] QQ: 376925324

Upload: jiang-shang

Post on 15-Jul-2015

320 views

Category:

Software


4 download

TRANSCRIPT

Page 1: 4 罗成对 docker与数据库的应用结合 罗成对-注解

Docker与数据库的应用结合

罗成对[email protected]

QQ: 376925324

Page 2: 4 罗成对 docker与数据库的应用结合 罗成对-注解

agenda

• Background Introduction

• Scaling UDB Cluster

• Deployment

• Reflections on Docker

Page 3: 4 罗成对 docker与数据库的应用结合 罗成对-注解

Background Introduction

• UCloud提供多样的云服务

• 业务曲线快速增长

UHost UDisk UDB UMem ULB UCDN

……

Page 4: 4 罗成对 docker与数据库的应用结合 罗成对-注解

业务数据的存储

• 数据源及规模– 对象:ucloud各云产品– 类型:业务类、日志类、监控类(产品实例、平台级)、元数据…– 特点:增长快、schema多样– 规模:PB级,单库单表可达10T

• 面临的问题及对策– 单点压力(热点库表)--scale-up和scale-out,high performance– 单点故障 --HA– 成本 -- 按需申请资源– 运维 -- 易管理、易部署

• 高可用、高扩展性的云数据库UDB集群– MySQL:业务类– MongoDB:日志类、监控类、元数据

Page 5: 4 罗成对 docker与数据库的应用结合 罗成对-注解

Scaling UDB Cluster

Master PrimarySlave

HA-managerSecondary Arbiter

Replica Set

MySQL MongoDB

High AvailabilityRead/Write Splitting

Page 6: 4 罗成对 docker与数据库的应用结合 罗成对-注解

Scaling UDB Cluster

UXX-sh1-p

UXX-sh1-s UXX-sh1-a

Replica Set

UXX-sh2-p

UXX-sh2-s UXX-sh2-a

Replica Set

UXX-sh-cnf1

UXX-sh-cnf2

UXX-sh-cnf3

mongos

shardsvr shardsvr

con

figs

vrQuery

Scale-out Sharding

Page 7: 4 罗成对 docker与数据库的应用结合 罗成对-注解

Scaling UDB Cluster

Application

Driver

Mongos Mongos

Access Layer

Mongos

Primary

Secondary

Arbiter

Shard1

Primary

Secondary

Arbiter

Shard2

Primary

Secondary

Arbiter

Shard3

Primary

Secondary

Arbiter

ShardN

……

Configsvr

Configsvr

Configsvr

Config

…… Query Router

DB Cluster Layer

……

High Scaling

Page 8: 4 罗成对 docker与数据库的应用结合 罗成对-注解

Deployment

Infrastructure

Operating System

Docker Engine

Master(15G/500G)

Mongos(6G/20G)

Primary(50G/1T)

Infrastructure

Operating System

Docker Engine

Slave(15G/500G)

Secondary(50G/1T) Config(1.5G/20G)

Infrastructure

Operating System

Docker Engine

Config(1.5G/20G)

Arbiter(600M/20G)

SDN

Config(1.5G/20G)

Mongos(3G/20G)Demand/Fast/Auto-Scheduling

Page 9: 4 罗成对 docker与数据库的应用结合 罗成对-注解

Deployment

Master(15G/500G)

Infrastructure

Operating System

Docker Engine

Infrastructure

Operating System

Docker Engine

Config(1.5G/20G)

Arbiter(600M/20G)

SDN

Mongos(3G/20G)

On-line/Off-lineUpgrade/DegradeMigration

Master(30G/1T)

Mongos(1.5G/20G)

Config(1.5G/20G)

Arbiter(600M/20G)

Master(30G/1T)

Mongos(1.5G/20G)

Page 10: 4 罗成对 docker与数据库的应用结合 罗成对-注解

特性增强相关性

Feature Docker DB

High Performance √ √

Scale-up √ -

Scale-out - √

High Availability - √

Cost √ -

Deployment/Maintenance √ -

Page 11: 4 罗成对 docker与数据库的应用结合 罗成对-注解

Deployment

• Image– 来源干净可靠(推荐官网)– 利用Dockerfile安装必要工具– 合理的版本维护

• 操作系统– 内核版本和docker适配– cgroup挂载点– 最大文件数,限制db的连接数等等

• 数据卷持久化数据– 设置合理的读写权限

Page 12: 4 罗成对 docker与数据库的应用结合 罗成对-注解

安全性

• 网络设置– 自定义网桥,限制docker0– 内网隔离– 禁止暴露端口– 配置DNS等

• 安全加强– 启用SELinux/GRSEC– 启用能力机制,注意某些超级权限

• Docker Daemon防护– 禁止宿主机根目录映射– 禁止滥用root权限

Page 13: 4 罗成对 docker与数据库的应用结合 罗成对-注解

Docker的稳定性

• Service异常– 现象:停服、自动重启,概率极低– 后果:container存活状态存在不确定性(1)killed(时间上不确定)无法umount挂载点无法启动container(2)hanging– 措施:实时监控docker service

• 数据卷读写异常– 现象:rw变ro,小概率事件– 后果:映射目录无法写入– 措施:重启container

Page 14: 4 罗成对 docker与数据库的应用结合 罗成对-注解

Docker的稳定性

• Docker版本升级异常

– 现象:向下不兼容,概率不确定,版本相关

– 后果:已存images消失,后果很严重

– 措施:预防,保持存量机器不升级

• Docker cgroup异常

– 现象:资源使用超配额

– 后果:导致OOM

– 措施:实时监控资源使用率

Page 15: 4 罗成对 docker与数据库的应用结合 罗成对-注解

监控与诊断

• 监控级别– 实时监控宿主机存活、网络连通性

– 实时监控docker service

– 实时监控container存活

– 实时监控DB连通性

• Log --信息量有限– 宿主机日志/var/log/messages

– Docker日志/var/log/docker

– DB系统日志

Page 16: 4 罗成对 docker与数据库的应用结合 罗成对-注解

Reflections on Docker

• 实践效果

– 高性能,低损耗

– 按需申请,秒级安装

– 一键式集群部署

• 现状

– 内部有几千个docker容器提供数据服务和网络服务

– Docker化的UDB集群作为基础,完美地支撑公司云平台,支持众多产品线

Page 17: 4 罗成对 docker与数据库的应用结合 罗成对-注解

Reflections on Docker

• Docker on Iaas & Paas

Page 18: 4 罗成对 docker与数据库的应用结合 罗成对-注解

Think You