ceph三节点

https://blog.csdn.net/caiyqn/article/details/107069755

一、环境准备

1、节点规划:

[root@node1 ~]# cat /etc/hosts
ceph-admin 192.168.13.230 部署节点
192.168.40.131 node1
192.168.40.132 node2
192.168.40.133 node3

2、做ceph-admin可以登录node1、node2、node3的免密钥配置,同时确保服务器的selinux关闭,防火墙关闭,时间同步(简单,自行解决)

3、配置yum源相关操作

# yum  -y install epel-release
# yum -y install  yum-utils
# yum  -y install createrepo 

添加ceph jewel 阿里云镜像仓库

# vim /etc/yum.repos.d/ceph.repo

[ceph]
name=ceph
baseurl=http://mirrors.aliyun.com/ceph/rpm-jewel/el7/x86_64/
gpgcheck=0
[ceph-noarch] name=cephnoarch baseurl=http://mirrors.aliyun.com/ceph/rpm-jewel/el7/noarch/ gpgcheck=0 [ceph-source] name=cephsource baseurl=http://mirrors.aliyun.com/ceph/rpm-jewel/el7/x86_64/ gpgcheck=0 [ceph-radosgw] name=cephradosgw baseurl=http://mirrors.aliyun.com/ceph/rpm-jewel/el7/x86_64/ gpgcheck=0
#  yum clean all
# yum repolist
# yum list ceph --showduplicates | sort  -r
# yum list all | grep ceph-deploy

4、安装ceph-deploy

#yum install -y ceph-deploy

验证下ceph-deploy的版本号:

[root@ceph-admin ~]# ceph-deploy --version
1.5.39

这里注意如果版本是1.5.25或者其他低版本,后续安装会出问题,如果版本不对,需要删了重装。

4、创建工作目录:

#mkdir -p ~/ceph-cluster && cd ~/ceph-cluster

二、安装:
1、在ceph-admin上进行操作:

#ceph-deploy install node1 node2 node3 

(这步是在3个node节点上安装ceph,即yum install ceph)

注意:如果使用自己搭建的局域网yum源,安装ceph集群时间,不要在deploy节点执行

# ceph-deploy install node01 node02 node03
如果使用ceph-deploy install,会安装ceph-release这个包,在目标机器添加ceph的官方仓库,然后在内网环境,会因为找不到这个包或者仓库无法联网,导致安装失败!

改之,在node01 node02 node03 节点手动执行  
#  yum  -y install   ceph-10.2.11 ceph-mgr-10.2.11 ceph-mon-10.2.11 ceph-mds-10.2.11 ceph-osd-10.2.11 ceph-fuse-10.2.11 ceph-radosgw-10.2.11

2、创建ceph集群:

#ceph-deploy new node1 node2 node3

会生成以下几个文件:

[root@ceph-admin ~]# ls
ceph.conf ceph-deploy-ceph.log ceph.mon.keyring
#ceph.conf 为ceph配置文件
#ceph-deploy-ceph.log为ceph-deploy日志文件
#ceph.mon.keyring 为 ceph monitor 的密钥环

3、追加额外配置:

[root@ceph-admin ceph-cluster]# vim ceph.conf
[global]
fsid = 55cf543b-8b9a-49f6-9d79-adc17a270fa5
mon_initial_members = node1, node2, node3
mon_host = 192.168.13.231,192.168.13.232,192.168.13.233
auth_cluster_required = cephx
auth_service_required = cephx
auth_client_required = cephx
filestore_xattr_use_omap = true
rbd_default_features = 1 #部分操作系统kernel只支持layering,所以最好直接在配置文件指明创建rbd时默认支持的特性rbd_default_features = 1
mon clock drift allowed = 2 #由于ceph分布式对时钟的同步要求很高,可以将同步误差范围调大;
mon clock drift warn backoff = 30
osd pool default size = 3 #增加默认副本数为3

4、初始化 monitor 节点并收集所有密钥:

#ceph-deploy mon create-initial

#若出现/etc/ceph/ceph.conf 已存在的错误,则需要执行ceph-deploy --overwrite-conf mon create-initial

执行完毕后,会在当前目录下生成一系列的密钥环(只有在安装 Hammer 或更高版时才会创建 bootstrap-rgw 密钥环):

[root@ceph-admin ceph-cluster]# ll
总用量 152
-rw-------. 1 root root 113 5月 8 11:57 ceph.bootstrap-mds.keyring
-rw-------. 1 root root 71 5月 8 11:57 ceph.bootstrap-mgr.keyring
-rw-------. 1 root root 113 5月 8 11:57 ceph.bootstrap-osd.keyring
-rw-------. 1 root root 113 5月 8 11:57 ceph.bootstrap-rgw.keyring
-rw-------. 1 root root 129 5月 8 11:57 ceph.client.admin.keyring
-rw-r--r--. 1 root root 655 5月 8 11:57 ceph.conf
-rw-r--r--. 1 root root 124063 5月 8 13:52 ceph-deploy-ceph.log
-rw-------. 1 root root 73 5月 8 11:48 ceph.mon.keyring

5、查看集群状态,当前还没有osd,会显示错误状态

[root@ceph-admin ceph-cluster]# ceph -s
cluster 1b9ecee2-3515-4090-973b-5642d0d3feef
health HEALTH_ERR
no osds
monmap e1: 3 mons at {node01=192.168.2.11:6789/0,node02=192.168.2.12:6789/0,node03=192.168.2.13:6789/0}
election epoch 8, quorum 0,1,2 node01,node02,node03
osdmap e1: 0 osds: 0 up, 0 in
flags sortbitwise,require_jewel_osds
pgmap v2: 64 pgs, 1 pools, 0 bytes data, 0 objects
0 kB used, 0 kB / 0 kB avail
64 creating

6、若安装出问题,可以清除配置,重新安装:
#清理 Ceph 安装包:

#ceph-deploy purge node1 node2 node3

#清理配置:

#ceph-deploy purgedata node1 node2 node3
#ceph-deploy forgetkeys

三、创建osd
1、OSD 是最终数据存储的地方,本例3个节点都提供osd,用的是目录而非整块硬盘
分别在ceph node1-3上执行:

#mkdir -p /osd
#chmod -R 777 /osd

2、激活 activate OSD
ceph-deploy 节点执行 prepare OSD 操作,目的是分别在各个 OSD 节点上创建一些后边激活 OSD 需要的信息。
准备:

#ceph-deploy --overwrite-conf osd prepare node1:/osd node2:/osd node3:/osd

激活:

#ceph-deploy osd activate node1:/osd node2:/osd node3:/osd

3、同步秘钥
通过 ceph-deploy admin 将配置文件和 admin 密钥同步到各个节点,以便在各个 Node 上使用 ceph 命令时,无需指定 monitor 地址和 ceph.client.admin.keyring 密钥。

#ceph-deploy admin node1 node2 node3

同时为了确保对 ceph.client.admin.keyring 有正确的操作权限,所以还需要增加权限设置,在所有节点执行:

#chmod +r /etc/ceph/ceph.client.admin.keyring

4、健康状况:
在一个node上执行:

[root@node1 ceph]# ceph -s
cluster 55cf543b-8b9a-49f6-9d79-adc17a270fa5
health HEALTH_WARN
too many PGs per OSD (3136 > max 300)
monmap e1: 3 mons at {node1=192.168.13.231:6789/0,node2=192.168.13.232:6789/0,node3=192.168.13.233:6789/0}
election epoch 6, quorum 0,1,2 node1,node2,node3
osdmap e25: 3 osds: 3 up, 3 in
flags sortbitwise,require_jewel_osds
pgmap v4399: 3136 pgs, 4 pools, 744 MB data, 102 objects
22167 MB used, 30014 MB / 52182 MB avail

安装完成。
#ceph auth get-or-create client.glance mon 'allow r' osd 'allow class-read object_prefix rbd_children, allow rwx pool=images'

#ceph auth get-or-create client.cinder mon 'allow r' osd 'allow class-read object_prefix rbd_children, allow rwx pool=volumes, allow rwx pool=vms, allow rx pool=images'

#cat > secret.xml <<EOF
<secret ephemeral='no' private='no'>
<uuid>a337f83a-ef5e-4cd7-b498-dc28d93048bd</uuid>
<usage type='ceph'>
<name>client.cinder secret</name>
</usage>
</secret>
EOF
virsh secret-set-value --secret a337f83a-ef5e-4cd7-b498-dc28d93048bd --base64 $(cat ./client.cinder.key)

参考:https://blog.csdn.net/michaelwoshi/article/details/94183198
           https://www.cnblogs.com/kevingrace/p/9141432.html
原文地址:https://www.cnblogs.com/zjz20/p/12426771.html