咳咳,写一下文章以记录本人完成实验过程,有一说一网上的大部分ceph文章过时的有些过于严重,许多错误信息导致本人走了许多弯路,希望这篇文章能帮助到正在学习的各位,第一次写博客,如有问题欢迎指正与讨论。
(PS:官方中文文档很久很久很久没有更新了,有很多东西过期了,而且不知道是不是翻译的,很多时候不说人话,大坑!!!)
实验文档地址:OSH-2021
目录
环境介绍
- 树莓派3B+(搭载raspiOS,官方下载)
- PC(搭载Ubuntu20.04,其实如果有显示屏,可以直接把显示屏接在树莓派上操作,此次限于设备不足,选择用电脑ssh连接树莓派)
Ceph 简介
随着信息技术的快速发展,互联网产生和处理的数据量迅猛增长。有研究表明,过去两年里产生的数据已经占世界数据总量的 90%。如何存储这些数据是存储系统相关研究的核心问题。传统上的集中式存储系统采用计算能力和 I/O 能力强悍的大型主机进行数据存储,然而目前在数据中心中存储的数据均为 PB 量级甚至更高,传统的集中式存储由于过高的设计和维护成本渐渐难以满足日益增长的存储需求。在目前的数据中心中,普遍采用大量的性价比更高的小型主机,通过分布式文件系统协同存储数据中心中的海量数据,常见的有 Hadoop 分布式文件系统(Hadoop Distributed File System,即 HDFS)和 Ceph 分布式文件系统等
一个典型的部署架构如下
图片上可以看到有四个节点,实际上只有三类节点分别为admin,monitor,osd. (吐槽一下,官方中文文档这边的描述真的很乱)
admin节点
首先说明一下,这个并不是ceph集群的节点,而是ceph-deploy部署所需要的一个节点,实际上之后存储集群没啥他的事情,他在部署过程中,主要是将ceph装至各个节点上,这个节点可以放在个人pc上也可以放在树莓派上,其实没什么影响。
monitor节点
这个是ceph集群中的监控节点,负责收集整个集群状态信息,修复集群故障,管理 Cluster Map,与客户端交互等任务。一个集群拥有一个 Monitor 也可运行,但可能会出现单点故障问题,所以为提高可靠性和可用性一般使用多个 Monitor(官方推荐 3 个),Monitor 之间通过 Paxos 算法保持一致性。monitor 通过 MON 守护进程提供服务。
osd节点
OSD(Object Storage Device)是 Ceph 中负责、读写数据的逻辑存储节点,负责在平面命名空间(flatnamespace,区别于目录层次结构)以对象形式存储所有数据。客户端从 Monitor 处得到 map 信息后就只需和相应 OSD 交互以完成读写请求,而无需和中心节点交互,从而提高可靠性并有效利用系统带宽。OSD 和 Monitor 之间通过心跳机制(而不是通过 Monitor 轮询)向 Monitor 通知例如扩容时有新的 OSD 加入,OSD 自身或者其他 OSD 出现故障,Monitor 根据上报信息修改 Cluster 一个集群拥有一个 Monitor 也可运行,但可能会出现单点故障问题,所以为提高可靠性和可用性一般使用 多个 Monitor(官方推荐 3 个),Monitor 之间通过 Paxos 算法保持一致性。 Cluster Map 更新后不会立即直接广播到所有 OSD,而是在 OSD 主动上报信息时将更新信息回复给对方。OSD 之间进行通信时,如果发现对方的 Cluster Map 版本信息较低,则将更新信息发送给对方
以上就是初步部署需要了解到的一些知识,读写的原理可以看