4 罗成对 docker与数据库的应用结合 罗成对-注解
-
Upload
jiang-shang -
Category
Software
-
view
307 -
download
4
Transcript of 4 罗成对 docker与数据库的应用结合 罗成对-注解
agenda
• Background Introduction
• Scaling UDB Cluster
• Deployment
• Reflections on Docker
Background Introduction
• UCloud提供多样的云服务
• 业务曲线快速增长
UHost UDisk UDB UMem ULB UCDN
……
业务数据的存储
• 数据源及规模– 对象:ucloud各云产品– 类型:业务类、日志类、监控类(产品实例、平台级)、元数据…– 特点:增长快、schema多样– 规模:PB级,单库单表可达10T
• 面临的问题及对策– 单点压力(热点库表)--scale-up和scale-out,high performance– 单点故障 --HA– 成本 -- 按需申请资源– 运维 -- 易管理、易部署
• 高可用、高扩展性的云数据库UDB集群– MySQL:业务类– MongoDB:日志类、监控类、元数据
Scaling UDB Cluster
Master PrimarySlave
HA-managerSecondary Arbiter
Replica Set
MySQL MongoDB
High AvailabilityRead/Write Splitting
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
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
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
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)
特性增强相关性
Feature Docker DB
High Performance √ √
Scale-up √ -
Scale-out - √
High Availability - √
Cost √ -
Deployment/Maintenance √ -
Deployment
• Image– 来源干净可靠(推荐官网)– 利用Dockerfile安装必要工具– 合理的版本维护
• 操作系统– 内核版本和docker适配– cgroup挂载点– 最大文件数,限制db的连接数等等
• 数据卷持久化数据– 设置合理的读写权限
安全性
• 网络设置– 自定义网桥,限制docker0– 内网隔离– 禁止暴露端口– 配置DNS等
• 安全加强– 启用SELinux/GRSEC– 启用能力机制,注意某些超级权限
• Docker Daemon防护– 禁止宿主机根目录映射– 禁止滥用root权限
Docker的稳定性
• Service异常– 现象:停服、自动重启,概率极低– 后果:container存活状态存在不确定性(1)killed(时间上不确定)无法umount挂载点无法启动container(2)hanging– 措施:实时监控docker service
• 数据卷读写异常– 现象:rw变ro,小概率事件– 后果:映射目录无法写入– 措施:重启container
Docker的稳定性
• Docker版本升级异常
– 现象:向下不兼容,概率不确定,版本相关
– 后果:已存images消失,后果很严重
– 措施:预防,保持存量机器不升级
• Docker cgroup异常
– 现象:资源使用超配额
– 后果:导致OOM
– 措施:实时监控资源使用率
监控与诊断
• 监控级别– 实时监控宿主机存活、网络连通性
– 实时监控docker service
– 实时监控container存活
– 实时监控DB连通性
• Log --信息量有限– 宿主机日志/var/log/messages
– Docker日志/var/log/docker
– DB系统日志
Reflections on Docker
• 实践效果
– 高性能,低损耗
– 按需申请,秒级安装
– 一键式集群部署
• 现状
– 内部有几千个docker容器提供数据服务和网络服务
– Docker化的UDB集群作为基础,完美地支撑公司云平台,支持众多产品线
Reflections on Docker
• Docker on Iaas & Paas
Think You