1、章宇Ceph存储集群及其在云计算中的应用章宇-Ceph存储集群及其在云计算中的应用 Ceph存储集群及其在云计算中的应用章宇 开场白 章宇 2002年及 2007年分别于清华大学电子工程系获得工学学士及博士学位 先后工作于计算机体系结构、虚拟化、云计算领域 关于本次活动 大牛们:欢迎用力拍砖,欢迎互通有无 菜鸟们:提供参考和思路 纯属个人观点 Outline Ceph概况 Ceph技术分析 Ceph在云计算中的应用场景 小结 什么是 Ceph? “Ceph is a unified, distributed storage system designed for excellent perfo
2、rmance, reliability and scalability.” Ceph4 关于 unified 支持对象存储 支持块存储 支持文件系统存储 关于 distributed 无中心结构,理论上无规模上限 可以部署于上千台服务器组成的集群上 已知最大集群容量大于 3PB( DreamHost) 为何要关注 Ceph? Ceph的自身优势 先进的设计思想 无需元数据查找,客户端直接通过计算进行寻址 众多优点 Unified Scalability Reliability Performance Automation Ceph逐渐成熟,前途看好 Inktank已经被 Red Hat收购 C
3、eph的产生与发展 创始人 Sage Weil的博士课题 真牛人也! 2006年在 OSDI会议上的论文中正式发布 采用 7/blog/ceph_infra/ Outline Ceph概况 Ceph技术分析 Ceph在云计算中的应用场景 小结 Ceph的设计思想 设计 Ceph时的目标应用场景 大规模的分布式的存储系统 至少能承载 PB级别的数据(早于 2006年提出),且无理论上限 成千上万的存储节点 “ ”三个 变化 存储系统规模变化:规模随着数据量不断增长 存储系统中的设备变化:不断有设备损坏并被更换 存储系统中的数据变化:不断有数据被写入、移动、删除 Ceph的设计思想(续) 针对目标
4、应用场景提出的预期技术特性 高可靠 已存入数据的可靠性 存入过程中的可靠性 高度自动化 自动 replica 自动 re-balancing 自动 failure detection 自动 failure recovery 高可扩展 规模 性能 Ceph的设计思想(续) 针对预期技术特性提出的设计思路与准则 充分发挥存储设备自身的计算能力 用计算能力换取预期特性 去除所有的中心点和单点故障点 关键创新 通过计算(而非元数据查找)定位数据 “Where should I store an object” “Where did I store an object” 没有全局性的对象元数据表及其服务
5、器,并尽可能减少和简化局部的元数据及相关操作 Ceph逻辑分层引自 ceph RADOS逻辑结构引自 RADOS: A Scalable, Reliable Storage Service for Petabyte-scale Storage Clusters OSD逻辑结构引自 /.ustack/blog/ceph_infra/ 工作原理 对象寻址引自 Ceph: A Scalable, High-Performance Distributed File System 工作原理 数据写入可靠性引自 ceph 工作原理 集群维护 由monitor集群负责整个 Ceph集群中所有OSD状态的记录
6、,并形成 cluster map 版本号: epoch 各个OSD的网络地址 OSD的状态: (up, down), (in, out) CRUSH算法信息: cluster hierarchy, placement rules Cluster map以增量方式在各个OSD之间传递 OSD状态变化触发 cluster map版本和内容的变化 在任意时刻, cluster map信息在任意一个 PG内部必须一致 在全局范围内 cluster map可以不一致,但在有限时间内必定收敛 Cluster map的变化将触发数据的维护操作 Replication Recovery 集群维护自动完成,无需
7、人工干预 Ceph的技术优势 高可扩展性 无中心架构,理论上的无上限扩展 各个 client可以并行访问,不存在bottleneck 高可靠性 无中心架构,因此无单点故障点 数据的自动化多备份 自动错误诊断及恢复 高性能 聚合吞吐 并行访问 自动化 充分发挥 OSD自身能力 可编程性 librados提供丰富的 API 支持多种编程语言调用 允许在 OSD上引入计算插件 统一存储解决方案 避免同时维护多个不同的存储系统集群 平台无关,易于移植 有 ARM架构上的推荐部署配置 支持 thin provisioning: RBD 支持 snapshot 参考硬件配置引自 ceph Outline
8、Ceph概况 Ceph技术分析 Ceph在云计算中的应用场景 小结 场景一:提供 volume资源池Cloud Ceph Cluster volume 在 Ceph集群中创建 volume(块设备),然后挂载至虚拟机,作为系统盘或者数据盘使用。如果作为系统盘,可以实现从 volume直接启动(无需使用镜像),但需要在系统盘中预先安装操作系统。VMVolumemanager 场景二:提供镜像库存储空间Cloud Ceph Cluster Image managerImage pool 在 Ceph集群中创建镜像存储池,用于作为 image manager的存储后端,存储镜像文件,供创建虚拟机使用
9、。 场景三:提供虚拟机系统盘Cloud Ceph Cluster VM Image copy 在创建虚拟机时,在 Ceph集群中创建镜像拷贝,用于作为新创建虚拟机的系统盘。在虚拟机销毁时,镜像拷贝一同销毁。 场景四:提供对象存储服务Cloud Ceph Cluster providingobject storage services 使用 Ceph构建对象存储服务,供云上的各种应用使用。 小结 Ceph的设计思想和核心技术具有独创性,值得学习借鉴 Ceph会成为云计算领域中的主流开源存储解决方案之一 重要参考( Bible) 三篇学术论文 RADOS, CEPH, CRUSH 一篇博士论文 Sage Weil Ph.D thesis 官方网站 Ceph 源代码 谢谢各位!Q&A Slide 1 Slide 2 Slide 3 Slide 4 Slide 5 Slide 6 Slide 7 Slide 8 Slide 9 Slide 10 Slide 11 Slide 12 Slide 13 Slide 14 Slide 15 Slide 16 Slide 17 Slide 18 Slide 19 Slide 20 Slide 21 Slide 22 Slide 23 Slide 24 Slide 25 Slide 26 Slide 27