我只是简单的部署测试,并没有深入的研究相关内容,可能下面的描述并不是准确。
ceph 的中文文档很不错,访问地址: http://docs.ceph.org.cn。
先了解下 ceph 基本组成,有一个大概的了解,这部分内容主要摘抄自 ceph 文档和别人的文章。
以下部分来自:http://docs.ceph.org.cn/start/intro/
不管你是想为云平台提供Ceph 对象存储和/或 Ceph 块设备,还是想部署一个 Ceph 文件系统或者把 Ceph 作为他用,所有 Ceph 存储集群的部署都始于部署一个个 Ceph 节点、网络和 Ceph 存储集群。 Ceph 存储集群至少需要一个 Ceph Monitor 和两个 OSD 守护进程。而运行 Ceph 文件系统客户端时,则必须要有元数据服务器( Metadata Server )。
- Ceph OSDs: Ceph OSD 守护进程( Ceph OSD )的功能是存储数据,处理数据的复制、恢复、回填、再均衡,并通过检查其他OSD 守护进程的心跳来向 Ceph Monitors 提供一些监控信息。当 Ceph 存储集群设定为有2个副本时,至少需要2个 OSD 守护进程,集群才能达到 状态( Ceph 默认有3个副本,但你可以调整副本数)。
- Monitors: Ceph Monitor维护着展示集群状态的各种图表,包括监视器图、 OSD 图、归置组( PG )图、和 CRUSH 图。 Ceph 保存着发生在Monitors 、 OSD 和 PG上的每一次状态变更的历史信息(称为 epoch )。
- MDSs: Ceph 元数据服务器( MDS )为 Ceph 文件系统存储元数据(也就是说,Ceph 块设备和 Ceph 对象存储不使用MDS )。元数据服务器使得 POSIX 文件系统的用户们,可以在不对 Ceph 存储集群造成负担的前提下,执行诸如 、 等基本命令。
Ceph 把客户端数据保存为存储池内的对象。通过使用 CRUSH 算法, Ceph 可以计算出哪个归置组(PG)应该持有指定的对象(Object),然后进一步计算出哪个 OSD 守护进程持有该归置组。 CRUSH 算法使得 Ceph 存储集群能够动态地伸缩、再均衡和修复。
rados 结构,以下部分来自 https://www.jianshu.com/p/cc3ece850433
一个 Ceph 集群的服务器关系图,来自 https://docs.switzernet.com/3/public/130910-ceph-dovecot/
更多的内容这里就不转载了,请直接网络搜索吧。
-
干货|非常详细的 Ceph 介绍、原理、架构
-
Ceph分布式存储系列(一):Ceph工作原理及架构浅析梳理
-
CentOS8使用cephadm部署和配置Ceph Octopus
-
使用cephadm安装ceph octopus
-
最新Ceph安装工具:Cephadm介绍与使用
-
用户空间挂载 CEPH 文件系统
-
用内核驱动挂载 CEPH 文件系统
-
CEPHFS 文件系统创建和挂载
我这里只是测试一下,所以开了三个虚拟机进行测试。三个虚拟机操作系统都是 CentOS 8。
先在三台机器上,修改 文件,添加下面内容:
然后分别在每个节点机器上,根据节点所承担的角色设置主机名
因为后续需要离线部署到实际工作环境中,所以我这里参照网上的部署方案,制作了一个简单的离线安装部署包。
安装包里面的 程序被我修改了,将里面的 函数里面 数组中的 改为了 。因为离线部署不需要使用 或者 去实际拉取镜像,使用本地镜像即可。
离线安装包只适合在 下使用,其他系统环境无法兼顾。离线安装包主要是打包了 、、、 的安装包,以及 及其需要用到的几个容器镜像。
cephadm 使用到的镜像列表如下:
离线安装包下载地址:
链接: https://pan.baidu.com/s/1zIODZ9cfMVCxLQrU9YRyow 提取码: cxi5 复制这段内容后打开百度网盘手机App,操作更方便哦
注意,在安装完成之后,可以将 cephadm 复制到 /usr/bin 目录下,后续可以直接使用,无需指定路径。
将上面说的离线安装包上传到 节点,解压后进入 文件夹,执行下面命令进行基础依赖组件安装:
安装完成基础组件后,再执行 脚本来创建集群,执行的过程中,会要求输入 节点的 IP,直接输入后回车即可:
如果执行没有出错的话,应该会有类似下面的输出:
这表示已经安装成功了,可以使用浏览器打开 https://ceph-mon1:8443/ 进行访问,用户名和密码也在输出中。
4.3.1、集群节点间的 SSH 免密访问设置
前面安装过程结束后,会在 目录下生成 文件,这个是 创建的公钥文件,将它上传到 和 节点,以便实现 SSH 免密登陆。
可以使用 命令创建新的密钥对也是可以的。
上面操作只能实现 节点免密 SSH 登陆 节点,要能够都互相之间访问,则需要反过来也操作。
4.3.2、添加节点到集群
下面说的步骤中,直接将离线安装包拷贝到所有节点上,并执行 脚本,就不用麻烦了,可以直接跳到 4.4 的第三个步骤。
注意,下面所说的都是在各个节点分别进行的过程,不是在 ceph-mon1 节点了。
然后将离线安装包上传到 和 节点
然后 登陆到 和 节点,安装好
注意:如果不进行上面的安装操作,将无法将节点添加到集群!
执行完成上面的操作之后,可以回到 节点,执行下面的命令将 和 添加到集群。
上面的标签是使用下面命令添加的(这是在 ceph-mon1 节点执行的),标签可以添加也可以移除。
下面的操作都是在 ceph-ods1、ceph-ods2 节点进行的,两个节点都要执行。
4.4.1、依赖项安装
将离线安装包里面的 、 安装。(如果上面步骤中是执行 安装的,则跳过此步骤)
执行上面的操作后,可以执行下 命令看看是否正常,应该是会报一下错误的:
这个只需要将 节点上的 和 文件拷贝到其他节点即可
然后将 和 里面的容器镜像导入到 。(如果上面步骤中是执行 安装的,则跳过此步骤)
4.4.2、添加 OSD 角色(服务)到集群
前面添加了节点到集群,并且也在每个节点都进行必要的依赖项安装,以及 podman 镜像的导入,下面可以进行 OSD 角色(服务)的添加了。
在任意节点(因为都已经安装了 ,所以那个节点都一样),
查看一下集群状态:
因为我这里只有两个 OSDs ,所以这里会有警告。
执行完成上面的操作之后,可以创建一个文件系统进行测试一下
创建完成之后,添加一个 mds (元数据)服务
使用命令 查看下 mds 服务状态
重新看一下集群状态,我这里因为创建了两个文件系统和 mds ,所以下面有的显示了两个的状态。
先在客户端机器上安装 ,软件安装包在离线安装包里面有。
然后直接使用下面的命令进行挂载操作即可:
更多参数和挂载示例还是通过 进行查询比较好。
使用 命令查看一下 的状况。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ri-ji/27670.html