第1页
基于 块存储服务
UnitedStack
第2页
⼤大纲
• UOSCloud • OpenStack & Ceph • 集群⾼高持久性设计 • 数据⾼高可⽤用性架构 • ⾼高性能重构
第3页
Public Cloud
Region 1 Region 2 Beijing 1 Guangdong 1
……
U Center
Managed Cloud
Customer 1 Customer 2 Customer 3 Customer 4
……
Unified Cloud Service Platform
Unified Ops
第4页
UOSCloud
• 随卷容量变化的性能保证 • 多副本、⾼高数据可⽤用性 • 所有块设备管理操作⼀一秒内完成 • 实时快照 • ⽀支持性能盘和容量盘 • ⽀支持单卷多虚拟机挂载 • 基于
第5页
OpenStack
• OpenStack 块存储
第6页
OpenStack & Ceph
• 随容量变化的性能提供 • 镜像、根分区和数据分区的统⼀一存储 • 只读卷 • 共享卷
第7页
OpenStack & Ceph
1 Gb Network: 20 GB / 100 MB = 200 s = 3 mins 10 Gb Network: 20 GB / 1000 MB = 20 s
Boot Storm
cinder
20 GB Image
HTTP
glance
20 GB Image
HTTP
nova VM VM
LVM SAN Ceph
LocalFS Swift Ceph
GlusterFS
LocalFS NFS
GlusterFS
第8页
OpenStack & Ceph
cinder
glance
nova VM VM
Ceph
第9页
Ceph
第10页
Ceph
• Ceph • 设计⽬目标
• 所有组件横向扩展 • 没有单点故障 • 可以在普通商⽤用硬件使⽤用 • 所有机制必须尽可能⾃自我管理 • 必须开源
第11页
Ceph
• MON: •3
• OSD: • 每个物理存储设备
第12页
分布式存储系统痛点
• 中⼼心化系统 数据控制 Hash(obj)
• 元数据瓶颈 • 单点故障
• 全分布式系统 数据访问 CRu•sh故(c障lu处st理er能st⼒a力t不e,⾜p足olicy, obj)
• 数据恢复困难
第13页
集群⾼高持久性设计
CRUSH—
第14页
Ceph
• CRUSH • 集群监控和⾃自修复系统
第15页
CRUSH
• 伪随机算法 • 集群健康状态 • 节点物理拓扑 • 数据分布策略配置
• 所有组件 可根据三者算出任意数据的存放 位置
第16页
集群状态
• 所有 • 被所有组件拥有 • OSDMap • 灰度发布 • 分布式恢复
第17页
OSDMap
第18页
数据⾼高可⽤用架构
CRUSH—
第19页
计算存储融合
第20页
CRUSH—
• OSD:
• OSD-Domain: ==
• Replicate-Domain: 有关
• Failure-Domain: 关
第21页
CRUSH—
rack-01
osd-domain server-01 server-02 server-03 server-04 server-05 server-06 server-07 server-08
osd-domain
rack-02
root
osd-domain server-09 server-10 server-11 server-12 server-13 server-14 server-15 server-16
osd-domain
rack-03
failure-domain
osd-domain server-17
server-18 server-19 server-20
replica-domain
server-21
server-22 server-23
replica-domain
server-24 osd-domain
第22页
集群物理拓扑
40 Gb Switch
40 Gb Switch
Compute/Storage Node Compute/Storage Node Compute/Storage Node Compute/Storage Node
Compute/Storage Node Compute/Storage Node Compute/Storage Node Compute/Storage Node
Compute/Storage Node Compute/Storage Node Compute/Storage Node Compute/Storage Node
第23页
横向扩展
40 Gb Switch
40 Gb Switch
Compute/Storage Node Compute/Storage Node Compute/Storage Node
Compute/Storage Node Compute/Storage Node Compute/Storage Node
Compute/Storage Node Compute/Storage Node Compute/Storage Node
Compute/Storage Node Compute/Storage Node Compute/Storage Node
Compute/Storage Node Compute/Storage Node Compute/Storage Node
Compute/Storage Node Compute/Storage Node Compute/Storage Node
Compute/Storage Node Compute/Storage Node Compute/Storage Node
Compute/Storage Node Compute/Storage Node Compute/Storage Node
Compute/Storage Node Compute/Storage Node Compute/Storage Node
Compute/Storage Node Compute/Storage Node Compute/Storage Node
Compute/Storage Node Compute/Storage Node Compute/Storage Node
Compute/Storage Node Compute/Storage Node Compute/Storage Node
第24页
⼩小结
• Ceph • 弹性的数据分布策略和物理拓扑输⼊入
实现数据的⾼高可⽤用和⾼高持久性
第25页
⾼高性能重构
第26页
Ceph —
Object oid
data
attr
oid data Attr
• A于标D、查找、获取对象 • 全局唯一
• 二进制数据流 • 可能是任意长度
• 键值对集合 • A于存储对象相关的元数据
ObjectA
ObjectB
ObjectC
ObjectD
RA OS ObjectX
对象和⽂文件区别是什么?
第27页
RADOS —
• RADOS 制,
Replica
N2
Replica
N3
lient
Request
Primary
写入N1
Nn
Replica
第28页
虚拟块设备映射
Obj Obj Obj Obj Obj Obj Image
OSD OSD OSD OSD
File File File File File File
K/V K/V K/V K/V K/V K/V
K/V K/V
K/V K/V K/V K/V
K/V
FileStore KeyValueStore
第29页
VCPU Thread
Qemu Main Thread
Pipe::Writer
Pipe::Reader
DispatchThreader
OSD::OpWQ
FileJournal::Writer
FileJournal->finisher
RadosClient->finisher
DispatchThreader
Pipe::Reader
Pipe::Writer
FileStore->ondisk_finisher
FileStore->op_finisher
FileStore::SyncThread
FileStore::OpWQ
Pipeline IO
第30页
减少上下⽂文切换损耗
• CPU • 保持苏醒
K/VK/V
第31页
缓存就是
• 增加所有重要数据结构的缓存 K/VK/V
• 改善缓存实现
第32页
使⽤用
• 创建快照、克隆时⼤大⼤大减少拷贝量 K/VK/V
• 启动恢复进程时避免全零拷贝
第33页
使⽤用
• 在合适的使⽤用场景下开启 K/VK/V
• RBDCache
第34页
实验性优化
• 重构消息和事务序列化实现
• 重写
K/VK/V
• 引⼊入全新的缓存实现
第35页
外部优化
• CPU • 内存 • ⽹网络 • 块设备和⽂文件系统 • QEMU
第36页
性能⼩小结
K/VK/V
第37页
性能⼩小结
• 4K • 4K • ⼤大约
K/VK/V
第38页
运维和监控平台
• Puppet • Diamond + Graphite • Zabbix
第39页
Ceph More
• Ceph • EC + KeyValueStore • CephFS(Filesystem as a Service) • Big Data on Ceph(Data Aware) • Ultra High Performance Storage
第40页
谢谢
2014/11/20