ceph搭建文档

一、环境

操作系统:ubuntu18.04

ceph版本:ceph version 12.2.12 (1436006594665279fe734b4c15d7e08c13ebd777) luminous (stable)

hostname:ceph01 ceph02 ceph03

基本优化:关闭防火墙,ntp时间同步,部署主机对其他服务器ssh免密码登录

基础准备:一块空硬盘,以下以/dev/sdb为示例

二、部署

安装ceph-deploy

  1. apt update -y
  2. apt-get install ceph-deploy -y

其他节点安装python

apt-get install python-minimal -y

创建集群

如果在某些地方碰到麻烦,想从头再来,可以用下列命令清除配置:

ceph-deploy purgedata ceph01 ceph02 ceph03
ceph-deploy forgetkeys

用下列命令可以连 Ceph 安装包一起清除:

ceph-deploy purge ceph01 ceph02 ceph03

如果执行了 purge ,你必须重新安装 Ceph 。

  1. 在管理节点上,进入刚创建的放置配置文件的目录,用 ceph-deploy 执行如下步骤。
    创建集群。
ceph-deploy new ceph01 ceph02 ceph03

在当前目录下用 lscat 检查 ceph-deploy 的输出,应该有一个 Ceph 配置文件、一个 monitor 密钥环和一个日志文件。

  1. 把 Ceph 配置文件里的默认副本数从 3 改成 1 ,这样只有两个 OSD 也可以达到 active + clean 状态,生产环境没必要操作。把下面这行加入 [global] 段:
osd pool default size = 1
  1. 安装 Ceph 。
ceph-deploy install ceph01 ceph02 ceph03

ceph-deploy 将在各节点安装 Ceph 。 注:如果你执行过 ceph-deploy purge ,你必须重新执行这一步来安装 Ceph 。

  1. 配置初始 monitor(s)、并收集所有密钥:
ceph-deploy mon create-initial

完成上述操作后,当前目录里应该会出现这些密钥环:

  • {cluster-name}.client.admin.keyring
  • {cluster-name}.bootstrap-osd.keyring
  • {cluster-name}.bootstrap-mds.keyring
  • {cluster-name}.bootstrap-rgw.keyring

添加osd

增加/删除 OSD

新增和拆除 Ceph 的 OSD 进程相比其它两种要多几步。 OSD 守护进程把数据写入磁盘和日志,所以你得相应地提供一 OSD 数据盘和日志分区路径(这是最常见的配置,但你可以按需调整)。

从 Ceph v0.60 起, Ceph 支持 dm-crypt 加密的硬盘,在准备 OSD 时你可以用 --dm-crypt 参数告诉 ceph-deploy 你想用加密功能。也可以用 --dmcrypt-key-dir 参数指定 dm-crypt 加密密钥的位置。

在投建一个大型集群前,你应该测试各种驱动器配置来衡量其吞吐量。

列举磁盘

执行下列命令列举一节点上的磁盘:

ceph-deploy disk list {node-name [node-name]...}
ceph-deploy disk list ceph01

擦净磁盘

用下列命令擦净(删除分区表)磁盘,以用于 Ceph :

ceph-deploy disk zap {osd-server-name}:{disk-name}
ceph-deploy disk zap ceph01:sdb

这会删除所有数据。

创建 OSD

你可以用 create 命令一次完成准备 OSD 、部署到 OSD 节点、并激活它。 create 命令是依次执行 prepareactivate 命令的捷径。

ceph-deploy osd create {node-name}:{disk}[:{path/to/journal}]
ceph-deploy osd create ceph01:sdb:/dev/sdb

ceph-deploy 把配置文件和 admin 密钥拷贝到管理节点和 Ceph 节点,这样你每次执行 Ceph 命令行时就无需指定 monitor 地址和 ceph.client.admin.keyring 了。

ceph-deploy admin {admin-node} {ceph-node}

例如:

ceph-deploy admin admin-node ceph01 ceph02 ceph03

ceph-deploy 和本地管理主机( admin-node )通信时,必须通过主机名可达。必要时可修改 /etc/hosts ,加入管理主机的名字。

确保你对 ceph.client.admin.keyring 有正确的操作权限。

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

检查集群的健康状况。

ceph health

添加监控节点

添加mgr

ceph-deploy mgr create ceph01  
ceph-deploy mgr create ceph02  
ceph-deploy mgr create ceph03

启用dashboard (在mon节点)

ceph mgr module enable dashboard

http://ip:7000 访问dashboard

创建POOL

ceph osd pool create kube 150

初始化pool

rbd pool init kube

三、rancher挂载

参考https://docs.rancher.cn/rancher2x/user-manual/clusters/storage/examples/ceph.html

rancher worker节点需要加载rbd模块

检查模块加载情况

lsmod | grep rbd

如果没有rbd加载信息,则配置rbd模块自启动

nano /etc/modules-load.d/rbd.conf

内容填入

rbd

第一次可以手动加载模块

modprobe rbd

Ceph参考手册Ceph 运维手册.pdf