ceph搭建文档
一、环境
操作系统:ubuntu18.04
ceph版本:ceph version 12.2.12 (1436006594665279fe734b4c15d7e08c13ebd777) luminous (stable)
hostname:ceph01 ceph02 ceph03
基本优化:关闭防火墙,ntp时间同步,部署主机对其他服务器ssh免密码登录
基础准备:一块空硬盘,以下以/dev/sdb为示例
二、部署
安装ceph-deploy
apt update -y
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 。
- 在管理节点上,进入刚创建的放置配置文件的目录,用
ceph-deploy
执行如下步骤。
创建集群。
ceph-deploy new ceph01 ceph02 ceph03
在当前目录下用 ls
和 cat
检查 ceph-deploy
的输出,应该有一个 Ceph 配置文件、一个 monitor 密钥环和一个日志文件。
- 把 Ceph 配置文件里的默认副本数从
3
改成1
,这样只有两个 OSD 也可以达到active + clean
状态,生产环境没必要操作。把下面这行加入[global]
段:
osd pool default size = 1
- 安装 Ceph 。
ceph-deploy install ceph01 ceph02 ceph03
ceph-deploy
将在各节点安装 Ceph 。 注:如果你执行过 ceph-deploy purge
,你必须重新执行这一步来安装 Ceph 。
- 配置初始 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
命令是依次执行 prepare
和 activate
命令的捷径。
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