使用虚拟机构建三节点 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挂载硬盘完整图文教程(查看、分区、格式化、挂载)磁盘
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)