ceph(第二步) 三节点部署(ceph-deploy)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ceph(第二步) 三节点部署(ceph-deploy)相关的知识,希望对你有一定的参考价值。

参考技术A 使用 ceph-deploy 工具部署 ceph 存储集群。

使用虚拟机构建三节点 ceph 存储集群。

全篇使用 root 权限。

虚拟化软件:vmware
虚拟机操作系统:centos 7.6
每台虚拟机配置:2G内存,1块系统盘(50G),2块ceph将使用的硬盘(每块20G)
虚拟机网络:一条虚拟机间互通,并且可以上网的网络即可(NAT)。
总共三台虚拟机:ceph01、ceph02、ceph03

ceph 版本:nautilus
ceph-deploy 版本:2.0.1

当前时间: 2019.10

部署过程整体描述:
首先选出一台机器作为部署节点,部署节点负责为机器部署 ceph 软件。这里直接选择 ceph01 作为部署节点。

我这里 ceph01、ceph02、ceph03 对应的地址分别为:
10.10.10.31、10.10.10.32、10.10.10.33

所有机器均关闭掉防火墙。

所有机器均配置 yum 国内加速源:

所有机器均配置 pip 国内加速源:

这里配置的是部署节点到其它机器间的主机解析。

vim /etc/hosts 添加如下内容:

这里配置的是部署节点到其它机器间的免密登录。

注意:以下每行命令执行后都需要输入密码,不能直接全部复制粘贴。

命令参考如下,尽量每个节点都测试一下

所有机器执行如下命令:

注意!当前步骤十分重要。

在 ceph 中读取了 hostname 命令产生的结果。
因此在每个节点上均需修改自己的 hostname。命令参考:

进入到 ceph01 节点上:

按照此方法修改其它节点的 hostname。

主要分两步:
第一步,安装 ceph-deploy
第二步,使用 ceph-deploy 安装 ceph 组件。

该步骤所有命令均在部署节点上执行。

安装 ceph-deploy:

该步骤所有命令均在部署节点上执行。

vim /opt/ceph-deploy/ceph.conf
在 global 中增加:

当前命令执行以后,可以在当前目录下发现许多的 keyring 文件,这是连接其它节点的凭据。以后的 ceph-deploy 命令均在当前目录下执行才可正常使用。

将当前临时文件夹下的配置文件同步到所有节点的 /etc/ceph/ 下

我这个环境有三台虚拟机,每台虚拟机上有额外2块硬盘用于 ceph 集群,它们是 sdb、sdc。这个要根据自己的环境找到正确的硬盘。

命令参考如下:

其中 /dev/sdb ceph01 ,表示 ceph01 节点上的 /dev/sdb 硬盘。

命令执行完以后,基础的环境就算搭建完成了。可以执行如下命令查看集群的状态:
ceph 健康: ceph health
ceph 集群详细状态:ceph -s
ceph 集群 osd 状态:ceph osd tree

至此,该集群还处于一个基础的状态,并不能正常使用。

接下来需要配置 ceph pool 相关信息,以及安装配置 rgw 从而使用对象存储功能。

vim /opt/ceph-deploy/ceph.conf
在 global 中增加如下:

其中 pg num 需要计算得出,pgp num 与 pg num 保持一致。

粗略的计算方法:
( osd 数量 * 100 ) / 池副本数。

同步配置文件:

vim /opt/ceph-deploy/ceph.conf
增加如下内容:

整体配置如下:

安装 rgw:

至此,我们可以去创建一个 pool,并上传文件测试集群了。

这个时候执行 ceph -s
可以看到集群报了 warn 信息,如下:

这不是因为我们哪里配置有问题,这是 ceph 的某个告警配置。当某个 osd 的 pg 小于 30 时会发出告警。现在可以忽略这个问题。ceph 提供这个配置,可能是担心集群在未来使用中出现 pg 分布不均匀的情况。
参考:
https://docs.ceph.com/docs/master/rados/configuration/pool-pg-config-ref/

查看池列表:ceph osd lspools

ceph 默认的池已经创建一些 pg。为了解决前面的告警,我们需要满足每个 osd 都有超过30个 pg,因此创建一个具有80个 pg 的池。

(此时用 ceph -s 可以看到集群状态又是 HEALTH_OK 了)

命令参考:

可以看到文件已经上传上去了,并且叫 test-object-1

rados get test-object-1 /tmp/test-object-1 -p mytest

可以看到两个文件的内容是一样的,到此,基本的部署及使用均正常了。

在 ceph 中,hostname 是一个非常重要的属性。

hostname 命令只可以临时改变当前主机的主机名,并不会永久生效。

目前已知两种方式会永久影响主机名。

第一种情况,很直观,不再多做介绍。

第二种情况时:

这样的配置,会让通过 10.10.10.31 地址访问进来的连接所识别到的主机名改为 ceph01。

在本环境中,不同的 ceph 节点之间通过 10.10.10.0/24 地址进行通信,所以只需要为该地址配置主机名。

在 ceph 中,如果主机名混乱,会发生什么?
ceph osd tree 这个命令可以让你看到主机名混乱带来的后果:

如果糟糕的事情已经发生了,我们只需要修改好主机名,然后重启机器,一切都会恢复正常:

第一种方式的优先级高于第二种。
因此只需要更改 /etc/hostname 即可。文件内容参考如下:

以上是关于ceph(第二步) 三节点部署(ceph-deploy)的主要内容,如果未能解决你的问题,请参考以下文章

Ceph入门----CentOS7部署ceph三节点分布式存储系统

Ceph 13.2.8 三节点部署

分布式存储ceph---部署ceph

精品轻松部署ceph分布式存储集群

精品轻松部署ceph分布式存储集群

Ceph单节点部署