前言
为什么要写这本书
“人类正从 IT 时代走向 DT 时代”,以自我控制、自我管理为主的信息技术(Information Technology)正在向以服务大众、激发生产力为主的数据技术(Data Technology)演进。IT 技术发展的 20 年间,互联网上积累了海量的数据,同时,5G 与物联网时代的到来,把人和万物连接在了一起,并造就了全新的数据生产能力。DT 技术对数据进行存储、清洗、加工、分析、挖掘,从数据中发掘规律,让人类能够借助计算机的计算能力重新认知这个世界,提升人类认知的同时,影响人类的思考,帮助人类进行决策。
由此可见,数据已成为这个时代的重要资产,是数字经济的关键生产要素。作为数据的生存之地,存储系统在数字经济中同样发挥着重要的基石作用,只有解决了数据的存储问题,才能通过数据挖掘创造出更多的商业价值。
Ceph,作为软件定义存储(Software Defined Storage,SDS)领域的明星项目,凭借其企业级特性,比如可扩展性、可靠性、纠删码、分层缓存、数据复制等,在过去近 10年间,为海量增长的数据提供了一个可行的存储方案,并在存储领域取得了举足轻重的地位,Ceph 曾被认为是存储技术规则的变革者,能够重新定义存储的未来。
Ceph 是一套统一的分布式存储系统,它可以提供丰富的接口,同时兼顾块存储、对象存储以及文件存储场景的使用需求。基于 Ceph 的存储系统可以搭建在商用服务器硬件之上,从而打破昂贵的厂商定制化方案枷锁,Ceph 存储系统的高性价比为用户提供了更为经济的存储系统总体拥有成本(Total Cost of Ownership,TCO)。
由于上述诸多特性,Ceph 已然成为存储行业的翘楚。尤其在云计算领域,存储系统是云计算基础设施层(Infrastructure as a Service,IaaS)中最为关键的组成部件之一。而Ceph 凭借其自身在云存储领域强大的影响力,已经成为 OpenStack、CloudStack 这样的云平台首选的开源企业级软件定义存储系统。无论是运行在公有云、私有云或混合云场景下,Ceph 存储解决方案都非常合适。也正因为如此,在云计算技术如火如荼的今天,越来越多的企业开始基于 Ceph 研发自己的分布式存储产品,或者直接基于 Ceph 开源项目构建企业级数据存储系统。
但随着业界对 Ceph 存储系统的不断深入使用,Ceph 存储方案也暴露出了一些问题,比如存储系统扩展性是否真的可以如宣称的一般,近似无限地扩展;存储系统性能是否可以满足各类应用的真实需求;存储系统鲁棒性是否可以应对各类服务器、交换机硬件层面的异常或故障,而不影响用户业务的正常运行……
本书将穿插介绍 Ceph 存储系统的架构设计以及各个模块的工作原理,并结合 Ceph存储系统的应用实践和典型问题,从基础知识和实战操作两个维度,与读者一起逐步深入Ceph、了解 Ceph,最终帮助读者驾驭 Ceph、玩转 Ceph。
公元前 47 年,凯撒大帝在小亚细亚的吉拉城,只用 5 天时间便一举平定了帕尔纳凯斯的叛乱,意气风发之下说出了一句豪言:“I came, I saw, I conquered!”,译成中文大意为“我
来,我见,我征服”。我们新解一下这句格言,“我来,我见,我才能征服”,正是基于这一逻辑,想要征服一套庞大、复杂的存储系统,一定要有长期的实践、探索以及不可避免的弯路与“踩坑”这样的经历。本书取名为“存储漫谈”,也是这一含义,笔者希望将团队在 Ceph 存储系统上的实践与经验,与读者不拘形式地进行分享、交流。
这本书的主要内容
本书包含理论篇与实践篇两大部分。
理论篇分为 4 章。
第 1 章,概要介绍分布式存储,从存储系统的架构演进着眼,概述集中式存储系统与分布式存储系统的优劣,简要对比分布式方案中的有中心架构与无中心架构,最后,对Ceph 开源方案的发展历程做简要介绍。
第 2 章,介绍 Ceph 架构,从分布式存储系统的数据寻址业界实现方案对比入手,介绍查表型寻址方式和计算型寻址方式的差异,随后介绍 Ceph 的数据寻址方案(CRUSH)以及 Ceph 的归置组(PG)概念。
第 3 章,介绍 Ceph 的接入层,包括块存储接口 RBD、对象存储接口 RGW 以及文件存储接口CephFS,在每种接口类型中,分别从接口特性、高级功能等角度展开,做详细介绍。
第 4 章,介绍 Ceph 的存储层,即 RADOS 的关键服务 Monitor、OSD。Monitor 服务中介绍了一致性算法及其实现,OSD 服务则从单机存储引擎、网络通信机制、流控机制、安全性几个方面展开,分别做了介绍。
实践篇分为 2 章。
第 5 章,介绍 Ceph 系统最佳实践,从集群管理与监控、集群性能与成本、ARM 服务器适配、负载均衡方案、垃圾回收与容量调度、对接 OpenStack 驱动优化等几个场景出发,介绍了 Ceph 存储系统在相关场景的实践经验。
第 6 章,介绍 Ceph 系统常见问题,本章挑选了 Ceph 存储集群可用容量展示、集群时间调整、大规模集群部署下的参数配置 3 方面问题,意在为已碰到类似问题的读者从 Ceph原理方面进行分析解惑,也为 Ceph 存储系统新用户预警风险,提醒他们在实践中对已知问题加以规避。
这本书的勘误方式
虽然我们会尽力确保书籍内容的准确性,但仍会不可避免地出现错误。如果您发现了本书中的错误(包括正文和代码中的错误)、语言描述的不准确等,请告诉我们,我们会非常感激您的反馈。
如果您对本书有任何意见或者建议,也请联系我们。
您可发邮件到 syiaas@cmss.chinamobile.com,并在邮件的主题中注明本书的书名《存储漫谈:Ceph 原理与实践》。
致谢
首先感谢中国移动云能力中心云存储团队的各位同事,利用业余时间撰写、修订本书的各个章节,包括:张德龙、郭建楠、龙翼、胡剑飞、黄一天、郑印、杨俊、左小宝、黄小曼、程韶君、王旭、陈盼、乔于洋、刘岚、杨丽园、陈焱山、谢昌龙、刘鸿、邓瑾、许家桐、任家英、孙亚军、张绍文、王伯钊、荆文军、刘钢标、余礼杨、白耀伟、李可飞、张姣、李佳徐、金伟毅、王福成、席金玉、张卓豫、周翔、卫迎泽、吕舒华(以上排名顺序不分先后)。其次感谢中国移动云能力中心为本书提供宝贵意见以及技术支持的各位领导以及同事。最后感谢为本书积极反馈意见、提出建议的各位读者以及所有为本书编写提供帮助的人。