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

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

使用 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 即可。文件内容参考如下:

首先使用 $ ip addr 查看主机的内网IP地址,结果如下图示,主机内网IP地址为 192.168.0.119/24 ,此IP地址非常重要,之后频繁使用。

首先配置 ceph 源,可以自己编写,也可使用如下阿里云提供的源:

配置源后,开始安装

创建配置文件目录,后续命令都是在该目录下执行

初始化ceph集群

修改ceph.conf配置文件为单节点:

初始化ceph的监控,启动mon 进程。目录下会新生成ceph.client.admin.keyring 等5个配置文件

将ceph.client.admin.keyring拷贝到各个节点上

启动mgr进程

$ ceph -s 查看集群状态,如图所示, HEALTH_OK , HEALTH_WARN 都表明ceph集群安装成功可以使用了

在键盘上依次输入

此时数据盘被分好了。

格式化磁盘

创建osd

启动rgw对象存储进程

输入以下命令,查看集rgw是否正常启动。RGW服务默认启动的7480端口

出现如下结果表示RGW进程正常启动

设置pool 和 pgs的值:

利用s3创建 桶来测试,先输入以下命令,创建用户,并赋予读写权限 :

查看用户信息,记录access_key和secret_access_key的值

输入以下命令,利用python脚本来验证 桶是否创建成功:

出现上述内容说明ceph部署成功。之后可以使用python *** 作ceph。推荐boto3。

[Reference]:

Centos--单节点Ceph对象存储部署

单节点Ceph对象存储简单部署(1)

Centos挂载硬盘完整图文教程(查看、分区、格式化、挂载)磁盘


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11379212.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存