centos7.2 搭建ceph集群
最近正在学习Kubernetes,搭建Kubernetes。看到可以使用harbor和cephfs配合搭建docker私有仓库。于是学习搭建ceph集群。
环境介绍
使用腾讯云的两台两台主机操作系统的和版本内核为: centos 7.2 、Linux 3.10.0-693.el7.x86_64。ceph 采用ceph version 10.2.10。
Ceph 安装原理
ceph分布式存储由若干个组件组成,包括:Ceph Monitor、Ceph OSD和Ceph MDS,其中如果你仅使用对象存储和块存储时,MDS不是必须的,仅当你用使用Cephfs时,MDS才是需要安装的。
ceph的安装模型与k8是有些类似,也是通过一个deploy node远程操作其他Node以进行create、prepare和activate各个node上的组件,官方给的组件示意图如下:
本次安装的实际环境是:
admin-node deploy-node 172.16.0.16
mon.node 172.16.0.16
osd.0 172.16.0.16
osd.1 172.16.16.7
两台腾讯云服务器承担多个角色。
环境准备
配置host文件(每一台主机上)
172.16.0.16 master 172.16.0.16 admin # 仅在master上配置 172.16.16.7 slave1
创建ceph账户
# useradd -d /home/${username} -m ${username} # passwd ${uasername} # cat << EOF > /etc/sudoers.d/ceph # > ceph All = (root) NOPAASSWD ALL # > EOF
创建ceph使用的账户并且赋予sudo无密码权限
配置ssh 免密码登录
# ssh-keygen # 然后把master上的公钥拷贝到其他的节点上去 # ssh-copy-id ceph@master # ssh-copy-id ceph@master # ceph 为上一步创建的账户
执行完成后测试ssh免密码登录是否有效。最后在Deploy node节点上创建并编辑~/.ssh/config,这是ceph官方推荐的步骤,这样做的步骤可以避免每次执行ceph-deploy步骤时都要去指定–username参数。
config内容如下:
Host master Hostname master User ceph Host slave1 Hostname slave1 User ceph
但是这儿有个小错误,发现创建config文件就就无法登陆了,一开始以为是自己的格式不对,但是怎么修改都不对,最后上网上查找之后发现是权限的问题。
chmod 600 config
问题就解决了。
安装ntpd
# yum -y install ntpd # systemctl enable ntpd # systemctl satus ntpd
我参照网上以master节点为