安装

概念简介

  • ceph-deploy

  • monitor

  • mgr

  • osd

一、准备工作

1.1 主机规划

准备四台主机

  • node0:ceph-deploy

  • node1:monitor、mgr

  • node2:osd,一个未格式化与未挂载的空白磁盘或分区

  • node3:osd,一个未格式化与未挂载的空白磁盘或分区

本文以root用户进行安装

1.2 系统配置

以下操作在每台主机上执行

1.2.1 关闭selinux

编辑文件/etc/selinux/config,修改SELINUX=enforcing这一行为SELINUX=disabled。然后执行如下命令

1.2.2 关闭防火墙

1.2.3 配置yum源

  • epel.repo

/etc/yum.repos.d/目录下创建文件epel.repo,内容如下

  • ceph.repo

/etc/yum.repos.d/目录下创建文件ceph.repo,内容如下(这里我们安装luminous版本的ceph)

1.2.4 配置终端权限

为了让ceph-deploy节点能够SSH到各节点执行安装命令,执行命令visudo,修改文件中Defaults requiretty这一行为Defaults !requiretty(若没有则不需要修改)

1.3 配置SSH无密登录

以下操作在ceph-deploy节点执行

1.3.1 设置主机名

/etc/hosts文件末尾添加如下内容

1.3.2 生成ssh-key

执行如下命令,遇到交互直接按Enter

1.3.3 拷贝key到各节点

1.3.4 验证

验证从ceph-deploy节点上可以直接SSH到其他节点,无需输入密码

1.4 安装时钟同步服务

(略)

二、安装过程

以下操作都在ceph-deploy节点执行

2.1 安装ceph-deploy

2.2 创建目录

在执行ceph-deploy命令的过程中会在生成一些配置文件,创建一个目录,存放生成的配置文件

2.3 安装monitor

node1节点上安装monitor组件

此时,会在./ceph-cluster目录下生成三个文件:ceph.confceph-deploy-ceph.logceph.mon.keyring。其中ceph.conf文件,内容如下:

如果主机有多个网卡,则在[global]下手动添加public network的信息,比如:

2.4 安装ceph到各个节点

ceph-deploy install会在节点上安装cephceph-radosgw这两个rpm包,如果某个节点安装失败,可以手动去那个节点上执行命令安装:yum -y install ceph ceph-radosgw

2.5 生成密钥

该命令会在当前(./ceph-cluster)目录下生成以下几个密钥文件

  • ceph.client.admin.keyring

  • ceph.bootstrap-mgr.keyring

  • ceph.bootstrap-osd.keyring

  • ceph.bootstrap-mds.keyring

  • ceph.bootstrap-rgw.keyring

  • ceph.bootstrap-rbd.keyring

2.6 分发配置文件与密钥

把配置文件和密钥拷贝到各节点上,这样从每个节点上都能执行ceph命令而不需要输入monitor的IP以及密钥

2.7 安装mgr

从luminous版本开始,一般都需要安装mgr

2.8 安装osd

前置条件:/dev/sdb必须是一个未格式化与未挂载的空白磁盘或空白分区

注意:官方文档这一步的命令是ceph-deploy osd create node2:sdb,但在实践中发现这个命令执行失败,这个坑要注意

三、检查集群状态

登录到monitor节点上,执行以下命令查看集群状态

四、清除操作

如果某个节点在安装过程中出错,可以执行以下的操作删掉Ceph以及清除数据,然后重新安装

FAQ

Q:执行yum -y install ceph-deploy时提示No package ceph-deploy available

A:执行命令yum list ceph-deploy --show-duplicates | sort -r会发现,在epelceph源中都有ceph-deploy,所以yum不知道该安装哪一个

解决方法:指定安装ceph源中的2.0.1版本即可,yum -y install ceph-deploy-2.0.1

Q:执行ceph-deploy new node0时报如下的错?

A:执行以下命令解决

Q:如果只有一个磁盘或分区,则在创建一个pool后执行rbd ls poolName时会卡住?

A:这里因为pool的默认副本数为3,而只有一个osd,可以通过以下命令确认:

执行命令将pool的size设置为1

然后执行命令就不会卡住了,执行ceph -s看到pool应该是active+clean的状态

Q:在删除pool时,报错Error EPERM: pool deletion is disabled; you must first set the mon_allow_pool_delete config option to true before you can destroy a pool

A:修改monitor节点上的/etc/ceph/ceph.conf文件,在尾部添加如下的内容

然后重启ceph-mon.target服务

Q:执行ceph -s时提示application not enabled on 1 pool(s)

A:执行命令ceph osd pool application enable <pool> rbd

Reference

Last updated

Was this helpful?