hl10502的博客

CentOS7.2部署Luminous版Ceph-12.2.0

在CentOS7.2上安装部署Luminous版Ceph-12.2.0。由于ceph的Luminous版本默认使用bluestore作为后端存储类型,也新增了mgr功能,所以使用ceph-deploy的1.5.38版本来部署集群、创建MON、OSD、MGR等。

环境

每台主机

  • CentOS Linux release 7.2.1511 (Core) Mini版
  • 两个100G的磁盘做OSD
1
2
3
4
5
6
7
8
9
10
11
12
13
[root@localhost ~]# cat /etc/redhat-release
CentOS Linux release 7.2.1511 (Core)
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sr0 11:0 1 1024M 0 rom
xvda 202:0 0 10G 0 disk
├─xvda1 202:1 0 500M 0 part /boot
└─xvda2 202:2 0 9.5G 0 part
├─centos-root 253:0 0 8.5G 0 lvm /
└─centos-swap 253:1 0 1G 0 lvm [SWAP]
xvdb 202:16 0 100G 0 disk
xvdc 202:32 0 100G 0 disk

主机node232作为管理节点,部署ceph-deploy。三台主机配置如下

主机 IP 安装组件
node232 192.168.217.232 ceph-deploy、mon、osd、mgr、ntp
node233 192.168.217.233 mon、osd、ntpdate
node234 192.168.217.234 mon、osd、ntpdate

域名解析

修改每台主机的hostname

1
[root@localhost ~]# hostnamectl set-hostname [hostname]

hostname分别为node232、node233、node234

修改每台主机的/etc/hosts

1
[root@localhost ~]# vi /etc/hosts

添加
192.168.217.232 node232
192.168.217.233 node233
192.168.217.234 node234

关闭selinux

关闭每台主机的selinux

1
2
[root@node232 ~]# sed -i 's/SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
[root@node232 ~]# setenforce 0

配置无密码访问

在node232节点上执行配置。

生成本机密钥

1
[root@node232 ~]# ssh-keygen -t rsa

将本机密钥copy到node233、node234

1
2
[root@node232 ~]# ssh-copy-id root@node233
[root@node232 ~]# ssh-copy-id root@node234

验证配置是否成功

1
2
[root@node232 ~]# ssh root@node233
[root@node232 ~]# ssh root@node234

NTP 配置

NTP配置请参考 CentOS7.2配置NTP服务

node232作为NTP服务端,node233、node234作为NTP客户端

yum源配置

配置Luminous版本的阿里云或网易的yum源,可以参考 CentOS7.2部署Jewel版Ceph-10.2.7 【yum源配置】部分,Jewel改成相应的Luminous

安装ceph

下载ceph的相关rpm到本地

1
[root@node232 ~]# yum install --downloadonly --downloaddir=/tmp/ceph ceph

在每台主机上安装ceph

1
[root@node232 ~]# yum localinstall -C -y --disablerepo=* /tmp/ceph/*.rpm

安装成功,查看ceph版本

1
2
[root@node232 ~]# ceph -v
ceph version 12.2.0 (32ce2a3ae5239ee33d6150705cdb24d43bab910c) luminous (rc)

部署ceph

在管理节点node232上执行。

安装ceph-deploy

下载ceph-deploy-1.5.38

1
[root@node232 ~]# yum install --downloadonly --downloaddir=/tmp/ceph-deploy/ ceph-deploy

安装ceph-deploy

1
[root@node232 ~]# yum localinstall -C -y --disablerepo=* /tmp/ceph-deploy/*.rpm

安装成功,查看ceph-deploy版本

1
2
[root@node232 ~]# ceph-deploy --version
1.5.38

部署集群

创建部署目录,部署集群

1
2
3
[root@node232 ~]# mkdir ceph-cluster
[root@node232 ~]# cd ceph-cluster
[root@node232 ceph-cluster]# ceph-deploy new node232 node233 node234

部署mon

1
[root@node232 ceph-cluster]# ceph-deploy mon create-initial

执行ceph -s会出错,是由于缺少/etc/ceph/ceph.client.admin.keyring文件

1
2
3
4
5
[root@node232 ceph-cluster]# ceph -s
2017-09-13 12:12:18.772214 7f3d3fc3f700 -1 auth: unable to find a keyring on /etc/ceph/ceph.client.admin.keyring,/etc/ceph/ceph.keyring,/etc/ceph/keyring,/etc/ceph/keyring.bin,: (2) No such file or directory
2017-09-13 12:12:18.772260 7f3d3fc3f700 -1 monclient: ERROR: missing keyring, cannot use cephx for authentication
2017-09-13 12:12:18.772263 7f3d3fc3f700 0 librados: client.admin initialization error (2) No such file or directory
[errno 2] error connecting to the cluster

手工复制ceph-cluster目录下ceph.client.admin.keyring文件到/etc/ceph/目录下或者执行 ceph-deploy admin命令自动复制ceph.client.admin.keyring文件

1
[root@node232 ceph-cluster]# ceph-deploy admin node232 node233 node234

查看集群

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[root@node232 ceph-cluster]# ceph -s
cluster:
id: 988e29ea-8b2c-4fa7-a808-e199f2e6a334
health: HEALTH_OK
services:
mon: 3 daemons, quorum node232,node233,node234
mgr: no daemons active
osd: 0 osds: 0 up, 0 in
data:
pools: 0 pools, 0 pgs
objects: 0 objects, 0 bytes
usage: 0 kB used, 0 kB / 0 kB avail
pgs:

创建osd

1
[root@node232 ceph-cluster]# ceph-deploy --overwrite-conf osd prepare node232:/dev/xvdb node232:/dev/xvdc node233:/dev/xvdb node233:/dev/xvdc node234:/dev/xvdb node234:/dev/xvdc --zap-disk

激活osd

1
[root@node232 ceph-cluster]# ceph-deploy --overwrite-conf osd activate node232:/dev/xvdb1 node232:/dev/xvdc1 node233:/dev/xvdb1 node233:/dev/xvdc1 node234:/dev/xvdb1 node234:/dev/xvdc1

查看集群

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[root@node232 ceph-cluster]# ceph -s
cluster:
id: 988e29ea-8b2c-4fa7-a808-e199f2e6a334
health: HEALTH_WARN
no active mgr
services:
mon: 3 daemons, quorum node232,node233,node234
mgr: no daemons active
osd: 6 osds: 6 up, 6 in
data:
pools: 0 pools, 0 pgs
objects: 0 objects, 0 bytes
usage: 0 kB used, 0 kB / 0 kB avail
pgs:

配置mgr

在node232上创建名称为foo的mgr服务

1
[root@node232 ceph-cluster]# ceph-deploy mgr create node232:foo

启用dashboard

1
[root@node232 ceph-cluster]# ceph mgr module enable dashboard

通过 http://192.168.217.232:7000 访问dashboard
ceph-dashboard.png

dashboard的port默认为7000,可以执行ceph config-key set mgr/dashboard/server_port $PORT修改port。
也可以执行ceph config-key set mgr/dashboard/server_addr $IP指定dashboard的访问IP。